Top 50 câu hỏi phỏng vấn SQL bạn nhất định phải biết

Tặng 45 phút tư vấn lộ trình ngành Tech cùng chuyên gia

Chỉ còn 7 suất cuối trong tháng này, hỗ trợ tư vấn ngoài giờ hành chính (Trị giá 500,000 VND)

Cám ơn bạn đã tin tưởng CoderSchool, các tư vấn viên sẽ liên lạc với bạn trong 24 giờ tới nên bạn nhớ chú ý điện thoại nhé.
Không thể gửi thông tin. Xin vui lòng kiểm tra và gửi lại.
coderschool-backgroud

SQL (Structured Query Language) là một ngôn ngữ truy vấn cấu trúc quan trọng đối với các lập trình viên, tester, BA hay QA và nhiều ngành nghề khác liên quan đến quản lý cơ sở dữ liệu. Hiểu biết vững vàng về SQL sẽ giúp bạn tự tin và thành công trong quá trình phỏng vấn. Dưới đây là danh sách top 50 câu hỏi phỏng vấn SQL thường gặp mà bạn nên chuẩn bị trước khi đi phỏng vấn.

1. SQL là gì?

SQL là viết tắt của Structured Query Language, là ngôn ngữ truy vấn cấu trúc được sử dụng để quản lý dữ liệu trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS).

2. Câu lệnh để chọn tất cả bản ghi từ một bảng?

Cú pháp: SELECT * FROM table_name

3. Định nghĩa JOIN và các loại JOIN?

JOIN được sử dụng để kết hợp dữ liệu từ hai hoặc nhiều bảng liên quan. Các loại JOIN thông dụng bao gồm INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, CROSS JOIN và SELF JOIN.

4. Cú pháp để thêm một bản ghi vào một bảng là gì?

Sử dụng cú pháp: INSERT INTO table_name VALUES (value1, value2, ...)

5. Làm thế nào để thêm một cột vào một bảng?

Sử dụng cú pháp: ALTER TABLE table_name ADD column_name datatype

6. Xác định câu lệnh DELETE SQL?

Câu lệnh DELETE được sử dụng để xóa hàng hoặc các hàng từ một bảng dựa trên điều kiện được chỉ định. Cú pháp: DELETE FROM table_name WHERE condition

7. Xác định COMMIT?

COMMIT được sử dụng để lưu lại tất cả các thay đổi được thực hiện bởi các câu lệnh DML (Data Manipulation Language). COMMIT thực hiện việc xác nhận các thay đổi và áp dụng chúng vào cơ sở dữ liệu.

8. Khóa chính (PRIMARY KEY) là gì?

Khóa chính là một cột hoặc tập hợp các cột có giá trị duy nhất để xác định mỗi hàng trong một bảng. Giá trị khóa chính không được phép trùng lặp hoặc có giá trị NULL.

9. Khóa ngoại (FOREIGN KEY) là gì?

Khóa ngoại là một cột hoặc tập hợp các cột trong một bảng tham chiếu đến khóa chính của một bảng khác. Nó thiết lập mối quan hệ giữa hai bảng và đảm bảo tính toàn vẹn tham chiếu.

10. Ràng buộc CHECK (CHECK Constraint) là gì?

Ràng buộc CHECK được sử dụng để giới hạn các giá trị hoặc loại dữ liệu có thể được lưu trữ trong một cột. Nếu một bản ghi không đáp ứng ràng buộc CHECK, nó sẽ không được chấp nhận vào bảng.

11. Một bảng có thể có nhiều hơn một khóa ngoại không?

Có, một bảng có thể có nhiều khóa ngoại.

12. Sự khác biệt giữa UNION và UNION ALL?

UNION kết hợp các kết quả của hai hoặc nhiều câu lệnh SELECTkhác nhau và loại bỏ các bản ghi trùng lặp. UNION ALL kết hợp các kết quả của các câu lệnh SELECT mà không xóa bỏ các bản ghi trùng lặp.

13. Sự khác biệt giữa HAVING và WHERE trong SQL?

WHERE được sử dụng để lọc các bản ghi trước khi chúng được nhóm hoặc đánh giá bởi HAVING. HAVING được sử dụng để lọc các bản ghi sau khi chúng được nhóm.

14. Sử dụng cú pháp SQL để sắp xếp các bản ghi theo một cột cụ thể?

Sử dụng cú pháp: ORDER BY column_name ASC/DESC

15. Câu lệnh SQL để tính tổng các giá trị trong một cột?

Sử dụng cú pháp: SELECT SUM(column_name) FROM table_name

16. Câu lệnh SQL để đếm số lượng bản ghi trong một bảng?

Sử dụng cú pháp: SELECT COUNT(*) FROM table_name

17. Sự khác biệt giữa DDL, DML và DCL trong SQL?

