lOMoARcPSD|45315597
lOMoARcPSD|45315597
SQL (Structure English Query Language)
Tên gọi cũ là SEQUEL
Đưc ANSI và ISO tha nhn là ngôn ng chun v d liu; là
phương tiện giao tiếp ca nhiu h thng thông tin qun
lý.
Ra ời năm 1976 tại phòng thí nghim Chamberlin;
SQL-86 hay SQL1(ANSI 1986) SQL-92 hay SQL2 SQL3.
Đặc im:
Là ngôn ng có cu trúc, phi th tc
Va óng vai trò là ngôn ng con cá th thao tác c lập cho người s dùng
cui, ng thi có th nhúng trong ngôn ng lp trình.
lOMoARcPSD|45315597
Chức năng của SQL
Hi d liu (Truy vn)
Định nghĩa dữ liu
Cp nht d liu
Bo mt và an toàn d liu
Thut ng
Quan h (Relation)
Bng (Table)
Thuc tính (Attribute)
Ct (Column)
B (Tuple)
Hàng (Row)
Không quan trng th t các ct và th t các hàng !
lOMoARcPSD|45315597
DDL mt thành phn trong SQL, cha các câu lnh to/xoá
bng, ịnh nghĩa indexes, thiết lp các ràng buc quan h
Các câu lnh DDL quan trng:
CREATE TABLE to bng mi
ALTER TABLE thay i cu trúc bng
DROP TABLE xoá bng
CREATE INDEX lp ch mc (index)
DROP INDEX xoá ch mc
To bng
CREATE TABLE < tên bng>
(<tên ct 1> <kiu dl> [NOT NULL] [DEFAULT <gt mc nh>,
<tên ct 2> <kiu dl> [NOT NULL] [DEFAULT <gt mc ịnh>, ….
lOMoARcPSD|45315597
<tên ct n> <kiu dl> [NOT NULL] [DEFAULT <gt mc nh>
[, PRIMARY KEY (<tên các ct tham gia vào khóa chính>)]
[, UNIQUE (<tên các ct tham gia vào khóa duy nht>)]
[, FOREIGN KEY (<tên ct là khóa ngoi lai>) REFERENCES <tên bng> (<tên
ct liên kết>) [, FOREIGN KEY……..]] );
Đặt tên các ràng buc: b sung thêm thành phn sau vào câu
lnh to bng, ặt trước mi phn khai báo ràng buc:
CONSTRAINT <tên ràng buc>
Ví d Xét CSDL gm 3 bng:
SV (MASV, HOTEN, GT, NS, QUE, LOP)
lOMoARcPSD|45315597
HP (MAHP, TENHP, SOTC)
KQHT (MASV, MAHP, DIEM)
CREATE TABLE SV
(MASV
CHAR(7) ,
HOTEN
VARCHAR(30) NOT NULL,
GT
CHAR(3),
NS
DATE,
QUE
VARCHAR(20),
LOP
CHAR(10),
PRIMARY KEY (MASV));
CREATE TABLE HP
(MAHP CHAR(5),
TENHP VARCHAR(20) NOT NULL,
lOMoARcPSD|45315597
SOTC SMALLINT NOT NULL,
PRIMARY KEY (MAHP),
CONSTRAINT TEN_DUY_NHAT
UNIQUE (TENHP));
CREATE TABLE KQHT
(MASV CHAR(7),
MAHP CHAR(5),
DIEM DECIMAL(4,1) DEFAULT 0,
PRIMARY KEY (MASV, MAHP),
FOREIGN KEY (MASV) REFERENCES SV(MASV),
FOREIGN KEY (MAHP) REFERENCES HP(MAHP));
Thay i cu trúc bng
Thêm mt ct mi cho bng
lOMoARcPSD|45315597
ALTER TABLE <tên bng>
ADD COLUMN <tên ct> <kiu d liu> [NOT NULL] [DEFFAULT
<giá tr>];
Xóa mt ct ca bng ALTER
TABLE <tên bng>
DROP COLUMN <tên ct> [CASCADE];
Thay i kiu d liu ca mt ct trong bng
ALTER TABLE <tên bng>
CHANGE COLUMN <tên ct> <kiu d liu mi>;
Quy nh DEFAULT cho mt ct
Thêm quy nh DEFAULT
ALTER TABLE <tên bng>
ALTER <tên ct> SET DEFAULT <giá tr>;
Xóa quy nh DEFAULT
lOMoARcPSD|45315597
ALTER TABLE <tên bng>
ALTER <tên ct> DROP DEFAULT;
Thay i các ràng buc trên bng
Xóa ràng buc
ALTER TABLE <tên bng>
DROP CONSTRAINT<tên ràng buc>;
Thêm ràng buc
ALTER TABLE <tên bng>
ADD ( CONSTRAINT <tên ràng buc> PRIMARY KEY…| UNIQUE…| FOREIGN
KEY…..);
Xóa bng
DROP < tên bng> [CASCADE];
lOMoARcPSD|45315597
SQL Data Manipulation Language
Là cú phép b sung, xoá, sa cha các hàng trong bng và tìm
kiếm d liu.
Các câu lnh trong DML
SELECT trích rút d liu t các bng csdl
UPDATE sa cha d liu trong bng
DELETE xoá d liu trong bng
INSERT INTO chèn thêm d liu mi vào bng
B sung thêm mt hàng cho bng
INSERT INTO <tên bng> [(<danh sách các ct>)] VALUES (<danh
sách các giá tr tư ng ứng>)
|<câu truy vn >;
lOMoARcPSD|45315597
Ví d
INSERT INTO HP VALUES (‘M4’, ‘Toán ri rạc’,4);
Hoc
INSERT INTO HP (TENHP, MAHP, SOTC)
VALUES (‘Toán rời rạc’, ‘M4’, 4);
INSERT INTO SV(MASV, HOTEN) VALUES (‘20201005’,’Hoa’);
Xóa các hàng trong bng
DELETE FROM <tên bng>
[WHERE <biu thc iu kin>];
Thay i giá tr cho các ct trong bng
UPDATE <tên bng>
SET <tên ct 1> = <biu thc>
lOMoARcPSD|45315597
[, <tên ct2> = <biu thức>,…]
[WHERE <biu thc iu kin>];
SELECT [DISTINCT] <danh sách chiếu>
FROM <danh sách tên bng|tên view>
[WHERE [NOT] <biu thc iu kin>]
[GROUP BY <danh sách ct | biu thc>
[HAVING [NOT] <biu thc iu kin>]]
[ORDER BY < danh sách tên ct| s th t các ct trong danh sách
chiếu|biu thc> [ASC|DESC]];
Biu thc
lOMoARcPSD|45315597
Mt biu thức ược to nên t các hng, các tên ct và các hàm,
ược liên kết vi nhau bi các phép tính s hc ( +, -,
*, / )
• Danh sách chiếu:
Danh sách các tên ct (hoc biu thc) cn có trong bng kết qu.
Khi danh sách chiếu là dấu *, có nghĩa danh sách
chiếu là toàn b các ct ca tt c các bng (hoặc view) ược ch
ra sau FROM
Biu thc iu kin
(a) biu thc logic to nên tc hng, các tên cột và các hàm, ược ni vi nhau
bi các phép toán s hc so sánh (>, >=, <, <=, !=) và logic (and, or, not)
(b) tân t các dng sau:
(b1)
lOMoARcPSD|45315597
(b2)
(b3)
(b4)
(b5)
(b6)
(c) biu thc logic kết hp vi tân t bi các phép toán logic
Ví d mt trng thái ca CSDL
Quan h SV
MASV
HOTEN
NS
GT
QUE
LOP
20201
000
Nguyn Minh
Đức
1/1/20
02
Nam
Hà Tây
Toán 1
20201
001
Trn Mai Ly
2/2/20
02
N
Hà Ni
Toán 1
lOMoARcPSD|45315597
20201
002
Lê Phương Nam
3/3/20
02
Nam
Nam Hà
Toán 2
Quan h HP
Quan h KQHT
MASV
MAHP
DIEM
20201000
M1
4
20201001
M1
6
20201001
M2
7
20201001
M3
5
MAHP
TENHP
SOTC
M1
Cơ sở d liu
4
M2
Toán ri rc
3
M3
Mng MT
4
Tìm kiếm ơn giản
Ví d 1: Cho biết danh sách tt c các sinh viên
SELECT * FROM SV;
Ví d 2: Cho biết mã s nhng sinh viên ã có ít nht mt im thi
lOMoARcPSD|45315597
SELECT DISTINCT MASV FROM KQHT;
Biu thc quan h tương ương
KQHT[MASV]
MASV
MAHP
DIEM
20201000
M1
4
20201001
M1
6
20201001
M2
7
20201001
M3
5
SELECT MASV
FROM KQHT;
SELECT DISTINCT MASV
FROM KQHT;
lOMoARcPSD|45315597
MASV
20201000
20201001
20201001
lOMoARcPSD|45315597
Bng KQHT
20201001
MASV
20201000
20201001
lOMoARcPSD|45315597
Tìm kiếm vi biu thc logic dng (a)
Ví d 3: Cho biết mã s, tên và ngày sinh ca các sinh viên n quê
Hà Ni
SELECT MASV, HOTEN, NS
FROM SV
WHERE GT=’nữ’ and QUE=’Hà Nội’;
Biu thc quan h tương ương
SV(GT = ‘Nữ’ QUE = ‘Hà Nội’)[MASV, HOTEN,NS]
Tìm kiếm vi biu thc iu kin dng (b1)
lOMoARcPSD|45315597
Ví d 4: Cho biết danh sách mã s và tên những sinh viên chưa rõ
quê quán
SELECT MASV, HOTEN
FROM SV
WHERE QUE IS NULL;
Ví d 5: Cho biết thông tin v nhng sinh viên có h ‘Nguyễn’
Tìm kiếm vi biu thc iu kin dng (b2)
Khi dùng LIKE < xâu kí t>, trong xâu kí t có th cha các kí t
thay thế:
‘%’ thay thế cho mt xâu kí t
‘_’ thay thế cho mt kí t

Preview text:

lOMoARcPSD| 45315597 lOMoARcPSD| 45315597
SQL (Structure English Query Language) Tên gọi cũ là SEQUEL
Được ANSI và ISO thừa nhận là ngôn ngữ chuẩn về dữ liệu; là
phương tiện giao tiếp của nhiều hệ thống thông tin quản lý.
Ra ời năm 1976 tại phòng thí nghiệm Chamberlin;
SQL-86 hay SQL1(ANSI 1986) SQL-92 hay SQL2 SQL3. Đặc iểm:
Là ngôn ngữ có cấu trúc, phi thủ tục
Vừa óng vai trò là ngôn ngữ con cá thể thao tác ộc lập cho người sử dùng
cuối, ồng thời có thể nhúng trong ngôn ngữ lập trình. lOMoARcPSD| 45315597 Chức năng của SQL
Hỏi dữ liệu (Truy vấn) Định nghĩa dữ liệu Cập nhật dữ liệu
Bảo mật và an toàn dữ liệu Thuật ngữ Quan hệ (Relation) Bảng (Table) Thuộc tính (Attribute) Cột (Column) Bộ (Tuple) Hàng (Row)
Không quan trọng thứ tự các cột và thứ tự các hàng ! lOMoARcPSD| 45315597
DDL là một thành phần trong SQL, chứa các câu lệnh tạo/xoá
bảng, ịnh nghĩa indexes, thiết lập các ràng buộc quan hệ
Các câu lệnh DDL quan trọng:
CREATE TABLE – tạo bảng mới
ALTER TABLE – thay ổi cấu trúc bảng DROP TABLE – xoá bảng
CREATE INDEX – lập chỉ mục (index)
DROP INDEX – xoá chỉ mục Tạo bảng
CREATE TABLE < tên bảng> ( [NOT NULL] [DEFAULT , [NOT NULL] [DEFAULT , …. lOMoARcPSD| 45315597 [NOT NULL] [DEFAULT [, PRIMARY KEY ()] [, UNIQUE ()]
[, FOREIGN KEY () REFERENCES (cột liên kết>) [, FOREIGN KEY……..]] );
Đặt tên các ràng buộc: bổ sung thêm thành phần sau vào câu
lệnh tạo bảng, ặt trước mỗi phần khai báo ràng buộc: CONSTRAINT Ví dụ Xét CSDL gồm 3 bảng:
SV (MASV, HOTEN, GT, NS, QUE, LOP) lOMoARcPSD| 45315597 HP (MAHP, TENHP, SOTC) KQHT (MASV, MAHP, DIEM) CREATE TABLE SV (MASV CHAR(7) , HOTEN VARCHAR(30) NOT NULL, GT CHAR(3), NS DATE, QUE VARCHAR(20), LOP CHAR(10), PRIMARY KEY (MASV)); CREATE TABLE HP (MAHP CHAR(5), TENHP VARCHAR(20) NOT NULL, lOMoARcPSD| 45315597 SOTC SMALLINT NOT NULL, PRIMARY KEY (MAHP), CONSTRAINT TEN_DUY_NHAT UNIQUE (TENHP)); CREATE TABLE KQHT (MASV CHAR(7), MAHP CHAR(5), DIEM DECIMAL(4,1) DEFAULT 0, PRIMARY KEY (MASV, MAHP), FOREIGN KEY (MASV) REFERENCES SV(MASV), FOREIGN KEY (MAHP) REFERENCES HP(MAHP)); Thay ổi cấu trúc bảng
Thêm một cột mới cho bảng lOMoARcPSD| 45315597 ALTER TABLE
ADD COLUMN [NOT NULL] [DEFFAULT ];
Xóa một cột của bảng ALTER TABLE DROP COLUMN [CASCADE];
Thay ổi kiểu dữ liệu của một cột trong bảng ALTER TABLE CHANGE COLUMN ;
Quy ịnh DEFAULT cho một cột Thêm quy ịnh DEFAULT ALTER TABLE ALTER SET DEFAULT ; Xóa quy ịnh DEFAULT lOMoARcPSD| 45315597 ALTER TABLE ALTER DROP DEFAULT;
Thay ổi các ràng buộc trên bảng Xóa ràng buộc ALTER TABLE DROP CONSTRAINT; Thêm ràng buộc ALTER TABLE
ADD ( CONSTRAINT PRIMARY KEY…| UNIQUE…| FOREIGN KEY…..); Xóa bảng
DROP < tên bảng> [CASCADE]; lOMoARcPSD| 45315597
SQL Data Manipulation Language
Là cú phép ể bổ sung, xoá, sửa chữa các hàng trong bảng và tìm kiếm dữ liệu. Các câu lệnh trong DML
SELECT trích rút dữ liệu từ các bảng csdl
UPDATE sửa chữa dữ liệu trong bảng
DELETE xoá dữ liệu trong bảng
INSERT INTO chèn thêm dữ liệu mới vào bảng
Bổ sung thêm một hàng cho bảng
INSERT INTO [()] VALUES (sách các giá trị tư ng ứng>) |; lOMoARcPSD| 45315597 Ví dụ
INSERT INTO HP VALUES (‘M4’, ‘Toán rời rạc’,4); Hoặc
INSERT INTO HP (TENHP, MAHP, SOTC)
VALUES (‘Toán rời rạc’, ‘M4’, 4);
INSERT INTO SV(MASV, HOTEN) VALUES (‘20201005’,’Hoa’); Xóa các hàng trong bảng DELETE FROM [WHERE ];
Thay ổi giá trị cho các cột trong bảng UPDATE SET = lOMoARcPSD| 45315597 [, = ,…] [WHERE ]; SELECT [DISTINCT] FROM [WHERE [NOT] ] [GROUP BY [HAVING [NOT] ]]
[ORDER BY < danh sách tên cột| số thứ tự các cột trong danh sách
chiếu|biểu thức> [ASC|DESC]]; Biểu thức lOMoARcPSD| 45315597
Một biểu thức ược tạo nên từ các hằng, các tên cột và các hàm,
ược liên kết với nhau bởi các phép tính số học ( +, -, *, / ) • Danh sách chiếu:
Danh sách các tên cột (hoặc biểu thức) cần có trong bảng kết quả.
Khi danh sách chiếu là dấu *, có nghĩa danh sách
chiếu là toàn bộ các cột của tất cả các bảng (hoặc view) ược chỉ ra sau FROM Biểu thức iều kiện
(a) biểu thức logic tạo nên từ các hằng, các tên cột và các hàm, ược nối với nhau
bởi các phép toán số học so sánh (>, >=, <, <=, !=) và logic (and, or, not)
(b) tân từ ở các dạng sau: (b1) IS [NOT] NULL lOMoARcPSD| 45315597 (b2) [NOT] LIKE (b3) [NOT] BETWEEN AND (b4) [NOT] IN (con>) (b5) (b6) EXISTS (truy vấn con)
(c) biểu thức logic kết hợp với tân từ bởi các phép toán logic
Ví dụ một trạng thái của CSDL Quan hệ SV MASV HOTEN NS GT QUE LOP 20201 Nguyễn Minh 1/1/20 Nam Hà Tây Toán 1 000 Đức 02 20201 Trần Mai Ly 2/2/20 Nữ Hà Nội Toán 1 001 02 lOMoARcPSD| 45315597 20201 Lê Phương Nam 3/3/20 Nam Nam Hà Toán 2 002 02 Quan hệ HP Quan hệ KQHT MASV MAHP DIEM 20201000 M1 4 MAHP TENHP SOTC 20201001 M1 6 M1 Cơ sở dữ liệu 4 20201001 M2 7 M2 Toán rời rạc 3 20201001 M3 5 M3 Mạng MT 4 Tìm kiếm ơn giản
Ví dụ 1: Cho biết danh sách tất cả các sinh viên SELECT * FROM SV;
Ví dụ 2: Cho biết mã số những sinh viên ã có ít nhất một iểm thi lOMoARcPSD| 45315597
SELECT DISTINCT MASV FROM KQHT;
Biểu thức quan hệ tương ương KQHT[MASV] MASV MAHP DIEM 20201000 M1 4 20201001 M1 6 20201001 M2 7 20201001 M3 5 SELECT MASV SELECT DISTINCT MASV FROM KQHT; FROM KQHT; lOMoARcPSD| 45315597 MASV 20201000 20201001 20201001 lOMoARcPSD| 45315597 Bảng KQHT 20201001 MASV 20201000 20201001 lOMoARcPSD| 45315597
Tìm kiếm với biểu thức logic dạng (a)
Ví dụ 3: Cho biết mã số, tên và ngày sinh của các sinh viên nữ quê ở Hà Nội SELECT MASV, HOTEN, NS FROM SV
WHERE GT=’nữ’ and QUE=’Hà Nội’;
Biểu thức quan hệ tương ương
SV(GT = ‘Nữ’ QUE = ‘Hà Nội’)[MASV, HOTEN,NS]
Tìm kiếm với biểu thức iều kiện dạng (b1) lOMoARcPSD| 45315597
Ví dụ 4: Cho biết danh sách mã số và tên những sinh viên chưa rõ quê quán SELECT MASV, HOTEN FROM SV WHERE QUE IS NULL;
Ví dụ 5: Cho biết thông tin về những sinh viên có họ ‘Nguyễn’
Tìm kiếm với biểu thức iều kiện dạng (b2)
Khi dùng LIKE < xâu kí tự>, trong xâu kí tự có thể chứa các kí tự thay thế:
‘%’ thay thế cho một xâu kí tự
‘_’ thay thế cho một kí tự