btvn.vn

Truy vấn SELECT, WHERE và ORDER BY

Lưu trên thiết bị này
Cơ sở dữ liệu và SQL · Chọn bài khác

Viết rõ thông tin muốn lấy

SQL cho phép mô tả cần những cột nào và những hàng thỏa điều kiện nào. Ta đọc yêu cầu trước rồi tách thành SELECT, FROM và WHERE.

Bốn thành phần cơ bản

SELECT chọn cột hoặc biểu thức; FROM chỉ bảng; WHERE lọc hàng; ORDER BY sắp xếp kết quả với ASC tăng, DESC giảm. Không có ORDER BY thì không nên dựa vào một thứ tự kết quả cụ thể. Chuỗi trong ví dụ SQL đặt trong dấu nháy đơn. AND yêu cầu đồng thời, OR chọn một trong các điều kiện; dùng ngoặc để nhóm ý. Các bài DB03–DB04 dùng bảng HocSinh dưới đây, với Diem là số: | MaHS | HoTen | Lop | Diem | |---|---|---|---| | H01 | An | 12A | 8 | | H02 | Binh | 12B | 6 | | H03 | Chi | 12A | 9 | | H04 | Dung | 12B | 8 |

Tìm điểm của lớp 12A

```sql SELECT HoTen, Diem FROM HocSinh WHERE Lop = '12A' ORDER BY Diem DESC; ``` WHERE giữ An và Chi. SELECT lấy tên, điểm; ORDER BY giảm dần cho kết quả Chi 9 rồi An 8. Đây là sắp xếp kết quả truy vấn, không khẳng định thứ tự lưu vật lí của bảng đã thay đổi.

Thử vận dụng

Muốn lấy học sinh lớp 12B đồng thời điểm ít nhất 8, điều kiện nào đúng?
Chọn một đáp án

Chọn giá trị không trùng

```sql SELECT DISTINCT Lop FROM HocSinh ORDER BY Lop; ``` Kết quả có hai lớp 12A và 12B. DISTINCT loại các hàng trùng trong kết quả đang chọn; không xóa học sinh trùng lớp khỏi bảng gốc.

Ví dụ xem cách làm

Viết truy vấn lấy MaHS của học sinh điểm dưới 8 trong bảng đã cho.

Ví dụ xem cách làm

SELECT HoTen FROM HocSinh; có bảo đảm trả theo thứ tự chữ cái không? Nêu cách yêu cầu rõ.

Những điều cần nhớ

Tách cột cần xem khỏi hàng cần lọc. Ghi rõ điều kiện và ORDER BY khi thứ tự có ý nghĩa; DISTINCT chỉ tác động lên kết quả chọn.

Đang học