Xem thêm

Tổng hợp 50 câu hỏi phỏng vấn SQL thường sử dụng:

Huy Erick
SQL (Structured Query Language) là ngôn ngữ truy vấn cấu trúc, được thiết kế để quản lý dữ liệu hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System)...

SQL (Structured Query Language) là ngôn ngữ truy vấn cấu trúc, được thiết kế để quản lý dữ liệu hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System) và thực hiện các thao tác như tạo, xóa, lấy hàng, và sửa đổi hàng.

1. SQL là gì?

SQL (Structured Query Language) là ngôn ngữ truy vấn cấu trúc, được thiết kế để quản lý dữ liệu hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System) và tạo, xóa, lấy hàng, sửa đổi hàng.

2. Câu lệnh chọn tất cả bản ghi từ table?

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 để nạp dữ liệu từ 2 hoặc nhiều bảng liên quan. Dùng từ khóa JOIN lúc cần truy vấn cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng tập kết quả. Một số loại JOIN phổ biến: 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ì?

Dùng INSERT thêm bản ghi vào 1 bảng Ví dụ cụ thể: INSERT into table_name VALUES (value1, value2,…)

câu hỏi phỏng vấn sql

5. Cách thêm 1 cột vào 1 bảng?

Để thêm cột khác vào bảng, bạn dùng cú pháp: 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 hay các hàng từ bảng dựa vào điều kiện được chỉ định. Cú pháp thực hiện: DELETE FROM table_name WHERE

7. SQL có vai trò gì?

Các vai trò chính của SQL là:

  • SQL thực thi truy vấn cơ sở dữ liệu
  • SQL lấy dữ liệu từ cơ sở dữ liệu
  • SQL chèn bản ghi trong 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 ra 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 đặ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ở được phân phối bởi Oracle Corporation. SQL là ngôn ngữ truy vấn có cấu trúc thường dùng để truy cập cơ sở dữ liệu quan hệ, và MySQL là cơ sở dữ liệu quan hệ dùng SQL làm ngôn ngữ cơ sở dữ liệu chuẩn.

9. Cách hiển thị thời gian và ngày hiện tại với truy vấn SQL

Khi bạn dùng truy vấn SQL và muốn hiển thị thời gian, ngày tháng thì dùng lệnh GetDate().

10. Những tập con của SQL là gì?

Các tập con của SQL là:

  • DDL (Ngôn ngữ định nghĩa dữ liệu): Xác định cấu trúc dữ liệu gồm các lệnh như: Create, Alter, Drop.
  • DML (Ngôn ngữ thao tác dữ liệu): Được dùng để thao tác dữ liệu hiện có và 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, có những 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 dùng với câu lệnh SELECT, GROUP BY. Nếu mệnh đề GROUP BY không được dùng thì HAVING hoạt động giống như mệnh đề WHERE. Sự khác biệt khác phải kể đến là:

  • Mệnh đề HAVING lọc bản ghi hoạt động dựa vào kết quả, mệnh đề GROUP BY được tóm tắt.
  • Mệnh đề HAVING được áp dụng vào bản ghi nhóm tóm tắt, mệnh đề WHERE áp dụng cho cả bản ghi riêng lẻ.
  • Mệnh đề HAVING được dùng với mệnh đề GROUP BY.
  • Hai mệnh đề WHERE, HAVING đều nằm trong một truy vấn.

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

Một câu hỏi phỏng vấn SQL phổ biến tiếp theo là sự khác biệt giữa UNION và UNION ALL. Bạn có thể hình dung:

  • UNION: Cho phép trả về toàn bộ hàng riêng biệt được lựa chọn bởi một trong hai truy vấn.
  • UNION ALL: Các hàng được lựa chọn bởi một trong hai truy vẫn được trả về, gồm cả các hàng bị trùng lặp.

13. Toán tử nào được dùng để tìm kiếm xem chuỗi ký tự khớp với mẫu đã chỉ định không?

Toán tử LIKE được dùng trong mệnh đề WHERE để tìm kiếm mẫu được chỉ định trong cùng một cột. Có hai ký tự đại diện được dùng với toán tử LIKE:

  • % là dấu phần trăm đại diện cho không, một hay nhiều ký tự
  • _ là dấu gạch dưới thể hiện bất kỳ ký tự đơn.

