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

pdf58 trang | Chia sẻ: diunt88 | Lượt xem: 2527 | Lượt tải: 1download
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=5šPHAI=‘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=5šPHAI=‘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.