Bạn đang chuẩn bị cho buổi phỏng vấn về vị trí Nhà phát triển SQL? Đừng lo lắng về câu hỏi sẽ được đặt ra. Dưới đây là danh sách các câu hỏi phỏng vấn SQL phổ biến mà Mytour tổng hợp. Hãy sẵn sàng để ghi điểm với nhà tuyển dụng!
1. SQL là gì?
2. Làm sao để chọn tất cả các bản ghi từ một bảng?
Câu lệnh thực hiện: SELECT * FROM tên_bảng
3. Định nghĩa và các loại JOIN
JOIN được dùng để kết hợp dữ liệu từ nhiều bảng khác nhau. Sử dụng JOIN khi cần truy vấn dữ liệu từ các bảng khác nhau để lấy ra trong cùng một kết quả.
Một số 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 câu lệnh INSERT để thêm bản ghi vào một bảng.
Ví dụ: INSERT into tên_bảng VALUES (giá_trị1, giá_trị2,…)

5. Cách thêm 1 cột vào 1 bảng là gì?
Để thêm một cột mới vào bảng, bạn sử dụng cú pháp sau:
ALTER TABLE tên_bảng ADD (tên_cột)
6. Xác định câu lệnh Xóa SQL
Câu lệnh này được sử 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 tên_bảng
WHERE
7. SQL có vai trò quan trọng như thế nào?
SQL đóng vai trò quan trọng trong nhiều khía cạnh:
- SQL thực hiện các truy vấn trong cơ sở dữ liệu
- SQL truy xuất dữ liệu từ cơ sở dữ liệu
- SQL chèn bản ghi vào cơ sở dữ liệu
- SQL cập nhật bản ghi trong cơ sở dữ liệu
- SQL xóa bản ghi khỏi cơ sở dữ liệu
- SQL tạo cơ sở dữ liệu mới
- SQL tạo bảng mới trong cơ sở dữ liệu
- SQL tạo thủ tục lưu trữ trong cơ sở dữ liệu
- SQL tạo các dạng xem trong cơ sở dữ liệu
- SQL gán quyền trên bảng, thủ tục, dạng xem
8. MySQL là gì?
MySQL là một hệ thống quản lý cơ sở dữ liệu SQL mã nguồn mở được phát triển và phân phối bởi Oracle Corporation. Trong một buổi phỏng vấn, người 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 trong truy vấn SQL?
Nhà tuyển dụng sử dụng câu hỏi này để đánh giá kỹ năng chuyên môn của ứng viên. Trong lĩnh vực SQL, đó là một câu hỏi cơ bản. Khi bạn sử dụng truy vấn SQL và muốn hiển thị thời gian và ngày tháng, bạn sẽ 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 bằng các lệnh như: Create, Alter, Drop.
- DML (Ngôn ngữ Thao tác Dữ liệu): Sử dụng để thao tác với dữ liệu hiện có với các lệnh Select, Insert, Update, Delete.
- 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 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 đều chỉ định điều kiện tìm kiếm. Tuy nhiên, HAVING thường được sử dụng với câu lệnh SELECT, GROUP BY. Nếu không có câu lệnh GROUP BY, HAVING hoạt động tương tự như WHERE.
Một số sự khác biệt khác cần được đề cập là:
- Mệnh đề HAVING lọc kết quả dựa trên các nhóm, trong khi mệnh đề GROUP BY tổng hợp dữ liệu.
- Mệnh đề HAVING áp dụng cho bản ghi nhóm tóm tắt, mệnh đề WHERE áp dụng cho các bản ghi riêng lẻ.
- Mệnh đề HAVING thường đi kèm với GROUP BY.
- Cả hai mệnh đề WHERE và HAVING đều có thể xuất hiện 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à sự khác biệt giữa UNION và UNION ALL. Đây là mô tả:
- UNION: Trả về toàn bộ các hàng duy nhất từ một trong hai truy vấn
- UNION ALL: Trả về tất cả các hàng từ một trong hai truy vấn, 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 cụ thể trong cùng một cột.
Có hai ký tự đặc biệt đi kèm với toán tử LIKE:
- %: Đại diện cho không hoặc nhiều ký tự
- _ : Đại diện cho một ký tự bất kỳ
14. Những 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 biệt:
- SQL INNER JOIN: Trả về tất cả các bản ghi từ cả hai bảng mà khớp với điều kiện
- SQL LEFT JOIN: Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi khớp từ bảng bên phải
- SQL RIGHT JOIN: Trả về tất cả các bản ghi từ bảng bên phải và các bản ghi khớp từ bảng bên trái
- FULL OUTER JOIN: Trả về tất cả các bản ghi từ cả hai bảng, kể cả khi không có kết nối