14. Các loại Join cơ bản trong SQL là gì?

Một số loại Join cơ bản ở trong SQL là:

  • 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: Đây là loại JOIN thường gặp nhất, SQL INNER JOIN Keyword trả về tất cả bản ghi mang giá trị thích hợp ở hai bảng (bản ghi chung giữa table1 với table2)
  • SQL LEFT JOIN Keyword: Kiểu JOIN trả về hàng nằm bảng bên trái thuộc điều kiện on, trong trường hợp lấy bảng khác thì bảng đó phải chứa hàng đáp ứng điều kiện đặt ra. Nếu không có kết quả thích hợp, kết quả là null.
  • SQL RIGHT JOIN Keyword: Trả về toàn bộ hàng nằm bảng bên phải thuộc điều kiện on cùng bản ghi khớp phía bên trái. Chỉ lấy bản ghi còn lại nếu như chúng đáp ứng điều kiện đặt ra.
  • FULL OUTER JOIN: Trả về toàn bộ bản ghi khi trùng khớp bản ghi bảng bên trái (table1) hay bên phải (table2).

câu hỏi phỏng vấn sql

15. Hàm Case là gì?

Hàm CASE kiểm định, đánh giá giá trị dựa vào điều kiện đặt ra, sau đó hàm này trả về một hay nhiều kết quả.

  • 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 một bảng tạm thời trong MySQL?

Đây là câu hỏi phỏng vấn SQL phổ biến mà nhiều người đang lúng túng. Bạn 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ới PRIMARY KEY đều thể hiện tính duy nhất cho một cột hay tập hợp cột.
  • Ràng buộc PRIMARY KEY xác định một hàng tại bảng cơ sở dữ liệu, còn 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 bản ghi tại cơ sở dữ liệu còn Ràng buộc UNIKEY sẽ ngăn giá trị trùng lặp tại cột, trừ ra mục nhập NULL.
  • Chỉ có một ràng buộc PRIMARY KEY cho từng bảng nhưng có nhiều ràng buộc UNIQUE trong từng 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à đặc quyền trong SQL là câu hỏi thường được các nhà tuyển dụng đặt ra. Đặc quyền trong SQL cho phép người sử dụng được truy cập vào đối tượng 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 những 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 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ể dùng chế độ views để truy vấn kết quả tìm kiếm phức tạp, kết quả hiển thị là 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 con được truy vấn bởi tất cả người sử dụng bên ngoài. Vậy một chế độ View có thể dựa vào một chế độ View khác? Câu trả lời là có, chế độ xem hoàn toàn có thể dựa vào chế độ xem 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 rất đơn giản.

20. SQL Injection là gì?

Nếu bạn muốn ghi điểm với nhà tuyển dụng trong buổi phỏng vấn SQL, hãy chuẩn bị kỹ càng khi được hỏi về SQL Injection là gì. SQL Injection là kỹ thuật chèn thêm đoạn SQL với mục đích khiến câu truy vấn truyền đi khác với ban đầu, từ đó có thể khai thác thêm dữ liệu từ database. SQL Injection được đánh giá là kỹ thuật hack web hiệu quả hàng đầu hiện nay.

21. Trong SQL, cách thức sử dụng FOREIGN KEY là gì?

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 để xác định quan hệ giữa hai bảng.

22. Bạn có thể giải thích khái niệm của UNIQUE KEY trong SQL?

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, cách thức sử dụng CHECK CONSTRAINT là gì?

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. Bạn có thể giải thích khái niệm của DEFAULT CONSTRAINT trong SQL?

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, cách thức sử dụng ALTER TABLE là gì?

ALTER TABLE trong SQL được sử dụng để 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 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 ADD COLUMN Ngày_sinh DATE;

câu hỏi phỏng vấn sql

26. Bạn có thể giải thích khái niệm của INSERT INTO trong SQL?

