1 / 40

Xác định dữ liệu tồn tại trong bảng

Xác định dữ liệu tồn tại trong bảng. Không sử dụng COUNT(*) để chỉ định 1 table có dữ liệu hay ko : SELECT COUNT(*) FROM DonHang Kết quả truy vấn : Nên sử dụng : SELECT TOP 1 FROM DonHang Kết quả truy vấn :. Sắp xếp kết quả truy vấn.

fausta
Download Presentation

Xác định dữ liệu tồn tại trong bảng

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Xác định dữ liệu tồn tại trong bảng • Không sử dụng COUNT(*) để chỉ định 1 table có dữ liệu hay ko: SELECT COUNT(*) FROM DonHang Kết quả truy vấn : • Nên sử dụng : SELECT TOP 1 FROM DonHang Kết quả truy vấn :

  2. Sắp xếp kết quả truy vấn • Mặc định các dòng dữ liệu trong kết quả của lệnh truy vấn tuân theo thứ tự của chúng trong bảng dữ liệu hoặc sắp xếp theo chỉ mục. Muốn dữ liệu được sắp xếp tăng hặc giảm theo giá trị của một hoặc nhiều trường, ta sử dụng lệnh ORDER BY • Cú pháp: SELECT COL1,COL2,....... FROM TABLE_NAME WHERE <SEARCHCONDITION> ORDER BY COL-NAME [DESC]

  3. Sắp xếp kết quả truy vấn • Ví dụ: Select * from KhachHang where GioiTinh Like ‘Nam‘ order by MaKH Kết quả :

  4. Phép hợp • Phép hợp được sử dụng trong trường hợp ta cần gộp kết quả của 2 hay nhiều truy vấn thành một kết quả duy nhất • Cú pháp: UNION [ALL] Câu_lệnh_2 [UNION [ALL] Câu_lệnh_3] ... [UNION [ALL] Câu_lệnh_n] [ORDER BY cột_sắp_xếp] [COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]]

  5. Phép hợp • Ví dụ : Giả sử có 2 table • Câu lệnh Select A,B from Table1 Union Select D,E from Table2

  6. Phép hợp • Kết quả : • Mặc định nếu trong kết quả truy vấn có dòng dữ liệu giống nhau thì trong kết quả truy vấn chỉ giữ lại 1 dòng

  7. Phép giao • Phép giao trả về tất cả các dòng chung giữa các câu lệnh truy vấn • Số lượng các cột và kiểu dữ liệu của các cột trong câu lệnh truy vấn phải được giống nhau trong tất cả các câu lệnh SELECT được sử dụng trong truy vấn. • Khi đảo ngược thứ tự của bảng thì không thay đổi kết quả truy vấn • Phép giao không bỏ qua giá trị NULL

  8. Phép giao • Hiển thị danh sách khách hàng có tồn tại trong bảng HoaDon SELECT MaKH FROM KhachHang INTERSECT SELECT MaKH FROM HoaDon

  9. Phép trừ • Phép trừ trả về các hàng trong kết quả quả truy vấn mà không tồn tại ở bảng thứ 2 • Số lượng các cột và kiểu dữ liệu của các cột trong câu lệnh truy vấn phải được giống nhau trong tất cả các câu lệnh SELECT được sử dụng trong truy vấn • Tất cả các cột trong mệnh đề WHERE phải trong mệnh đề SELECT

  10. Phép trừ • Hiển thị tất cả các khách hàng mà không đặt hàng SELECT MaKH FROM KhachHang MINUS SELECT MaKH FROM HoaDon

  11. JOIN • Inner join Mụcđíchcủanólàkhibạnmuốntruyxuất 1 thông tin nàođómànóđượctìmthấytrong 2 bảng. Nótrảvềkếtquảlàcácbảnghimàtrườngđược join ở haibảngkhớpnhau, cácbảnghichỉxuấthiện ở mộttronghaibảngsẽbịloại. • Cross join Mỗibảnghicủabảng A đượckếthợpvớitấtcảcácbảnghicủabảng B, tạothànhmộttíchĐề-cácgiữahaibảng (sốbảnghitrảvềbằngtíchcủasốbảnghitronghaibảng). • Full outer join Kết quả gồm tất cả các bản ghi của cả hai bảng. Với các bản ghi chỉ xuất hiện trong một bảng thì các cột dữ liệu từ bảng kia được điền giá trị NULL.

  12. INNER JOIN • Outer join Lấy về các bản ghi có mặt trong cả hai bảng và cả các bản ghi chỉ xuất hiện ở một trong hai bảng. • Left-outer join Tất cả các bản ghi từ bảng được chứa trong liên kết, cùng với các bản ghi trong bảng hai mà ở đó các trường hợp cụ thể khớp với các trường hợp tương ứng trong 1 bảng. • Right-outer join Tất cả các bản ghi từ bảng ghi thứ 2 được đưa vào liên kết cùng với các bản ghi từ bảng 1 mà có các trường khớp với các trường trong bảng 2. • SELF join SELF JOIN là một loại sql join được sử dụng để tham gia một table, ngoại trừ hai trường hợp của cùng một table sẽ được tham gia vào truy vấn.

  13. INNER JOIN Cú pháp của Inner Join: Select Column_name1 From Table_name1 Inner Join Table_name2 On Table_name1.Column_name = Table_name2.Column_name Ví dụ: select tongtien_hd from tbl_hoadon inner join tbl_khachhang on tbl_hoadon.email_kh = tbl_khachhang.email_kh where email_kh=4

  14. LEFT-OUTER JOIN Cú pháp của Left-Outer Join: Select * from table_name1 Left join table_name2 ON table_name1.Column_name1=table_name2.Column_name2 Ví dụ: Select * From tbl_khachhang left join tbl_hoadon on tbl_khachhang.Email_kh = tbl_hoadon.Email_kh

  15. RIGHT-OUTER JOIN Cú pháp của Right-Outer Join: select * from table_name1 right join table_name2 on table_name1.column_name1=table_name2.column_name2 Ví dụ: Select * From tbl_khachhang left join tbl_hoadon on tbl_khachhang.Email_kh = tbl_hoadon.Email_kh

  16. FULL-OUTER JOIN Cú pháp của Right-Outer Join: Select * From table_name1 Full outer join table_name2 ON table_name1.Column_name1=table_name2.Column_name2 Ví dụ: Select * From tbl_khachhang full outer join tbl_hoadon on tbl_khachhang.Email_kh = tbl_hoadon.Email_kh

  17. CROSS JOIN Cú pháp của Cross Join: Select * From table_name1 cross join table_name2 Ví dụ: Select * From tbl_khachhang cross join tbl_hoadon

  18. CROSS JOIN • Kết quả :

  19. SELF JOIN Cú pháp của Cross Join: SELECT a.Sales_person_id, a.Name, a.Manager_id, b.Sales_person_id, b.Name FROM sales_person a, sales_person b WHERE a.Manager_id = b.Sales_person_id; Ví dụ:

  20. Aggregate functions • Thuộc tính Hàm tổng hợp(hàm gộp) được sử sụng để tính tổng giá trị hay thống kê cho toàn bảng trên mỗi nhóm dữ liệu. • Các hàm tổng hợp

  21. Aggregate functions Ví dụ: SUM([DISTINCT|ALL]n) SELECT maHocsinh,sum(diemThi) from bangThi where lanThi='1' groupby maHocsinh Kết quả:

  22. Aggregate functions Ví dụ: AVG([DISTINCT|ALL]n) SELECT maHocsinh,avg(diemThi)as diemTB from bangThi where lanThi='2' groupby maHocsinh; Kết quả:

  23. Aggregate functions Ví dụ: MAX ([DISTINCT|ALL]expr) SELECTDISTINCTmax(diemThi)as maxDiemthi from bangThi where lanThi='2'; kết quả:

  24. Aggregate functions Ví dụ: MIN([DISTINCT|ALL]expr) SELECTDISTINCTmin(diemThi)as minDiemthi from bangThi where lanThi='2'; Kết quả:

  25. Aggregate functions Ví dụ: COUNT({*|[DISTINCT|ALL]expr}) SELECTDISTINCTcount(diemThi)as dem from bangThi where lanThi='2'; Kết quả:

  26. Aggregate functions Ví dụ: COUNT(*) SELECTDISTINCTcount(*) from bangThi as soDong; Kết quả:

  27. Group By • Các hàng liên quan có thể nhóm lại với nhau bằng mệnh đề GROUP BY bằng cách chỉ ra một cột để nhóm theo cột đó. • Ví dụ: Có bảng Sales:

  28. Group By • Thực hiện câu lệnh SQL: SELECT Company, SUM(Amount) FROM Sales Kết quả:

  29. Group By • Khi sử dụng GROUP BY: SELECT Company, SUM(Amount) FROM SalesGROUP BY Company Kết quả:

  30. HAVING • Được sử dụng để xác định điều kiện về nhóm • Ví dụ: Sử dụng lại bảng Sales ở trên, với câu lệnh sql: SELECT Company, SUM(Amount) FROM SalesGROUP BY CompanyHAVING SUM(Amount) > 10000

  31. HAVING • Kết quả:

  32. Independent sub-queries • Inner query is independent of outer query. • Inner query is executed first and the results are stored. • Outer query then runs on the stored results.

  33. Using sub-queries

  34. Using sub-queries (2) • Trong truy vấn trên, truy vấn con sẽ được thực thi trước:

  35. Using sub-queries (3) • Tiếp theo, truy vấn cha sẽ lấy giá trị được trả về từ truy vấn còn, và thực thi truy vấn của chính nó.

  36. Using sub-queries (4) • Truy vấn con độc lập với truy vấn cha • Truy vấn con được thực thi trước , kết quả của truy vấn đó sẽ được lưu lại • Truy vấn cha sẽ lấy kết quả đó để thực hiện truy vấn của chính nó

  37. So sánh trong Sub-queries • Kết quả trả về ở truy vấn con phải có một cột duy nhất

  38. So sánh trong Sub-queries

  39. EXIST và NOT EXIST

  40. Q & A

More Related