Bạn sắp tham gia buổi phỏng vấn cho vị trí nhà phát triển SQL? Đừng lo lắng về những câu hỏi có thể được hỏi. Dưới đây là danh sách câu hỏi phỏng vấn SQL thường gặp được tổng hợp bởi Mytour, giúp bạn tự tin và gây ấn tượng với nhà tuyển dụng.
1. SQL là gì?
Câu hỏi: SQL có nghĩa là gì?
Câu lệnh thực hiện: Select * from table_name
3. Khái niệm JOIN và các loại JOIN
JOIN được sử dụng để kết hợp dữ liệu từ 2 hoặc nhiều bảng có liên quan. Sử dụng JOIN khi cần truy vấn dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một kết quả.
Các loại JOIN phổ biến bao gồm: INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, CROSS JOIN, SELF JOIN.
4. Cú pháp thêm bản ghi vào 1 bảng là gì?
Sử dụng INSERT để thêm bản ghi vào 1 bảng.
Ví dụ: INSERT into table_name VALUES (value1, value2,…)

5. Cách thêm 1 cột vào 1 bảng?
Để thêm một cột mới vào bảng, bạn sử dụng cú pháp sau:
ALTER TABLE table_name ADD (column_name)
6. Xác định câu lệnh Delete SQL
Câu lệnh này được dùng để xóa hàng hoặc các hàng từ bảng dựa trên điều kiện đã được chỉ định.
Cú pháp thực hiện:
DELETE FROM table_name
WHERE
7. SQL đóng vai trò như thế nào?
SQL có các vai trò chính sau:
- Thực thi truy vấn cơ sở dữ liệu
- Lấy dữ liệu từ cơ sở dữ liệu
- Chèn bản ghi vào cơ sở dữ liệu
- Cập nhật bản ghi trong cơ sở dữ liệu
- Xóa bản ghi khỏi cơ sở dữ liệu
- Tạo cơ sở dữ liệu mới
- Tạo bảng mới trong cơ sở dữ liệu
- Tạo thủ tục lưu trữ trong cơ sở dữ liệu
- Tạo các dạng xem trong cơ sở dữ liệu
- Đặt quyền trên bảng, thủ tục, dạng xem
8. MySQL là gì?
MySQL là hệ quản trị cơ sở dữ liệu SQL mã nguồn mở do Oracle Corporation phân phối. Trong phỏng vấn, nhà tuyển dụng có thể hỏi về sự khác biệt giữa SQL và MySQL. SQL là ngôn ngữ truy vấn dùng để truy cập cơ sở dữ liệu quan hệ, còn MySQL là một hệ quản trị cơ sở dữ liệu quan hệ sử dụng SQL làm ngôn ngữ chuẩn.
9. Làm thế nào để hiển thị thời gian và ngày hiện tại bằng truy vấn SQL?
Nhà tuyển dụng đặt câu hỏi này để đánh giá khả năng chuyên môn của ứng viên. Khi làm việc với SQL, đây chỉ là câu hỏi cơ bản. Khi sử dụng truy vấn SQL và muốn hiển thị thời gian, ngày tháng, bạn sử dụng lệnh GetDate().
10. Các tập con của SQL là gì?
Các tập con của SQL bao gồm:
- DDL (Ngôn ngữ định nghĩa dữ liệu): Xác định cấu trúc dữ liệu bao gồm các lệnh như: Create, Alter, Drop.
- DML (Ngôn ngữ thao tác dữ liệu): Dùng để thao tác dữ liệu hiện có và có các lệnh Chọn, Chèn, Cập nhật, Xóa
- DCL (Ngôn ngữ điều khiển dữ liệu): Kiểm soát quyền truy cập dữ liệu trong cơ sở dữ liệu với người sử dụng, bao gồm các lệnh như: GRANT và REVOKE.
11. Sự khác biệt giữa mệnh đề HAVING và mệnh đề WHERE?
Mệnh đề HAVING và WHERE chỉ định điều kiện tìm kiếm. Trong đó, HAVING được sử dụng với câu lệnh SELECT, GROUP BY. Nếu mệnh đề GROUP BY không được sử dụng, thì HAVING hoạt động giống như mệnh đề WHERE.
Cần nhấn mạnh sự khác biệt sau:
- Mệnh đề HAVING lọc kết quả dựa trên nhóm tổng hợp, mệnh đề GROUP BY tóm tắt dữ liệu.
- Mệnh đề HAVING áp dụng cho bản ghi tổng hợp, WHERE áp dụng cho bản ghi riêng lẻ.
- Mệnh đề HAVING được sử dụng với GROUP BY.
- Cả WHERE và HAVING có thể được sử dụng trong cùng một truy vấn.
12. Sự khác biệt giữa UNION và UNION ALL là gì?
Một câu hỏi phổ biến trong phỏng vấn SQL là về sự khác biệt giữa UNION và UNION ALL. Đây là mô tả:
- UNION: Trả về tất cả các hàng riêng biệt được chọn bởi một trong hai truy vấn.
- UNION ALL: Tất cả các hàng được chọn bởi một trong hai truy vấn được trả về, bao gồm cả các hàng trùng lặp.
13. Toán tử nào được sử dụng để tìm kiếm chuỗi ký tự khớp với mẫu đã chỉ định?
Toán tử LIKE được sử dụng trong mệnh đề WHERE để tìm kiếm mẫu trong cùng một cột.
Có hai ký tự đại diện được sử dụng với toán tử LIKE:
- % là dấu phần trăm đại diện cho không, một hoặc nhiều ký tự
- _ là dấu gạch dưới đại diện cho bất kỳ ký tự đơn nào.
14. Các loại Join cơ bản trong SQL là gì?
Một số loại Join cơ bản trong SQL bao gồm:
- INNER JOIN
- LEFT OUTER JOIN (hoặc LEFT JOIN)
- RIGHT OUTER JOIN (hoặc RIGHT JOIN)
- FULL OUTER JOIN (hoặc FULL JOIN)
Cụ thể:
- SQL INNER JOIN Keyword: Loại JOIN phổ biến nhất, trả về các bản ghi chung giữa hai bảng.
- SQL LEFT JOIN Keyword: Trả về hàng từ bảng bên trái và hàng từ bảng khác nếu có.
- SQL RIGHT JOIN Keyword: Trả về hàng từ bảng bên phải và hàng từ bảng khác nếu có.
- FULL OUTER JOIN: Trả về toàn bộ bản ghi từ cả hai bảng.

15. Hàm Case là gì?
Hàm CASE kiểm định và đánh giá giá trị dựa vào điều kiện, sau đó trả về kết quả tương ứng.
- Cú pháp CASE
- CASE expression
- WHEN condition1 THEN result1
- WHEN condition2 THEN result2
- WHEN conditionN THEN resultN
- ELSE result
- END
16. Cách tạo bảng tạm thời trong MySQL là gì?
Đây là một câu hỏi phỏng vấn SQL phổ biến khiến nhiều người bối rối. Bạn sẽ sử dụng câu lệnh CREATE TABLE và thêm từ khóa TEMPORARY vào trong câu lệnh này.
Ví dụ:
- CREATE TEMPORARY TABLE top20customers
- SELECT customer.fname, customer.lname
17. Sự khác biệt giữa ràng buộc UNIQUE với PRIMARY KEY?
- Ràng buộc giữa UNIQUE và PRIMARY KEY đều thể hiện tính duy nhất cho một cột hoặc tập hợp cột.
- Ràng buộc PRIMARY KEY xác định một hàng tại cơ sở dữ liệu, trong khi ràng buộc UNIQUE xác định toàn bộ hàng tồn tại trong bảng.
- Ràng buộc PRIMARY KEY xác định một bản ghi tại cơ sở dữ liệu trong khi Ràng buộc UNIQUE ngăn giá trị trùng lặp tại cột, ngoại trừ mục nhập NULL.
- Chỉ có một ràng buộc PRIMARY KEY cho mỗi bảng, nhưng có thể có nhiều ràng buộc UNIQUE trong mỗi bảng.
18. Có các loại đặc quyền nào trong SQL?
Đặc quyền trong SQL, còn được gọi là Privileges, thường là câu hỏi mà các nhà tuyển dụng thường đặt ra. Privileges trong SQL cho phép người dùng truy cập vào các đối tượng trong cơ sở dữ liệu. Có hai loại đặc quyền thường gặp là:
- System privileges (đặc quyền hệ thống): Người dùng thực hiện các tác vụ như: ALTER ANY INDEX, ALTER ANY CACHE GROUP CREATE, CREATE,…
- Object privileges (đặc quyền đối tượng): Người dùng thực hiện các tác vụ trên đối tượng như: INSERT, UPDATE, DELETE, FLUSH, LOAD, INDEX,…
19. Ưu điểm của Views là gì?
Ưu điểm nổi bật của Views chính là sự đơn giản hóa truy vấn. Lúc này, người sử dụng có thể sử dụng Views để truy vấn kết quả tìm kiếm phức tạp, kết quả hiển thị là các cột được lựa chọn từ bảng. Đồng thời, người dùng cũng có thể hạn chế quyền truy cập với người dùng cụ thể và không muốn dữ liệu cần được truy cập bởi tất cả người dùng bên ngoài.
Vậy một Views có thể dựa trên một Views khác không? Câu trả lời là có, một Views có thể hoàn toàn dựa trên một Views khác. Views trong SQL là cấu trúc ảo cho phép người sử dụng theo dõi giá trị, thiết lập quyền truy cập của bảng một cách đơn giản.
20. SQL Injection là gì?
Nếu muốn để lại ấn tượng trong buổi phỏng vấn SQL, hãy chuẩn bị kỹ lưỡng khi được hỏi về SQL Injection. SQL Injection là phương pháp chèn đoạn mã SQL vào để làm thay đổi truy vấn ban đầu, nhằm mục đích khai thác dữ liệu từ cơ sở dữ liệu. Đây được coi là một trong những kỹ thuật hack web hiệu quả nhất hiện nay.
21. Trong SQL, cách sử dụng FOREIGN KEY như thế nào?
FOREIGN KEY trong SQL là một cột trong bảng được sử dụng để tham chiếu đến PRIMARY KEY của một bảng khác, nhằm xác định quan hệ giữa hai bảng.
22. Bạn có thể giải thích UNIQUE KEY trong SQL như thế nào?
UNIQUE KEY trong SQL là một cột hoặc một tập hợp các cột được sử dụng để đảm bảo rằng không có bản ghi nào trong bảng có giá trị trùng lặp trong các cột đó.
23. Trong SQL, CHECK CONSTRAINT được sử dụng như thế nào?
CHECK CONSTRAINT trong SQL áp dụng quy tắc hoặc điều kiện cho một hoặc nhiều cột trong bảng để đảm bảo giá trị trong cột phải thỏa mãn điều kiện chỉ định.
24. Khái niệm DEFAULT CONSTRAINT trong SQL là gì?
DEFAULT CONSTRAINT trong SQL là giá trị mặc định áp dụng cho một cột trong bảng khi không có giá trị được cung cấp cho cột đó trong quá trình thêm bản ghi mới.
25. Trong SQL, ALTER TABLE được sử dụng như thế nào?
ALTER TABLE trong SQL thay đổi cấu trúc của một bảng có sẵn trong cơ sở dữ liệu. Các thao tác bao gồm thêm, xóa, sửa cột hoặc đổi tên bảng, cột.
Để sử dụng ALTER TABLE trong SQL, bạn dùng câu lệnh ALTER TABLE, sau đó tên bảng muốn thay đổi. Bạn có thể sử dụng các từ khóa như ADD COLUMN, DROP COLUMN, ALTER COLUMN, RENAME TO để thực hiện các thao tác. Ví dụ, để thêm cột “Ngày_sinh” vào bảng “Nhân_viên”, bạn có thể dùng câu lệnh sau:
ALTER TABLE Nhân_viên
THÊM CỘT Ngày_sinh DATE;