INSERT INTO trong SQL được sử dụng để chèn bản ghi mới vào một bảng trong cơ sở dữ liệu. Bạn có thể chèn một bản ghi duy nhấ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, theo sau là tên bảng mà bạn muốn chèn bản ghi mới. Sau đó, 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) VALUES (‘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 được sử dụng để cập nhật giá trị của một hoặc nhiều bản ghi trong một 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 duy nhất hoặc nhiều cột cùng một lúc.

28. Bạn có thể giải thích khái niệm của DELETE trong SQL?

DELETE trong SQL được sử dụng để xóa bản ghi hoặc nhiều bản ghi có trong một bảng đã có sẵn trong cơ sở dữ liệu. Bạn có thể xóa một bản ghi duy nhất hoặc nhiều bản ghi cùng một lúc.

29. Trong SQL, cách thức sử dụng TRUNCATE TABLE là gì?

TRUNCATE TABLE trong SQL được 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ả 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. Bạn có thể giải thích khái niệm của ORDER BY trong SQL?

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. Để sử dụng ORDER BY trong SQL, bạn cần chỉ định các cột mà bạn muốn sắp xếp các bản ghi theo. Ví dụ, nếu bạn muốn lấy ra danh sách các khách hàng theo thứ tự tăng dần của tên, bạn có thể sử dụng câu lệnh SELECT * FROM Khách_hàng ORDER BY Tên ASC.

31. Trong SQL, cách thức sử dụng LIMIT là 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. Bạn có thể giải thích khái niệm của OFFSET trong SQL?

OFFSET trong SQL được sử 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. Ví dụ, nếu bạn muốn lấy ra 10 bản ghi tiếp theo từ bảng “Khách_hàng” sau 10 bản ghi đầu tiên, bạn có thể sử dụng câu lệnh SELECT * FROM Khách_hàng LIMIT 10 OFFSET10.

33. Trong SQL, cách thức sử dụng IN là gì?

IN được sử 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. Bạn có thể giải thích khái niệm của LIKE trong SQL?

LIKE được sử 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. Trong SQL, cách thức sử dụng BETWEEN là gì?

BETWEEN được sử dụng để lọc dữ liệu trong bảng dựa trên một khoảng giá trị được chỉ định.

36. Bạn có thể giải thích khái niệm của EXISTS trong SQL?

EXISTS trong SQL được sử 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. Trong SQL, cách thức sử dụng DISTINCT ON là gì?

DISTINCT ON trong SQL được 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. 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. Bạn có thể giải thích khái niệm của COALESCE trong SQL?

COALESCE trong SQL được sử 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. Trong SQL, cách thức sử dụng CASE WHEN là gì?

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. CASE WHEN giống như một câu lệnh IF-THEN-ELSE trong các ngôn ngữ lập trình khác.

40. Bạn có thể giải thích khái niệm của JOIN trong SQL?

Cũng giống với các khái niệm khác, khái niệm JOIN cũng thường xuất hiện trong câu hỏi phỏng vấn SQL của nhà tuyển dụng. 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. Để sử dụng JOIN trong SQL, bạn cần chỉ định hai bảng cần được kết hợp và điều kiện kết nối giữa chúng. Có nhiều loại JOIN như INNER JOIN, LEFT JOIN, RIGHT JOIN và FULL OUTER JOIN. Ví dụ, nếu bạn muốn lấy ra danh sách các đơn hàng và thông tin khách hàng tương ứng, trong đó các bản ghi phải khớp với nhau dựa trên trường "ID khách hà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"

Để có những câu trả lời thuyết phục và ghi điểm trong buổi phỏng vấn SQL, việc nắm vững 50 câu hỏi phổ biến là vô cùng quan trọng. Hy vọng rằng bài viết này đã giúp bạn có cái nhìn tổng quan về các câu hỏi phỏng vấn SQL và giúp bạn tự tin trả lời trong buổi phỏng vấn. Nếu bạn đang tìm kiếm công việc SQL, hãy tìm hiểu danh sách công việc SQL tại danh mục công việc của VietnamWorks. VietnamWorks sẽ giúp bạn tiếp cận với các công việc chất lượng từ các công ty, doanh nghiệp hàng đầu.

1