BÀI KIỂM TRA LUYỆN TẬPCông nghệ và lập trình
Luyện thi SQL
Bài luyện tập SQL miễn phí: các khái niệm về SQL, kết quả truy vấn trả về, sửa truy vấn bị lỗi và chọn truy vấn phù hợp, theo phong cách bài đánh giá SQL của nhà tuyển dụng. Mỗi câu trả lời đều có lời giải thích.
- 10 câu hỏi miễn phí, không cần tài khoản
- Bấm giờ như bài kiểm tra thực tế
- Hủy bất cứ lúc nào
- Bài mẫu miễn phí
- 10 câu hỏi · 25 phút
- Các dạng câu hỏi
- Các khái niệm SQL, Kết quả truy vấn trả về, Sửa truy vấn và nhiều dạng khác
- Bài thi thử đầy đủ
- Số câu hỏi và thời gian giới hạn của bài thi thực tế
Câu trả lời ngắn gọn
Bài kiểm tra SQL là bài đánh giá ngắn mà nhiều nhà tuyển dụng dùng để kiểm tra khả năng đọc, viết và sửa truy vấn cơ sở dữ liệu của bạn trước buổi phỏng vấn cho vị trí dữ liệu, phân tích hoặc lập trình. Không có một bài kiểm tra SQL duy nhất: mỗi nhà tuyển dụng chọn nền tảng, câu hỏi và giới hạn thời gian riêng. Bài luyện tập miễn phí này có 10 câu hỏi nguyên bản về SQL chuẩn có thể sử dụng trên nhiều hệ thống và kéo dài 25 phút.
- Bài mẫu miễn phí
- 10 câu hỏi trong 25 phút
- Định dạng
- Do từng nhà tuyển dụng quy định
- Ví dụ (HackerRank SQL Basic)
- 2 câu hỏi trong 30 phút
- Ví dụ (TestGorilla MySQL)
- 15 câu hỏi trong 10 phút
- Khu vực sinh hoạt chung
- Lọc, kết hợp bảng, nhóm, sắp xếp và giá trị NULL
Dùng thử miễn phí
10 câu hỏi trong 25 phút, với tốc độ thực tế. Cuối bài, bạn sẽ nhận được điểm số và lời giải thích cho từng câu trả lời.
Chọn gói của bạn
Mở khóa nội dung luyện tập đầy đủ
Bài kiểm tra SQL: các bài thi thử đầy đủ có giới hạn thời gian, cùng mọi bài kiểm tra khác
Đăng ký gói Monthly- Bài thi thử đầy đủ, có tính giờ cho bài kiểm tra này
- Giải thích cho từng câu hỏi
- Điểm theo từng dạng câu hỏi và lịch sử làm bài của bạn
- Bao gồm tất cả 93 bài kiểm tra luyện tập
- Dùng được trên điện thoại và máy tính
Hoàn tiền trong 7 ngày nếu bạn chưa làm quá một bài thi thử đầy đủ. Giá tính bằng USD.
Nội dung luyện tập đầy đủ gồm những gì
Bài thi thử đầy đủ theo định dạng và thời gian của bài kiểm tra thực tế, mỗi bài đều có phần xem lại đầy đủ sau khi hoàn thành.
- Miễn phíBài mẫu miễn phí10 câu hỏi · 25 phút
- Bài thi thử đầy đủSố câu hỏi và thời gian giới hạn của bài thi thực tế
- Mọi dạng câu hỏiCác khái niệm SQL, Kết quả truy vấn trả về, Sửa truy vấn và nhiều dạng khác
- Phần xem lại đầy đủĐiểm theo từng dạng câu hỏi sau mỗi bài thi thử
- Lịch sử điểm sốTiến độ của bạn qua các lần làm bài
- Điện thoại hoặc máy tính xách tayLuyện tập mọi lúc mọi nơi
- Các khái niệm SQL90%
- Kết quả truy vấn trả về75%
- Sửa truy vấn60%
- Chọn truy vấn phù hợp35%
Tiếp theo, hãy luyện tập: chọn truy vấn phù hợp.
Bài mẫu miễn phí hoặc luyện tập đầy đủ
| Tính năng | Miễn phí | Đầy đủ |
|---|---|---|
| Câu hỏi theo phong cách bài thi thực tế | ||
| Giải thích mọi câu trả lời | ||
| Bài thi thử đầy đủ, có tính giờ | ||
| Điểm số theo dạng câu hỏi | ||
| Lịch sử điểm số qua các bài thi thử | ||
| Tất cả 93 bài kiểm tra luyện tập |
Hướng dẫn ôn tập miễn phí
Những điều cần biết về bài kiểm tra thực tế, được trình bày trong các bài học ngắn.
Bài kiểm tra thực tế thường có dạng như thế nào
Không có một bài kiểm tra SQL duy nhất. Mỗi nhà tuyển dụng chọn một nền tảng kiểm tra hoặc tự soạn bài kiểm tra, đồng thời quyết định số câu hỏi, thời lượng và cơ sở dữ liệu được sử dụng. Tin tuyển dụng hoặc thư mời làm bài kiểm tra là nguồn hướng dẫn tốt nhất cho bài kiểm tra của bạn. Các ví dụ công khai cho thấy phạm vi rất đa dạng:
- Bài kiểm tra kỹ năng SQL của HackerRank. HackerRank cho biết bài kiểm tra kỹ năng SQL (Basic) gồm 2 câu hỏi trong 30 phút, với các chủ đề như truy vấn đơn giản (HackerRank); bài SQL (Intermediate) gồm 2 câu hỏi trong 35 phút, với các chủ đề như phép nối phức tạp (HackerRank). Nhà tuyển dụng tự tạo bài kiểm tra trên HackerRank có thể thêm câu hỏi về cơ sở dữ liệu và chọn những cơ sở dữ liệu mà ứng viên được phép sử dụng (Hỗ trợ HackerRank).
- Bài tập viết truy vấn. TestGorilla mô tả bài kiểm tra lập trình SQLite của mình là bài tập 30 phút, trong đó bạn viết truy vấn cho một tình huống thực tế trên cơ sở dữ liệu có độ phức tạp trung bình. Bài tập bao gồm nối và lọc dữ liệu, tính toán đơn giản, sắp xếp, làm tròn và loại bỏ các mục không liên quan (TestGorilla).
- Bài kiểm tra kiến thức ngắn. TestGorilla cho biết bài kiểm tra MySQL gồm 15 câu hỏi trong 10 phút, được lấy từ ngân hàng 101 câu hỏi (TestGorilla).
Các nội dung thường gặp trong các bài kiểm tra SQL:
- Lọc và sắp xếp: SELECT, WHERE, ORDER BY và các điều kiện với AND, OR, IN và BETWEEN.
- Phép nối: phép nối trong và phép nối trái, cũng như điều gì xảy ra với các hàng không có kết quả khớp.
- Nhóm dữ liệu: GROUP BY với COUNT, SUM, AVG, MIN và MAX, cùng HAVING để lọc các nhóm.
- Giá trị NULL: cách các giá trị bị thiếu ảnh hưởng đến phép so sánh, phép đếm và giá trị trung bình.
- Truy vấn con: một truy vấn nằm bên trong truy vấn khác, dùng IN, EXISTS hoặc một giá trị đơn.
- Viết truy vấn từ yêu cầu bằng ngôn ngữ thông thường, thường được chấm dựa trên việc truy vấn có trả về chính xác các hàng mong đợi hay không.
Nội dung bài thi thử của chúng tôi. Mỗi bài thi thử đầy đủ gồm 18 câu hỏi trong 45 phút, chia thành bốn phần: khái niệm SQL (5), kết quả truy vấn trả về (6), sửa truy vấn (4) và chọn truy vấn phù hợp (3). Bạn có thể quay lại và đánh dấu câu hỏi. Chúng tôi sử dụng SQL chuẩn có tính di động, nên các truy vấn có ý nghĩa như nhau trong PostgreSQL, MySQL, SQL Server, SQLite và hầu hết các cơ sở dữ liệu khác. Bài thi thử giúp bạn luyện đọc, lần theo và lựa chọn truy vấn; chúng không chạy các truy vấn do bạn viết. Nhiều bài kiểm tra SQL thực tế yêu cầu bạn viết truy vấn và được chấm bằng cách đối chiếu với kết quả mong đợi. Vì vậy, hãy dùng bài thi thử của chúng tôi để rèn kỹ năng đọc và lần theo truy vấn, đồng thời tự viết truy vấn trong một cơ sở dữ liệu miễn phí như SQLite.
Các dạng câu hỏi kèm ví dụ có lời giải
Mỗi phần có một ví dụ được giải thích, kèm theo lỗi dễ mắc nhất.
1. Các khái niệm SQL. COUNT() và COUNT(email) khác nhau như thế nào? COUNT() đếm mọi hàng; COUNT(email) chỉ đếm những hàng có email không phải NULL. Cạm bẫy: cho rằng mọi phép đếm đều tính tất cả các hàng. Hầu hết hàm tổng hợp đều bỏ qua NULL.
2. Kết quả truy vấn trả về. Bảng scores có các giá trị 8, 5, NULL và 8. SELECT COUNT(DISTINCT score) trả về kết quả gì? Các giá trị không NULL và không trùng lặp là 8 và 5, nên đáp án là 2. Cạm bẫy: đếm NULL như một giá trị hoặc đếm giá trị 8 bị lặp hai lần. Hãy viết bảng ra và gạch bỏ các hàng như cách truy vấn sẽ xử lý.
3. Sửa truy vấn. Một truy vấn có điều kiện WHERE city = 'Austin' OR city = 'Dallas' AND active = 1 nhưng lại trả về cả khách hàng không hoạt động ở Austin. AND được xử lý trước OR, nên điều kiện thực tế có nghĩa là Austin hoặc Dallas đang hoạt động. Cách sửa là thêm dấu ngoặc: WHERE (city = 'Austin' OR city = 'Dallas') AND active = 1. Cạm bẫy: đọc điều kiện từ trái sang phải.
4. Chọn truy vấn phù hợp. Bạn cần lấy năm đơn hàng gần đây nhất. Câu lệnh nào đúng: ORDER BY order_date DESC với giới hạn 5, hay ORDER BY order_date với giới hạn 5? Câu đầu tiên. Nếu không có DESC, kết quả được sắp xếp từ cũ nhất đến mới nhất, nên bạn sẽ lấy năm đơn hàng cũ nhất. Cạm bẫy: chọn truy vấn trông có vẻ đúng mà không kiểm tra chiều sắp xếp. (Cú pháp giới hạn kết quả khác nhau tùy cơ sở dữ liệu, chẳng hạn LIMIT 5 hoặc FETCH FIRST 5 ROWS ONLY, vì vậy hãy kiểm tra xem bài kiểm tra của bạn sử dụng cú pháp nào.)
5. Kết hợp bảng có điều kiện. Một phép kết hợp trái, sau đó là điều kiện WHERE trên cột của bảng bên phải, sẽ âm thầm trở thành phép kết hợp trong vì các hàng không khớp có giá trị NULL ở cột đó và điều kiện sẽ loại bỏ chúng. Cạm bẫy: không nhận ra những hàng nào bị mất. Hãy tự hỏi: "Điều gì xảy ra với một hàng không có kết quả khớp?"
Cách chuẩn bị
- Trước tiên, hãy đọc thư mời làm bài. Tìm hiểu bạn sẽ dùng nền tảng nào, có bao nhiêu thời gian, bạn cần viết truy vấn hay trả lời câu hỏi trắc nghiệm, và nền tảng đó sử dụng cơ sở dữ liệu nào. Hình thức bài thi rất khác nhau, nên đừng mặc định.
- Nắm thứ tự thực thi của truy vấn. FROM và JOIN, tiếp theo là WHERE, GROUP BY, HAVING, SELECT và ORDER BY. Hầu hết câu hỏi kiểu "tại sao câu này sai?" sẽ dễ hiểu hơn khi bạn biết mỗi bước xử lý dữ liệu nào.
- Tự lần theo các bảng nhỏ. Viết ra ba hoặc bốn hàng, rồi áp dụng lần lượt từng mệnh đề. Đây là cách nhanh nhất để kiểm tra câu trả lời và phát hiện các lỗi dễ mắc liên quan đến NULL và dữ liệu trùng lặp.
- Học riêng về NULL. Luyện IS NULL, COUNT(column) so với COUNT(*), AVG bỏ qua các giá trị NULL, NOT IN khi danh sách có NULL, và những gì left join đưa vào các cột không khớp.
- Đồng thời viết truy vấn thực tế. Bài thi mô phỏng của chúng tôi giúp rèn kỹ năng đọc và lần theo truy vấn. Hãy viết truy vấn trong một cơ sở dữ liệu miễn phí như SQLite để việc gõ truy vấn khi bị giới hạn thời gian trở nên quen thuộc. Một số bài thi kiểm tra truy vấn của bạn trên nhiều trường hợp, chẳng hạn hơn 10 trường hợp kiểm thử mà TestGorilla đề cập trong bài kiểm tra SQLite của họ (TestGorilla).
- Kiểm tra kết quả, không chỉ cú pháp. Một truy vấn chạy được vẫn có thể trả về sai hàng. Trước khi nộp, hãy nghĩ xem điều gì xảy ra khi không có kết quả khớp, khi có dữ liệu trùng lặp và khi có NULL.
- Luyện tập với tốc độ thực tế. Bài kiểm tra kiến thức ngắn như bài kiểm tra MySQL của TestGorilla, gồm 15 câu trong 10 phút, cho bạn chưa đến một phút mỗi câu (TestGorilla). Hãy làm bài thi mô phỏng đầy đủ có tính giờ để quen với tốc độ làm bài trong ngày thi.
Cách tính điểm thường gặp
Cách chấm điểm tùy thuộc vào nhà tuyển dụng và nền tảng. Không có thang điểm SQL tiêu chuẩn hay mức điểm đậu áp dụng chung. Mỗi nhà tuyển dụng tự quyết định kết quả nào được xem là tốt. Dưới đây là hai ví dụ công khai về cách chấm câu hỏi truy vấn:
- Câu hỏi cơ sở dữ liệu của HackerRank: HackerRank cho biết hệ thống tự động chấm điểm bằng cách so sánh kết quả truy vấn của bạn với kết quả đầu ra mong đợi. Nếu khớp, bạn được toàn bộ điểm; nếu không, bạn được 0 điểm, trừ khi nhà tuyển dụng tự xem xét và cho điểm một phần. Nhà tuyển dụng cũng có thể chọn bỏ qua thứ tự các hàng (Hỗ trợ HackerRank).
- Bài kiểm tra SQLite của TestGorilla: TestGorilla cho biết ứng viên được xếp hạng dựa trên hơn 10 trường hợp kiểm thử nhằm kiểm tra các trường hợp đặc biệt của lời giải (TestGorilla).
Vì kết quả thường được kiểm tra từng hàng, một truy vấn gần đúng, chẳng hạn truy vấn bỏ sót khách hàng không có đơn hàng, có thể nhận điểm tương đương với việc không trả lời.
Điểm luyện tập của chúng tôi là số câu hỏi do chúng tôi tạo ra mà bạn trả lời đúng, kèm phân tích theo từng phần để bạn biết nên tập trung vào đâu. Đây là điểm luyện tập, không phải điểm trong bài kiểm tra của bất kỳ nhà tuyển dụng hay nền tảng nào, và không dự đoán việc bạn có vượt qua bài kiểm tra hay không.
Những lỗi thường gặp
- So sánh với NULL bằng =. Hãy dùng IS NULL và IS NOT NULL. Bất kỳ phép so sánh nào có dạng = NULL đều cho kết quả không xác định, nên hàng đó sẽ bị lọc bỏ.
- Lọc phép nối trái trong WHERE. Điều kiện kiểm tra các cột của bảng bên phải sẽ loại bỏ những hàng không khớp. Nếu cần giữ lại các hàng đó, hãy đặt điều kiện trong mệnh đề ON.
- Dùng WHERE để lọc tổng. Các phép tổng hợp thuộc mệnh đề HAVING, sau GROUP BY.
- Chọn cột chưa được gom nhóm. Trong SQL chuẩn, mọi cột được chọn phải được gom nhóm hoặc tổng hợp. Một số cơ sở dữ liệu vẫn chạy và tự chọn một giá trị, khiến lỗi này khó nhận ra.
- Quên các hàng trùng lặp. Phép nối có thể lặp lại hàng, làm SUM và COUNT tăng lên. Hãy kiểm tra xem mỗi hàng ở một bên có thể khớp với nhiều hơn một hàng ở bên kia hay không.
- Dựa vào cú pháp rút gọn của một cơ sở dữ liệu. Một số hàm và cú pháp giới hạn kết quả khác nhau giữa các cơ sở dữ liệu. Hãy học dạng chuẩn và kiểm tra bài kiểm tra sử dụng cơ sở dữ liệu nào.
Câu hỏi luyện tập do chúng tôi biên soạn, không phải câu hỏi thật hay bị rò rỉ. Bạn có thể hủy gói Monthly bất cứ lúc nào và yêu cầu hoàn tiền trong vòng 7 ngày nếu đã làm không quá một bài thi thử đầy đủ.
Câu hỏi thường gặp
Có một bài kiểm tra SQL mà mọi nhà tuyển dụng đều sử dụng không?+
Không. Mỗi nhà tuyển dụng tự chọn nền tảng, câu hỏi, thời gian làm bài và cơ sở dữ liệu. Một số yêu cầu bạn viết truy vấn để đối chiếu với kết quả mong đợi, số khác đưa ra câu hỏi trắc nghiệm. Thư mời của bạn sẽ cho biết hình thức nào được áp dụng.
Tôi nên luyện tập với phương ngữ SQL nào?+
Hãy bắt đầu với SQL tiêu chuẩn, được dùng trong các câu hỏi của chúng tôi và tương thích với PostgreSQL, MySQL, SQL Server và SQLite. Sau đó, kiểm tra thư mời làm bài: nếu thư nêu tên một cơ sở dữ liệu, hãy tìm hiểu cách hệ quản trị đó viết giới hạn, ngày tháng và hàm xử lý chuỗi.
Các bài thi thử của bạn có chạy truy vấn tôi viết không?+
Không. Bài thi thử của chúng tôi giúp bạn luyện đọc, theo dõi luồng chạy, sửa lỗi và chọn truy vấn. Nhiều bài kiểm tra thực tế yêu cầu bạn viết truy vấn để đối chiếu với các dòng kết quả mong đợi, vì vậy hãy luyện viết truy vấn trên một cơ sở dữ liệu miễn phí như SQLite.
Tôi cần đạt bao nhiêu điểm để vượt qua bài kiểm tra SQL?+
Không có mức điểm đạt chung cho tất cả. Mỗi nhà tuyển dụng đặt ra tiêu chuẩn riêng, và một số nơi chấm câu trả lời thủ công. Hãy cố gắng viết mọi truy vấn chính xác tuyệt đối, vì truy vấn trả về các hàng sai dù chỉ một chút thường sẽ được 0 điểm.
Các câu hỏi này có được lấy từ bài kiểm tra SQL của nhà tuyển dụng không?+
Không. Đây là các câu hỏi luyện tập nguyên bản do đội ngũ của chúng tôi biên soạn theo phong cách tương tự. Intellect Council không liên kết với HackerRank (Interviewstreet, Inc.), TestGorilla, bất kỳ nền tảng kiểm tra hay nhà tuyển dụng nào.
Nguồn
- Bài kiểm tra kỹ năng HackerRank: SQL (Basic), đã kiểm tra vào 2026-11-09
- Bài kiểm tra kỹ năng HackerRank: SQL (Intermediate), đã kiểm tra vào 2026-11-09
- Hỗ trợ HackerRank: Câu hỏi dành cho kỹ sư cơ sở dữ liệu (cách chấm điểm câu hỏi về cơ sở dữ liệu), đã kiểm tra vào 2026-11-09
- TestGorilla: SQLite (Coding): bài kiểm tra truy vấn trong tình huống thực tế, đã kiểm tra vào 2026-11-09
- TestGorilla: bài kiểm tra MySQL, thông tin, đã kiểm tra vào 2026-11-09
Bài luyện tập liên quan
Bài luyện thi dành cho người tìm việc
Các bài kiểm tra luyện tập có tính giờ miễn phí dành cho bài kiểm tra tuyển dụng: năng lực, tư duy, đánh giá tâm lý, dạng Wonderlic, dạng CCAT và Excel. Không cần tài khoản để bắt đầu.
Khám pháLuyện bài kiểm tra lập trình Python
Luyện đánh giá Python miễn phí: các câu hỏi về khái niệm, kết quả mã in ra, tìm lỗi và chọn giải pháp hoạt động đúng, mỗi câu đều được hướng dẫn từng bước.
Khám pháLuyện thi lập trình JavaScript
Luyện thi JavaScript miễn phí: các câu hỏi về khái niệm, nội dung mã ghi vào nhật ký, thứ tự xử lý bất đồng bộ, tìm lỗi và chọn giải pháp hoạt động đúng, mỗi câu đều được hướng dẫn từng bước.
Khám pháXem tất cả 93 bài kiểm tra luyện tập
Bước vào buổi kiểm tra với sự chuẩn bị tốt.
Hãy yên tâm rằng bạn đã cố gắng hết sức.
Luyện tập có tính giờ theo định dạng thực tế, với lời giải cho từng câu trả lời.