Professional Documents
Culture Documents
SQL
SQL
SQL (Structured
Query Language)
,
.
SEQUEL
(Structured English Query Language)
IBM
System R (1974).
Oracle
1979.
2
SQL
Tutorial-demo: http://w3schools.com/sql/default.asp
SQL
SQL
:
,
,
,
SQL,
.
4
SQL
SQL
.
2 :
(DDL),
(DML).
,
.
.
.
H SQL : , ,
, : , 5
.
SQL
H SQL :
(),
(),
(.. C, Pascal),
(view definition),
(authentication),
(integrity),
(concurrency control).
SQL
;
;
7
SQL
CHARACTER(N) CHAR(N)
N .
CHARACTER VARYING () VARCHAR(N)
CHAR VARYING(N)
0 .
BIT(N), VARBIT(N) CHAR(N)
VARCHAR(N).
INTEGER , SMALLINT
( ).
NUMERIC(N,M) DECIMAL(N,M) DEC(N,M)
N M
( 0) ( ).8
SQL
FLOAT(N) .
REAL, DOUBLE PRECISION
.
DATE, TIME, TIMESTAMP, INTERVAL
.
: YEAR, MONTH, DAY,
HOUR, MINUTE, SECOND, TIMEZONE_HOUR,
TIMEZONE_MINUTE.
9
SQL
DATE : YYYY-MM-DD.
TIME : HH-MM-SS.
TIME(I): I
HH-MM-SS-F....F.
TIME WITH TIME ZONE:
HH-MM-SS-HH-MM.
TIME-STAMP :
YYYY-MM-DD-HH-MM-SS-F...F{-HH-MM}.
INTERVAL:
.
10
SQL
user-defined .
CREATE DOMAIN COLOR AS CHAR(5)
CONSTRAINT VALID COLORS
DEFAULT GREEN
CHECK (VALUE IN Red, Green, Blue, ???)
DROP DOMAIN COLOR RESTRICT;
DROP DOMAIN COLOR CASCADE;
restrict drop
.
cascade drop
11
.
SQL
12
SQL
. create
table :
,
,
NULL,
,
,
,
.
13
SQL
. SQL:
CREATE TABLE -
(1 -,
2 -,
...
N -,
<--1>,
<--2>,
...
<-->);
14
SQL
CREATE TABLE _
( INTEGER NOT NULL,
CHAR(50) NOT NULL,
_ INTEGER DEFAULT 0,
PRIMARY KEY (),
UNIQUE (),
CHECK (_ >= 0));
15
SQL
:
CREATE TABLE _
( INTEGER NOT NULL,
VARCHAR(100) NOT NULL,
DATE NOT NULL,
CHAR(20),
__ INTEGER NOT NULL,
PRIMARY KEY (),
FOREIGN KEY (__)
REFERENCES _ (),
ON DELETE RESTRICTED,
16
ON UPDATE CASCADE);
SQL
:
NOT NULL, NULL,
DEFAULT
,
,
DEFAULT
,
NULL,
,
PRIMARY KEY
PRIMARY KEY
,
17
SQL
:
,
. ,
UNIQUE ,
,
UNIQUE
,
,
:
department_id CHAR(5) NOT NULL REFERENCES
department
18
SQL
:
(UNIQUE)
,
,
:
department_id CHAR(5) NOT NULL REFERENCES
department
ON DELETE CASCADE
FOREIGN KEY.
19
SQL
(ALTER TABLE)
:
,
,
(constraint),
,
(default),
.
20
SQL
:
ALTER TABLE _ ADD COLUMN
CHAR(10);
ALTER TABLE ADD COLUMN
_ DATE NOT NULL;
:
ALTER TABLE _ DROP COLUMN ;
ALTER TABLE DROP COLUMN
_;
21
SQL
, NULL
:
ALTER TABLE _ MODIFY
CHAR(15);
:
ALTER TABLE _ ADD CONSTRAINT
CHECK ( > 2000-1-1);
ALTER TABLE _ DROP CONSTRAINT
CHECK ( >2000-1-1);
22
SQL
(DROP TABLE):
DROP TABLE _;
:
DROP TABLE _ RESTRICT;
DROP TABLE _ CASCADE;
23
SQL
:
Nulls,
Unique Column Values,
Primary Key Values,
Referential Integrity,
Complex Integrity Checking,
Default Values.
24
SQL
.
.
.
,
.
. .
25
: .
SQL
- Nulls
null .
NOT NULL
26
SQL
27
SQL
28
SQL
- Referential Integrity
( )
(referenced value).
FOREIGN KEY <attribute> REFERENCES
<table (attribute)>
29
SQL
- Complex Integrity
Checking
,
( )
( ).
CHECK <conditional expression>
. YEAR INT(4) NOT NULL, DEFAULT 2003,
CHECK (YEAR BETWEEN 1960 AND 2003)
30
SQL
- Primary Key
( )
.
.
.
.
.
.
.
,
. .
.
31
SQL
- Foreign Key
Constraints
.
.
null,
primary unique keys.
32
SQL
- Foreign Key
Constraints
/
parent table. . ON
DELETE ON UPDATE
CASCADE, SET NULL or SET DEFAULT:
ON DELET CASCADE:
parent table
child table.
DELETE RESTRICT:
parent table
child table.
33
SQL
- Foreign Key
Constraints
ON DELETE SET NULL:
parent table, child table
null.
ON DELETE SET DEFAULT:
parent table, child
default .
default , null.
ON UPDATE CASCADE:
parent table,
child table.
34
SQL
- Foreign Key
Constraints
ON UPDATAE RESTRICT:
parent table,
child table.
ON UPDATE SET NULL: parent
table, child table null.
ON UPDATE SET DEFAULT:
parent table, child
default . default
, null.
35
SQL
:
SELECT ,
INSERT ,
UPDATE ,
DELETE .
36
SQL
37
SQL
SELECT A1, A2, , An
FROM R1, R2, Rm
WHERE P;
SELECT
.
FROM
.
P WHERE
Ai Rj FROM.
38
SQL
SELECT A1, A2, , An
FROM R1, R2, Rm
WHERE P;
P :
: and, or, not,
: <, <=, >, >=, =, <>, between,
not between ,
.
: is NULL (), X=NULL ().
:
1,2,,n ( P (R1xR2xxRn)).
39
SQL
SELECT:
SQL
_.
SELECT *
FROM _;
SELECT , , _
FROM _;
41
SQL
.
SELECT
FROM ;
.
SELECT DISTINCT
FROM ;
42
SQL
,
,
,
.
SELECT , ,
FROM
WHERE = `'
ORDER BY , ;
43
SQL
.
SELECT ,
FROM
WHERE _ IS NOT NULL AND
__ IS NOT NULL;
44
SQL
.
SELECT ., .,
_.
FROM , _,
WHERE ._ =
. AND
_. =
.__;
45
SQL
.
.
SELECT ., .
FROM , , _
WHERE _._ =
. AND . =
_._
ORDER BY .;
46
SQL
SELECT ., .
FROM ,
WHERE .__ =
_.;
SELECT ., .
FROM JOIN ON
_. =
.__;
47
SQL
H JOIN ON
. , SQL
:
R1 LEFT JOIN R2 ON R1.a = R2.b
( ),
R1 RIGHT JOIN R2 ON R1.a = R2.b
( ),
R1 FULL JOIN R2 ON R1.a = R2.b
( ).
48
SQL
.
SELECT
FROM _
UNION
SELECT
FROM ;
UNION ALL .
49
SQL
( )
.
SELECT
FROM
INTERSECT
SELECT
FROM ;
INTERSECT ALL .
50
SQL
.
SELECT ,
FROM
EXCEPT
SELECT ,
FROM
WHERE IS NOT NULL;
EXCEPT ALL .51
SQL
.
:
SELECT ,
FROM
WHERE _ IS NULL;
52
SQL
SQL :
,
MAX ,
AVG ,
SUM
,
COUNT .
53
SQL
.
SELECT .,
COUNT (_._)
FROM , _
WHERE _._ =
.
GROUP BY .;
Group by Select.
54
SQL
.
SELECT , AVG (_)
FROM
GROUP BY ;
55
SQL
LIKE NOT LIKE.
SELECT *
FROM
WHERE LIKE %;
56
SQL
57
SQL
.
SELECT
FROM _
WHERE _ >
(SELECT AVG(_)
FROM _);
58
SQL
.
SELECT
FROM _
WHERE NOT IN
(SELECT __
FROM );
59
SQL
.
SELECT _
FROM _ AS
WHERE EXISTS
(SELECT *
FROM
WHERE = ._ AND
_ IS NOT NULL AND
_ IS NOT NULL); 60
SQL
SOME ANY ALL
( ).
SOME ALL
(=, >, <, >=, <=,<>).
.
SELECT
FROM _
WHERE _ > SOME
(SELECT _
FROM _);
61
SQL
.
SELECT
FROM _
WHERE _ > ALL
(SELECT _
FROM _);
62
SQL
,
.
SELECT _,
COUNT(_) AS _
FROM _
GROUP BY _
HAVING _ >
(SELECT COUNT(*)/10
63
FROM _);
SQL
.
SELECT , AVG (_)
FROM
GROUP BY ;
SELECT , AVG (_ ) AS
__
FROM
GROUP BY ;
64
SQL
.
SELECT A. AS , B. AS
FROM AS A,
AS B
WHERE A._ <
B._;
(tuple variables).
65
SQL
INSERT INTO _ [(1,2,..,)]
VALUES (1, 2, ..., N);
.
INSERT INTO _
VALUES (10, , 0);
INSERT INTO _ (, )
VALUES ( , 10);
66
SQL
INSERT INTO _
AS
SELECT ,
FROM
WHERE _ IS NOT NULL
AND _ IS NULL;
67
SQL
UPDATE _
SET (1=1, 2=2, ..., N=N)
WHERE ;
.
UPDATE _
SET (=)
WHERE =10;
UPDATE _
SET ( =0);
68
SQL
DELETE FROM _
WHERE ;
.
DELETE FROM ;
DELETE FROM _
WHERE = 0 AND
_. NOT IN
(SELECT DISTINCT __
FROM );
69
SQL
CREATE VIEW _
AS ( SQL);
..
CREATE VIEW __
AS
(SELECT FROM
UNION
SELECT FROM _);
DROP VIEW __; 70
SQL