1. Trang chủ
  2. » Công Nghệ Thông Tin

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

14 236 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 479,15 KB

Nội dung

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Ừ KHÓA LIÊN QUAN

w