You are on page 1of 71

9

SQL

SQL

SQL (Structured
Query Language)
,
.
SEQUEL
(Structured English Query Language)
IBM
System R (1974).
Oracle
1979.
2

SQL

SQL/86: ANSI & ISO standard,


SQL/89: ANSI & ISO standard,
SQL/92 SQL2: ANSI & ISO standard,
SQL3 SQL:1999.

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

CREATE SCHEMA - AUTHORIZATION


-

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

- Unique Column Values






.
create table.
UNIQUE <attribute(s)>

27

SQL

- Primary Key Values


(
)
.
create table.

PRIMARY KEY (<attribute(s)>)

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:

SELECT [DISTINCT] < >


FROM < >
[WHERE ]
[GROUP BY < >]
[HAVING ]
[ORDER BY < > [ASCENDING |
DESCENDING]];
40

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

SQL (structured query language)


1986 .

.
SQL,

.

( , ,
, .)

SQL.
SQL ,
71
.

You might also like