DDL (Data Definition Language) sử dụng để định nghĩa cấu trúc cơ sở dữ liệu. DML (Data Manipulation Language) sử dụng để thao tác với dữ liệu trong cơ sở dữ liệu. DCL (Data Control Language) sử dụng để kiểm soát quyền truy cập và bảo mật trong cơ sở dữ liệu.

18. Câu lệnh SQL để tạo một bảng mới?

Sử dụng cú pháp: CREATE TABLE table_name (column1 datatype, column2 datatype, ...)

19. Sự khác biệt giữa CHAR và VARCHAR trong SQL?

CHAR là kiểu dữ liệu cố định có độ dài xác định, trong khi VARCHAR là kiểu dữ liệu biến đổi có độ dài có thể thay đổi.

20. Câu lệnh SQL để cập nhật giá trị của một cột trong một bảng?

Sử dụng cú pháp: UPDATE table_name SET column_name = new_value WHERE condition

21. Sự khác biệt giữa TRUNCATE và DELETE trong SQL?

TRUNCATE xóa toàn bộ nội dung của một bảng mà không ghi lại trong log, trong khi DELETE xóa các bản ghi một cách lựa chọn và ghi lại trong log.

22. Câu lệnh SQL để lấy giá trị tối đa trong một cột?

Sử dụng cú pháp: SELECT MAX(column_name) FROM table_name

23. Sự khác biệt giữa UNIQUE và PRIMARY KEY trong SQL?

UNIQUE cho phép các giá trị duy nhất và có thể chứa giá trị NULL, trong khi PRIMARY KEY yêu cầu các giá trị duy nhất và không chấp nhận giá trị NULL.

24. Câu lệnh SQL để tạo một index trong một bảng?

Sử dụng cú pháp: CREATE INDEX index_name ON table_name (column_name)

25. Sự khác biệt giữa TRIGGER và STORED PROCEDURE trong SQL?

TRIGGER được kích hoạt tự động khi có một sự kiện trong cơ sở dữ liệu xảy ra, trong khi STORED PROCEDURE là một tập hợp các câu lệnh SQL được lưu trữ và có thể được gọi khi cần thiết.

26. Câu lệnh SQL để lấy các bản ghi duy nhất từ một cột trong một bảng?

Sử dụng cú pháp: SELECT DISTINCT column_name FROM table_name

27. Sự khác biệt giữa GROUP BY và DISTINCT trong SQL?

GROUP BY được sử dụng để nhóm các bản ghi dựa trên một hoặc nhiều cột trong một bảng và áp dụng các hàm tổng hợp cho các nhóm này.

DISTINCT được sử dụng để loại bỏ các bản ghi trùng lặp từ kết quả truy vấn và chỉ xuất hiện một lần trong kết quả truy vấn.

28. Câu lệnh SQL để lấy số lượng bản ghi duy nhất từ một cột trong một bảng?

Sử dụng cú pháp: SELECT COUNT(DISTINCT column_name) FROM table_name

29. Sự khác biệt giữa INNER JOIN và OUTER JOIN trong SQL?

INNER JOIN trả về các bản ghi chỉ khi có sự khớp giữa các giá trị khóa trong các bảng tham gia. OUTER JOIN trả về các bản ghi ngay cả khi không có sự khớp giữa các giá trị khóa, và có thể chia thành LEFT JOIN, RIGHT JOIN và FULL JOIN.

30. Câu lệnh SQL để lấy các bản ghi từ một bảng theo điều kiện được chỉ định?

Sử dụng cú pháp: SELECT * FROM table_name WHERE condition

31. Sự khác biệt giữa PRIMARY KEY và UNIQUE KEY trong SQL?

PRIMARY KEY là một khóa chính duy nhất cho mỗi bản ghi trong bảng, trong khi UNIQUE KEY cho phép các giá trị duy nhất nhưng có thể chứa giá trị NULL.

32. Câu lệnh SQL để lấy trung bình giá trị từ một cột?

Sử dụng cú pháp: SELECT AVG(column_name) FROM table_name

33. Sự khác biệt giữa TRUNCATE và DROP trong SQL?

TRUNCATE xóa toàn bộ nội dung của một bảng và thả vùng lưu trữ, trong khi DROP xóa hoàn toàn một bảng, bao gồm cả cấu trúc và dữ liệu.

34. Câu lệnh SQL để sắp xếp các bản ghi theo nhiều cột?

Sử dụng cú pháp: ORDER BY column1, column2, ...

35. Sự khác biệt giữa CHAR và NCHAR trong SQL?

CHAR lưu trữ các ký tự ASCII, trong khi NCHAR lưu trữ các ký tự Unicode.

36. Câu lệnh SQL để lấy giá trị tối thiểu trong một cột?

Sử dụng cú pháp: SELECT MIN(column_name) FROM table_name

37. Sự khác biệt giữa TRUNCATE và DELETE trong SQL Server?

TRUNCATE là một câu lệnh DDL và không ghi lại trong log, trong khi DELETE là một câu lệnh DML và ghi lại trong log.

