Bài giảng chương 5 SQL

14 236 0
Bài giảng chương 5  SQL

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

N i dung chi ti t Ch 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) ng SQL C s d li u Gi i thi u Ngôn ng Gi i thi u (tt) SQH SQL g m - Cách th c truy v n d li u - Khó kh n cho ng i s d ng 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 b o m t i u n giao tác SQL (Structured Query Language) - Ngôn ng c p cao - Ng i s d ng ch c n a n i dung c n truy v n c phát tri n b i IBM (1970s) c g i SEQUEL c ANSI công nh n phát tri n thành chu n Lý thuy t : Chu n SQL-92 Ví d : SQL Server SQL s d ng thu t ng - B ng ~ quan h - C t ~ thu c tính - Dòng ~ b SQL-86 SQL-92 SQL-99 C s d li u C s d li u N i dung chi ti t Gi i thi u nh ngh a d nh ngh a d Là ngôn ng mô t - 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 Ki u d li u 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 m i quan h G m li u 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 … C s d li u Ki u d li u (tt) S (numeric) Chu i ký t (character string) - - CHARACTER, CHARACTER(n) - CHARACTER VARYING(x) INTEGER SMALLINT NUMERIC, NUMERIC(p), NUMERIC(p,s) DECIMAL, DECIMAL(p), DECIMAL(p,s) REAL DOUBLE PRECISION FLOAT, FLOAT(p) Chu i bit (bit string) - BIT, BIT(x) - BIT VARYING(x) Ngày gi (datetime) - DATE g m ngày, tháng n m - TIME g m gi , phút giây - TIMESTAMP g m ngày gi C s d li u C s d li u L nh t o b ng Ví d - T o b ng nh ngh a m t b ng CREATE TABLE KHACHHANG ( - Tên b ng - Các thu c tính MAKH CHAR(4), HOTEN VARCHAR(40), Tên thu c tính Ki u d li u Các RBTV thu c tính DCHI VARCHAR(50), SODT VARCHAR(20), Cú pháp NGSINH SMALLDATETIME, CREATE TABLE ( [], [], … [] ) C s d li u DOANHSO MONEY, NGDK SMALLDATETIME ) L nh t o b ng (tt) C s d li u Ví d - 10 - RBTV CREATE TABLE KHACHHANG ( NOT NULL NULL UNIQUE DEFAULT PRIMARY KEY FOREIGN KEY / REFERENCES CHECK MAKH CHAR(4) PRIMARY KEY, HOTEN VARCHAR(40) NOT NULL, DCHI VARCHAR(50), SODT VARCHAR(20) NOT NULL, NGSINH SMALLDATETIME CHECK (NGSINH > ’01-01-1900’), DOANHSO MONEY DEFAULT (10000), NGDK SMALLDATETIME t tên cho RBTV ) CONSTRAINT C s d li u 11 C s d li u 12 Ví d - RBTV Ví d - t tên cho RBTV CREATE TABLE NHANVIEN ( CREATE TABLE KHACHHANG ( MANV CHAR(4) PRIMARY KEY, MAKH CHAR(4) CONSTRAINT KH_MAKH_PK PRIMARY KEY, HOTEN VARCHAR(40) NOT NULL, SODT VARCHAR(20) UNIQUE, HOTEN VARCHAR(40) CONSTRAINT KH_HOTEN_NN NOT NULL, NGVL SMALLDATETIME DEFAULT (GETDATE()) DCHI VARCHAR(50), ) SODT VARCHAR(20) NOT NULL, CREATE TABLE HOADON ( NGSINH SMALLDATETIME CONSTRAINT KH_NGSINH_CK SOHD INT PRIMARY KEY, CHECK (NGSINH > ’01-01-1900’), NGHD SMALLDATETIME, DOANHSO MONEY CONSTRAINT KH_DOANHSO_DF DEFAULT (10000), MAKH CHAR(4) REFERENCES KHACHHANG(MAKH), MANV CHAR(4) FOREIGN KEY (MANV) NGDK SMALLDATETIME ) REFERENCES NHANVIEN(MANV), TRIGIA MONEY ) C s d li u 13 Ví d - t tên cho RBTV C s d li u 14 L nh s a b ng c dùng - Thay - Thay CREATE TABLE CTHD ( SOHD INT, i c u trúc b ng i RBTV MASP CHAR(4), SL INT, Thêm c t CONSTRAINT CTHD_SOHD_MASP_PK PRIMARY KEY (SOHD, MASP), ALTER TABLE ADD COLUMN [] CONSTRAINT CTHD_SOHD_FK FOREIGN KEY (SOHD) REFERENCES HOADON(SOHD), Xóa c t CONSTRAINT CTHD_MASP_FK FOREIGN KEY (MASP) ALTER TABLE DROP COLUMN REFERENCES SANPHAM(MASP) ) M r ng c t C s d li u 15 C s d li u ALTER TABLE ALTER COLUMN 16 L nh s a b ng (tt) Ví d - Thay i c u trúc b ng Thêm RBTV ALTER TABLE SANPHAM ADD ALTER TABLE ADD CONSTRAINT , GHICHU VARCHAR(20) CONSTRAINT , … ALTER TABLE SANPHAM DROP COLUMN GHICHU Xóa RBTV ALTER TABLE DROP ALTER TABLE SANPHAM ALTER COLUMN GHICHU VARCHAR(50) C s d li u 17 Ví d - Thay i RBTV C s d li u 18 L nh xóa b ng CREATE TABLE HOADON ( c dùng SOHD INT, xóa c u trúc b ng - T t c d li u c a b ng c ng b xóa NGHD SMALLDATETIME, MAKH CHAR(4), MANV CHAR(4), Cú pháp TRIGIA MONEY ) ALTER TABLE HOADON ADD DROP TABLE CONSTRAINT HD_SOHD_PK PRIMARY KEY (SOHD), Ví d CONSTRAINT HD_MAKH_FK FOREIGN KEY (MAKH) DROP TABLE KHACHHANG REFERENCES KHACHHANG(MAKH), CONSTRAINT HD_MANV_FK FOREIGN KEY (MANV) DROP TABLE HOADON REFERENCES NHANVIEN(MANV), DROP TABLE SANPHAM CONSTRAINT HD_NGHD_DF DEFAULT (GETDATE()) FOR (NGHD) C s d li u 19 C s d li u 20 L nh xóa b ng (tt) L nh t o mi n giá tr T o m t ki u d li u có s n Cú pháp GIAOVIEN HOTEN HOCVI HOCHAM MAGV GIOITINH NGSINH NGVL HESO MUCLUONG li u m i k th a nh ng ki u d MAKHOA CREATE DOMAIN AS KHOA TENKHOA Ví d MAKHOA TRGKHOA NGTLAP CREATE DOMAIN Kieu_Ten AS VARCHAR(30) C s d li u 21 N i dung chi ti t Truy v T ph Hàm k M ts 22 Truy v n d Gi i thi u nh ngh a d li u Truy v n d li u - C s d li u Là ngôn ng ó D a nc b n p, so sánh t p h p truy v n l ng t h p gom nhóm ki u truy v n khác li u rút trích d Phép toán SQH li u th a m t s i u ki n M t s b sung - Cho phép b ng có nhi u dòng trùng - B ng bag quan h set C p nh t d li u Khung nhìn (view) Ch m c (index) C s d li u 23 C s d li u 24 Truy v n c b n Truy v n c G m m nh SQL b n (tt) SQH SELECT FROM SELECT WHERE < i u ki n> FROM - Tên c t c n WHERE < i u ki n> c hi n th k t qu truy v n - Tên b ng liên quan n câu truy v n - < i u ki n> SELECT L FROM L ( R C (R)) Bi u th c boolean xác nh dòng s c rút trích N i bi u th c: AND, OR, NOT Phép toán: , , , , , , LIKE BETWEEN C s d li u WHERE C 25 Ví d C s d li u 26 M nh L y t t c c t c a quan h k t qu SELECT SELECT MAKH, HOTEN, DCHI SELECT * FROM KHACHHANG FROM KHACHHANG WHERE DOANHSO>1000000 AND YEAR(NGDK)=2006 WHERE DOANHSO>1000000 MAKH MAKH HOTEN DCHI SODT KH01 Nguyen Van A 731 Tran Hung Dao, Q5, TpHCM 08823451 KH03 Tran Ngoc Linh 45 Nguyen Canh Chan, Q1, TpHCM 0938776266 NGSINH DOANHSO HOTEN KH01 C s d li u Nguyen Van A 731 Tran Hung Dao, Q5, TpHCM 22/10/1960 13,060,000 22/07/2006 KH03 DOANHSO>1000000 DCHI NGDK 12/6/1980 Tran Ngoc Linh 45 Nguyen Canh Chan, Q1, TpHCM 3,860,000 05/08/2006 (KHACHHANG) MAKH, HOTEN, DCHI 27 C s d li u ( DOANHSO>1000000 YEAR(NGDK)=2006 (KHACHHANG)) 28 M nh SELECT (tt) M nh Tên bí danh M r ng SELECT MANV, HOTEN AS TEN, NGVL AS ‘NGAY VAO LAM’ SELECT MASP, TENSP + ‘ ’ + NUOCSX AS ‘TEN SAN PHAM’ FROM NHANVIEN FROM SANPHAM WHERE NGVL > 01/06/2006 WHERE GIA >= 55000 MANV NV04 NV05 MANV,TEN,NGAY VAO LAM TEN Ngo Thanh Tuan Nguyen Thi Truc Thanh ( MANV,HOTEN,NGVL( MASP BB03 ST02 ST04 NGAY VAO LAM 24/6/2006 20/7/2006 NGVL > 01/06/2006(NHANVIEN))) C s d li u 29 M nh M SELECT (tt) SELECT (tt) MASP,TEN SAN PHAM( MASP,TENSP+NUOCSX( GIA >= 55000 (SANPHAM))) C s d li u M nh r ng TEN SAN PHAM But bi Thai Lan So tay loai Viet Nam So tay Thai Lan 30 SELECT (tt) Lo i b dòng trùng SELECT MASP, GIA*1.1 AS ‘GIA10%’ SELECT DISTINCT GIA GIA FROM GIA FROM SANPHAM WHERE GIA >= 55000 MASP BB03 ST02 ST04 WHERE GIA > 50000 GIA10% 110.000 60.500 60.500 GIA 100000 55000 55000 53000 - T n chi phí - Ng i dùng mu n th y 53000 MASP,GIA10%( C s d li u MASP,GIA*1.1( GIA >= 55000(SANPHAM))) 31 C s d li u 32 Ví d M nh Cho bi t MANV HOTEN l p nh ng hóa 3.500.000 R1 KQ NHANVIEN MANV=MANV MANV, HOTEN ( WHERE n SELECT NHANVIEN.MANV, HOTEN HOADON Bi u th c lu n lý FROM NHANVIEN, HOADON TRIGIA > 3500000(R1)) WHERE TRIGIA > 3500000 AND NHANVIEN.MANV=HOADON.MANV SELECT NHANVIEN.MANV, HOTEN TRUE TRUE FROM NHANVIEN, HOADON WHERE TRIGIA > 3500000 AND NHANVIEN.MANV=HOADON.MANV C s d li u M nh 33 WHERE (tt) C s d li u 34 M nh u tiên WHERE (tt) BETWEEN SELECT MASP, TENSP SELECT NHANVIEN.MANV, TENNV FROM SANPHAM FROM NHANVIEN, HOADON WHERE GIA>20000 AND GIA3500000 OR GIA ORDER BY - ASC: t ng (m c - DESC: gi m C s d li u 49 M nh ORDER BY (tt) C s d li u 50 N i dung chi ti t Ví d Gi i thi u nh ngh a d li u Truy v n d li u SELECT NGDK, DOANHSO FROM KHACHHANG - ORDER BY NGDK DESC, DOANHSO C s d li u nh) NGDK DOANHSO 11/07/2012 1.000.000 11/07/2012 3.350.000 23/12/2013 2.490.000 23/12/2013 3.210.000 10/09/2014 100.000 10/09/2014 2.040.000 10/09/2014 5.300.000 Truy v T ph Hàm k M ts nc b n p, so sánh t p h p truy v n l ng t h p gom nhóm d ng truy v n khác C p nh t d li u Khung nhìn (view) Ch m c (index) 51 C s d li u 52 Phép toán t p h p SQL SQL có cài Phép toán t p h p SQL (tt) t phép toán Cú pháp - H i (UNION) - Giao (INTERSECT) - Tr (EXCEPT) SELECT FROM WHERE < i u ki n> UNION [ALL] SELECT FROM WHERE < i u ki n> K t qu tr v t p h p SELECT FROM WHERE < i u ki n> - Lo i b b trùng gi l i b trùng INTERSECT [ALL] SELECT FROM WHERE < i u ki n> UNION ALL INTERSECT ALL EXCEPT ALL SELECT FROM WHERE < i u ki n> EXCEPT [ALL] SELECT FROM WHERE < i u ki n> C s d li u Ví d 53 Cho bi t s hóa n có - Nhân viên l p hóa n có h ‘Nguyen’ ho c, - Khách hàng mua hàng có h ‘Nguyen’ SELECT SOHD FROM HOADON HD, NHANVIEN NV WHERE HD.MANV=NV.MANV AND HOTEN LIKE ‘Nguyen %’ UNION SELECT SOHD FROM HOADON HD, KHACHHANG KH WHERE HD.MAKH=KH.MAKH AND HOTEN LIKE ‘Nguyen %’ C s d li u 55 C s d li u 54 [...]... là m t so sánh không h p l trong SQL ‘2006-12-08 17:30:00’ C s d li u n giá tr 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 HH:MI:SS ‘December 8, 2006’ M nh ng h p 43 C s d li u SOHD 3334 455 55 1 3334 455 55 4 3334 455 55 5 987987987 1 987987987 4 987987987 5 … … 44 M nh FROM (tt) Ví d 1 V i nh ng chi ti t hóa n mua trên 50 s n ph m, cho bi t s hóa n, tr... 5. 300.000 Truy v T ph Hàm k M ts nc b n p, so sánh t p h p và truy v n l ng t h p và gom nhóm d ng truy v n khác C p nh t d li u Khung nhìn (view) Ch m c (index) 51 C s d li u 52 Phép toán t p h p trong SQL SQL có cài Phép toán t p h p trong SQL (tt) t các phép toán Cú pháp - H i (UNION) - Giao (INTERSECT) - Tr (EXCEPT) SELECT FROM WHERE < i u ki n> UNION [ALL] SELECT FROM... b ng> WHERE < i u ki n> C s d li u Ví d 53 5 Cho bi t các s hóa n có - Nhân viên l p hóa n có h là ‘Nguyen’ ho c, - Khách hàng mua hàng có h là ‘Nguyen’ SELECT SOHD FROM HOADON HD, NHANVIEN NV WHERE HD.MANV=NV.MANV AND HOTEN LIKE ‘Nguyen %’ UNION SELECT SOHD FROM HOADON HD, KHACHHANG KH WHERE HD.MAKH=KH.MAKH AND HOTEN LIKE ‘Nguyen %’ C s d li u 55 C s d li u 54 ... DESC: gi m C s d li u 49 M nh ORDER BY (tt) C s d li u 50 N i dung chi ti t Ví d Gi i thi u nh ngh a d li u Truy v n d li u SELECT NGDK, DOANHSO FROM KHACHHANG - ORDER BY NGDK DESC, DOANHSO C s d li u nh) NGDK DOANHSO 11/07/2012 1.000.000 11/07/2012 3. 350 .000 23/12/2013 2.490.000 23/12/2013 3.210.000 10/09/2014 100.000 10/09/2014 2.040.000 10/09/2014 5. 300.000 Truy v T ph Hàm k M ts nc b n p, so sánh t... HOADON,AS NHANVIEN HD, NHANVIEN AS NV WHERE HD.MANV=NV.MANV MANV=MANV SELECT NV.MANV, HOTEN, SOHD MANV, HOTEN, SOHD FROM NHANVIEN NHANVIEN,NV, HOADON HOADON HD WHERE NV.MANV=HD.MANV MANV=MANV C s d li u Ví d 45 2 Ví d Tìm hóa n c a khách hàng ‘Nguyen Van A’ do nhân viên có mã s ‘NV03’ l p và mua h n 3 lo i s n ph m khác nhau C s d li u C s d li u 47 46 3 In ra tr giá c a t ng hóa hóa n ó C s d li u n và h tên... d ng (value inapplicable) Không t n t i (value withheld) SELECT MANV, TENNV FROM NHANVIEN WHERE NGVL BETWEEN ‘2006-12-08’ AND ‘2014-07-19’ ‘2006-12-08’ YYYY-MM-DD ’17:30:00’ ’12/08/2006’ MM/DD/YYYY ’ 05: 30 PM’ - Nh ng bi u th c tính toán có liên quan s cho ra k t qu là NULL - Nh ng bi u th c so sánh có liên quan s cho ra k t qu là UNKNOWN 41 WHERE (tt) C s d li u 42 M nh NULL Không s FROM d ng m nh ... 55 000 MASP BB03 ST02 ST04 WHERE GIA > 50 000 GIA10% 110.000 60 .50 0 60 .50 0 GIA 100000 55 000 55 000 53 000 - T n chi phí - Ng i dùng mu n th y 53 000 MASP,GIA10%( C s d li u MASP,GIA*1.1( GIA >= 55 000(SANPHAM)))... M nh ng h p 43 C s d li u SOHD 3334 455 55 3334 455 55 3334 455 55 987987987 987987987 987987987 … … 44 M nh FROM (tt) Ví d V i nh ng chi ti t hóa n mua 50 s n ph m, cho bi t s hóa n, tr giá hóa n,... l SQL ‘2006-12-08 17:30:00’ C s d li u n giá tr NULL x có giá tr NULL x + cho k t qu NULL x + m t bi u th c không h p l SQL HH:MI:SS ‘December 8, 2006’ M nh ng h p 43 C s d li u SOHD 3334 455 55

Ngày đăng: 03/12/2015, 03:00

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan