Logo

101 câu hỏi phỏng vấn SQL thường gặp có hướng dẫn trả lời chi tiết

Lượt xem: 552
Ngày đăng: 14/03/2024

Các câu hỏi phỏng vấn SQL thường gặp để tuyển dụng các vị trí Tester, Fresher/Intern, Junior, Senior Developers được ViecLamVui tổng hợp có hướng dẫn trả lời chi tiết. Tham khảo ngay sau đây để bạn có thêm nhiều kinh nghiệm thuyết phục nhà tuyển dụng dễ dàng hơn.

Câu hỏi phỏng vấn SQL - ViecLamVui

➽➽➽ Có thể bạn quan tâm: 1001 câu hỏi phỏng vấn thường gặp và cách trả lời hay nhất thuyết phục nhà tuyển dụng

Câu hỏi SQL phỏng vấn Tester

Làm thế nào để lấy được tất cả các bản ghi trong một bảng xác định?

Trả lời: Để lấy được tất cả các bản ghi từ một bảng, chúng ta cần sử dụng câu lệnh dưới đây:

Select * from table_name;

Dùng cú pháp nào để thêm bản ghi vào một bảng?

Trả lời: Để thêm bản ghi vào một bảng, sử dụng câu lệnh INSERT theo cú pháp sau:

INSERT into table_name VALUES (value1, value2..);

Bạn thêm một cột vào bảng như thế nào? 

Trả lời: Để thêm một cột vào trong bảng thì câu lệnh dưới đây được sử dụng:

ALTER TABLE table_name ADD (column_name);

Định nghĩa câu lệnh SQL Delete?

Trả lời: Câu lệnh "DELETE" được sử dụng để xóa một dòng hoặc nhiều dòng từ một bảng dựa trên những điều kiện do người dùng chỉ định. Cú pháp cơ bản như sau:

DELETE FROM table_name

WHERE <Condition>

"COMMIT" trong SQL là gì? 

Trả lời: "COMMIT" lưu tất cả những thay đổi được thực hiện trong một transaction. Các thay đổi này được tạo bởi DML (ngôn ngữ thao tác dữ liệu -Data Manipulation Language). DML cho phép thực thi các câu truy vấn, bao gồm cú pháp để cập nhật - sửa đổi, chèn thêm và xoá các mẩu tin. Trong SQL một transaction có đoạn code ở dạng đơn giản như sau:

BEGIN TRAN

   -- Lệnh 1

   -- Lệnh 2

   -- ...

COMMIT

Mở transaction bằng lệnh BEGIN TRAN và kết thúc bằng lệnh COMMIT, sau lệnh này những cập nhật dữ liệu sẽ được xác nhận vào trong database, transaction được đóng lại và các khóa (lock) trên các bảng được cập nhật được thả ra.

Foreign keys là gì? 

Trả lời: FOREIGN KEY - Khóa ngoại là một trường trong bảng cơ sở dữ liệu, đó là khóa chính trong một bảng khác được thêm vào tạo ra sự liên quan giữa hai bảng. Trong bảng, giá trị của FOREIGN KEY có thể chấp nhận giá trị NULL, cũng như các giá trị trùng nhau.

CHECK Constraint - Ràng buộc CHECK là gì? 

Trả lời: Một ràng buộc CHECK được sử dụng để giới hạn các giá trị hoặc kiểu của dữ liệu có thể nhập và lưu trữ trong một trường của bản ghi. Nếu bản ghi không đáp ứng được điều kiện này, thì sẽ không được lưu trữ vào trong bảng.

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

Trả lời: Có, một bảng có thể có nhiều khóa ngoại và chỉ có một khóa chính.

Trường BOOLEAN có thể nhận các giá trị nào?

Trả lời: Giá trị của trường BOOLEAN có thể nhận 1 trong 2 giá trị sau: -1(TRUE) và 0(FALSE).

STORED PROCEDURE là gì? 

Trả lời: STORED PROCEDURE là một tập hợp các câu lệnh SQL dùng để thực thi một nhiệm vụ nhất định. Nó hoạt động giống như một hàm trong các ngôn ngữ lập trình khác. STORED PROCEDURE là một khái niệm khá phổ biến và được hầu hết các hệ quản trị cơ sở dữ liệu (DBMS) hỗ trợ, tuy nhiên không phải tất cả đều hỗ trợ STORED PROCEDURE.

IDENTITY trong SQL là gì? 

Trả lời: Một trường IDENTITY trong SQL tự động sinh ra các giá trị số tự tăng. Chúng ta có thể định nghĩa giá trị bắt đầu và giá trị gia tăng của cột IDENTITY.

NORMALIZATION - Chuẩn hóa dữ liệu là gì? 

Trả lời: Quá trình thiết kế bảng để giảm thiểu sự dư thừa số liệu, loại bỏ các thay đổi dữ liệu dị thường (update anomaly, insertion anomaly, deletion anomaly) được gọi là quá trình chuẩn hóa dữ liệu. Để thực hiện quá trình này, chúng ta cần phải chia một cơ sở dữ liệu thành hai hay nhiều bảng và xác định các mối quan hệ giữa chúng.

TRIGGER là gì? 

Trả lời: TRIGGER được hiểu đơn giản là một thủ tục (một tập các câu lệnh SQL được lưu trữ trong CSDL) được thực thi từ phía máy chủ cơ sở dữ liệu (CSDL) khi có một sự kiện xảy ra như Update, Insert hay Delete. TRIGGER thường dùng để kiểm ra các ràng buộc toàn vẹn trên CSDL, và chúng được thực thi một cách tự động mà không cần sự can thiệp bằng các thao tác thủ công như kiểm tra dữ liệu, đồng bộ hóa dữ liệu,…

Làm thế nào để lấy ra được các dòng ngẫu nhiên từ một bảng? 

Trả lời: Sử dụng mệnh đề SAMPLE chúng ta có thể lấy được các dòng ngẫu nhiên. Ví dụ:

SELECT * FROM table_name SAMPLE(10);

Chúng ta có thể đổi tên một cột trong đầu ra của SQL query được không? 

Trả lời: Có. Có thể dùng câu lệnh sau để làm việc này:

SELECT column_name AS new_name FROM table_name;

Thứ tự của các mệnh đề trong câu lệnh SQL SELECT như thế nào? 

Trả lời: Thứ tự các mệnh đề SQL SELECT là: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Trong đó chỉ có điều khoản SELECT và FROM là bắt buộc phải có, các mệnh đề khác có thể có hoặc không.

Sự khác nhau giữa các câu lệnh TRUNCATE, DELETE và DROP? 

Trả lời:

  • Lệnh DELETE có tác dụng xóa một số hoặc tất cả các hàng từ một bảng dựa trên những điều kiện được chỉ định. Các bản ghi này cũng có thể được phục hồi lại (Roll back).
  • Lệnh TRUNCATE xóa toàn bộ các bản ghi từ bảng bằng cách phân chia lại bộ nhớ các trang. Xử lý này không thể được phục hồi.
  • Lệnh DROP xóa hoàn toàn một bảng từ cơ sở dữ liệu.

Câu hỏi phỏng vấn SQL nhà tuyển dụng thường dùng

Bạn hãy định nghĩa chính xác về SQL

Đây là một câu hỏi cơ bản mà chắc chắc rằng ai học ngành này cũng cần phải nắm rõ. Khi đặt cây hỏi này, nhà tuyển dụng muốn xác định năng lực ứng viên thông qua việc có nắm vững những kiến thức đơn giản hay không. Để trả lời câu hỏi này, bạn cần trả lời cụ thể, rõ ràng như sau:

"SQL – Structured Query Language hay còn gọi là ngôn ngữ truy vấn cấu trúc. Ngôn ngữ SQL thiết kế thực hiện chức năng quản lý dữ liệu trong hệ thống quản lý cơ sở dữ liệu quan hệ. Không những thế, SQL còn được xem là ngôn ngữ cơ sở dữ liệu quan trọng có thể tạo, xóa hay lấy hàng, sửa đổi hàng dữ liệu."

Các kiểu dữ liệu SQL là gì?

Đây cũng là một câu hỏi khá cơ bản để nhà tuyển dụng có thể đánh giá sơ lược năng lực của ứng viên có nắm vững kiến thức về chuyên ngành hay không. Bạn có thể trả lời câu hỏi này như sau:

"Kiểu dữ liệu SQL là một thuộc tính xác định Kiểu dữ liệu của bất kỳ đối tượng nào. Một số kiểu dữ liệu phổ biến nhất là số nguyên, chuỗi, ký tự và kiểu ngày/giờ. Mỗi loại dữ liệu đều có mục đích riêng và việc có thông tin chi tiết về càng nhiều loại dữ liệu càng tốt cho phép bạn chọn những loại phù hợp nhất khi tạo cơ sở dữ liệu. Biết cách hoạt động của các loại dữ liệu khác nhau là điều quan trọng khi thực hiện các hành động và phân tích nhất định trong SQL. Nếu không, có thể không nhận được kết quả mong muốn."

Giải thích các kiểu quan hệ cơ sở dữ liệu khác nhau?