26. INSERT INTO trong SQL là gì?
INSERT INTO trong SQL dùng để chèn bản ghi mới vào bảng trong cơ sở dữ liệu. Có thể chèn một hoặc nhiều bản ghi cùng một lúc.
Để sử dụng INSERT INTO trong SQL, sử dụng câu lệnh INSERT INTO, sau đó là tên bảng muốn chèn bản ghi mới. Sau đó, sử dụng từ khóa VALUES hoặc SELECT để chỉ định giá trị của các cột tương ứng. Ví dụ, để chèn thông tin của một khách hàng mới vào bảng “Khách_hàng”, có thể dùng câu lệnh sau:
INSERT INTO Khách_hàng (Tên, Địa_chỉ, Email)
GIÁ_TRỊ (‘Nguyễn Văn A’, ‘123 Đường ABC’, ‘[email protected]’);
27. Trong SQL, cách sử dụng UPDATE?
UPDATE trong SQL dùng để cập nhật giá trị của một hoặc nhiều bản ghi trong bảng đã có trong cơ sở dữ liệu. Có thể cập nhật giá trị của một hoặc nhiều cột cùng một lúc.
28. DELETE trong SQL là gì?
DELETE trong SQL dùng để xóa bản ghi hoặc nhiều bản ghi trong bảng đã có trong cơ sở dữ liệu. Có thể xóa một hoặc nhiều bản ghi cùng một lúc.

29. TRUNCATE TABLE trong SQL là gì?
TRUNCATE TABLE trong SQL dùng để xóa toàn bộ nội dung của một bảng trong cơ sở dữ liệu. Không chỉ xóa bản ghi mà còn xóa cấu trúc của bảng, nhưng không xóa bảng chính mà chỉ xóa toàn bộ dữ liệu trong bảng.
30. ORDER BY trong SQL là gì?
ORDER BY được dùng để sắp xếp các bản ghi trong bảng theo thứ tự tăng dần hoặc giảm dần của một hoặc nhiều cột.
31. LIMIT trong SQL là gì?
ORDER BY được dùng để sắp xếp các bản ghi trong bảng theo thứ tự tăng dần hoặc giảm dần của một hoặc nhiều cột.
32. OFFSET trong SQL là gì?
OFFSET trong SQL được dùng để bỏ qua một số bản ghi trong kết quả truy vấn. Để sử dụng OFFSET trong SQL, bạn cần chỉ định số lượng bản ghi mà bạn muốn bỏ qua.
33. IN trong SQL là gì?
IN được dùng để lọc dữ liệu trong bảng dựa trên một danh sách các giá trị được chỉ định.
34. LIKE trong SQL là gì?
LIKE được dùng để lọc dữ liệu trong bảng dựa trên một chuỗi ký tự được chỉ định và có thể sử dụng các ký tự đặc biệt như % (đại diện cho bất kỳ ký tự nào) và _ (đại diện cho một ký tự bất kỳ).
35. BETWEEN trong SQL là gì?
BETWEEN được dùng để lọc dữ liệu trong bảng dựa trên một khoảng giá trị được chỉ định.
36. EXISTS trong SQL là gì?
EXISTS trong SQL dùng để kiểm tra xem có tồn tại bất kỳ bản ghi nào trong một bảng thỏa mãn một điều kiện cụ thể hay không. Nó trả về giá trị boolean TRUE hoặc FALSE.
37. DISTINCT ON trong SQL là gì?
DISTINCT ON trong SQL dùng để lấy các giá trị duy nhất cho một hoặc nhiều cột cụ thể trong kết quả truy vấn. Nó giống như DISTINCT, nhưng có thể chỉ định cột nào sẽ được sử dụng để xác định các bản ghi duy nhất.
38. COALESCE trong SQL là gì?
COALESCE trong SQL dùng để trả về giá trị đầu tiên khác NULL từ một danh sách các giá trị. Nó được sử dụng để xử lý các giá trị NULL trong các truy vấn SQL.
39. CASE WHEN trong SQL là gì?
CASE WHEN trong SQL là biểu thức điều kiện dùng để thực hiện các phép tính hoặc trả về các giá trị khác nhau tùy thuộc vào giá trị của một hoặc nhiều cột hoặc biểu thức. Giống như câu lệnh IF-THEN-ELSE trong các ngôn ngữ lập trình khác.
40. JOIN trong SQL là gì?
JOIN trong SQL là phép nối bảng dùng để kết hợp các bảng dựa trên một điều kiện kết nối được chỉ định. Cần chỉ định hai bảng cần kết hợp và điều kiện kết nối giữa chúng. Có INNER JOIN, LEFT JOIN, RIGHT JOIN và FULL OUTER JOIN.
SELECT *
FROM Đơn_hàng
INNER JOIN Khách_hàng
ON Đơn_hàng.”ID khách hàng” = Khách_hàng.”ID”
41. Trong SQL, INNER JOIN và OUTER JOIN kết hợp với WHERE là gì?
INNER JOIN và OUTER JOIN là phép nối bảng trong SQL. INNER JOIN kết hợp bản ghi của hai bảng dựa trên giá trị khớp nhau trong cột được chỉ định, OUTER JOIN kết hợp tất cả bản ghi của hai bảng, bao gồm cả giá trị NULL. WHERE lọc bản ghi dựa trên điều kiện.

42. AGGREGATE FUNCTION trong SQL là gì?
AGGREGATE FUNCTION trong SQL là các hàm tính toán giá trị tổng hợp của một tập hợp các giá trị, như SUM, AVG, MIN, MAX và COUNT.
43. COUNT trong SQL được sử dụng như thế nào?
COUNT trong SQL được sử dụng để đếm số lượng bản ghi trong một cột hoặc toàn bộ bảng. Để sử dụng COUNT trong SQL, chỉ định cột hoặc không nếu muốn đếm toàn bộ bảng. Ví dụ, để đếm số lượng sản phẩm trong bảng “Sản_phẩm”:
SELECT COUNT(*) AS Số_lượng_sản_phẩm
FROM Sản_phẩm
44. SUM trong SQL có ý nghĩa gì?
SUM trong SQL tính tổng các giá trị trong một cột. Để sử dụng SUM trong SQL, chỉ định cột bạn muốn tính tổng. Ví dụ, để tính tổng số lượng sản phẩm đã bán trong bảng “Đơn_hàng_chi_tiết”:
SELECT SUM(Số_lượng) AS Tổng_số_lượng
FROM Đơn_hàng_chi_tiết
45. AVG trong SQL được dùng như thế nào?
AVG trong SQL tính trung bình cộng của các giá trị trong một cột. Để sử dụng AVG trong SQL, chỉ định cột bạn muốn tính trung bình cộng. Ví dụ, để tính trung bình điểm của sinh viên trong bảng “Sinh_vien”:
SELECT AVG(Điểm) AS Trung_bình_điểm
FROM Sinh_vien
46. MAX trong SQL có ý nghĩa gì?
MAX trong SQL sử dụng để tìm giá trị lớn nhất trong một cột. Để sử dụng MAX trong SQL, chỉ định cột muốn tìm giá trị lớn nhất. Ví dụ, để tìm giá trị lớn nhất trong cột “Giá” của bảng “Sản_phẩm”:
SELECT MAX(Giá) AS Giá_cao_nhất
FROM Sản_phẩm
47. Trong SQL, cách thức sử dụng MIN là gì?
MIN là một hàm tính toán trong SQL sử dụng để tìm giá trị nhỏ nhất trong một tập hợp các giá trị. Thường được sử dụng trong các truy vấn SQL để lấy giá trị nhỏ nhất của một cột trong bảng.
48. Bạn có thể giải thích khái niệm của GROUP_CONCAT trong SQL?
GROUP_CONCAT là một hàm tính toán trong SQL dùng để kết hợp các giá trị của một cột thành một chuỗi duy nhất, với các giá trị được phân tách bằng một ký tự hoặc chuỗi được chỉ định. Thường được sử dụng để phân tích dữ liệu được nhóm lại trong truy vấn SQL.
49. Trong SQL, cách thức sử dụng ROW_NUMBER là gì?
ROW_NUMBER là một hàm tính toán trong SQL dùng để gán số thứ tự cho mỗi bản ghi trong kết quả truy vấn, dựa trên một hoặc nhiều cột được chỉ định. Hàm này thường được sử dụng để xác định vị trí của các bản ghi trong kết quả truy vấn.
50. Bạn có thể giải thích khái niệm của CTE (Common Table Expression) trong SQL?
CTE (Common Table Expression) là một công cụ trong SQL giúp tạo bảng tạm thời trong truy vấn, sau đó sử dụng bảng tạm thời đó trong các phần của câu lệnh truy vấn khác. Thường được dùng để giảm độ phức tạp của các truy vấn SQL phức tạp bằng cách chia chúng thành các bước nhỏ hơn và dễ hiểu hơn.
Mytour đã giới thiệu về các câu hỏi phỏng vấn SQL phổ biến nhất. Để ghi điểm và gây ấn tượng, có thể thêm ví dụ nhỏ trong từng câu trả lời để thể hiện kinh nghiệm thực tế.
Dưới đây là tổng hợp câu hỏi phỏng vấn SQL cần nắm để thành công trong phỏng vấn. Bạn có thể tìm việc làm SQL, công nghệ thông tin, IT tại Mytour và tiếp cận việc làm chất lượng từ các công ty hàng đầu.
Cùng với đó, Mytour hiện đang cung cấp hàng trăm mẫu CV dành riêng cho lập trình để bạn lựa chọn và tạo CV chuyên nghiệp một cách nhanh chóng. Đừng quên theo dõi danh mục HR Insider của Mytour để cập nhật thông tin phỏng vấn và ngành nghề hữu ích nhé!