Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
745,6 KB
Nội dung
PH C S D LI U N II NGÔN NG SQL ◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊ o Gi i thi u o Ngôn ng đ nh ngh a d li u o Ngôn ng qu n tr d li u o Ngôn ng u n d li u o Ngôn ng truy v n d li u o Bài t p t ng h p M CL C PH N II- NGÔN NG SQL M CL C *************************************** M CL C Ch ng GI I THI U 1.1 L ch s phát tri n 1.2 Chu n SQL 1.3 c m c a SQL 1.4 Các lo i l nh c a SQL 1.5 Bài t p Ch ng CÁC L NH NH NGH A D LI U (DDL) 2.1 T o m t c s d li u 2.2 T o m t b ng 2.2.1 Cú pháp 2.2.2 Tên c a b ng 2.2.3 Xác đ nh thu c tính 2.3 Các lo i d li u 2.3.1 Các lo i d li u đ c s d ng MS Access 2.3.2 Các lo i d li u đ c s d ng Oracle: JULIAN 12 2.3.3 Các lo i d li u s d ng SQL SERVER 13 2.4 Các lo i ràng bu c b ng d li u 13 2.4.1 NOT NULL- Không r ng 13 2.4.2 UNIQUE-Duy nh t 13 2.4.3 PRIMARY KEY- Khố 13 2.4.4 FOREIGN KEY-Khoá ngo i 14 2.4.5 CHECK- Ràng bu c ki m tra giá tr 15 2.4.6 DEFAULT-M c đ nh 15 2.5 S a đ i c u trúc 15 2.6 Xoá đ i t ng 17 2.7 Bài t p 18 Ch ng CÁC L NH QU N TR D LI U 19 3.1 Thêm hàng (INSERT) 19 3.2 Xóa hàng (DELETE) 19 3.3 S a đ i giá tr c a m t hàng (UPDATE) 20 3.4 Bài t p 20 Ch ng NGÔN NG I U KHI N (DCL) 21 4.1 L nh GRANT 21 4.2 L nh REVOKE 22 4.3 Bài t p 22 Ch ng TRUY V N D LI U (SELECT) 23 5.1 Cú pháp 23 5.2 Ví d : 23 5.3 a c t 24 5.3.1 a t t c c t 24 5.3.2 a m t s c t 24 5.3.3 Tránh giá tr trùng l p (DISTINCT) 24 5.3.4 a giá tr c a bi u th c 25 5.3.5 S d ng bí danh c t 25 5.3.6 S p x p th t (ORDER BY) 25 5.4 a hàng 26 5.4.1 S d ng phép so sánh 26 PH N II- NGÔN NG SQL M CL C 5.4.2 S d ng phép logic: AND, OR, NOT 26 5.4.3 Các toán t c a SQL 27 5.5 S d ng hàm 28 5.5.1 Hàm s h c 29 5.5.2 M t s hàm ki u s tham kh o khác: 29 5.5.3 Các hàm ký t 31 5.5.4 Các hàm ngày 34 5.5.5 Các hàm chuy n đ i ki u 35 5.5.6 Hàm nhóm 37 5.5.7 S d ng hàm nhóm 37 5.5.8 M nh đ GROUP BY 38 5.5.9 M nh đ HAVING 39 5.6 L y thông tin t nhi u b ng 39 5.6.1 N i b ng (Equi-Join) 40 5.6.2 Bí danh b ng 40 5.6.3 N i không b ng (Non Equi-Join) 40 5.6.4 N i b ng v i 41 5.6.5 Th c hi n k t n i thơng qua t khóa Join 41 5.7 Th c hi n phép toán t p h p 43 5.8 Các câu h i l ng 44 5.8.1 L nh SELECT bên cho k t qu hàng 44 5.8.2 L nh SELECT bên cho k t qu nhi u hàng 45 5.8.3 M nh đ HAVING SELECT l ng 48 5.8.4 M nh đ ORDER BY SELECT l ng 49 5.9 Các l nh l ng liên k t 49 5.10 Bài t p 49 TÀI LI U THAM KH O 61 PH N II- NGÔN NG SQL Ch ng GI I THI U 1.1 L ch s phát tri n SQL (Structured Query Language, đ c "sequel") t p l nh truy xu t CSDL quan h Ngôn ng SQL đ c IBM s d ng đ u tiên h qu n tr CSDL System R vào gi a nh ng n m 70, h ngôn ng SQL đ u tiên (SEQUEL2) đ c IBM công b vào tháng 11 n m 1976 N m 1979, t p đoàn ORACLE gi i thi u th ng ph m đ u tiên c a SQL, SQL c ng đ c cài đ t h qu n tr CSDL nh DB2 c a IBM SQL/DS Ngày nay, SQL đ c p CSDL quan h c s d ng r ng rãi đu c xem ngôn ng chu n đ truy 1.2 Chu n SQL N m 1989, vi n tiêu chu n qu c gia Hoa k (ANSI) công nh n SQL ngôn ng chu n đ truy c p CSDL quan h v n b n ANSI SQL89 N m 1989, t ch c tiêu chu n qu c t (ISO) công nh n SQL ngôn ng chu n đ truy c p CSDL quan h v n b n ISO 9075-1989 T t c h qu n tr CSDL l n th gi i cho phép truy c p b ng SQL h u h t theo chu n ANSI 1.3 c m c a SQL - Ngôn ng g n v i ngôn ng t nhiên (ti ng Anh) - SQL ngôn ng phi c u trúc, t c l nh c a SQL ng i s d ng CH C N đ a yêu c u h th ng CÁI GÌ ch khơng c n ch ph i làm TH NÀO - Ví d : Cho c u trúc d li u đ qu n lý h c sinh nh sau HOCSINH(MaHS, TenHS, TB, Xeploai) a TenHS, TB c a h c sinh có TB>=8.0 Pascal Type Hocsinh=Record MaHS: String[5]; TenHS: String[30]; TB: Real; Xeploai: String[30]; End; HS: Array[1 100] Of Hocsinh; Begin … For i:=1 to n If HS[i] TB>=8.0 then Writeln(HS[i].TenHS, HS[i].DTB); … End - Ngơn ng SQL đ PH N II- NGƠN NG SQL SQL - T o b ng HOCSINH S d ng l nh SELECT Select TenHS, TB From HOCSINH Where TB>=5.0; c s d ng r t r ng rãi H qu n tr c s d li u - SQL đ c chia lo i: SQL (ngôn ng h i) PL/SQL (ngôn ng l p trình) 1.4 Các lo i l nh c a SQL Chia làm nhóm chính: - Cho phép truy v n c s d li u đ đ a thông tin c n thi t (SELECT) - Các l nh đ nh ngh a d li u (DDL_ Data Definition Language): T o thay đ i c u trúc đ i t ng c s d li u (CREATE, ALTER…) - Các l nh th c hi n d li u (DML_ Data Manipulation Language): Cho phép thêm, s a, xóa d li u (INSERT, UPDATE, DELETE…) - Các l nh u n d li u (DCL_Data Control Language): Cho phép gán ho c hu quy n truy c p d li u (GRANT, REVOTE) 1.5 Bài t p Câu Nêu đ c m c a SQL Câu Nêu lo i l nh c a SQL PH N II- NGÔN NG SQL Ch ng CÁC L NH NH NGH A D LI U (DDL) 2.1 T o m t c s d li u Cú pháp: Create Database Ví d : T o m t c s d li u có tên QLTV _ Qu n lý th vi n Create Database QLTV; 2.2 T o m t b ng 2.2.1 Cú pháp CREATE TABLE (Tên_thu c_tính1 Ki u_tt1 [NOT NULL], Tên_thu c_tính2 Ki u_tt2 [NOT NULL], … Tên_thu c_tínhn Ki u_ttn [NOT NULL] [, CONSTRAINT m nh đ ] ) Trong đó, m nh đ CONSTRAINT cho phép ta khai báo ràng bu c d li u (chi ti t s đ c trình bày ph n sau) Ví d : T o b ng DOCGIA, có thu c tính: CREATE TABLE DOCGIA( MaDG Text(10) NOT NULL PRIMARY KEY, TenDG Text(30) NOT NULL, DiaChi Text(50) NOT NULL, Tuoi NUMBER) B ng s đ c nh n m t tên g i m t c u trúc (danh sách tên thu c tính m t vài đ c tr ng) Khi m i đ c t o, b ng ch a có d li u, ch m t c u trúc lơgic có th ti p nh n d li u 2.2.2 Tên c a b ng Tên c a b ng đ c xác đ nh sau l nh CREATE TABLE M i HQTCSDL có m t quy t c đ t tên riêng Ví d : - Tên b ng ph i b t đ u b ng m t ch cái, có d d u ‘_’) - Tên b ng ph i khác tên g i khác c a b ng hay c a khung nhìn v i tên g i dành riêng c a SQL - Không phân bi t hoa, th PH N II- NGÔN NG SQL ng i 30 kí t (ch cái, ch s , 2.2.3 Xác đ nh thu c tính Trong l nh t o b ng ta ph i xác đ nh c u trúc c a b ng C n ph i xác đ nh m i thu c tính c a m t đ nh ngh a k t thúc b ng d u ‘,’ g m: - Tên thu c tính - Lo i d li u đ dài - Các ràng bu c có liên quan 2.3 Các lo i d li u Các lo i d li u đ c s d ng tùy theo HQTCSDL 2.3.1 Các lo i d li u đ Ki u d li u cs d ng MS Access Miêu t Kích c Text S d ng ký t ho c k t h p gi a ký Kh n ng l u tr t i đa (FieldSize)là 255 ký t t s , nh đ a ch , ho c nh ng s không yêu c u tính tốn, nh s n tho i, mã n c, mã vùng… Memo S d ng b n c n l u tr m t l ng thơng tin l n, ví d nh tr thơng tin ghi v m t cán b Number Number: S d ng cho nh ng d li u c n tính tốn (lo i tr tính ti n, s d ng Currency Type) Kh n ng l u tr có th 1, 2, 4, tu thu c bào ki u d li u ta ch n (byte, integer, long integer, single, douple, decimal), riêng đ i v i ki u d li u ReplicationID (GUI) thi kh n ng l u tr 16 byte Date/Time L u tr thông tin v th i gian S d ng byte đ l u tr Currency S d ng Currency cho d li u c n tính tốn Ph n th p phân có th có t đ n s Kh n ng l u tr byte AutoNumber ây ki u s t đ ng t ng v i b c S d ng byte đ l u tr N u t ng Ta không th c p nh t l i ch n ki u d li u ReplicationID đ c tr ng kh n ng l u tr có th lên t i 16 byte Yes/No Ki u d li u YES/NO ch ch a m t giá tr (Yes/No, True/False, On/ Off)Y OLE Object PH N II- NGÔN NG it SQL Kh n ng l u tr t i đa 65.536 ng ký t S d ng bite đ l u tr ng (nh m t v n b n S d ng GB đ l u tr (tu thu c Microsoft Word, d li u đ ho , âm thanh, ho c m t ki u d li u nh phân… ) vào dung l ng c a đ a) Ngồi cịn lo i d li u khác nh Hyperlink, Lookup Wizard i v i ki u d li u Number, ta cịn có th l a ch chi ti t: Ki u d li u Miêu t Kích c xác th p phân Byte L u tr s t đ n 255 (khơng có phân s ) Không byte Decimal L u tr t i đa 10^38-1 28 12bytes Integer L u tr s t -32,768 to 32,767 (khơng có phân s ) Không bytes Long Integer L u tr s t -2,147,483,648 t i 2,147,483,647 (khơng có phân s ) None bytes Single L u tr s t -3.402823E38 to -1.401298E45 cho giá tr âm t 1.401298E-45 to 3.402823E38 giá tr d ng bytes Double L u tr s t -1.79769313486231E308 t i 4.94065645841247E-324 cho giá tr âm t 4.94065645841247E–324 to 1.79769313486231E308 giá tr d ng 15 bytes 2.3.2 Các lo i d li u đ cs d ng Oracle: CHAR Ki u CHAR dùng đ khai báo m t chu i có chi u dài c đ nh, khai báo bi n ho c c t ki u CHAR v i chi u dài ch đ nh t t c m c tin c a bi n hay c t đ u có chi u dài đ c ch đ nh Các m c tin ng n h n ORACLE s t đ ng thêm vào kho ng tr ng cho đ chi u dài ORACLE không cho phép gán m c tin dài h n chi u dài ch đ nh đ i v i ki u CHAR Chi u dài t i đa cho phép c a ki u CHAR 255 byte VARCHAR2 Ki u VARCHAR2 dùng đ khai báo chu i ký t v i chi u dài thay đ i Khi khai báo m t bi n ho c c t ki u VARCHAR2 ph i ch chi u dài t i đa, m c tin ch a bi n hay c t ki u VARCHAR2 có chi u dài th c s chi u dài c a m c tin ORACLE không cho phép gán m c tin dài h n chi u dài t i đa ch đ nh đ i v i ki u VARCHAR2 Chi u dài t i đa ki u VARCHAR2 2000 byte PH N II- NGÔN NG SQL VARCHAR Hi n t i ORACLE xem ki u VARCHAR2 VARCHAR nh nhau, nhiên ORACLE khuyên nên dùng VARCHAR2 ORACLE d đ nh t ng lai dùng ki u VARCHAR đ ch a chu i v i chi u dài bi n đ i, nh ng phép so sánh s đ c ch đ nh theo nhi u ng ngh a khác NUMBER Ki u s c a ORACLE dùng đ ch a m c tin d ng s d d u ch m đ ng ng, s âm, s v i NUMBER(p, s) Trong đó: p: s ch s tr c d u ch m th p phân (precision), p t đ n 38 ch s s: s ch s tính t d u ch m th p phân v bên ph i (scale), s t -84 đ n 127 NUMBER(p) s có d u ch m th p phân c đ nh v i precision b ng p scale b ng đ NUMBER s v i d u ch m đ ng v i precision b ng 38 Nh r ng scale không c áp d ng cho s v i d u ch m đ ng Ví d sau cho th y cách th c ORACLE l u tr d li u ki u s tùy theo cách đ nh precision scale khác nhau: D li u th c Ki u L u tr 7456123.89 NUMBER 7456123.89 7456123.89 NUMBER(9) 7456123 7456123.89 NUMBER(9,2) 7456123.89 7456123.89 NUMBER(9,1) 7456123.8 7456123.89 NUMBER(6) Không h p l 7456123.8 NUMBER(15,1) 7456123.8 7456123.89 NUMBER(7,-2) 7456100 7456123.89 NUMBER(-7,2) Không h p l FLOAT Dùng đ khai báo ki u s d u ch m đ ng, v i đ xác th p phân 38 hay đ xác nh phân 126 PH N II- NGÔN NG SQL 10 SELECT Hoten, MaDV, Luong FROM NHANVIEN WHERE (MaDV, Luong) IN (Select MaDV, Min(Luong) From NHANVIEN Group by MaDV) i v i m t vài HQTCSDL, t p h p phép toán IN ch bao g m giá tr Ví d khơng th so sánh (MaDV, Luong), ch đ c phép so sánh MaDV ho c Luong Ví d 2: a Hoten, MaDV, Luong c a nhân viên có Luong=Luong th p nh t m t đ n v SELECT NHANVIEN.MaNV, NHANVIEN.Hoten, NHANVIEN.Luong FROM NHANVIEN WHERE NHANVIEN.Luong IN ( SELECT Min(NHANVIEN.Luong) AS MinOfLuong FROM NHANVIEN GROUP BY NHANVIEN.MaDV) K t qu : MaNV Hoten Luong NV003 Hoàng Th Lan 200 NV004 Trung D ng 700 NV005 V nH i 100 NV008 Nguy n Thanh Ng c 700 Phép toán ALL K t h p v i phép so sánh thông th ng đ so sánh m t giá tr v i t p h p Giá_tr > ALL{T p h p}: Bi u th c TRUE n u giá tr so sánh > t t c giá tr t p h p Ví d : 5> ALL(2,3,4): TRUE 5> ALL(2,4,6): FALSE Phép toán ANY Giá_tr > ANY{T p h p}: Bi u th c TRUE n u giá tr so sánh > m t giá tr t p h p Ví d : 5> ANY(2,4,6): TRUE PH N II- NGƠN NG SQL 47 Ví d : a Hoten, Luong c a nhân viên có Luong l n nh t c a đ n v có mã đ n v 0002 SELECT Hoten, Luong FROM NHANVIEN WHERE Luong> ALL( Select Luong From NHANVIEN Where MaDV ='0002') K t qu select là: Luong 200 700 K t qu c a c câu l nh: Hoten Luong Nguy n Nam H i 1000 N u thay ALL = ANY k t qu : Hoten Ph m Th Nhàn Luong 500 Hoàng Thanh Vân 600 Trung D ng 700 Nguy n Nam H i 1000 Nguy n Hoàng Lan 500 Nguy n Thanh Ng c 700 5.8.3 M nh đ HAVING SELECT l ng M nh đ HAVING đ l c s d ng có u ki n nhóm Ví d : a MaDV, AVG(Luong) c a đ n v có trung bình l ng nh nh t c a đ n v có mã đ n v 0003 - Tính l ng l n nh t c a đ n v có mã đ n v 0003 a nh ng đ n v có TBL ng > L ng nh nh t v a tính đ SELECT MaDV, Avg(Luong) AS AvgOfLuong FROM NHANVIEN GROUP BY NHANVIEN.MaDV HAVING AVG(Luong)> Select Min(Luong) From NHANVIEN Where MaDV='0002') PH N II- NGÔN NG ng l n h n SQL 48 c 5.8.4 M nh đ ORDER BY SELECT l ng M i l nh SELECT ch có m nh đ ORDER By nh t M t l nh SELECT l ng đ c coi m t l nh SELECT Vì v y, n u mu n s p x p d li u m nh đ ORDER BY ph i m nh đ cu i c a l nh SELECT ngồi cùng, l nh SELECT bên khơng có ORDER BY 5.9 Các l nh l ng liên k t Các l nh liên k t c ng l nh SELECT l ng nh ng có cách th c hi n khác l nh l ng thông th ng Các b c th c hi n: - Xét hàng c a b ng - S d ng d li u c a hàng đ th c hi n l nh SELECT bên - S d ng k t qu c a SELECT bên đ th c hi n SELECT bên - L p l i b c cho đ n h t hàng đ c xét Ví d : Có b ng NHANVIEN NHANVIEN MaNV NV001 NV002 HoTen Ph m Th Nhàn Hoàng Thanh Vân CongViec Th ký Giáo viên Luong 500 600 MaDV 0001 0001 MaPT NV002 NV003 NV003 NV004 NV005 Hoàng Th Lan Trung D ng V nH i Giáo viên Th ký B ov 200 700 100 0002 0003 0001 NV002 NV002 NV002 NV006 Nguy n Nam H i Giám đ c 1000 0001 NV007 NV008 Nguy n Hoàng Lan Nguy n Thanh Ng c Giáo viên Giáo viên 500 700 0001 0002 NV006 a Hoten, MaDV, Luong c a nh ng nhân viên có Luong> LuongTB c a đ nv c ah SELECT NHANVIEN.HoTen, NHANVIEN.MaDV, NHANVIEN.Luong FROM NHANVIEN WHERE ((NHANVIEN.Luong)> (Select AVG(Luong) From NHANVIEN NV1 Where NV1.MaDV= NHANVIEN.MaDV)) 5.10 Bài t p Câu T o m t c s d li u (CSDL) dùng đ qu n lý nhân viên, l y tên CSDL QLNhanVien PH N II- NGÔN NG SQL 49 Câu C u trúc c a CSDL g m b ng v i quan h sau: a NHANVIEN Tên thu c tính Ki u d li u Kích c Khuôn d ng MaNV Ký t Ch hoa +s HoTen Ký t 30 Congviec Ký t 50 Luong S MaDV Ký t MaPT Ký t Tên thu c tính Ki u d li u Kích c Khn d ng MaDV Ký t Ch hoa +s TenDV Ký t 50 Tên thu c tính Ki u d li u Kích c Khn d ng MaBac Ký t 50 Ch hoa +s BacCao S BacThap S b c Ch hoa + s (Mã ng i ph trách) DONVI BACLUONG PH N II- NGÔN NG SQL 50 Chú ý: M i câu l nh t o b ng đ c vi t b ng Query, đ t tên l n l t 21, 2b, 2c Câu Thêm d li u (b ng l nh INERT) cho b ng NHANVIEN đ có k t qu nh sau: NHANVIEN MaNV HoTen CongViec Luong MaDV NV001 Ph m Th Nhàn Th ký 500 0001 NV002 Hoàng Thanh Vân Giáo viên 600 0001 NV003 Hoàng Th Lan Giáo viên 200 0002 NV004 Trung D ng Th ký 700 0003 Câu Thêm d li u (b ng l nh INERT) cho b ng DONVI đ có k t qu nh sau: DONVI MaDV TenDV 0001 KHTN 0002 DHTL 0003 DHQG Câu Thêm d li u (b ng l nh INERT) cho b ng BACLUONG đ có k t qu nh sau: BACLUONG MaBac BacThap BacCao 400 500 501 600 601 800 Câu Dùng câu l nh truy v n d li u, đ a t t c thông tin v nhân viên Câu a Hoten, Congviec, Luong c a t t c nhân viên Câu a tồn b cơng vi c c a nhân viên, giá tr không trùng Câu a Hoten, LuongQuy c a t t c nhân viên, v i LuongQuy= Luong*3 Câu 10 a Hoten, Luong s p x p theo th t t ng d n/ gi m d n c a Luong Câu 11 a Hoten, Luong c a nhân viên có Luong>300 Câu 12 a Hoten, Luong c a nhân viên có Luong>300 làm công vi c Giáo viên Câu 13 a nh ng nhân viên có l PH N II- NGÔN NG SQL ng ho c 200, 300, 600 51 Câu 14 Câu 15 ‘Hoàng’ a nh ng nhân viên có L a Hoten, Congviec c a nhân viên có H tên b t đ u b ng ch Câu 16 a l ng trung bình, l b ng NHANVIEN Câu 17 a Côngvi c, L Câu 18 a Côngvi c, L theo t ng lo i công vi c Câu 19 ng kho ng 300 đ n 600 a t ng l ng l n nh t, nh nh t c a t t c nhân viên ng trung bình c a t ng lo i cơng vi c ng trung bình c a t t c nhân viên có Luong>200 ng c a t ng nhóm cơng vi c t ng đ n v Câu 20 a nh ng Congviec trung bình l l ng >=300 ng c a cơng vi c có trung bình Câu 21 >=300 a nh ng đ n v l ng l n nh t c a đ n v có l Câu 22 a Hoten, Congviec, TenDV c a t t c nhân viên ng l n nh t Câu 23 Câu l nh sau cho k t qu nh th SELECT HoTen, CongViec, TenDV FROM NHANVIEN NV, DONVI DV WHERE NV.MaDV= DV.MaDV; Câu 24 a Hoten, Congviec, MaBac c a t t c nhân viên Câu 25 a HoTen, Congviec, TenDV, Luong c a nh ng nhân viên có Luong>=500 Câu 26 Câu l nh sau cho k t qu nh th SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten FROM NHANVIEN NV, NHANVIEN PT WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong); Câu 27 a nh ng công vi c đ n v có MaDV 0001 đ n v có MaDV 0002 Câu 28 a Hoten, TenDV, Congviec, Luong c a nh ng ng l ng trung bình c a tồn b nhân viên Câu 29 a nh ng nhân viên có l v có tên DHTL ng l n h n ng i có l i có l ng l n h n ng l n nh t đ n Câu 30 a Hoten, MaDV, Luong c a nhân viên có Luong=Luong th p nh t đ n v c a h Câu 31 a Hoten, MaDV, Luong c a nhân viên có Luong=Luong th p nh t m t đ n v PH N II- NGƠN NG SQL 52 Câu 32 a Hoten, Luong c a nhân viên có Luong l n nh t c a đ n v có mã đ n v 0002 Câu 33 a MaDV, AVG(Luong) c a đ n v có trung bình l nh nh t c a đ n v có mã đ n v 0003 PH N II- NGÔN NG SQL 53 ng l n h n l ng TH C HÀNH T NG H P - Ph n th c hành đ Aaccess - T t c thao tác ph i đ Query H c th c hi n h qu n tr c s d li u Microsoft c th c hi n b ng ngôn ng SQL thông qua ng d n th c hành M i yêu c u đ c ghi vào query Các b c thao tác v i Query nh sau: B c 1: M Microsoft Access B c 2: T o c s d li u (New/ Blank Database) Nh p tên c a c s d li u B c 3: T o truy v n (Query) m i - Kích chu t vào Create query in Design view - Ch n SQL - So n th o câu l nh SQL - Ghi đ t tên cho m i Query - Th c hi n câu l nh b ng cách nh n vào ! công c PH N II- NGÔN NG SQL 54 - Ch n Save, nh p tên c a Query - Chú ý: o T t c yêu c u c a th c hành đ u đ l nh c a SQL thông qua Query c th c hi n b ng o M i m t yêu c u đ c ghi l i m t Query theo tên c a câu h i Ví d : Cau1, Cau2,… t tên Query BÀI T P Th c hi n thao tác sau cho C s d li u dùng đ qu n lý m t c a hàng kinh doanh I NH NGH A D LI U T o c s d li u T o m t c s d li u dùng đ qu n lý c a hàng đ t tên QLCH bao g m b ng có m i quan h nh sau: PH N II- NGÔN NG SQL 55 C u trúc c a m i b ng nh sau: KHACH Tên thu c tính Ki u d li u Kích c Khn d ng Ma_khach Ký t Ch hoa +s Ten_kh Ký t 30 Ch đ u vi t hoa Diachi_kh Ký t 30 Ch đ u vi t hoa Tên thu c tính Ki u d li u Kích c Khn d ng Ma_hang Ký t Ch hoa+s Ten_hang Ký t 15 Ch đ u vi t hoa Mota_hang Ký t 30 Ch đ u vi t hoa Don_vi Ký t 10 Ch th Tên thu c tính Ki u d li u Kích c Khuôn d ng So_don Ký t Ch hoa +s Ma_khach Ký t 15 Ch hoa +s Ngay_don Ngày Dd/mm/yy Ki u d li u Kích c Khn d ng HANG ng DONHANG DONGDON Tên thu c tính PH N II- NGƠN NG SQL 56 So_don Ký t Ch hoa +s Ma_hang Ký t Ch hoa +s So_luongd S S nguyên Tên thu c tính Ki u d li u Kích c Khuôn d ng So_phieu Ký t Ch hoa +s Ma_khach Ký t Ch hoa +s Ngay_giao Ngày 30 Dd/mm/yy Noi_giao Ký t 30 Tong_tien S PHIEUGIAO S th c DONGPHIEU Tên thu c tính Ki u d li u Kích c Khn d ng So_phieu Ký t Ch hoa+ s Ma_hang Ký t Ch hoa + s Don_gia S S th c So_luonggi S S th c S a đ i c u trúc: Thêm m t thu c tính: - Trong b ng KHACH, thêm m t thu c tính SoThich nh m l u vào b ng KHACH s thích c a khách hàng - Trong b ng HANG, thêm hai thu c tính NoiCungCap NoiSanXuat nh m l u vào b ng HANG thông tin v n i cung c p hàng hóa n i s n xu t chúng Thay đ i ki u c a m t thu c tính - Trong b ng KHACH, thay đ i ki u d li u cho tr Text thành ki u Memo ng SoThich, t ki u - Trong bang HANG, thay đ i ki u d li u cho tr ki u Text thành ki u Number ng NoiCungCap, t Xóa m t thu c tính - Trong b ng HANG, xóa thu c tính NoiCungCap NoiSanXuat - Trong b ng KHACH, xóa thu c tính SoThich II QU N TR D PH N II- NGÔN NG SQL LI U 57 Thêm giá tr vào dòng c a b ng - Thêm vào b ng KHACH giá tr nh sau: KHACH Ma_khach Ten_kh K001 Minh Th K002 Nguy n Liên Dung K003 Ph m Hoàng Nhung - diachi_kh i h c Qu c Gia BNC i h c Th y L i Thêm vào b ng DONHANG giá tr nh sau: DONHANG - so_don DH001 Ma_khach K001 ngay_don 3/22/2002 DH002 DH003 K001 K002 7/13/2003 12/24/2002 Thêm vào t t c b ng, m i b ng m t s b giá tr phù h p Chú ý: Hãy th tr ng h p thêm ma_khach K0010 vào b ng DONHANG k t qu th nào? T i sao? Thêm giá tr cho m t s thu c tính - Thêm giá tr vào b ng KHACH đ đ c giá tr nh sau: KHACH Ma_khach K001 Ten_kh Diachi_kh Minh Th i h c Qu c Gia K002 Nguy n Liên Dung BNC K003 Ph m Hoàng Nhung K004 Tr nh H ng C K005 Nguy n V n H i i h c Th y L i ng - Thêm giá tr vào b ng HANG đ đ i h c Th y L i c giá tr nh sau: HANG ma_hang ten_hang Mota_hang don_vi H001 Hoa loa kèn Hoa tr ng, to Bông H002 Hoa h ng Nhi u mau Bông H003 Hoa lan Cành Xóa hàng - Xóa m t hàng có ma_hang = ‘H001’ b ng HANG - Xóa t t c khách hàng có Diachi_kh = ‘ KHACH - Xóa khách hàng có tên Tr nh H ng C PH N II- NGÔN NG SQL 58 ng i h c Th y L i ‘ b ng S a đ i giá tr c a m t hàng - S a đ i đ a ch c a khách hàng thành đ a ch m i v i ma_khach K002 - S a đ i t t c tên hàng “Hoa lan” thành “Hoa phong lan” mô t hàng “Hàng nh p kh u t L t” III CÁC L NH TRUY V N D i h c Qu c Gia LI U Xem toàn b n i dung c a b ng KHACH Xem toàn b n i dung c a b ng HANG Xem toàn b n i dung c a b ng DONHANG a Tên a ch c a t t c Khách hàng b ng KHACH a Tên hàng, Mô t hàng b ng HANG n v tính c a t t c m t hàng a t t c đ n v tính dùng đ tính hàng hóa a t t c tên hàng b ng HANG a t t c đ a ch c a khách hàng a so_phieu, ma_hang, don_gia, soluonggi Thành ti n (don_gia*so_luong) c a t t c hàng b ng PHIEU_GIAO 10 a so_phieu, ma_hang, don_gia, soluonggi Thành ti n (don_gia*so_luong), s d ng bí danh la thanh_tien c a t t c hàng b ng PHIEU_GIAO 11 a t t c giá tr c a b ng HANG theo th t gi m d n c a ma_hang 12 a t t c giá tr c a b ng PHIEUGIAO theo th t t ng d n (gi m d n) c a t ng ti n (tong_tien) 13 a t t c khách hàng có đ a ch KHACH 14 a So_phieu, Ma_khach b ng PHIEUGIAO v i u ki n Tong_ tien>=100.000, s p x p theo u ki n gi m d n c a Tong_tien 15 a ten_hang, mota_hang c a nh ng hàng hóa có don_vi đ theo b ng HANG 16 a danh sách b n ghi bao g m so_phieu, ma_khach, ngay_giao b ng PHIEUGIAO v i u ki n Noi_giao Hà N i Tong_tien>50.000 PH N II- NGÔN NG SQL 59 i h c Qu c Gia b ng c tính 17 a danh sách b n ghi bao g m Ma_khach, Ten_khach b ng KHACH v i u ki n đ a ch c a khách i h c Qu c Gia ho c i h c Th y L i 18 a nh ng m t hàng b ng HANG có đ n v tính Bơng, Cành ho c Bó 19 a danh sách nh ng khách hàng (Ma_khach, Tong _tien) n m b ng PHIEUGIAO có Noi_giao n m s đ a m sau: Hà N i, H Chí Minh, H i Phòng 20 a t t c nh ng thông tin b ng PHIEUGIAO v i u ki n tong_tien n m kho ng t 100.000 đ n 500.000 21 a ma_kh, ten_kh b ng KHACH c a nh ng khách hàng có h Nguy n 22 m s l n mua hàng c a khách hàng có ma_kh K001 b ng PHIEUGIAO Thu c tính m i đ c đ t tên SoLanMua 23 Tính t ng ti n trung bình c a m i PHIEUGIAO Thu c tính m i đ c đ t tên TrungBinhPG 24 Tính t ng ti n b ng PHIEUGIAO c a nh ng khách hàng có ma_khach = ‘K002’ 25 Tính t ng s khách hàng b ng KHACH có đ a ch (diachi_KH) i h c Th y L i 26 a ma_khach, ngay_giao, noi_giao b ng PHIEUGIAO có tong_tien toán l n nh t 27 a ma_khach, ngay_giao, noi_giao b ng PHIEUGIAO có tong_tien tốn nh nh t PH N II- NGÔN NG SQL 60 TÀI LI U THAM KH O Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., AddisonWesley Ti n ích Book Online c a SQL Server 2000 Ti n ích Help c a Microsoft Access 2000 Ti n ích Help c a Oracle 9i Nguy n V n V , SQL2, NXB Th ng kê Elmasri & Navathe: Fundamentals of Database Systems, International Edition PH N II- NGÔN NG SQL 61 ... - Ngôn ng SQL đ PH N II- NGÔN NG SQL SQL - T o b ng HOCSINH S d ng l nh SELECT Select TenHS, TB From HOCSINH Where TB>=5.0; c s d ng r t r ng rãi H qu n tr c s d li u - SQL đ c chia lo i: SQL. .. truy c p b ng SQL h u h t theo chu n ANSI 1.3 c m c a SQL - Ngôn ng g n v i ngôn ng t nhiên (ti ng Anh) - SQL ngôn ng phi c u trúc, t c l nh c a SQL ng i s d ng CH C N đ a yêu c u h th ng CÁI GÌ... KH O 61 PH N II- NGÔN NG SQL Ch ng GI I THI U 1.1 L ch s phát tri n SQL (Structured Query Language, đ c "sequel") t p l nh truy xu t CSDL quan h Ngôn ng SQL đ c IBM s d ng đ u tiên