15. Ý nghĩa của Hàm Case là gì?
Hàm CASE đánh giá giá trị dựa trên các điều kiện và 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. Làm thế nào để tạo một bảng tạm thời trong MySQL?
Đây là một câu hỏi phỏng vấn SQL phổ biến mà nhiều người gặp khó khăn. 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à PRIMARY KEY là gì?
- Ràng buộc UNIQUE và PRIMARY KEY đều đảm bảo 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 duy nhất trong bảng cơ sở dữ liệu, trong khi ràng buộc UNIQUE xác định toàn bộ các hàng trong bảng.
- Ràng buộc PRIMARY KEY đảm bảo rằng không có giá trị trùng lặp trong cột, trong khi ràng buộc UNIQUE cũng ngăn chặn giá trị trùng lặp nhưng cho phép giá trị NULL.
- Mỗi bảng chỉ có một ràng buộc PRIMARY KEY, nhưng có thể có nhiều ràng buộc UNIQUE.
18. Có những loại đặc quyền nào trong SQL?
Đặc quyền trong SQL, hay còn gọi là Privileges trong SQL, thường là một câu hỏi mà các nhà tuyển dụng thường đặt. Privileges trong SQL cho phép người sử 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 phổ biến 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 các đối tượng như: INSERT, UPDATE, DELETE, FLUSH, LOAD, INDEX,…
19. Lợi ích chính của Views là gì?
Lợi ích chính của Views là giảm đơn giản hóa truy vấn. 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 và hiển thị các cột được chọn từ các bảng. Đồng thời, người sử dụng cũng có thể hạn chế quyền truy cập với các người sử dụng cụ thể và không muốn dữ liệu con được truy vấn bởi tất cả các người sử dụng khác.
Có thể một chế độ View dựa trên một chế độ View khác không? Câu trả lời là có, chế độ View hoàn toàn có thể dựa trên chế độ View khác. Views trong SQL là cấu trúc ảo cho phép người sử dụng theo dõi giá trị và 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 bạn muốn tạo ấn tượng với nhà tuyển dụ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 nhằm thay đổi câu truy vấn ban đầu, từ đó có thể khai thác dữ liệu từ cơ sở dữ liệu. SQL Injection được xem là một trong những kỹ thuật tấn công web hiệu quả nhất hiện nay.
21. Trong SQL, FOREIGN KEY được sử dụng 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 mối quan hệ giữa hai bảng.
22. Trong SQL, UNIQUE KEY có ý nghĩa 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ó cá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 là một quy tắc hoặc điều kiện được áp dụng cho một hoặc nhiều cột trong bảng để đảm bảo rằng giá trị trong cột đó phải thỏa mãn một số điều kiện được chỉ định.
24. Trong SQL, DEFAULT CONSTRAINT có ý nghĩa như thế nào?
DEFAULT CONSTRAINT trong SQL là một giá trị mặc định được áp dụng cho một cột trong bảng khi không có giá trị nào đượ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 được dùng để thay đổi cấu trúc của một bảng đã tồn tại trong cơ sở dữ liệu. Các thao tác có thể bao gồm thêm cột, xóa cột, thay đổi kiểu dữ liệu của cột, đổi tên bảng hoặc cột.
Để sử dụng ALTER TABLE trong SQL, bạn cần sử dụng câu lệnh ALTER TABLE, theo sau là tên bảng mà bạn muốn thay đổi. Sau đó, 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 tương ứng. Ví dụ, nếu bạn muốn thêm một cột mới “Ngày_sinh” vào bảng “Nhân_viên”, bạn có thể sử dụng câu lệnh sau:
ALTER TABLE Nhân_viên
THÊM CỘT Ngày_sinh KIỂU DỮ LIỆU DATE;

26. Trong SQL, INSERT INTO có ý nghĩa như thế nào?
INSERT INTO trong SQL dùng để CHÈN BẢN GHI mới vào bảng trong cơ sở dữ liệu. Bạn 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, bạn cần sử dụng câu lệnh INSERT INTO, sau đó là tên bảng mà bạn muốn chèn bản ghi mới. Tiếp theo, bạn có thể 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ụ, nếu bạn muốn chèn thông tin của một khách hàng mới vào bảng “Khách_hàng”, bạn có thể sử 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 thức sử dụng UPDATE là gì?
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ó sẵn trong cơ sở dữ liệu. Bạn có thể cập nhật giá trị của một cột hoặc nhiều cột cùng một lúc.
28. DELETE trong SQL có nghĩa là gì?
DELETE trong SQL sử dụng để xóa bản ghi hoặc nhiều bản ghi từ một bảng đã có trong cơ sở dữ liệu. Bạn có thể xóa một hoặc nhiều bản ghi cùng một lúc.

