Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
23,92 MB
Nội dung
TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ KHOA CÔNG NGHỆ THÔNG TIN Chương 11 Truy liệu thông qua SQL SQL - Structured Query Language - Ngôn ngữ truy vấn liệu có cấu trúc Cách viết SQL chuẩn có dấu ; cuối câu SQL FoxPro tuân theo luật viết lệnh Foxpro Ví dụ: SQL chuẩn SQL Foxpro SELECT * FROM HSCANBO; SELECT *; FROM HSCANBO Các thuật ngữ: Table: Tệp CSDL Row: ghi Col: Trường liệu Chương 11 Truy liệu thông qua SQL Tạo tệp CSDL vào liệu Truy vấn liệu đơn giản Kết xuất tệp theo thứ tự bỏ ghi trùng Các hàm SQL Tính tổng phận JOIN UNION: liên kết liệu Các câu truy vấn liệu lồng Ghi kết vào tệp hay in máy in Chương 11 Truy liệu thông qua SQL Tạo tệp CSDL vào liệu 1.1 Tạo tệp CSDL Lệnh: CREATE TABLE ( [([,])][, [([,])] ]) Giải thích: : tên tệp CSDL muốn tạo : tên trường thứ i [([,])]: Là kiểu độ rộng trường thứ i quy định sau: C(X)- Kiểu ký tự với độ dài X D - Kiểu ngày L - Kiểu Logic N(X,Y) - Kiểu số với độ rộng X phần thập phân Y Chương 11 Truy liệu thông qua SQL Tạo tệp CSDL vào liệu 1.1 Tạo tệp CSDL Ví dụ: CREATE TABLE HSCB (MSCB C(4), HD C(18), TEN C(7), NSINH D, HSL N(4,2), TDVH N(2), GD L) CREA TABL HOSO (SBD N(4),HVT C(25)) CREA TABL FACHBT (SBD N(4), FACH C(2)) CREA TABL DIEMBT(FACH C(2),DIEM N(5,2)) Chương 11 Truy liệu thông qua SQL Tạo tệp CSDL vào liệu 1.2 Vào liệu: Lệnh: INSERT INTO [()] VALUES () Giải thích: Lệnh chắp vào ghi Nếu tùy chọn phải vào liệu cho tất trường, có vào liệu cho trường liệt kê danh sách danh sách giá trị gán cho trường tương ứng theo thứ tự thứ tự trường tệp tùy chọn Ví dụ: INSERT INTO HSCANBO (MSCB, HD, TEN) VALUES (‘NV01’,’TRAN VAN’,’DUNG’) INSERT INTO DIEMBT VALUES (‘X4’,9.5) Chương 11 Truy liệu thông qua SQL Truy vấn liệu đơn giản 2.1 Chọn tệp CSDL trường 2.2 Chọn ghi Chương 11 Truy liệu thông qua SQL Truy vấn liệu đơn giản 2.1 Chọn tệp CSDL trường Lệnh: SELECT FROM Giải thích: Lệnh hiển thị lên hình nội dung Nếu tùy chọn thay dấu * tất trường hiển thị, viết tường minh trường liệt kê danh sách hiển thị Ví dụ: SELE * FROM HSCANBO SELE MSCB,HD,TEN,HSL FROM HSCANBO Chương 11 Truy liệu thông qua SQL Truy vấn liệu đơn giản 2.2 Chọn ghi Để chọn ghi tệp CSDL thỏa mãn điều kiện ta thêm vào lệnh tùy chọn sau: WHERE Giải thích: - Với tuỳ chọn bổ sung vào lệnh có ghi thỏa mãn điều kiện chọn - dạng sau: * Hai biểu thức loại (Số, Ký tự, Ngày) quan hệ với phép toán Logic sau: = # khác > lớn != khác < nhỏ khác >= lớn !> không lớn 3 Chương 11 Truy liệu thông qua SQL Kết xuất tệp theo thứ tự bỏ ghi trùng 3.1 Kết xuất theo thứ tự: Muốn ghi tệp CSDL xuất theo thứ tự ta bổ sung vào lệnh tuỳ chọn: ORDER BY [ASC|DESC][, [ASC|DESC] ] Giải thích: Các ghi xuất theo thứ tự ưu tiên trường 1, trường 2, Nếu có tùy chọn ASC theo thứ tự tăng dần DESC giảm dần Ví dụ: SELE * FROM HSCANBO ORDER BY TEN, HD SELE * FROM HSCANBO ORDER BY HSL DESC Chương 11 Truy liệu thông qua SQL Kết xuất tệp theo thứ tự bỏ ghi trùng 3.2 Chỉ ghi có giá trị trường: Muốn ghi tệp CSDL có giá trị trường xuất ghi ta bổ sung vào tên sau lệnh SELECT tuỳ chọn DISTINCT Ví dụ: SELECT DISTINCT HSL FROM HSCANBO Chương 11 Truy liệu thông qua SQL Các hàm SQL 4.1 Hàm COUNT() Đếm số lượng ghi Các mẫu lệnh SELECT COUNT(*) FROM HSCANBO Đếm số lượng ghi tệp HSCANBO SELECT COUNT(MSCB) FROM HSCANBO Đếm số lượng ghi tệp HSCANBO có MSCB không rỗng SELECT COUNT(DISTINCT HSL) FROM HSCANBO Đếm số lượng loại hệ số lương tệp HSCANBO SELECT COUNT(MSCB) FROM HSCANBO WHERE HSL=3.62 Đếm số lượng ghi tệp HSCANBO có HSL=3.62 Chương 11 Truy liệu thông qua SQL Các hàm SQL 4.2 Các hàm AVG(), MIN(), MAX(), SUM() Các hàm sử dụng tương tự không sử dụng DISTINCT MAX MIN Ví dụ: SELECT AVG(HSL), MAX(HSL), MIN(HSL) FROM HSCANBO Chương 11 Truy liệu thông qua SQL Tính tổng phận Để tính tổng phận sử dụng hai tùy chọn GROUP BY HAVING Mẫu lệnh SELECT KHOA, SUM(TONG) FROM BLUONG GROUP BY KHOA Tính tổng phận tổng lương theo phòng khoa SELECT KHOA, SUM(HSL*290000) FROM BLUONG GROUP BY KHOA HAVING (HSL*290000)>600000 Tính tổng phận tổng lương theo phòng khoa với điều kiện HSL*290000>600000 Ngoài dùng kết hợp với tùy chọn WHERE SELECT KHOA, SUM(HSL*290000) FROM BLUONG WHERE PCTN>0 GROUP BY KHOA HAVING (HSL*290000)>600000 Chương 11 Truy liệu thông qua SQL JOIN UNION: liên kết liệu 6.1 Liên kết liệu Để liên kết liệu nhiều tệp CSDL ta mở rộng lệnh SELECT sau: SELECT [*|.[, . ]] FROM [, ] WHERE * bí danh tệp i * : Đây điều kiện để kết nối tệp Chương 11 Truy liệu thông qua SQL JOIN UNION: liên kết liệu 6.1 Liên kết liệu Mẫu lệnh SELECT HD.SHHD,HD.MSHH, DM.TENH, HD.SL,DM.DGIA FROM HOADON HD, DMHANG DM WHERE HD.MSHH=DM.MSHH Liên kết hai tệp HOADON.DBF DMHANG.DBF với điều kiện ghi MSHH SELECT HS.SBD,HS.HVT, FA.FACH, DI.DIEM FROM HOSO HS, FACHBT FA, DIEMTHI DI WHERE HS.SBD=FA.SBD AND FA.FACH=DI.FACH Liên kết ba tệp HOSO.DBF, FACHBT.DBF DIEMTHI.DBF với điều kiện ghi hai tệp HOSO.DBF, FACHBT.DBF SBD hai tệp FACHBT.DBF DIEMTHI.DBF FACH Chương 11 Truy liệu thông qua SQL JOIN UNION: liên kết liệu 6.2 Bổ sung ghi: Với tệp CSDL có cấu trúc giống ta nối liền ghi nhiều tệp tùy chọn UNION Mẫu lệnh: SELECT * FROM HOSO UNION SELECT * FROM HS1 UNION SELECT * FROM HS2 Chương 11 Truy liệu thông qua SQL Các câu truy vấn liệu lồng Các câu truy vấn có câu truy vấn phụ nằm tùy chọn WHERE Như kết câu truy vấn sử dụng để thực câu truy vấn khác Mẫu lệnh: SELECT * FROM DMHANG WHERE MSHH = (SELECT MSHH FROM HOADON WHERE SL>=50) Liệt kê mặt hàng (đầy đủ thuộc tính) mà bán hoá đơn với số lượng lớn 50 Chương 11 Truy liệu thông qua SQL Ghi kết vào tệp hay in máy in * Để đưa kết vào tệp ta đưa tuỳ chọn TO FILE * Để đưa kết máy in ta đưa tuỳ chọn TO PRINT [...]... qua SQL 3 Kết xuất tệp theo thứ tự hoặc bỏ bản ghi trùng 3.2 Chỉ hiện một bản ghi có một giá trị trường: Muốn các bản ghi của một tệp CSDL có cùng một giá trị trường nào đó chỉ xuất hiện một bản ghi ta sẽ bổ sung vào tên của nó sau lệnh SELECT tuỳ chọn DISTINCT Ví dụ: SELECT DISTINCT HSL FROM HSCANBO Chương 11 Truy vẫn dữ liệu thông qua SQL 4 Các hàm SQL 4.1 Hàm COUNT() Đếm số lượng các bản ghi Các... lượng các loại hệ số lương trong tệp HSCANBO SELECT COUNT(MSCB) FROM HSCANBO WHERE HSL=3.62 Đếm số lượng các bản ghi trong tệp HSCANBO có HSL=3.62 Chương 11 Truy vẫn dữ liệu thông qua SQL 4 Các hàm SQL 4.2 Các hàm AVG(), MIN(), MAX(), SUM() Các hàm này được sử dụng tương tự như trên nhưng không sử dụng DISTINCT đối với MAX và MIN Ví dụ: SELECT AVG(HSL), MAX(HSL), MIN(HSL) FROM HSCANBO Chương 11 Truy vẫn... HAVING (HSL*290000)>600000 Chương 11 Truy vẫn dữ liệu thông qua SQL 6 JOIN và UNION: liên kết dữ liệu 6.1 Liên kết dữ liệu Để liên kết dữ liệu trên nhiều tệp CSDL ta sẽ mở rộng lệnh SELECT như sau: SELECT [*|.[, . ]] FROM [, ] WHERE * là bí danh của tệp i * : Đây là điều kiện để kết nối các tệp Chương 11 Truy vẫn dữ liệu thông... và hai tệp FACHBT.DBF và DIEMTHI.DBF bằng nhau về FACH Chương 11 Truy vẫn dữ liệu thông qua SQL 6 JOIN và UNION: liên kết dữ liệu 6.2 Bổ sung bản ghi: Với các tệp CSDL có cấu trúc giống nhau ta có thể nối liền nhau các bản ghi của nhiều tệp bằng tùy chọn UNION Mẫu lệnh: SELECT * FROM HOSO UNION SELECT * FROM HS1 UNION SELECT * FROM HS2 Chương 11 Truy vẫn dữ liệu thông qua SQL 7 Các câu truy vấn dữ.. .Chương 11 Truy vẫn dữ liệu thông qua SQL 2 Truy vấn dữ liệu đơn giản 2.2 Chọn các bản ghi Ví dụ: SELE * FROM HSCANBO WHERE HSL IN (2.97,3.62) SELE * FROM HSCANBO WHERE MSCB LIKE “NV ” SELE * FROM HSCANBO WHERE HD LIKE “%VAN%” SELE * FROM HSCANBO WHERE TDVH BETWEEN 8 AND 10 SELE * FROM HSCANBO WHERE MSCB LIKE “NV ” AND HSL>3 Chương 11 Truy vẫn dữ liệu thông qua SQL... bản ghi của một tệp CSDL xuất hiện theo một thứ tự nào đó ta sẽ bổ sung vào lệnh tuỳ chọn: ORDER BY [ASC|DESC][, [ASC|DESC] ] Giải thích: Các bản ghi sẽ xuất hiện theo thứ tự ưu tiên trường 1, trường 2, Nếu có tùy chọn ASC thì được sắp theo thứ tự tăng dần còn DESC là giảm dần Ví dụ: SELE * FROM HSCANBO ORDER BY TEN, HD SELE * FROM HSCANBO ORDER BY HSL DESC Chương 11 Truy vẫn dữ liệu... vấn khác Mẫu lệnh: SELECT * FROM DMHANG WHERE MSHH = (SELECT MSHH FROM HOADON WHERE SL>=50) Liệt kê các mặt hàng (đầy đủ các thuộc tính) mà đã bán trên mỗi hoá đơn với số lượng lớn hơn hoặc bằng 50 Chương 11 Truy vẫn dữ liệu thông qua SQL 8 Ghi kết quả vào tệp hay in ra máy in * Để đưa kết quả vào tệp ta đưa ra tuỳ chọn TO FILE * Để đưa kết quả ra máy in ta đưa ra tuỳ chọn TO PRINT .. .Chương 11 Truy liệu thông qua SQL SQL - Structured Query Language - Ngôn ngữ truy vấn liệu có cấu trúc Cách viết SQL chuẩn có dấu ; cuối câu SQL FoxPro tuân theo luật viết lệnh Foxpro. .. VALUES (‘X4’,9.5) Chương 11 Truy liệu thông qua SQL Truy vấn liệu đơn giản 2.1 Chọn tệp CSDL trường 2.2 Chọn ghi Chương 11 Truy liệu thông qua SQL Truy vấn liệu đơn giản 2.1 Chọn tệp CSDL trường Lệnh:... tệp CSDL muốn tạo : tên trường thứ i [([,])]: Là kiểu độ rộng trường thứ i quy định sau: C(X )- Kiểu ký tự với độ dài X D - Kiểu ngày L - Kiểu Logic N(X,Y) -