Bài giảng Truy vấn dữ liệu

pdf 39 trang hapham 2250
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Truy vấn dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_truy_van_du_lieu.pdf

Nội dung text: Bài giảng Truy vấn dữ liệu

  1. A. GiỚI THIỆU : 1.Công dụng : Cho phép người sử dụng thực hiện các thao tác rút trích, chọn lựa dữ liệu hoặc cập nhật dữ liệu (thêm, sửa, xoá) trên 1 bảng hay nhiều bảng dữ liệu thông qua trình ứng dụng hỗ trợ của Access hay ngôn ngữ truy vấn SQL. Bài 02 : Truy vấn dữ liệu bằng SQL 2 10/25/2008 1 Create PDF files without this message by purchasing novaPDF printer (
  2. A. GiỚI THIỆU : 2. Cách tạo Truy vấn : • Cách 1 : Dùng cú pháp của ngôn ngữ truy vấn SQL ( Structure Query Language ) • Cách 2 : Dùng hổ trợ của Access thông qua trình ứng dụng QBE ( Query by Example) Bài 02 : Truy vấn dữ liệu bằng SQL 3 10/25/2008 A. GiỚI THIỆU : 3. Các dạng truy vấn : - Truy vấn chọn lọc (Select ) o Chọn lọc Select Query o Chọn lọc có thống kê Select Query Group by - Truy vấn hành động ( Action query ) o Thêm dữ liệu Append Query o Xóa Dữ liệu Delete Query o Cập nhập Update Query o Tạo bảng phụ Make Table Query - Truy vấn chéo CrossTab Query - Truy vấn lồng Sub Query Bài 02 : Truy vấn dữ liệu bằng SQL 4 10/25/2008 2 Create PDF files without this message by purchasing novaPDF printer (
  3. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: I. Thao tác : 1. Tạo Truy vấn : Sử dụng cú pháp SQL : B1 : Chọn thẻ Queries chọn New. B2 : Design View OK. B3 : Close Đóng cửa sổ Show Table. B4 : View SQL View. B5 : Cửa sổ soạn thảo cú pháp lệnh SQL. B6 : Nhập nôi dung cú pháp truy vấn. B7 : Thi hành câu lệnh SQL để kiểm tra. - View Datasheet View hay Click biểu tượng Run B8 : Lưu và đóng query. Bài 02 : Truy vấn dữ liệu bằng SQL 5 10/25/2008 B1 B2 B3 B5 & 6 SELECT MAKH, MASV, HOSV, TENSV, PHAI, HOCBONG FROM SV ORDER BY MAKH, MASV DESC B4 B7 Bài 02 : Truy vấn dữ liệu bằng SQL 6 10/25/2008 3 Create PDF files without this message by purchasing novaPDF printer (
  4. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: 2. Thi hành và chỉnh sửa truy vấn : a. Thi hành truy vấn : - Chọn Queries Open - View Datasheet View hay Click biểu tượng Run Khi đang thiết kế truy vấn. b. Chỉnh sửa truy vấn : - Chọn Queries Design - View Sql View ( cửa sổ SQL) hay Design View ( cửa sổ QBE ) Khi đang hiển thị kết quả truy vấn. Bài 02 : Truy vấn dữ liệu bằng SQL 7 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: II. Truy vấn chọn lọc – Select Query : 1. Cú pháp SQL : FROM [ Inner Join Table2 On Table1.Field = Table2.Field ] > [ WHERE ] [ ORDER BY ] • Select, From, Where , Order By là các từ khóa. • Các từ khóa bắt buộc viết đúng và không phân biệt chữ IN hay chữ thường • Các mệnh đề trong [ ] cho phép có hay không có. • Các mệnh đề trong bắt buộc phải có. Bài 02 : Truy vấn dữ liệu bằng SQL 8 10/25/2008 4 Create PDF files without this message by purchasing novaPDF printer (
  5. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: 2. Ý nghĩa : • Mệnh đề SELECT : Dùng liệt kê danh sách các Field_Name lấy dữ liệu từ các Table tham dự truy vấn. o Các Field_Name được phân cách bằng dấu “ ,” o Field_Name phải viết đúng tên và phải có trong cấu trúc các Table tham dự truy vấn. o Nếu 1 Field_Name có trong nhiều Table tham dự truy vấn Cần xác định o [ As ] Name Khi khai báo tên hiển thị cho 1 biểu thức. Tên mới không được trùng Field_Name Ví dụ : HOSV & “ “ & TENSV AS HOTEN Bài 02 : Truy vấn dữ liệu bằng SQL 9 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: 2. Ý nghĩa (tt) : • Mệnh đề FROM : Khai báo Table cung cấp dữ liệu để thực hiện truy vấn. o Table_Name phải viết đúng tên. o Nếu có nhiều Table tham dự truy vấn Phải dùng mệnh đề để thực hiện phép kết với Table2 thông qua Field quan hệ o Mệnh đề [ Inner Join Table2 On Table1.Field = Table2.Field ] dùng để mô tả quan hệ giữa 2 Table trong môi trường RelationShip. Bài 02 : Truy vấn dữ liệu bằng SQL 10 10/25/2008 5 Create PDF files without this message by purchasing novaPDF printer (
  6. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 1: Liệt kê danh sách các sinh viên. Thông tin gồm Mã Khoa, Mã sinh viên, Họ SV, Tên SV. SELECT MaKH, MaSV, HoSV, TenSV FROM DMSV Kết quả Bài 02 : Truy vấn dữ liệu bằng SQL 11 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 2 : Liệt kê danh sách các môn học. Thông tin gồm Mã môn học, Tên môn học , Số tiết. Cú pháp 1 : SELECT MAMH, TENMH, SOTIET FROM DMMH Cú pháp 2 : SELECT * FROM DMMH Bài 02 : Truy vấn dữ liệu bằng SQL 12 10/25/2008 6 Create PDF files without this message by purchasing novaPDF printer (
  7. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: 2. Ý nghĩa (tt) : o [ Tính chất ] Các từ khóa dùng để tùy chọn thể hiện kết quả  ALL hay * : Chọn tất cả các Field trong Table.  DISTINCT ROW : Lọai bỏ các dòng trùng lặp.  TOP : Chỉ định số dòng cần hiển thị. Bài 02 : Truy vấn dữ liệu bằng SQL 13 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: 2. Ý nghĩa (tt) : • Mệnh đề ORDER BY : - Dùng để sắp xếp dữ liệu dựa trên Field chỉ định. - 2 từ khóa được sử dụng : ASC ( Ascending ) tăng dần (mặc định) DESC ( Descending ) giảm dần. - Có thể sắp xếp thông tin dựa trên nhiều Field. Các Field cần sắp xếp được phân cách bằng dấu “,” - Các thông tin được thực hiện sắp xếp từ trái sang phải dựa trên mệnh đề ORDER Bài 02 : Truy vấn dữ liệu bằng SQL 14 10/25/2008 7 Create PDF files without this message by purchasing novaPDF printer (
  8. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 1: Liệt kê danh sách các sinh viên. Thông tin gồm: Mã KH, Mã SV, Họ SV, Tên SV. Sắp xếp tăng dần theo MaKH SELECT MaKH, MaSV, HoSV, TenSV FROM DMSV ORDER BY MaKH ASC Hoặc: SELECT MaKH, MaSV, HoSV, TenSV FROM SINHVIEN ORDER BY MaKH Bài 02 : Truy vấn dữ liệu bằng SQL 15 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 2: Sắp xếp trên nhiều Field. Liệt kê danh sách sinh viên và sắp xếp tăng dần theo Tên SV, giảm dần theo Họ SV. Thông tin gồm: Mã SV, Họ SV, Tên SV SELECT MaSV, HoSV, TenSV FROM DMSV ORDER BY TenSV, HoSV DESC Bài 02 : Truy vấn dữ liệu bằng SQL 16 10/25/2008 8 Create PDF files without this message by purchasing novaPDF printer (
  9. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 3: Sắp xếp dựa trên 1 biểu thức hàm. Liệt kê danh sách các sinh viên của khoa Anh Văn. Thông tin gồm Mã KH, Tên KH, Họ SV, Tên SV. Sắp xếp giảm dần theo Năm sinh SELECT DMSV.MaKH, Tenkhoa, HoSV, TenSV FROM DMSV Inner Join DMKHOA On DMSV.MaKH = DMKHOA.MaKH WHERE DMSV.MaKH = "AV" ORDER BY Year(NgaySinh) DESC Bài 02 : Truy vấn dữ liệu bằng SQL 17 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 4 : Sắp xếp dựa trên 1 biểu thức nối chuỗi Danh sách các sinh viên. Thông tin gồm Mã KH, Tên KH, Họ Tên SV. Sắp xếp giảm dần theo Họ tên SV SELECT DMSV.MaKH, Tenkhoa, HoSV & “ “ & TenSV AS HOTEN FROM DMSV Inner Join DMKHOA On DMSV.MaKH = DMKHOA.MaKH ORDER BY HoSV & “ “ & TenSV DESC Bài 02 : Truy vấn dữ liệu bằng SQL 18 10/25/2008 9 Create PDF files without this message by purchasing novaPDF printer (
  10. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: 2. Ý nghĩa (tt) : • Mệnh đề WHERE : Điều kiện lọc dữ liệu hiển thị khi truy vấn. o Đìêu kiện có thể là - 1 phép so sánh - 1 biểu thức điều kiện And , Or , Like, BetWeen. o Các Field xét điều kiện trong mệnh đề Where bắt buộc phải có trên các Table tham dự. o Field dùng làm điều kiện Where không nhất thiết phải có trên dòng SELECT Bài 02 : Truy vấn dữ liệu bằng SQL 19 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: * Các Qui ước kiểu dữ liệu sử dụng trong điều kiện: Kiểu chuỗi – Text: Phải được đặt trong dấu nháy đôi “ ” Ví dụ : MAKH = “AV” Kiểu số - Number: Các giá trị kiểu số không cần đặt trong dấu nháy đôi. Ví dụ : HOCBONG = 150000 Bài 02 : Truy vấn dữ liệu bằng SQL 20 10/25/2008 10 Create PDF files without this message by purchasing novaPDF printer (
  11. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: * Các Qui ước kiểu dữ liệu sử dụng trong điều kiện (tt): Kiểu thời gian – Date/Time: Phải theo các qui tắc sau  MM /DD/YYYY và đặt trong cặp dấu # #  hh:mm:ss và đặt trong cặp dấu “ “ Kiểu luận lý – Yes/No:  Yes tương ứng với giá trị -1 hoặc True  No tương ứng với giá trị 0 hoặc False Bài 02 : Truy vấn dữ liệu bằng SQL 21 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: * Các toán tử điều kiện : So sánh: >, >=, Toán tử so sánh gần đúng : Like Chỉ dành riêng cho kiểu chuỗi - 2 toán tử đại diện cơ bản : *, ? -Tập hợp đại diện nhóm ký tự : [a-m], [a, b, d], [a-e, g-k] Toán tử so sánh trong khoảng : BetWeen BetWeen Giá trị Min And Giá trị Max Ví dụ : HOCBONG BetWeen 100000 And 150000 Điều kiện kết hợp : AND, OR Bài 02 : Truy vấn dữ liệu bằng SQL 22 10/25/2008 11 Create PDF files without this message by purchasing novaPDF printer (
  12. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 1: Liệt kê danh sách sinh viên thuộc khoa Anh Văn. Thông tin gồm Mã SV, Họ SV , Tên SV. SELECT MaKH, MaSV, HoSV, TenSV FROM DMSV WHERE MaKH = “AV” Ví dụ 2: Liệt kê danh sách sinh viên thuộc khoa Anh Văn và khoa Tin Học. Thông tin gồm Mã SV, Họ SV , Tên SV. SELECT MaKH, MaSV, HoSV, TenSV FROM DMSV WHERE MaKH = “AV” Or Makh =“TH” Bài 02 : Truy vấn dữ liệu bằng SQL 23 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: * Các Hàm và toán tử chuỗi xử dụng : - Nối chuổi : & - Xử lý chuỗi: Len ,Left , Mid, Right - Xử lý thời gian: Now, Date Lấy ngày tháng hệ thống Windows Day, Month, Year - Thống kê: Sum, Count, Max, Min, Avg - Điều kiện: IIF( Điều kiện, Giá trị thực hiện khi điều kiện đúng, Giá trị thực hiện khi điều kiện sai ) Vi du : IIF ( [phai] = yes , “Nam”,”Nữ” ) Bài 02 : Truy vấn dữ liệu bằng SQL 24 10/25/2008 12 Create PDF files without this message by purchasing novaPDF printer (
  13. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 1: Field được chọn là một biểu thức nối chuỗi ( & ) Liệt kê danh sách sinh viên. Thông tin gồm Mã SV, Họ Tên SV , Phái, Ngày sinh, Mã Khoa. Cú pháp : SELECT MASV, HOSV & “ “ & TENSV AS HOTEN, PHAI, NGAYSINH, MAKH FROM DMSV Bài 02 : Truy vấn dữ liệu bằng SQL 25 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 2: Field được chọn là một biểu thức điều kiện ( IIF ) Liệt kê danh sách sinh viên. Thông tin gồm Mã SV, Họ Tên SV , Giới tính, Ngày sinh, Mã Khoa. ( Trong đó giới tính được thể hiện Nam, Nữ tùy theo giá trị True, False của Field Phai ) Cú pháp : SELECT MASV, HOSV & “ “ & TENSV AS HOTEN, IIF(PHAI = Yes, “Nam”,”Nữ”) AS GIOITINH , NGAYSINH, MAKH FROM DMSV Bài 02 : Truy vấn dữ liệu bằng SQL 26 10/25/2008 13 Create PDF files without this message by purchasing novaPDF printer (
  14. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 3 : Field được chọn là kết quả của 1 hàm Liệt kê danh sách sinh viên. Thông tin gồm Mã SV, Họ Tên SV , Ngày sinh, Mã Khoa. ( Trong đó Ngày sinh được là giá trị Ngày trong Field NGAYSINH) Cú pháp : SELECT MASV, HOSV & “ “ & TENSV AS HOTEN, DAY(NGAYSINH) AS NGAY_SINH , MAKH FROM DMSV Bài 02 : Truy vấn dữ liệu bằng SQL 27 10/25/2008 B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 4 : Dữ liệu được lấy từ nhiều Table Liệt kê danh sách sinh viên. Thông tin gồm Mã SV, Họ Tên SV , Ngày sinh, Mã Khoa, Tên Khoa. Cú pháp : SELECT MASV, HOSV & “ “ & TENSV AS HOTEN, NGAYSINH , DMSV.MAKH, TENKHOA FROM DMKH Inner Join DMSV On DMKH.MAKH = DMSV.MAKH Bài 02 : Truy vấn dữ liệu bằng SQL 28 10/25/2008 14 Create PDF files without this message by purchasing novaPDF printer (
  15. B. TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL: Ví dụ 5: Dữ liệu được lấy từ nhiều Table Liệt kê danh sách điểm thi của sinh viên. Thông tin gồm Mã khoa, Mã SV, Họ Tên SV , Ngày sinh, Mã Môn học, Tên môn học, Điểm. Cú pháp : SELECT MAKH, MASV, HOSV & “ “ & TENSV AS HOTEN, NGAYSINH , KETQUA.MAMH, TENMH, DIEM FROM ( DMSV Inner Join KETQUA On DMSV.MASV = KETQUA.MASV ) Inner Join DMMH On KETQUA.MAMH = DMMH.MAMH Bài 02 : Truy vấn dữ liệu bằng SQL 29 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 30 10/25/2008 15 Create PDF files without this message by purchasing novaPDF printer (
  16. C. TẠO TRUY VẤN BẰNG LƯỚI QBE : I. Truy vấn chọn lọc : 1. Thao tác : B1 : Chọn thẻ Queries chọn New B2 : Design View OK B3 : Chọn Table tham dự truy vấn trong cửa sổ Show Table Add B4 : Close Khi chọn đủ Table B5 : Drag chọn các Field cần truy vấn thả vào Lưới QBE B6 : Khai báo điều kiện truy vấn ( Nếu có ) B7 : Chọn lọai truy vấn ( Query Select Query ) B8 : Thi hành truy vấn để kiểm tra - View Datasheet View hay Click biểu tượng Run B9 : Lưu và đóng query Bài 02 : Truy vấn dữ liệu bằng SQL 31 10/25/2008 C. TẠO TRUY VẤN BẰNG LƯỚI QBE : 2. Thành phần lưới QBE : Vùng khai báo các Table Tham dự truy vấn Lưới truy vấn QBE Bài 02 : Truy vấn dữ liệu bằng SQL 32 10/25/2008 16 Create PDF files without this message by purchasing novaPDF printer (
  17. C. TẠO TRUY VẤN BẰNG LƯỚI QBE : 2. Thành phần lưới QBE (tt) : Field : Khai báo các FIeld hiển thị kết quả truy vấn Table : ( Mặc định ) Xác định các Table cung cấp Field Sort : Tùy chọn sắp xếp. Ascending / Descending Show : Tùy chọn hiển thị Field.  Hiển thị.  Không hiển thị ( Khi dùng làm điều kiện ) Criteria : Điều kiện lọc dữ liệu. Or : Điều kiện Hoặc dùng để lọc dữ liệu. Điều kiện cùng dòng trên lưới AND Điều kiện cùng cột trên lưới OR Bài 02 : Truy vấn dữ liệu bằng SQL 33 10/25/2008 C. TẠO TRUY VẤN BẰNG LƯỚI QBE : 3. Qui ước sử dụng lưới : • Field Khi khai báo tên mới chọ FIeld Cú pháp Tên mới : Biểu thức VD Ho ten : HOSV & “ “ &TENSV • Criteria Điều kiện khai báo phải theo qui ước Chuỗi, số , ngày. Có thể kết hợp các diều kiện bằng tóan tử AND, OR Khi sử dụng tên Field trong hàm xét điều kiện Tên Field phai đặt trong [ Field ] Bài 02 : Truy vấn dữ liệu bằng SQL 34 10/25/2008 17 Create PDF files without this message by purchasing novaPDF printer (
  18. C. TẠO TRUY VẤN BẰNG LƯỚI QBE : Ví dụ 1 : Danh sách sinh viên khoa Anh văn và Tin học. Thông tin gồm: Họ tên SV , Phái ,Mã KH, Tên Khoa. Bài 02 : Truy vấn dữ liệu bằng SQL 35 10/25/2008 C. TẠO TRUY VẤN BẰNG LƯỚI QBE : Ví dụ 2 : Danh sách sinh viên khoa có tên bắt đầu bằng ký tự T. Thông tin gồm: Họ tên SV , Giới tính ,Mã KH. Trong đó giới tính được thể hiện Nam / Nữ tùy theo giá trị Field Phai Bài 02 : Truy vấn dữ liệu bằng SQL 36 10/25/2008 18 Create PDF files without this message by purchasing novaPDF printer (
  19. C. TẠO TRUY VẤN BẰNG LƯỚI QBE : II. Truy vấn chọn lọc – Gom nhóm : 1. Thao tác : B1 : Chọn thẻ Queries chọn New B2 : Design View OK B3 : Chọn Table tham dự truy vấn trong cửa sổ Show Table Add B4 : Close Khi chọn đủ Table B5 : Drag chọn các Field cần truy vấn thả vào Lưới QBE B6 : Khai báo lưới Thống kê ( View Totals ) B7 : Khai báo điều kiện truy vấn ( Nếu có ) B8 : Chọn lọai truy vấn ( Query Select Query ) B9 : Thi hành truy vấn để kiểm tra - View Datasheet View hay Click biểu tượng Run B10 : Lưu và đóng query Bài 02 : Truy vấn dữ liệu bằng SQL 37 10/25/2008 C. TẠO TRUY VẤN BẰNG LƯỚI QBE : II. Truy vấn chọn lọc – Gom nhóm (tt) : 2. Thành phần lưới Total : Liệt kê các hàm thống kê được sử dụng - Group by : ( Mặc định ) Xác định Field gom nhóm. Các Field này không dùng hàm thống kê. - Sum , Count , Min , Max, AVG. - First, Last : Lấy dòng đầu hay cuối trong nhóm dữ liệu. - Expression : Khi Field thống kê sử dụng 1 biểu thức lồng nhiều cấp. Ví dụ : Sum ( IIF (phai = yes, 1 , 0) ) - Where : Khi sử dụng Field làm điều kiện lọc dữ liệu. Field sử dụng Where Không cho phép hiển thị ( Show ) Bài 02 : Truy vấn dữ liệu bằng SQL 38 10/25/2008 19 Create PDF files without this message by purchasing novaPDF printer (
  20. C. TẠO TRUY VẤN BẰNG LƯỚI QBE : Ví dụ : Danh sách Tổng số sinh viên theo từng Khoa. Thông tin gồm: Mã KH, Tên khoa , Số SV. Bài 02 : Truy vấn dữ liệu bằng SQL 39 10/25/2008 C. TẠO TRUY VẤN BẰNG LƯỚI QBE : III. Sử dụng Top N trên lưới QBE : Thao tác : B1 : Sau khi thực hiện chọn Field thể hiện ( Select Query / Select Query Group by ) B2 : Sắp xếp Field cần xác định lấy giá trị Min / Max Asc : Khi cần xác định Min Desc : Khi cần xác định Max B3 : Click chọn vào hộp thoai ALL B4 : Nhập vào 1 giá trị số N ( tương ứng N trong TOP ) B5 : Hiển thị để kiểm tra kết quả B6 : Lưu và đóng query Bài 02 : Truy vấn dữ liệu bằng SQL 40 10/25/2008 20 Create PDF files without this message by purchasing novaPDF printer (
  21. C. TẠO TRUY VẤN BẰNG LƯỚI QBE : III. Sử dụng Top N trên lưới QBE (tt): Ví dụ : Danh sách Khoa có đông sinh viên nhất. Thông tin gồm: Mã KH, Tên khoa , Số SV. Bài 02 : Truy vấn dữ liệu bằng SQL 41 10/25/2008 D. TRUY VẤN LỒNG – SUB QUERY : 1. Định nghĩa : Là các truy vấn mà trong đó điều kiện WHERE được thể hiện thông qua KẾT QUẢ của 1 truy vấn khác. Truy vấn dùng để lấy kết quả làm điều kiện được gọi là SUB QUERY 2. Qui ước cho SUB QUERY : Trong câu lệnh Select của Sub Query Chỉ được phép chọn 1 Field và Field đó chính là Field điều kiện. Câu lệnh Sub Query được khai báo trong dấu ( ) Bài 02 : Truy vấn dữ liệu bằng SQL 42 10/25/2008 21 Create PDF files without this message by purchasing novaPDF printer (
  22. D. TRUY VẤN LỒNG – SUB QUERY : 3. Các Tóan tử sử dụng : IN Liệt kê điều kiện có trong 1 danh sách kết quả. NOT IN Liệt kê điều kiện không có trong 1 danh sách kết quả. ALL So sánh với tất cả 4. Qui tắc viết : Xác định truy vấn SUB trước bằng cách dùng SQL hay QBE. Copy cú pháp SQL của SUB và làm điều kiện cho truy vấn chính. Bài 02 : Truy vấn dữ liệu bằng SQL 43 10/25/2008 Ví dụ : Danh sách các Sinh viên chưa thi các môn. Thông tin gồm: Mã SV, Họ tên Sv , Phái. SELECT MASV, HOSV & “ “ &TENSV AS HOTEN, PHAI FROM DMSV WHERE MASV Not In ( SELECT MASV FROM KETQUA ) Bài 02 : Truy vấn dữ liệu bằng SQL 44 10/25/2008 22 Create PDF files without this message by purchasing novaPDF printer (
  23. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) I. Giới thiệu : 1. Công dụng : Là các truy vấn mà khi thi hành sẽ tác động đến cơ sở dữ liệu như : Thêm, xóa, cập nhật mới giá trị, tạo bảng phụ . 2. Thực hiện : - Các truy vấn hành động chỉ thực hiện khi Run hay Open. -View DataSheet chỉ có tác dụng xem trước kết quả thi hành . 3. Các loại truy vấn hành động : - Make Table Query : Truy vấn tạo bảng phụ lưu kết quả tại thời điểm thi hành truy vấn. - Update Query : Truy vấn cập nhật giá trị trên các Record . - Delete Query : Truy vấn xóa mẫu tin trên Table. - Append Query : Truy vấn thêm mới mẫu tin vào Table. Bài 02 : Truy vấn dữ liệu bằng SQL 45 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) II . MAKE TABLE QUERY 1. SQL : Cú pháp : SELECT . INTO FROM . INNER JOIN . WHERE GROUP BY . HAVING ORDER BY . Ví dụ : SELECT * INTO SINHVIEN_KHOA_AV FROM SINHVIEN WHERE MAKH = “AV” Bài 02 : Truy vấn dữ liệu bằng SQL 46 10/25/2008 23 Create PDF files without this message by purchasing novaPDF printer (
  24. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) 2. QBE : B1 : Queries New Design View Ok B2 : Chọn Table tham dự truy vấn Add Close B3 : Chọn Filed lấy giá trị cho lưới QBE B4 : Thống kê theo nhóm, điều kiện truy vấn ( Nếu có ) B5 : Chọn Menu Query Make Table Query (Hộp thoại ) B6 : Khai báo tên Table NEW trong mục Tabel Name OK B7 : Lưu ( Chỉ thực hiện khi Run ( Query Run ) hay Open ) Bài 02 : Truy vấn dữ liệu bằng SQL 47 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) II . MAKE TABLE QUERY ( tt ) Chú ý : Tên TABLE NEW không được trùng với tên câu lệnh truy vấn và không được trùng tên Table trên Cơ sở dữ liệu Bài 02 : Truy vấn dữ liệu bằng SQL 48 10/25/2008 24 Create PDF files without this message by purchasing novaPDF printer (
  25. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) III. UPDATE QUERY 1. SQL : Cú pháp : UPDATE [ INNER JOIN TABLE ] SET Field1 = Value1 , , Field_n = Value_n WHERE Expression Ví dụ : UPDATE DMMH SET SOTIET = 60 WHERE MAMH = “05” Bài 02 : Truy vấn dữ liệu bằng SQL 49 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) III. UPDATE QUERY ( tt ) 2. QBE : B1 : Queries New Design View Ok B2 : Chọn Table tham dự truy vấn Add Close B3 : Chọn lọai truy vấn cập nhật ( Query Update Query ) B4 : Chọn Filed cần cập nhật trên lưới QBE B5 : Khai báo giá trị cập nhật trên dòng UPDATE TO của lưới QBE B6 : Điều kiện cập nhật (Nếu có ) B7 : Lưu ( Chỉ thực hiện cập nhật khi Run ( Query Run ) hay Open ) Bài 02 : Truy vấn dữ liệu bằng SQL 50 10/25/2008 25 Create PDF files without this message by purchasing novaPDF printer (
  26. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) III. UPDATE QUERY ( tt ) Chú ý : • Giá trị cập nhật có thể là 1 hàm • Các Field khi khai báo trong Hàm phải đặt trong [ ] • Giá trị cập nhật phải ghi theo đúng qui ước : Số , ngày, chuổi • Nếu không có điều kiện WHERE là cập nhật toàn Table Bài 02 : Truy vấn dữ liệu bằng SQL 51 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) Ví dụ 1 : Cập nhật số tiết của môn Văn phạm thành 45 tiết. UPDATE DMMH SET SOTIET = 45 WHERE MAMH ="05" Bài 02 : Truy vấn dữ liệu bằng SQL 52 10/25/2008 26 Create PDF files without this message by purchasing novaPDF printer (
  27. Ví dụ 2 : Tăng học bổng cho tất cả sinh viên khoa Anh văn thêm 100000 UPDATE DMSV SET HOCBONG = [HOCBONG]+100000 WHERE MAKH ="AV" Bài 02 : Truy vấn dữ liệu bằng SQL 53 10/25/2008 Ví dụ 3 : Cộng thêm 5 điểm cho môn thi Trí tuệ nhân tạo đối với sinh viên khoa Anh văn. Điểm tối đa là 10. UPDATE DMSV INNER JOIN KETQUA ON DMSV.MASV = KETQUA.MASV SET DIEM = IIF ([DIEM]+5>10,10,[DIEM]+5) WHERE MAKH ="AV“ AND MAMH ="02" Bài 02 : Truy vấn dữ liệu bằng SQL 54 10/25/2008 27 Create PDF files without this message by purchasing novaPDF printer (
  28. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) IV. DELETE QUERY 1. SQL : Cú pháp : DELETE * FROM [ INNER JOIN TABLE ] WHERE Expression Ví dụ : DELETE * FROM KETQUA WHERE MAMH = “05” AND DIEM <= 3 Bài 02 : Truy vấn dữ liệu bằng SQL 55 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) 2. QBE : B1 : Queries New Design View Ok B2 : Chọn Table tham dự truy vấn Add Close B3 : Chọn lọai truy vấn cập nhật ( Query Delete Query ) B4 : Chọn * trên Table cần xóa Drag the vào lưới QBE B5 : Khai báo trên dòng DELETE của lưới QBE để xác định Table xóa hay Field là điều kiện xóa • Các chức năng của dòng DELETE • FROM xác định Record xóa trên Table • WHERE khi sử dụng Field làm điều kiện xóa B6 : Điều kiện xóa (Nếu có ) B7 : Lưu ( Chỉ thực hiện xóa khi Run ( Query Run ) hay Open ) Bài 02 : Truy vấn dữ liệu bằng SQL 56 10/25/2008 28 Create PDF files without this message by purchasing novaPDF printer (
  29. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) IV. DELETE QUERY Chú ý : • Khi thực hiện xóa sẽ tác động lên Record. • Không thực hiện xóa 1 Field • Cú pháp * Xóa mẫu tin ( Record ) • Nếu không có điều kiện WHERE là xóa toàn bộ Record có trên Table Bài 02 : Truy vấn dữ liệu bằng SQL 57 10/25/2008 Ví dụ 1 : Xóa các sinh viên trong Table_Delete ( bảng phụ) không có học bổng hoặc học bổng = 0. DELETE * FROM TABLE_DELETE WHERE HOCBONG = 0 Bài 02 : Truy vấn dữ liệu bằng SQL 58 10/25/2008 29 Create PDF files without this message by purchasing novaPDF printer (
  30. Ví dụ 2 : Xóa các sinh viên Nam khoa Tin học trong Table_Delete. DELETE * FROM TABLE_DELETE WHERE PHAI = Yes AND TENKHOA = “Tin Học” Bài 02 : Truy vấn dữ liệu bằng SQL 59 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) V. APPEND QUERY 1. SQL : Cú pháp 1 : Thêm mới 1 mẫu tin được chỉ định INSERT INTO TABLE ( Field1, , Field_n) SELECT Value1, , Value_n Ví dụ : Thêm mới 1 môn học gồm các thông tin như sau : Mã môn học : 06 ; Tên môn học : Xử lý Ảnh; Số tiết : 45 INSERT INTO DMMH (MAMH, TENMH, SOTIET) SELECT “06”, “Xử lý Ảnh”, 45 Bài 02 : Truy vấn dữ liệu bằng SQL 60 10/25/2008 30 Create PDF files without this message by purchasing novaPDF printer (
  31. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) V. APPEND QUERY 1. SQL (tt)) : Cú pháp 2 : Thêm mới n mẫu tin và dữ liệu được lấy từ 1 Table khác INSERT INTO TABLE ( Field1, , Field_n) SELECT Field , FROM TABLE_x WHERE Bài 02 : Truy vấn dữ liệu bằng SQL 61 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) Ví dụ : Thêm vào bảng Kết quả gồm các thông tin sau : Mã sinh viên : Lấy tất cả sinh viên khoa Tin Học ; Mã môn học : 06 ; Điểm thi : 7 INSERT INTO KETQUA (MASV, MAMH,DIEM) SELECT DMSV.MASV, “06”,7 FROM DMSV WHERE MAKH = “TH” Chú ý : • Các Field khi khai báo trong Hàm phải đặt trong [ ] • Giá trị thêm mới phải ghi theo đúng qui ước : Số , ngày, chuổi Bài 02 : Truy vấn dữ liệu bằng SQL 62 10/25/2008 31 Create PDF files without this message by purchasing novaPDF printer (
  32. E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) V. APPEND QUERY ( tt ) 2. QBE : Thêm mới 1 mẫu tin B1 : Queries New Design View Ok B2 : Close B3 : Chọn lọai truy vấn thêm mới ( Query Append Query ) B4 : Chỉ định Table được thêm mới trong cửa sổ Append Table B5 : Khai báo trên dòng FIELD của lưới QBE các giá trị thêm mới. B6 : Chọn để xác định Field được nhận giá trị thêm mới trên dòng APPEND TO của lưới QBE B7 : Điều kiện (Nếu có ) B8 : Lưu ( Chỉ thực hiện thêm khi Run ( Query Run ) hay Open và chỉ thực hiện được 1 lần) Bài 02 : Truy vấn dữ liệu bằng SQL 63 10/25/2008 E. TRUY VẤN HÀNH ĐỘNG ( ACTION QUERY ) V. APPEND QUERY ( tt ) 2. QBE : Thêm mới n mẫu tin với dữ liệu lấy từ Table khác B1 : Queries New Design View Ok B2 : Chọn Table cung cấp dữ liệu thêm mới Close B3 : Chọn lọai truy vấn thêm mới ( Query Append Query ) B4 : Chỉ định Table được thêm mới trong cửa sổ Append Table B5 : Khai báo trên dòng FIELD của lưới QBE các giá trị thêm mới. B6 : Chọn để xác định Field được nhận giá trị thêm mới trên dòng APPEND TO của lưới QBE B7 : Điều kiện (Nếu có ) B8 : Lưu ( Chỉ thực hiện thêm khi Run ( Query Run ) hay Open và chỉ thực hiện được 1 lần) Bài 02 : Truy vấn dữ liệu bằng SQL 64 10/25/2008 32 Create PDF files without this message by purchasing novaPDF printer (
  33. Ví dụ 1 : Thêm mới 1 môn học gồm các thông tin . Mã môn học : 06, Tên môn học : Xử lý Ảnh , Số tiết 45 INSERT INTO DMMH (MAMH, TENMH, SOTIET) SELECT “06”, “Xử lý Ảnh”, 45 Bài 02 : Truy vấn dữ liệu bằng SQL 65 10/25/2008 Ví dụ 1 : Thêm vào bảng Kết quả gồm các thông tin . Mã sv : lấy tất cả sinh viên khoa Tin học, Mã môn học : 06 , Điểm thi : 7 INSERT INTO KETQUA (MASV, MAMH,DIEM) SELECT DMSV.MASV, “06”,7 FROM DMSV WHERE MAKH = “TH” Bài 02 : Truy vấn dữ liệu bằng SQL 66 10/25/2008 33 Create PDF files without this message by purchasing novaPDF printer (
  34. F. THAM SỐ TRUYỀN ( PARAMETER ) I. Công dụng : - Tăng tính linh động cho truy vấn. - Có thể sử dụng lại nhiều lần. II. Cách tạo : - Tham số truyền được khai báo tại vị trí cần sử dụng ( Criteria , Field, Update to , ) - Tên tham số nên có tính GỢI Ý. - Tên tham số đặt trong [ ] - Không được trùng tên Field , Table. Bài 02 : Truy vấn dữ liệu bằng SQL 67 10/25/2008 F. THAM SỐ TRUYỀN ( PARAMETER ) III. Giao diện khi thi hành : GIÁ TRỊ THAM SỐ CẦN ĐƯA VÀO IV. Qui ước : - Ngày tháng Nhập theo qui ước Windows - Giá trị Lý luận Yes/ No, True/False 0 / -1 Bài 02 : Truy vấn dữ liệu bằng SQL 68 10/25/2008 34 Create PDF files without this message by purchasing novaPDF printer (
  35. F. THAM SỐ TRUYỀN ( PARAMETER ) Ví dụ 1 : Cho biết danh sách sinh viên của 1 khoa, gồm các thông tin MaSV, Hoten,Gioitinh. Trong đó Makh cần xem sẽ được nhập khi thi hành truy vấn 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 69 F. THAM SỐ TRUYỀN ( PARAMETER ) Khi thi hành : SELECT MASV, [HOSV] & " " & [TENSV] AS HOTEN, PHAI, TENKHOA FROM DMKHOA INNER JOIN DMSV ON DMKHOA.MAKHOA = DMSV.MAKH WHERE MAKHOA = [Ma khoa can xem] 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 70 35 Create PDF files without this message by purchasing novaPDF printer (
  36. F. THAM SỐ TRUYỀN ( PARAMETER ) Ví dụ 2 : Cập nhật số tiết cho môn Xử lý Ảnh với giá trị của số tiết sẽ được nhập khi thi hành truy vấn 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 71 F. THAM SỐ TRUYỀN ( PARAMETER ) Ví dụ 3 : Thêm mới 1 Sinh viên vào bảng, giá trị thêm mới của các Field sẽ được nhập khi thi hành truy vấn 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 72 36 Create PDF files without this message by purchasing novaPDF printer (
  37. G. TRUY VẤN CHÉO ( CROSSTAB QUERY ) I. Công dụng : - Thể hiện thông tin truy vấn theo dạng tham chiếu Dòng và Cột. II. Thao tác : 1. SQL : Cú pháp : TRANSFORM SELECT FROM . GROUP BY PIVOT Bài 02 : Truy vấn dữ liệu bằng SQL 73 10/25/2008 G. TRUY VẤN CHÉO ( CROSSTAB QUERY ) II. Thao tác ( tt ) : 2. QBE : B1 : Queries New Design View Ok B2 : Chọn Table tham dự truy vấn Add Close B3 : Chọn lọai truy vấn chéo ( Query CrossTab Query ) B4 : Chọn Field cần tham dự truy vấn. B5 : Khai báo trên dòng CrossTab của lưới QBE để xác định o Field thể hiện dòng Row Heading o Field thể hiện cột Column Heading o Field tham chiếu Value B6 : Điều kiện (Nếu có ) B7 : Hiển thị để kiểm tra. B8 : Lưu. 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 74 37 Create PDF files without this message by purchasing novaPDF printer (
  38. G. TRUY VẤN CHÉO ( CROSSTAB QUERY ) II. Thao tác ( tt ) : 3. Thành phần CrossTab : o Row Heading : Field lấy dữ liệu thể hiện thông tin theo từng dòng. Cho phép chọn nhiều Field o Column Heading Field lấy dữ liệu thể hiện thông tin trên tiêu đề cột. Chỉ được phép chọn 1 Field o Value Field lấy dữ liệu thể hiện thông tin khi tham chiếu dòng cột trên bảng kết quả. Chỉ được phép chọn 1 Field CHÚ Ý : Field được sử dụng làm Value Bắt buộc phải chọn 1 hàm thống kê trên dòng ToTals 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 75 G. TRUY VẤN CHÉO ( CROSSTAB QUERY ) Ví dụ 1 : Danh sách điểm theo môn của từng sinh viên. 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 76 38 Create PDF files without this message by purchasing novaPDF printer (
  39. G. TRUY VẤN CHÉO ( CROSSTAB QUERY ) Ví dụ 2 : Thống kê điểm, số môn đậu, số môn rớt của từng sinh viên. 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 77 10/25/2008 Bài 02 : Truy vấn dữ liệu bằng SQL 78 39 Create PDF files without this message by purchasing novaPDF printer (