29. TRUNCATE TABLE trong SQL dùng như thế nào?
TRUNCATE TABLE trong SQL sử dụng để xóa toàn bộ nội dung của một bảng trong cơ sở dữ liệu. Khác với DELETE, TRUNCATE TABLE không chỉ xóa bản ghi mà còn xóa cấu trúc của bảng, tuy nhiên không xóa bảng chính, chỉ xóa dữ liệu trong bảng.
30. ORDER BY trong SQL là gì?
ORDER BY 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 có ý nghĩa gì?
ORDER BY được sử 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 dùng để làm gì?
OFFSET trong SQL được dùng để bỏ qua một số bản ghi trong kết quả truy vấn.
33. IN trong SQL là gì?
IN 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 được dùng để làm 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ó bất kỳ bản ghi nào trong 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àm gì?
DISTINCT ON trong SQL sử 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. 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 được sử dụng như thế nào?
COALESCE trong SQL trả về giá trị đầu tiên khác NULL từ một danh sách các giá trị. Nó giúp xử lý các giá trị NULL trong các truy vấn SQL.
39. CASE WHEN trong SQL được sử dụng như thế nào?
CASE WHEN trong SQL là một biểu thức điều kiện được sử 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. Tương tự 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 được sử 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ó nhiều loại JOIN như INNER JOIN, LEFT JOIN, RIGHT JOIN và FULL OUTER JOIN. Ví dụ, để lấy danh sách các đơn hàng và thông tin khách hàng tương ứng, bạn có thể sử dụng câu lệnh sau:
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. INNER JOIN và OUTER JOIN kết hợp với WHERE trong SQL làm gì?
INNER JOIN và OUTER JOIN là hai loại phép nối bảng được sử dụng để kết hợp các bảng trong cơ sở dữ liệu. Mệnh đề WHERE được sử dụng để lọc các bản ghi dựa trên một hoặc nhiều điều kiện.

42. AGGREGATE FUNCTION trong SQL là gì?
AGGREGATE FUNCTION trong SQL là các hàm dùng để tính tổng hợp giá trị của một tập hợp các giá trị, bao gồm SUM, AVG, MIN, MAX và COUNT.
43. Trong SQL, COUNT là gì và cách 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, chỉ cần chỉ định cột hoặc không cần 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”, bạn có thể sử dụng:
SELECT COUNT(*) AS Số_lượng_sản_phẩm
FROM Sản_phẩm
44. SUM trong SQL là gì và cách sử dụng như thế nào?
SUM trong SQL là hàm dùng để tính tổng các giá trị trong một cột cụ thể. Để sử dụng SUM, chỉ cần chỉ định cột 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”, bạn có thể sử dụng:
SELECT SUM(Số_lượng) AS Tổng_số_lượng
FROM Đơn_hàng_chi_tiết
45. AVG trong SQL là gì và cách sử dụng như thế nào?
AVG trong SQL là hàm dùng để tính trung bình cộng của các giá trị trong một cột. Để sử dụng AVG, chỉ cần chỉ định cột muốn tính trung bình cộng. Ví dụ, để tính trung bình điểm của các sinh viên trong bảng “Sinh_vien”, bạn có thể sử dụng:
SELECT AVG(Điểm) AS Trung_bình_điểm
FROM Sinh_vien
46. MAX trong SQL là gì và cách sử dụng như thế nào?
MAX trong SQL dùng để tìm giá trị lớn nhất trong một cột. Để sử dụng MAX, chỉ cần 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”, bạn có thể sử dụng:
SELECT MAX(Giá) AS Giá_cao_nhất
FROM Sản_phẩm
47. MIN trong SQL là gì và cách sử dụng như thế nào?
MIN là một hàm tính toán trong SQL dùng để tìm giá trị nhỏ nhất trong một tập hợp các giá trị. Thông thường, MIN đượ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. GROUP_CONCAT trong SQL là gì và cách sử dụng như thế nào?
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 nhóm lại trong truy vấn SQL.
49. SQL có gì về ROW_NUMBER?
ROW_NUMBER trong SQL gán một 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. 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. CTE (Common Table Expression) là gì trong SQL?
CTE (Common Table Expression) là công cụ trong SQL cho phép tạo bảng tạm thời trong một 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 sử dụng để giảm độ phức tạp của các truy vấn SQL.
Mytour đã giới thiệu cho bạn các câu hỏi phỏng vấn SQL phổ biến nhất. Bạn có thể thêm ví dụ nhỏ vào câu trả lời để thể hiện kinh nghiệm của mình!
Dưới đây là những câu hỏi phỏng vấn SQL quan trọng mà bạn cần nắm. Tìm việc làm SQL, IT tại Mytour để gặp những cơ hội việc làm tốt nhất từ các doanh nghiệp uy tín.
Ngoài ra, Mytour hiện cung cấp hàng trăm mẫu CV cho lĩnh vực lập trình để bạn có nhiều sự lựa chọn và tạo ra CV chất lượng, nhanh chóng. Đừng quên theo dõi HR Insider của Mytour để cập nhật thông tin về phỏng vấn và ngành nghề.