Bài 15. SQL: truy vấn dữ liệu với câu lệnh SELECT
Cơ sở dữ liệu có thể lưu hàng nghìn dòng thông tin, nhưng muốn lấy đúng phần mình cần thì phải biết cách ‘hỏi’ đúng ngôn ngữ của nó. Bài này giới thiệu câu lệnh SELECT - công cụ cơ bản nhất của SQL để truy vấn, lọc và sắp xếp dữ liệu.
- Cánh DiềuTin học 11 (Khoa học máy tính) - Chủ đề F · Bài 5. Truy vấn trong cơ sở dữ liệu quan hệtr. 67
- Cánh DiềuTin học 11 (Tin học ứng dụng) - Chủ đề F · Bài 5. Truy vấn trong cơ sở dữ liệu quan hệtr. 67
- Kết nối tri thứcTin học 11 (Khoa học máy tính) - Bài 14. SQL - Ngôn ngữ truy vấn có cấu trúctr. 69–72
- Kết nối tri thứcTin học 11 (Tin học ứng dụng) - Bài 14. SQL - Ngôn ngữ truy vấn có cấu trúctr. 69
Bắt đầu bằng một hình dung
Cuối học kỳ, sổ điểm của một trường có thể ghi đến hàng nghìn dòng - mỗi dòng là thông tin của một học sinh: lớp nào, điểm bao nhiêu. Giả sử có người đến văn phòng nhà trường và chỉ nói: ‘cho tôi xem điểm học sinh’. Người trực văn phòng chắc chắn sẽ hỏi ngược lại: điểm của ai, lớp nào, học kỳ nào? Câu hỏi mơ hồ như vậy không thể trả lời ngay được. Nhưng nếu hỏi thật rõ ràng: ‘cho tôi tên những bạn có điểm từ 8 trở lên, xếp từ cao xuống’, yêu cầu đã đủ cụ thể để tra cứu và trả lời chính xác, không cần hỏi lại thêm gì nữa.
Cơ sở dữ liệu hoạt động đúng theo tinh thần đó: máy tính không hiểu nổi một câu hỏi mơ hồ, nhưng hiểu rất chính xác một ngôn ngữ hỏi-đáp có cấu trúc, gọi là SQL. Bài này sẽ tập cho ta cách đặt câu hỏi kiểu trên sao cho máy hiểu đúng và trả lời đúng ý.
Nội dung bài học
- SQL là gì và cấu trúc câu lệnh SELECT
- Lấy tất cả các cột: SELECT *
- Sắp xếp kết quả: ORDER BY
Tóm tắt lý thuyết cần nhớ
- SQL là ngôn ngữ dùng để ‘hỏi’ cơ sở dữ liệu; câu lệnh
SELECTdùng để truy vấn (xin lấy) dữ liệu. - Cấu trúc cơ bản:
SELECT <cột> FROM <bảng> WHERE <điều kiện>;- SELECT chọn cột cần lấy, FROM chỉ bảng, WHERE lọc theo điều kiện. SELECT *lấy toàn bộ các cột của bảng;ORDER BY <cột> ASC/DESCsắp xếp kết quả tăng dần hoặc giảm dần.- Mệnh đề WHERE dùng các phép so sánh
=, >, <, >=và có thể kết hợp nhiều điều kiện bằngAND(cả hai cùng đúng) hoặcOR(một trong hai đúng).
Thuật ngữ tiếng Anh trong bài
| Tiếng Anh | Đọc là | Nghĩa |
|---|---|---|
| SQL | ét-qui-eo | ngôn ngữ truy vấn cơ sở dữ liệu Ngôn ngữ đặc biệt dùng để hỏi và lấy thông tin từ những kho dữ liệu lớn - giống cách em hỏi thủ thư tìm đúng cuốn sách cần. |
| query | KUÊ-ri | truy vấn Câu hỏi gửi cho cơ sở dữ liệu để lấy đúng dữ liệu cần - như hỏi 'cho xem những bạn điểm trên 8'. |
| SELECT | si-LẾCH | lệnh SQL lấy dữ liệu Lệnh SQL để 'chọn ra' dữ liệu cần xem từ bảng - như bảo 'lấy cho tôi cột tên và điểm'. |
| INSERT | in-SƠT | lệnh SQL thêm dữ liệu Lệnh SQL để thêm một hàng dữ liệu mới vào bảng - như ghi thêm một bạn vào danh sách. |
| UPDATE | ẤP-đêi | lệnh SQL sửa dữ liệu Lệnh SQL để sửa lại dữ liệu đã có trong bảng - như đổi lại điểm cho đúng. |
| DELETE | đi-LÍT | lệnh SQL xoá dữ liệu Lệnh SQL để xoá một hàng dữ liệu khỏi bảng - như xoá tên một bạn đã chuyển trường. |
| table | TÂY-bồ | bảng (trong CSDL) Nơi chứa dữ liệu theo hàng và cột - giống bảng điểm của lớp: mỗi hàng một bạn, mỗi cột một thông tin. |
| database | ĐÊI-tơ-bêi | cơ sở dữ liệu (CSDL) Một kho chứa dữ liệu được sắp xếp gọn gàng để tìm và dùng lại dễ dàng - như thư viện xếp sách theo thứ tự. |
Câu hỏi trắc nghiệm có đáp án
Mấy câu mẫu để bạn tự kiểm tra ngay. Trong ứng dụng, bài này có đủ 27 câu, chấm điểm tự động và giải thích từng câu sai.
- WHERE
- ORDER BY
- FROM
- SELECT
FROM dùng để nêu tên bảng chứa dữ liệu cần lấy. SELECT nêu các cột cần lấy, WHERE nêu điều kiện lọc, còn ORDER BY dùng để sắp xếp kết quả - không phải để chỉ định bảng.- SELECT *
- SELECT FULL
- SELECT ALL
- SELECT %
* ngay sau SELECT nghĩa là ‘lấy tất cả các cột’ của bảng, không cần gõ tên từng cột. Các cách viết còn lại không mang ý nghĩa ‘lấy mọi cột’ như SELECT *.HOC_SINH(Ma, HoTen, Lop, Diem). Câu lệnh SELECT HoTen FROM HOC_SINH WHERE Lop = '11A2'; trả về kết quả nào?- Toàn bộ 4 cột của những học sinh lớp 11A2
- Chỉ cột HoTen, của những học sinh thuộc lớp 11A2
- Chỉ cột HoTen, của tất cả học sinh trong bảng
- Chỉ cột Lop, của những học sinh có tên bắt đầu bằng 11A2
SELECT HoTen chỉ lấy cột họ tên (bỏ qua Ma, Lop, Diem); WHERE Lop = '11A2' lọc, chỉ giữ những dòng có cột Lop đúng bằng ‘11A2’. Kết quả là danh sách họ tên của riêng các học sinh lớp 11A2.- a)Mỗi câu lệnh SQL kết thúc bằng dấu chấm phẩy
;.Đúng - b)
SELECT *chỉ lấy cột đầu tiên của bảng, các cột còn lại bị bỏ qua.Sai - c)Mệnh đề
WHEREdùng để lọc, chỉ giữ lại những dòng thoả điều kiện đã nêu.Đúng - d)Khi kết hợp hai điều kiện bằng
ANDtrong mệnh đềWHERE, chỉ cần MỘT trong hai điều kiện đúng là dòng đó được giữ lại.Sai
- (a) Đúng - dấu
;đánh dấu kết thúc một câu lệnh SQL. - (b) Sai -
SELECT *lấy TẤT CẢ các cột của bảng, không phải chỉ cột đầu tiên. - (c) Đúng -
WHERElà mệnh đề lọc, chỉ giữ lại các dòng thoả mãn điều kiện, các dòng còn lại bị loại khỏi kết quả. - (d) Sai -
ANDyêu cầu CẢ HAI điều kiện phải đúng thì dòng đó mới được giữ; ‘chỉ cần một trong hai đúng’ là ý nghĩa củaOR.
Thử ngay: minh hoạ từng bước
Bấm từng bước để tự xem cơ chế hoạt động, hoặc bấm “Tự chạy” cho nó tiến mỗi giây một lần. Đổi được dữ liệu đầu vào - không cần đăng nhập.
Học trọn bài này trong ứng dụng
Bài giảng đầy đủ, 27 câu luyện tập chấm tự động, thi thử đúng cấu trúc đề tốt nghiệp (24 trắc nghiệm + 4 Đúng/Sai), bài thực hành máy tự chấm và gia sư AI giải thích chỗ sai.
Phần học miễn phí, không cần tạo tài khoản.
Bài liên quan - Tổ chức, lưu trữ & tìm kiếm thông tin
Cùng mạch kiến thức với bài này, học nối tiếp cho chắc phần lí thuyết.