38. Câu lệnh SQL để lấy tổng các giá trị duy nhất từ một cột?

Sử dụng cú pháp: SELECT SUM(DISTINCT column_name) FROM table_name

39. Sự khác biệt giữa UNION và UNION ALL trong SQL Server?

UNION kết hợp các kết quả của các câu lệnh SELECT khác nhau và loại bỏ các bản ghi trùng lặp, trong khi UNION ALL kết hợp các kết quả mà không loại bỏ các bản ghi trùng lặp.

40. Câu lệnh SQL để thay đổi tên một bảng?

Sử dụng cú pháp: ALTER TABLE table_name RENAME TO new_table_name

41. Sự khác biệt giữa NCHAR và NVARCHAR trong SQL Server?

NCHAR lưu trữ các ký tự Unicode, trong khi NVARCHAR lưu trữ các ký tự Unicode và có thể chứa giá trị NULL.

42. Câu lệnh SQL để lấy giá trị duy nhất từ nhiều cột trong một bảng?

Sử dụng cú pháp: SELECT DISTINCT column1, column2, ... FROM table_name

43. Sự khác biệt giữa INNER JOIN và CROSS JOIN trong SQL Server?

- INNER JOIN trả về các bản ghi chỉ khi có sự khớp giữa các giá trị khóa trong các bảng tham gia.

- OUTER JOIN trả về các bản ghi ngay cả khi không có sự khớp giữa các giá trị khóa. OUTER JOIN có thể chia thành các loại LEFT JOIN, RIGHT JOIN và FULL JOIN, tùy thuộc vào việc bảng nào được giữ lại hoàn toàn và bảng nào được giữ lại một phần.

Cảm ơn thông báo của bạn. Dưới đây là câu hỏi tương ứng cho các câu trả lời từ 43-50:

44. Hãy mô tả khái niệm "primary key" trong cơ sở dữ liệu?

Primary key (khóa chính) trong cơ sở dữ liệu là một thuộc tính hoặc tập hợp thuộc tính duy nhất để xác định mỗi bản ghi trong bảng. Nó đảm bảo tính duy nhất và xác định của các bản ghi. Một primary key không thể có giá trị trùng lặp hoặc giá trị NULL.

45. Giải thích khái niệm "foreign key" trong cơ sở dữ liệu?

Foreign key (khóa ngoại) trong cơ sở dữ liệu là một thuộc tính hoặc tập hợp thuộc tính trong một bảng, tham chiếu đến primary key trong bảng khác. Nó tạo ra một mối quan hệ giữa hai bảng và được sử dụng để xác định sự liên kết giữa các bản ghi trong các bảng khác nhau.

46. Trong SQL, khác biệt giữa LEFT JOIN và RIGHT JOIN là gì?

Trong 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. Nếu không có sự khớp, các cột từ bảng bên phải sẽ có giá trị NULL trong kết quả.

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. Nếu không có sự khớp, các cột từ bảng bên trái sẽ có giá trị NULL trong kết quả

47. Trong SQL, khác biệt giữa LEFT JOIN và FULL OUTER JOIN là gì?

Trong SQL, FULL OUTER JOIN (hoặc OUTER JOIN) trả về tất cả các bản ghi từ cả hai bảng, bao gồm cả bản ghi không khớp. Nếu không có sự khớp, các cột sẽ chứa giá trị NULL trong kết quả.

48. Giải thích khái niệm "index" trong cơ sở dữ liệu?

Index trong cơ sở dữ liệu là một cấu trúc dữ liệu tăng tốc truy xuất dữ liệu bằng cách tạo ra một bản định mục cho các cột được chỉ định. Index giúp tìm kiếm và truy xuất dữ liệu nhanh hơn bằng cách tạo ra một cấu trúc dữ liệu tương ứng với giá trị của cột được chỉ định.

49. Trong SQL, UNION là gì và cách sử dụng nó như thế nào?

Trong SQL, UNION là một toán tử được sử dụng để kết hợp các kết quả của hai hoặc nhiều câu lệnh SELECT có cùng cấu trúc và trả về một kết quả duy nhất chứa các bản ghi duy nhất. Kết quả UNION loại bỏ các bản ghi trùng lặp.

50. Trong SQL, khác biệt giữa UNION và UNION ALL là gì?

Trong SQL, khác biệt giữa UNION và UNION ALL là UNION loại bỏ các bản ghi trùng lặp trong kết quả cuối cùng, trong khi UNION ALL trả về tất cả các bản ghi bao gồm cả các bản ghi trùng lặp.

Kiểm tra độ phù hợp trong ngành Tech

Bạn còn thắc mắc về chương trình học?

Tham gia ngay 45 phút định hướng cùng Mentor tại CoderSchool hoàn toàn miễn phí

Get a full refund within 7 days if you’re not happy with the course. If you don’t get a job within 6 months of completion, you’ll receive a full refund.

Đăng ký