Cơ Sở Dữ Liệu_P5: Ngôn ngữ SQL
1. Giới thiệu về SQL 2. Kiểu dữ liệu 3. Định nghĩa dữ liệu 4. Truy vấn dữ liệu 5. Cập nhật dữ liệu 6. Một số vấn đề khác
Bạn đang xem trước 20 trang tài liệu Cơ Sở Dữ Liệu_P5: Ngôn ngữ SQL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
3/18/2009
1
NGÔN NGӲ SQL
Trҫn Phѭӟc Tuҩn
tranphuoctuan.khoatoan.dhsp@gmail.com
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 2
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
1ӝi dung
1. Giӟi thiӋu vӅ SQL
2. KiӇu dӳ liӋu
3. Ĉӏnh nghƭa dӳ liӋu
4. Truy vҩn dӳ liӋu
5. Cұp nhұt dӳ liӋu
6. Mӝt sӕ Yҩn ÿӅ khác
3/18/2009
2
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 3
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
1. 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ӱ Gөng
SQL (Structured Query Language)
– Ngôn ngӳ Fҩp cao
– Ngѭӡi sӱ Gөng chӍ Fҫ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
• SQL-86
• SQL-92
• SQL-99
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 4
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
1. Giӟi thiӋu
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
– ĈLӅu khiӇn giao tác
SQL sӱ Gөng thuұt ngӳ
– %ҧng ~ quan hӋ
– &ӝt ~ thuӝc tính
– Dòng ~ bӝ
Lý thuyɼt
Chuɦn SQL-92,
SQL Server 2000
Minh h͍a
SQL Server 2000
3/18/2009
3
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 5
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
1. Giӟi thiӋu vӅ SQL
Ngôn ngӳÿӏnh nghƭa dӳ liӋu
f DDL - Data Definition Language
f Các lӋnh dùng ÿӇ ÿӏnh nghƭa CSDL: tҥo lұp (create),
thay ÿәi (alter) và hӫy bӓ (drop) các ÿӕi tѭӧng dӳ liӋu,
thiӃt lұp các ràng buӝc.
Ngôn ngӳ thao tác dӳ liӋu
f DML - Data Manipulation Language
f Các lӋnh dùng ÿӇ Eҧo trì và truy vҩn CSDL: thêm
(insert), sӱa (update), xóa (delete) dӳ liӋu cӫa bҧng,
truy vҩn (select).
Ngôn ngӳÿiӅu khiӇn dӳ liӋu
f DCL - Data Control Language
f Các lӋnh dùng ÿӇÿiӅu khiӇn CSDL: quҧn trӏ các quyӅn
(grant, revoke).
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 6
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
1. Giӟi thiӋu vӅ SQL
3/18/2009
4
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 7
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
2. KiӇu dӳ liӋu
KiӇu dӳ liӋu trong SQL Server
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 8
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
2. KiӇu dӳ liӋu
KiӇu dӳ liӋu trong SQL Server
3/18/2009
5
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 9
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
2. KiӇu dӳ liӋu
KiӇu dӳ liӋu trong SQL Server
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 10
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
Là ngôn ngӳ mô tҧ
– /ѭӧ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Ӎ Pөc trên mӛi quan hӋ
Các lӋnh thông dөng
– CREATE TABLE (tҥo bҧng)
– ALTER TABLE (sӱa bҧng)
– DROP TABLE (xóa bҧng)
– CREATE DOMAIN (tҥo miӅn giá trӏ)
– CREATE DATABASE
– …
3/18/2009
6
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 11
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
ĈӇÿӏnh nghƭa mӝt bҧng
– Tên bҧng
– Các thuӝc tính
• Tên thuӝc tính
• KiӇu dӳ liӋu
• Các RBTV trên thuӝc tính
Cú pháp
CREATE TABLE
(
[],
[],
…
[]
)
Tҥo bҧng
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 12
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
CREATE TABLE NHANVIEN
(
MANV CHAR(9),
HONV NVARCHAR(10),
TENLOT NVARCHAR(20),
TENNV NVARCHAR(10),
NGSINH DATETIME,
DCHI NVARCHAR(50),
PHAI CHAR(3),
LUONG INT,
MA_NQL CHAR(9),
PHG INT
)
Tҥo bҧng
3/18/2009
7
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 13
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
¾NOT NULL
¾NULL
¾UNIQUE
¾DEFAULT
¾PRIMARY KEY
¾ FOREIGN KEY / REFERENCES
¾CHECK
Ĉһt tên cho RBTV
¾CONSTRAINT
Tҥo bҧng
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 14
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
CREATE TABLE NHANVIEN
(
HONV NVARCHAR(10) NOT NULL,
TENLOT NVARCHAR(20) NOT NULL,
TENNV NVARCHAR(10) NOT NULL,
MANV CHAR(9) PRIMARY KEY,
NGSINH DATETIME,
DCHI NVARCHAR(50),
PHAI NCHAR(3) CHECK (PHAI IN (N‘Nam’, N‘Nӳ’)),
LUONG INT DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
Tҥo bҧng
3/18/2009
8
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 15
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
CREATE TABLE PHONGBAN
(
TENPB NVARCHAR(20) UNIQUE,
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME DEFAULT (GETDATE())
)
CREATE TABLE PHANCONG
(
MANV CHAR(9) FOREIGN KEY (MANV)
REFERENCES NHANVIEN(MANV),
MADA INT REFERENCES DEAN(MADA),
THOIGIAN DECIMAL(3,1),
PRIMARY KEY(MANV,MADA)
)
Tҥo bҧng
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 16
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
CREATE TABLE NHANVIEN
(
HONV NVARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL,
TENLOT NVARCHAR(20) NOT NULL,
TENNV NVARCHAR(10) NOT NULL,
MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,
NGSINH DATETIME,
DCHI NVARCHAR(50),
PHAI NCHAR(3) CONSTRAINT NV_PHAI_CHK
CHECK (PHAI IN (N‘Nam’,N ‘Nͯ’)),
LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
Tҥo bҧng
3/18/2009
9
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 17
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
CREATE TABLE PHANCONG
(
MANV CHAR(9),
MADA INT,
THOIGIAN DECIMAL(3,1),
CONSTRAINT PC_MANV_MADA_PK
PRIMARY KEY (MANV, MADA),
CONSTRAINT PC_MANV_FK FOREIGN KEY (MANV)
REFERENCES NHANVIEN(MANV),
CONSTRAINT PC_MADA_FK FOREIGN KEY (MADA)
REFERENCES DEAN(MADA)
)
Tҥo bҧng
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 18
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
Thay ÿәi cҩu trúc bҧng
– Thêm cӝt
– Xóa cӝt
– 0ӣ Uӝng cӝt
Thay ÿәi ràng buӝc toàn vҽn (RBTV)
– Thêm RBTV
– Xóa RBTV
3.Ĉӏnh nghƭa dӳ liӋu
Sӱa bҧng
3/18/2009
10
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 19
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
SS
ӱӱ
a b
a b
ҧҧ ngng
ALTER TABLE ADD COLUMN
[]
ALTER TABLE DROP COLUMN
ALTER TABLE ALTER COLUMN
ALTER TABLE ADD
CONSTRAINT ,
CONSTRAINT ,
…
ALTER TABLE DROP
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 20
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
Sӱa bҧng
ALTER TABLE NHANVIEN
ADD NGHENGHIEP CHAR(20)
ALTER TABLE NHANVIEN
DROP COLUMN NGHENGHIEP
ALTER TABLE NHANVIEN
ALTER COLUMN NGHENGHIEP CHAR(50)
3/18/2009
11
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 21
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
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)
Sӱa bҧng
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 22
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
Xóa bҧng Ĉѭӧc dùng ÿӇ xóa cҩu trúc bҧng
– 7ҩt cҧ Gӳ liӋu cӫa bҧng cNJng bӏ xóa
Cú pháp
Ví dө
DROP TABLE
DROP TABLE NHANVIEN
DROP TABLE PHONGBAN
DROP TABLE PHANCONG
3/18/2009
12
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 23
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
Xóa bҧng
NHANVIEN
TENNVHONV TENLOT MANV NGSINH DCHI PHAI LUONG MA_NQL PHG
PHONGBAN
TRPHGTENPHG MAPHG NG_NHANCHUC
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 24
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
3.Ĉӏnh nghƭa dӳ liӋu
Tҥo miӅn GT
7ҥ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
CREATE DOMAIN kieu_MANV AS CHAR(9)
3/18/2009
13
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 25
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
1. Truy vҩn cѫ bҧn
2. Tұp hӧp, so sánh tұp hӧp
3. Truy vҩn lӗng
4. Hàm kӃt hӧp, gom nhóm
5. Mӝt sӕ kiӇu truy vҩn khác
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 26
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
Là ngôn ngӳ rút trích dӳ liӋu thӓa mӝt sӕÿiӅu
kiӋn nào ÿó
'ӵa trên
/Ӌnh cѫ bҧn ÿӇ rút trích thông tin: SELECT
Cho phép 1 bҧng có nhiӅu dòng trùng nhau
%ҧng là bag (ÿa bӝ) z quan hӋ là set (Wұp hӧp)
4. Truy vҩn dӳ liӋu
Phép toán ĈSQH M͙t s͑ b͕ sung
3/18/2009
14
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 27
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
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
– 1ӕi các biӇu thӭc: AND, OR, và NOT
– Phép toán: , ! , d , t , z() , , LIKE và BETWEEN
SELECT
FROM
WHERE
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 28
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT
FROM
WHERE V
S
u
SELECT L
FROM R,S
WHERE C
SL (VC (RxS))
3/18/2009
15
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 29
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT *
FROM NHANVIEN
WHERE PHG=5
/ɢy tɢt cɠ các c͙t cͧa
quan hʄ Nɼt quɠ
VPHG=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
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 30
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, HONV, TENLOT, TENNV
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
SMANV,HONV,TENLOT,TENNV(VPHG=5 PHAI=‘Nam’ (NHANVIEN))
TENNVHONV
TungNguyen
HungNguyen
TENLOT
Thanh
Manh
333445555
987987987
MANV
3/18/2009
16
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 31
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, HONV AS [+͌], TENLOT AS [TÊN LÓT], TENNV AS [TÊN]
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
UMANV,H͌,TÊN LÓT,TÊN(SMANV,HONV,TENLOT,TENNV(VPHG=5PHAI=‘Nam’(NHANVIEN)))
TÊN+͌
TungNguyen
HungNguyen
TÊN LÓT
Thanh
Manh
333445555
987987987
MANV
Tên bí danh
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 32
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS [+͌ TÊN]
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
+͌ TÊN
Nguyen Thanh Tung
Nguyen Manh Hung
333445555
987987987
MANV
0͟ U͙ng
3/18/2009
17
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 33
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, LUONG*1.1 AS [LUONG10%]
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
UMANV,LUONG10%(SMANV,LUONG*1.1(VPHG=5PHAI=‘Nam’(NHANVIEN)))
LUONG10%
33000
27500
333445555
987987987
MANV
0͟ U͙ng
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 34
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
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
3/18/2009
18
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 35
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
Cho biӃt MANV và TENNV làm viӋc ӣ
phòng ‘Nghien cuu’
R1 m NHANVIEN PHG=MAPHG PHONGBAN
KQ mSMANV, TENNV (VTENPHG=‘Nghien cuu’(R1))
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG
Biʀu thͩc luɪn lý
TRUE TRUE
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 36
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE (TENPHG=‘Nghien cuu’ OR TENPHG=‘Quan ly’) AND PHG=MAPHG
Ĉ͙ɉu tiên
3/18/2009
19
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 37
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG>=20000 AND
LUONG<=30000
BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG BETWEEN 20000 AND 30000
NOT BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 20000 AND 30000
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 38
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
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ͱ Eɢt kƒ
SELECT MANV, TENNV
FROM NHANVIEN
WHERE HONV NOT NOT LIKE ‘Nguyen’
3/18/2009
20
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 39
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’
ESCAPE
‘Nguyen_’
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 40
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
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’
SELECT MANV, TENNV
FROM NHANVIEN
WHERE NGSINH = ‘1955-12-08’
3/18/2009
21
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 41
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
Convert(kiӇu_dӳ_liӋu, biӇu_thӭc [,kiӇu_chuyӇn_ÿәi])
Hàm có chӭc năng chuyӇQ ÿәi giá trӏ Fӫa
biӇu thӭc sang kiӇu_dӳ_liӋu.
Tham sӕ kiӇu_chuyӇn_ÿәi là mӝt giá trӏ Vӕ
thѭӡng ÿѭӧc sӱ Gөng khi chuyӇQ ÿәi giá trӏ
kiӇu ngày sang kiӇu chuӛi nhҵm quy ÿӏnh
khuôn dҥng dӳ liӋX ÿѭӧc hiӇn thӏ.
Hàm CONVERT
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 42
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
HOADON(SoHD, MaKH, ngaylap, trigia)
Ví dө: ÿӏnh dҥng ngày theo dҥng dd/mm/yyyy
SELECT SoHD, MaKH, CONVERT(varchar(10),ngaylap,103) as ngaylap
FROM HOADON
3/18/2009
22
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 43
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 44
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
6ӱ Gө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
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
NULL
3/18/2009
23
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 45
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
NULLSELECT MANV, TENNV
FROM NHANVIEN
WHERE MA_NQL IS NULL
SELECT MANV, TENNV
FROM NHANVIEN
WHERE MA_NQL IS NOT NULL
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 46
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
WHERE TRUE
SELECT MANV, MAPHG
FROM NHANVIEN, PHONGBAN
Không sͭ dͥng
mʄnh ÿɾWHERE
(Tích chéo RxS)
MAPHG
1
4
333445555
333445555
MANV
5
1987987987
987987987
333445555
4
5987987987
… …
3/18/2009
24
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 47
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn
SELECT TENPHG, DIADIEM
FROM PHONGBAN, DDIEM_PHG
WHERE MAPHG=MAPHG
Tên bí danh
SELECT TENPHG, DIADIEM
FROM PHONGBAN PB, DDIEM_PHG DD
WHERE PB.MAPHG=DD.MAPHG
SELECT TENNV, NGSINH, TENTN, NGSINH
FROM NHANVIEN, THANNHAN
WHERE MANV=MA_NVIEN
SELECT TENNV, NV.NGSINH, TENTN, TN.NGSINH
FROM NHANVIEN NV, THANNHAN TN
WHERE MANV=MA_NVIEN
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 48
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn – Bài tұp
1. Vӟi nhӳng ÿӅ án ӣ ‘Ha Noi’, cho biӃt mã ÿӅ án, mã
phòng ban chӫ trìÿӅ án, hӑ tên trѭӣng phòng cùng vӟi
ngày sinh vàÿӏa chӍ Fӫa ngѭӡi ҩy
2. Tìm hӑ tên cӫa nhân viên phòng sӕ 5 có tham gia vào
ÿӅ án “Sҧn phҭm X” vӟi sӕ giӡ làm viӋc trên 10 giӡ
3. Tìm hӑ tên cӫa tӯng nhân viên và ngѭӡi phө trách trӵc
tiӃp nhân viên ÿó
4. Tìm hӑ tên cӫa nhӳng nhân viên ÿѭӧc “Nguyen Thanh
Tung” phө trách trӵc tiӃp
3/18/2009
25
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 49
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn – Sҳp xӃp
Dùng ÿӇ hiӇn thӏ NӃt quҧ câu truy vҩn theo
Pӝt thӭ Wӵ nào ÿó
Cú pháp
– ASC: tăng (mһc ÿӏnh)
– DESC: giҧm
SELECT
FROM
WHERE
ORDER BY
ORDER BY
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 50
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn cѫ bҧn – Sҳp xӃp
ORDER BYSELECT 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
3/18/2009
26
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 51
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
DISTINCT
BETWEEN
LIKE
ESCAPE
NGÀY GIӠ
CONVERT
NULL
TÍCH CHÉO
ĈҺT TÊN
ORDER BY
Truy vҩn cѫ bҧn – Tәng kӃt
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 52
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Phép toán tұp hӧp trong SQL
SQL có cài ÿһt các phép toán
– +ӝi (UNION)
– Giao (INTERSECT)
– Trӯ (EXCEPT)
.Ӄt quҧ trҧ YӅ là tұp hӧp
– Loҥi bӓ các bӝ trùng nhau
– ĈӇ giӳ Oҥi các bӝ trùng nhau
• UNION ALL
• INTERSECT ALL
• EXCEPT ALL
3/18/2009
27
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 53
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Phép toán tұp hӧp trong SQL
SELECT FROM WHERE
UNION [ALL]
SELECT FROM WHERE
SELECT FROM WHERE
INTERSECT [ALL]
SELECT FROM WHERE
SELECT FROM WHERE
EXCEPT [ALL]
SELECT FROM WHERE
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 54
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Phép toán tұp hӧp trong SQL
Cho biӃt các mã ÿӅ án có
– Nhân viên vӟi hӑ là ‘Nguyen’ tham gia ÿӅ án
hoһc
– Trѭӣng phòng chӫ trìÿӅ án vӟi hӑ là ‘Nguyen’
SELECT MADA
FROM NHANVIEN, PHANCONG
WHERE MANV=MA_NVIEN AND HONV=‘Nguyen’
UNION
SELECT MADA
FROM NHANVIEN, PHONGBAN, DEAN
WHERE MANV=TRPHG AND MAPHG=PHONG AND HONV=‘Nguyen’
Phép hӧp
3/18/2009
28
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 55
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Phép toán tұp hӧp trong SQL
Tìm nhân viên có ngѭӡi thân cùng tên và
cùng giӟi tính
SELECT TENNV, PHAI, MANV FROM NHANVIEN
INTERSECT
SELECT TENTN, PHAI, MA_NVIEN FROM THANNHAN
SELECT NV.*
FROM NHANVIEN NV, THANNHAN TN
WHERE NV.MANV=TN.MA_NVIEN
AND NV.TENNV=TN.TENTN AND NV.PHAI=TN.PHAI
Phép giao
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 56
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Phép toán tұp hӧp trong SQL
Phép trӯ
Tìm nhӳng nhân viên không có thân nhân
nào
SELECT MANV FROM NHANVIEN
EXCEPT
SELECT MA_NVIEN AS MANV FROM THANNHAN
SELECT MANV
FROM NHANVIEN
WHERE MANV NOT IN
(SELECT MANV FROM THANNHAN)
3/18/2009
29
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 57
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Tìm nhân viên có ngѭӡi thân
Truy vҩn lӗng
SELECT MANV
FROM NHANVIEN
WHERE MANV IN
(SELECT MANV FROM THANNHAN)
SELECT DISTINCT NV.MANV,HONV + ‘ ’ + TENNV [+͌ TÊN]
FROM NHANVIEN NV, THANNHAN TN
WHERE NV.MANV=TN.MANV
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 58
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4. Truy vҩn dӳ liӋu
Truy vҩn lӗng
SELECT
FROM
WHERE (
SELECT
FROM
WHERE )
Câu truy vɢn cha
(Outer query)
Câu truy vɢn con
(Subquery)
3/18/2009
30
3/18/2009 CSDL - Trɤn Phɉ͛c Tuɢn 59
ĈҤI HӐC SP. TPHCM, KHOA TOÁN – TIN HӐCKNOWLEDGE FOR SHARE
4.