Truy vấn

Màu nền
Font chữ
Font size
Chiều cao dòng

II- Phát biểu truy vấn dữ liệu II- Phát biểu truy vấn dữ liệu

SELECT select_list [ INTO new_table ]

[ FROM table_source ]

[ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ORDER BY order_expression [ASC | DESC ]]

[COMPUTE aggregate_function_list [ BY expression ]

Thứ tự thực hiện:

FromWhereGroup ByHavingSelectOrderCompute

1- Mệnh đề FROM 1- Mệnh đề FROM

– Chỉ định bảng chứa dữ liệu cần truy vấn.

Cú pháp: FROM table_source [ [ AS ] label ]…

– Bảng dữ liệu có thể là: Table, View, SubQuery, Function.

– Kết nối mấu tin trên nhiều bảng bằng các phép toán:

1. Phép tích Cartesian:

FROM B1, B2,…

FROM B1 CROSS JOIN B2

2. Phép kết:

FROM B1 INNER JOIN B2 ON <điều kiện kết>

FROM B1 LEFT JOIN B2 ON <điều kiện kết>

FROM B1 RIGHT JOIN B2 ON <điều kiện kết>

FROM B1 FULL JOIN B2 ON <điều kiện kết>

Mã 23

2- Mệnh đề WHERE: 2- Mệnh đề WHERE:

WHERE <điều kiện chọn bộ>

• Dùng thực hiện phép chọn trên bảng kết xuất từ mệnh đề

FROM.

• <điều kiện chọn bộ> được thiết lập bởi các phép toán so

sánh, phép toán luận lý trên các dữ liệu lưu trữ trên các cột

Ngoài ra còn có các các toán tử sau: Ngoài ra còn có các các toán tử sau:

• Kiểm tra gía trị rỗng:

<biểu thức>  IS [NOT] NULL

• Thuộc miền giá trị:

<biểu thức> [NOT] BETWEEN <gt1> AND <gt2>

• Thuộc tập giá trị:

<biểu thức> [NOT] IN (<gt1>, <gt2>, …)

• Kiểm tra chuỗi thuộc mẫu dữ liệu:

<biểu thức>  [NOT] LIKE “<Mẫu dữ liệu>“

Ký tự đơn bất kỳ không nằm trong tập chỉ định  ([^a-f] hay [^abcdef] ). [^…]

Ký tự đơn bất kỳ trong tập được chỉ định (ví dụ [a-f]) hay [abcdef]) […]

Ký tự đơn bất kỳ -

Chuỗi ký tự bất kỳ gồm không hoặc nhiều ký tự %

ý nghĩa đại diện Ký tự

3- Mệnh đề SELECT 3- Mệnh đề SELECT

SELECT {<tên cột> | <biểu thức>}[AS <nhãn cột>], …

• Dùng thực hiện phép chiếu, chỉ định các cột cần có trên

bảng kết quả truy vấn.

• Đối với các thuộc tính trùng tên trên 2 bảng thì phải chỉ rõ

muốn lấy thuộc tính của bảng nào bằng cách ghi :

{<tên_bảng>|<nhãn>}.<tên thuộc tính>.

• Dấu * : chọn hết các cột của các bảng nguồn

• <tên_bảng>.* : chọn hết các cột thuộc <tên_bảng>

• Cột <biểu thức>:

<biểu thức> [ [AS] <nhãn cột> ]

hay <nhãn cột> = <biểu thức>

SELECT [DISTINCT] [TOP( n ) [ PERCENT ] <ds cộ

• DISTINCT : Chỉ hiện những dòng có dữ liệu phân biệt.

Câu hỏi: Cho biết mã số và tên các mặt hàng đã bán ?

• TOP (< n >) : chỉ hiện n dòng đầu tiên.

Câu hỏi: Danh sách 3 mặt hàng đầu tiên trong table MatHang ?

• TOP (< n >) PERCENT : chỉ hiện n% dòng đầu tiên.

Câu hỏi: Danh sách 10% mặt hàng đầu tiên trong table MatHang ?

SELECT <danh sách cột> INTO <tên bảng mới>

Yêu cầu: Tạo bảng ‘HoaDonLuu’ chứa danh sách các hóa đơn

của năm cũ.

4- Mệnh đề ORDER BY 4- Mệnh đề ORDER BY

ORDER BY { <biểuthức> [ASC | DESC] [ , ...n] }

• Sắp xếp các bộ theo thứ tự tăng hay giãm theo các giá trị

của <biểu thức>

Ví dụ: Tính tiền bán từng mặt hàng trong CTHD sắp thứ tự theo

SoHD, và Tiền bán

• Kết hợp ORDER BY với TOP ( <n>) [PERCENT] WITH TIES

Để lấy thêm các dòng kế tiếp có cùng giá trị sắp xếp.

Ví dụ: Liệt kê mặt hàng có đơn giá lớn nhất

Mã hóa 30

5- Mệnh đề GROUP BY: 5- Mệnh đề GROUP BY:

GROUP BY <các khóa gom nhóm>

• Dùng gom các mẫu tin thành từng nhóm và kết hợp với các hàm tổng hợp để

tổng hợp dữ liệu trên từng nhóm.

Các hàm tổng hợp theo nhóm:

• SUM([DISTINCT] <biểu thức>): Tính tổng giá trị biểu thức số trên các dòng

• AVG([DISTINCT]  <biểu thức>): Tính trung bình cộng trên các dòng

• MAX(<biểu thức>): Chọn ra giá trị lớn nhất trên các dòng thuộc nhóm

• MIN(<biểu thức>): Chọn ra giá trị thấp nhất trên các dòng thuộc nhóm

• COUNT([DISTINCT] <biểu thức>): Đếm số dòng trong từng nhóm mà có giá

trị <biểu thức> khác NULL.

• COUNT(*): Đếm số dòng trong từng nhóm, kể cả những dòng có tất cả các

thuộc tính đều NULL

Câu hỏi Câu hỏi

1. Cho biết trong từng loại hàng có bao nhiêu mặt hàng, đơn giá lớn nhất và

nhỏ nhất?

2. Cho biết nhà cung cấp cung ứng các loại hàng nào, số mặt hàng trong từng

loại là bao nhiêu ?

3. Cho biết trong bảng MatHang có bao nhiêu loại hàng, bao nhiêu mặt hàng,

đơn giá lớn nhất là bao nhiêu ?

• Mệnh đề GROUP BY phải chứa tất cả các cột không sử

dụng trong các hàm tổng hợp có trong mệnh đề SELECT.

Bạn đang đọc truyện trên: Truyen2U.Pro