Bài giảng Cơ sở dữ liệu - Chương 5: SQL (Structured Query Language)

Tóm tắt Bài giảng Cơ sở dữ liệu - Chương 5: SQL (Structured Query Language): ...(10000), MA_NQL CHAR(9), PHG INT ) 8Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 15 Ví dụ - Đặt tên cho RBTV CREATE TABLE PHANCONG ( MA_NVIEN CHAR(9), SODA INT, THOIGIAN DECIMAL(3,1), CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY (MA_NVIEN, SODA), CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN)... điều kiện nào đó ƒ Dựa trên - Cho phép 1 bảng có nhiều dòng trùng nhau Phép toán ĐSQH Một số bổ sung+ 13 Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 25 Truy vấn cơ bản (SELECT) ƒ Cú pháp tổng quát SELECT FROM WHERE GROUP BY HAVING ORDER BY Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 26...g muốn thấy LUONG 30000 25000 25000 38000 38 DISTINCT LUONG Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 34 Ví dụ SELECT FROM WHERE ƒ Cho biết MANV và TENNV làm việc ở phòng ‘Nghien cuu’ R1 ← NHANVIEN PHG=MAPHG PHONGBAN KQ ←πMANV, TENNV (σTENPHG=‘Nghien cuu’(R1)) MANV, TENNV NHANVIEN,...

pdf24 trang | Chia sẻ: havih72 | Lượt xem: 161 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Cơ sở dữ liệu - Chương 5: SQL (Structured Query Language), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Chương 5
SQL 
(Structured Query Language)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 2
Nội dung chi tiết
ƒ Giới thiệu
ƒ Định nghĩa dữ liệu 
ƒ Truy vấn dữ liệu 
ƒ Cập nhật dữ liệu 
ƒ Khung nhìn (view)
ƒ Chỉ mục (index)
2Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 3
Giới thiệu
ƒ Ngôn ngữ ĐSQH 
- Cách thức truy vấn dữ liệu
- Khó khăn cho người sử dụng
ƒ SQL (Structured Query Language)
- Ngôn ngữ cấp cao
- Người sử dụng chỉ cần đưa ra nội dung cần truy 
vấn
- Được phát triển bởi IBM (1970s)
- Được gọi là SEQUEL
- Được ANSI công nhận và phát triển thành chuẩn
y SQL-86
y SQL-92
y SQL-99
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 4
Giới thiệu (tt)
ƒ SQL gồm
- Định nghĩa dữ liệu (DDL)
- Thao tác dữ liệu (DML)
- Định nghĩa khung nhìn
- Ràng buộc toàn vẹn 
- Phân quyền và bảo mật
- Điều khiển giao tác
ƒ SQL sử dụng thuật ngữ
- Bảng ~ quan hệ
- Cột ~ thuộc tính
- Dòng ~ bộ
Lý thuyết : Chuẩn SQL-92
Ví dụ : SQL Server 
3Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 5
Nội dung chi tiết
ƒ Giới thiệu
ƒ Định nghĩa dữ liệu
- Kiểu dữ liệu
- Các lệnh định nghĩa dữ liệu
ƒ Truy vấn dữ liệu 
ƒ Cập nhật dữ liệu 
ƒ Khung nhìn (view)
ƒ Chỉ mục (index)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 6
Định nghĩa dữ liệu
ƒ Là ngôn ngữ mô tả
- Lược đồ cho mỗi quan hệ
- Miền giá trị tương ứng của từng thuộc tính
- Ràng buộc toàn vẹn
- Chỉ mục trên mỗi quan hệ
ƒ Gồm
- CREATE TABLE (tạo bảng)
- DROP TABLE (xóa bảng)
- ALTER TABLE (sửa bảng)
- CREATE DOMAIN (tạo miền giá trị)
- CREATE DATABASE
4Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 7
Kiểu dữ liệu
ƒ Số (numeric)
- INTEGER
- SMALLINT
- NUMERIC, NUMERIC(p), NUMERIC(p,s)
- DECIMAL, DECIMAL(p), DECIMAL(p,s)
- REAL
- DOUBLE PRECISION
- FLOAT, FLOAT(p)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 8
Kiểu dữ liệu (tt)
ƒ Chuỗi ký tự (character string)
- CHARACTER, CHARACTER(n)
- CHARACTER VARYING(x)
ƒ Chuỗi bit (bit string)
- BIT, BIT(x)
- BIT VARYING(x)
ƒ Ngày giờ (datetime)
- DATE gồm ngày, tháng và năm
- TIME gồm giờ, phút và giây
- TIMESTAMP gồm ngày và giờ
5Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 9
Lệnh tạo Database - bảng
ƒ CREATE DATABASE 
ƒ Để định nghĩa một bảng
- Tên bảng
- Các thuộc tính
y Tên thuộc tính
y Kiểu dữ liệu
y Các RBTV trên thuộc tính
ƒ Cú pháp
CREATE TABLE (
 [],
 [],
[]
)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 10
Ví dụ - Tạo bảng
CREATE TABLE NHANVIEN (
MANV CHAR(9),
HONV VARCHAR(50),
TENNV VARCHAR(10),
NGSINH DATETIME,
DCHI VARCHAR(50),
PHAI CHAR(3),
LUONG INT,
MA_NQL CHAR(9),
PHG INT
)
6Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 11
Lệnh tạo bảng (tt)
ƒ 
- NOT NULL
- NULL
- UNIQUE
- DEFAULT
- PRIMARY KEY
- FOREIGN KEY / REFERENCES
- CHECK
ƒ Đặt tên cho RBTV
CONSTRAINT 
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 12
Ví dụ - RBTV
CREATE TABLE NHANVIEN (
HONV VARCHAR(50) NOT NULL,
TENNV VARCHAR(10) NOT NULL,
MANV CHAR(9) PRIMARY KEY,
NGSINH DATETIME,
DCHI VARCHAR(50),
PHAI CHAR(3) CHECK (PHAI IN (‘Nam’, ‘Nu’)),
LUONG INT DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
7Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 13
Ví dụ - RBTV
CREATE TABLE PHONGBAN (
TENPB VARCHAR(20) UNIQUE,
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME DEFAULT (GETDATE())
)
CREATE TABLE PHANCONG (
MA_NVIEN CHAR(9) FOREIGN KEY (MA_NVIEN) 
REFERENCES NHANVIEN(MANV),
SODA INT REFERENCES DEAN(MADA),
THOIGIAN DECIMAL(3,1)
)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 14
Ví dụ - Đặt tên cho RBTV
CREATE TABLE NHANVIEN (
HONV VARCHAR(50) CONSTRAINT NV_HONV_NN NOT NULL,
TENNV VARCHAR(10) NOT NULL,
MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,
NGSINH DATETIME,
DCHI VARCHAR(50),
PHAI CHAR(3) CONSTRAINT NV_PHAI_CHK 
CHECK (PHAI IN (‘Nam’, ‘Nu’)),
LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
8Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 15
Ví dụ - Đặt tên cho RBTV
CREATE TABLE PHANCONG (
MA_NVIEN CHAR(9),
SODA INT,
THOIGIAN DECIMAL(3,1),
CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY
(MA_NVIEN, SODA),
CONSTRAINT PC_MANVIEN_FK FOREIGN KEY 
(MA_NVIEN) REFERENCES NHANVIEN(MANV),
CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA)
REFERENCES DEAN(MADA)
)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 16
Lệnh sửa bảng
ƒ Được dùng để
- Thay đổi cấu trúc bảng 
- Thay đổi RBTV
ƒ Thêm cột
ƒ Xóa cột
ƒ Mở rộng cột
ALTER TABLE ADD COLUMN
 []
ALTER TABLE DROP COLUMN 
ALTER TABLE ALTER COLUMN
9Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 17
Ví dụ - Thay đổi cấu trúc bảng
ALTER TABLE NHANVIEN 
ADD NGHENGHIEP CHAR(20)
ALTER TABLE NHANVIEN 
DROP COLUMN NGHENGHIEP
ALTER TABLE NHANVIEN 
ALTER COLUMN NGHENGHIEP CHAR(50)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 18
Lệnh sửa bảng (tt)
ƒ Thêm RBTV
ƒ Xóa RBTV
ALTER TABLE ADD
CONSTRAINT ,
CONSTRAINT ,
ALTER TABLE 
DROP 
10
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 19
Ví dụ - Thay đổi RBTV
CREATE TABLE PHONGBAN (
TENPB VARCHAR(20),
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME
)
ALTER TABLE PHONGBAN ADD
CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG),
CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG) 
REFERENCES NHANVIEN(MANV),
CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE()) 
FOR (NG_NHANCHUC),
CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 20
Lệnh xóa bảng
ƒ Được dùng để xóa cấu trúc bảng
- Tất cả dữ liệu của bảng cũng bị xóa
ƒ Cú pháp
ƒ Ví dụ
DROP TABLE 
DROP TABLE NHANVIEN
DROP TABLE PHONGBAN
DROP TABLE PHANCONG
11
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 21
Lệnh xóa bảng (tt)
NHANVIEN
TENNVHONV TENLOT MANV NGSINH DCHI PHAI LUONG MA_NQL PHG
PHONGBAN
TRPHGTENPHG MAPHG NG_NHANCHUC
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 22
Lệnh tạo và xóa miền giá trị
ƒ Tạo ra một kiểu dữ liệu mới kế thừa những 
kiểu dữ liệu có sẳn
ƒ Cú pháp
ƒ Ví dụ
CREATE DOMAIN AS 
DROP DOMAIN AS 
CREATE DOMAIN Chuoi AS VARCHAR(50)
DROP DOMAIN Chuoi
12
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 23
Nội dung chi tiết
ƒ Giới thiệu
ƒ Định nghĩa dữ liệu
ƒ Truy vấn dữ liệu
- Truy vấn cơ bản
- Tập hợp, so sánh tập hợp và truy vấn lồng
- Hàm kết hợp và gom nhóm
- Một số kiểu truy vấn khác
ƒ Cập nhật dữ liệu 
ƒ Khung nhìn (view)
ƒ Chỉ mục (index)
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 24
Truy vấn dữ liệu
ƒ Là ngôn ngữ rút trích dữ liệu thỏa một số 
điều kiện nào đó
ƒ Dựa trên
- Cho phép 1 bảng có nhiều dòng trùng nhau
Phép toán ĐSQH Một số bổ sung+
13
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 25
Truy vấn cơ bản (SELECT)
ƒ Cú pháp tổng quát
SELECT 
FROM 
WHERE 
GROUP BY 
HAVING 
ORDER BY 
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 26
Truy vấn cơ bản
ƒ 
- Tên các cột cần được hiển thị trong kết quả
truy vấn
ƒ 
- Tên các bảng liên quan đến câu truy vấn
ƒ 
- Biểu thức boolean xác định dòng nào sẽ 
được rút trích
- Nối các biểu thức: AND, OR, và NOT 
- Phép toán: , ≤ , ≥ , ≠ , =, LIKE, BETWEEN, 
EXISTS, ANY/SOME, ALL, IN
14
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 27
ƒ SQL và ĐSQH
Truy vấn cơ bản (tt)
SELECT 
FROM 
WHERE σ
π
×
SELECT L
FROM R
WHERE C
πL (σC (R))
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 28
Ví dụ
SELECT *
FROM NHANVIEN
WHERE PHG=5
Lấy tất cả các cột của 
quan hệ kết quả
σPHG=5 (NHANVIEN)
TENNVHONV NGSINH DCHI PHAI LUONG PHG
TungNguyen 12/08/1955 638 NVC Q5 Nam 40000 5
HungNguyen 09/15/1962 Ba Ria VT Nam 38000 5
333445555
987987987
MANV MA_NQL
888665555
333445555
TENLOT
Thanh
Manh
15
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 29
Mệnh đề SELECT
SELECT MANV, HONV, TENLOT, TENNV
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
πMANV,HONV,TENLOT,TENNV(σPHG=5 ∧ PHAI=‘Nam’ (NHANVIEN))
TENNVHONV
TungNguyen
HungNguyen
TENLOT
Thanh
Manh
333445555
987987987
MANV
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 30
Mệnh đề SELECT (tt)
SELECT MANV, HONV AS HO, TENLOT AS ‘TEN LOT’, 
TENNV AS TEN
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
ρMANV,HO,TEN LOT,TEN(πMANV,HONV,TENLOT,TENNV(σPHG=5∧PHAI=‘Nam’(NHANVIEN)))
TENHO
TungNguyen
HungNguyen
TEN LOT
Thanh
Manh
33344555
598798798
7
MANV
Tên bí danh
16
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 31
Mệnh đề SELECT (tt)
SELECT MANV, 
HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
ρMANV,HO TEN(πMANV,HONV+TENLOT+TENNV(σPHG=5∧PHAI=‘Nam’(NHANVIEN)))
HO TEN
Nguyen Thanh Tung
Nguyen Manh Hung
333445555
987987987
MANV
Mở rộng
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 32
Mệnh đề SELECT (tt)
SELECT MANV, LUONG*1.1 AS ‘LUONG10%’
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
ρMANV,LUONG10%(πMANV,LUONG*1.1(σPHG=5∧PHAI=‘Nam’(NHANVIEN)))
LUONG10%
33000
27500
333445555
987987987
MANV
Mở rộng
17
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 33
Mệnh đề SELECT (tt)
SELECT LUONG
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
Loại bỏ các dòng trùng nhau
- Tốn chi phí
- Người dùng muốn thấy
LUONG
30000
25000
25000
38000
38
DISTINCT LUONG
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 34
Ví dụ
SELECT
FROM
WHERE
ƒ Cho biết MANV và TENNV làm việc ở phòng 
‘Nghien cuu’
R1 ← NHANVIEN PHG=MAPHG PHONGBAN
KQ ←πMANV, TENNV (σTENPHG=‘Nghien cuu’(R1))
MANV, TENNV 
NHANVIEN, PHONGBAN
TENPHG=‘Nghien cuu’ PHG=MAPHGAND
18
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 35
Mệnh đề WHERE
SELECT MANV, TENNV 
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG
Biểu thức luận lý
TRUE
TRUE
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 36
Mệnh đề WHERE (tt)
SELECT MANV, TENNV 
FROM NHANVIEN, PHONGBAN
WHERE (TENPHG=‘K Toan’ OR TENPHG=‘Quan ly’)
AND PHG=MAPHG
Độ ưu tiên
19
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 37
Mệnh đề WHERE (tt)
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE LUONG>20000 AND LUONG<30000
BETWEEN
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE LUONG BETWEEN 20000 AND 30000
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 38
Mệnh đề WHERE (tt) NOT BETWEEN
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 20000 AND 30000
20
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 39
Mệnh đề WHERE (tt)
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen _ _ _ _’
LIKE
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen %’
Chuỗi bất kỳ
Ký tự bất kỳ
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 40
Mệnh đề WHERE (tt)
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE HONV LIKE ‘Nguyen’
NOT LIKE
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE HONV NOT NOT LIKE ‘Nguyen’
21
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 41
Mệnh đề WHERE (tt)
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’
ESCAPE
‘Nguyen_’
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 42
Mệnh đề WHERE (tt)
Ngày giờ
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE NGSINH BETWEEN ‘1955-12-08’ AND ‘1966-07-19’
YYYY-MM-DD
MM/DD/YYYY
‘1955-12-08’
’12/08/1955’
‘December 8, 1955’
HH:MI:SS’17:30:00’
’05:30 PM’
‘1955-12-08 17:30:00’
22
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 43
Mệnh đề WHERE (tt) NULL
ƒ Sử dụng trong trường hợp
- Không biết (value unknown)
- Không thể áp dụng (value inapplicable)
- Không tồn tại (value withheld)
ƒ Những biểu thức tính toán có liên quan đến giá trị
NULL sẽ cho ra kết quả là NULL
- x có giá trị là NULL
- x + 3 cho ra kết quả là NULL
- x + 3 là một biểu thức không hợp lệ trong SQL
ƒ Những biểu thức so sánh có liên quan đến giá trị
NULL sẽ cho ra kết quả là UNKNOWN
- x = 3 cho ra kết quả là UNKNOWN
- x = 3 là một so sánh không hợp lệ trong SQL
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 44
Mệnh đề WHERE (tt) NULL
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE MA_NQL IS NULL
SELECT MANV, TENNV 
FROM NHANVIEN
WHERE MA_NQL IS NOT NULL
23
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 45
WHERE TRUE
Mệnh đề FROM
SELECT MANV, MAPHG
FROM NHANVIEN, PHONGBAN
Không sử dụng mệnh đề WHERE
MAPHG
1
4
333445555
333445555
MANV
5
1987987987
987987987
333445555
4
5987987987
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 46
Mệnh đề FROM (tt)
SELECT TENPHG, DIADIEM
FROM PHONGBAN, DDIEM_PHG
WHERE MAPHG=MAPHG
Tên bí danh (Alias)
 AS PB, DDIEM_PHG AS DD
PB.MAPHG=DD.MAPHG
SELECT TENNV, NGSINH, TENTN, NGSINH
FROM NHANVIEN, THANNHAN
WHERE MANV=MA_NVIEN
V.NGSINH, TENTN, T .NGSINH
 NV, THANNHAN TN
24
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 47
Mệnh đề ORDER BY
ƒ Dùng để hiển thị kết quả câu truy vấn theo 
một thứ tự nào đó
ƒ Cú pháp
- ASC: tăng (mặc định)
- DESC: giảm
SELECT 
FROM 
WHERE 
ORDER BY 
Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN 48
Mệnh đề ORDER BY (tt)
ƒ Ví dụ SELECT MA_NVIEN, SODA
FROM PHANCONG
ORDER BY MA_NVIEN DESC, SODA
SODA
10
30
999887777
999887777
MA_NVIEN
10
30987987987
987654321
987987987
10
20987654321
30987654321

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_5_sql_structured_query_langua.pdf