Mối quan hệ chỉ ra cách một bảng có thể được kết nối với một bảng khác trong cơ sở dữ liệu quan hệ, cho phép lấy dữ liệu từ cả hai bảng. Các loại mối quan hệ là: 

  • One-to-one relationship (1:1): có nghĩa là một bản ghi từ bảng đầu tiên chỉ liên quan đến một bản ghi trong bảng thứ hai và ngược lại.
  • One-to-many relationship (1:N): có nghĩa là một bản ghi từ bảng đầu tiên có liên quan đến một hoặc nhiều bản ghi trong bảng thứ hai.
  • many-to-many relationship (M:N): có nghĩa là có một hoặc nhiều bản ghi từ bảng đầu tiên tương ứng với một hoặc nhiều bản ghi từ bảng thứ hai.

Lệnh Union dùng làm gì? Điểm khác biệt với Union All?

Khi đặt câu hỏi này, nhà tuyển dụng muốn đánh giá ứng viên có nắm bắt được lệnh trong lập trình SQL không, đồng thời biết được ứng viên phân biệt các lệnh đó ra sao. Bạn có thể trả lời câu hỏi ngắn gọn, cụ thể từng ý nhà tuyển dụng đưa ra như sau:

"Union sử dụng để hợp nhất nội dung trong 2 bảng riêng lẻ về cùng 1 bảng. 

Union khác Union All ở điểm là lệnh Union bỏ qua các bản ghi bị trùng nhau nhưng lệnh Union All không bỏ qua bản ghi nào. Không những thế, hiệu năng của lệnh Union All còn cao hơn rất nhiều so với lệnh Union."

Constraint là gì? Một số Constraint thường được sử dụng là gì?

Ràng buộc (Constraint) là các quy tắc được áp dụng trên các cột dữ liệu của một bảng. Chúng được sử dụng để kiểm tra tính hợp lệ của dữ liệu đầu vào, đảm bảo tính chính xác, độ tin cậy và tính toàn vẹn của dữ liệu trong database. Các ràng buộc được sử dụng phổ biến nhất trong SQL là: 

- NOT NULL - Không cho phép giá trị NULL trong cột.

- UNIQUE - Không cho phép các giá trị trùng lặp; tất cả các giá trị trong cột đều khác nhau.

- PRIMARY KEY - Xác định duy nhất mỗi hàng trong một bảng; giá trị cột phải DUY NHẤT và không cho phép giá trị NULL.

- FOREIGN KEY - Cho phép liên kết hai bảng bằng cách tham chiếu khóa chính của một bảng trong một bảng khác.

- CHECK - Kiểm tra xem các giá trị trong cột có thỏa mãn điều kiện bạn chỉ định hay không (ví dụ: giá trị độ tuổi trên 21).

- DEFAULT - Nếu không có giá trị nào được chỉ định, giá trị mặc định sẽ được thêm vào các bản ghi mới.

- CREATE INDEX - Tạo chỉ mục để hỗ trợ truy xuất dữ liệu nhanh hơn.

SQL hỗ trợ lệnh JOIN nào?

Khi đặt ra câu hỏi này, nhà tuyển dụng muốn xác định trình độ chuyên môn của bạn như thế nào. Bởi vì nếu bạn là một người học chuyên sâu về ngôn ngữ lập trình SQL chắc chắn sẽ biết đến tính năng SQL là gì? Hỗ trợ những lệnh nào? 

Khi trả lời câu hỏi này, bạn không cần phân tích chi tiết, cụ thể các lệnh, mà chỉ cần liệt kê những lệnh mà SQL sẽ hỗ trợ cho JOIN. Trong trường hợp nhà tuyển dụng hỏi thêm cụ thể về lệnh nào mới trả lời chi tiết, cụ thể. Bạn có thể trả lời cho 5 lệnh là: Cross Join, Inner Join, Full Join, Left Join, Right Join. 

Những thuộc tính của giao dịch ACID gồm những gì?

Câu hỏi phỏng vấn SQL này thường được nhà tuyển dụng đưa ra trong vòng tuyển chọn để kiểm tra xem ứng viên có kiến thức chuyên môn như thế nào cũng như khả năng nắm được thuộc tính giao dịch SQL của ứng viên. 

Để trả lời câu hỏi này, bạn có thể trả lời một ACID gồm có 4 thuộc tính. Cụ thể là: Tính nguyên tử (Atomicty), tính nhất quán (Consistency), tính cô lập (Isolation), độ bền (Durability).

Để tránh trùng lập hồ sơ trong 1 truy vấn cần làm gì?

Thông qua câu hỏi này, nhà tuyển dụng muốn đánh giá khả năng xử lý vấn đề và vận dụng kiến thức trong công việc thực tế của từng ứng viên. Có nhiều ứng viên chưa từng gặp trường hợp này sẽ cảm thấy lúng túng không biết cách xử lý như thế nào. Bạn có thể tham khảo câu trả lời ngắn gọn sau: "Để tránh việc trùng lặp hồ sơ trong 1 truy vấn nên sử dụng từ khóa Instinct."

Các hàm tổng hợp là gì?

Trong SQL, các hàm tổng hợp thực hiện một phép tính trên một tập dữ liệu và trả về một giá trị duy nhất. Các hàm tổng hợp SQL phổ biến là: 

- COUNT() - Đếm số lượng bản ghi trong một nhóm.

- SUM() - Tính tổng các giá trị trong một nhóm.

- AVG() - Trả về giá trị trung bình trong một nhóm.

- MIN() - Tìm giá trị nhỏ nhất trong một nhóm.

- MAX() - Tìm giá trị lớn nhất trong một nhóm.

Cũng cần lưu ý rằng các hàm tổng hợp (ngoại trừ COUNT (*)) bỏ qua các giá trị NULL. Tuy nhiên, khi tất cả các giá trị (hoặc tất cả các giá trị trong nhóm) là NULL, thì hàm tổng hợp sẽ trả về NULL.

Mệnh đề WHERE là gì? Nó khác với mệnh đề HAVING như thế nào?

WHERE là một mệnh đề SQL được sử dụng để lọc dữ liệu trong các câu lệnh SELECT, INSERT, UPDATE hoặc DELETE. Mệnh đề HAVING cũng được sử dụng để lọc dữ liệu. 

Sự khác biệt chính giữa chúng là: mệnh đề WHERE được sử dụng trước mệnh đề GROUP BY, trong khi HAVING được sử dụng sau mệnh đề GROUP BY. Đó là lý do tại sao khi muốn lọc các hàng bằng các hàm tổng hợp, thì cần sử dụng HAVING - vì cần các hàng được nhóm lại để sử dụng các hàm tổng hợp. Tất nhiên, cũng có thể sử dụng WHERE VÀ HAVING trong cùng một truy vấn.

Mô tả mệnh đề GROUP BY?

GROUP BY là một mệnh đề SQL được sử dụng trong câu lệnh SELECT để chia các hàng thành các nhóm dựa trên (các) giá trị chung trong (các) cột được chỉ định.

Một số câu hỏi phỏng vấn SQL khác từ nhà tuyển dụng

Sau đây là một số câu hỏi phỏng vấn SQL khác mà nhà tuyển dụng có thể đưa ra để quyết định lựa chọn ứng viên phù hợp nhất với vị trí tuyển dụng. 

Các câu hỏi về chuyên môn:

  • Những câu lệnh để chọn các bản ghi từ table là gì?
  • Bạn cho biết cú pháp để thêm bản ghi vào 1 bảng như thế nào?
  • Xác định câu lệnh Delete SQL trong một lập trình?
  • Trong 1 bảng có thể chứa nhiều hơn 1 khóa ngoại không?
  • Để lấy ra được các hàng một cách ngẫu nhiên từ trong các bảng làm như thế nào?
  • Bạn đổi tên 1 cột trong đầu ra của truy vấn SQL bằng lệnh nào?
  • Sự khác nhau giữa lệnh Truncate, Delete và Drop.

Các câu hỏi liên quan đến bản thân cũng như kỹ năng, kinh nghiệm:

  • Bạn đạt thành tích gì trong nghề?
  • Bạn đã từng tham gia dự án nào chưa? Với vai trò là gì?
  • Bạn mong muốn gì khi làm ở vị trí này?
  • Bạn xử lý áp lực công việc ra sao?
  • Điểm nào gây cản trở trên con đường sự nghiệp của bạn không?

1001 CÂU HỎI PHỎNG VẤN

Tổng hợp câu hỏi phỏng vấn về SQL ✓ Các câu hỏi phỏng vấn SQL Server thường gặp dành cho các Developers ✓ Câu hỏi SQL khi phỏng vấn tester ✓ Câu hỏi phỏng vấn SQL có gợi ý trả lời tham khảo

Trên đây là 101 câu hỏi phỏng vấn SQL thường gặp và gợi ý trả lời, ViecLamVui - chuyên trang tìm việc nhanh miễn phí - gửi đến bạn. Hy vọng tài liệu trên có thể hỗ trợ các bạn thật hiệu quả.

#CauHoiPhongVanSQL #ViecLamIT #ViecLamVui

Bạn có thể đăng tin tuyển dụng miễn phí, tìm việc làm miễn phí các vị trí công việcViệc Làm IT. Bài viết thuộc danh mụcBlog Việc Làm IT trên ViecLamVui