1. Trang chủ
  2. » Giáo án - Bài giảng

Cơ sở dữ liệu ngôn ngữ SQL phạm thị hoàng nhung phần II

61 331 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 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

Ngày đăng: 15/02/2017, 14:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN