Khi phỏng vấn các công việc có sử dụng đến SQL, các câu hỏi phỏng vấn kỹ thuật sẽ hỏi sâu về hiểu biết của bạn về SQL. Dưới đây là các câu hỏi SQL mà bạn có thể trả lời nếu bạn đang ứng tuyển một công việc SQL.

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

Khi bn làm vic trong SQL, bn s luôn làm vic vi d liu. Đó là lý do ti sao bn phi biết SQL cung cp nhng kiu d liu nào và nhng kiu d liu nào được s dng ph biến nht.

Trả lời: 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 bạn thực hiện các hành động và phân tích nhất định trong SQL. Nếu không, bạn có thể không nhận được kết quả mong muốn

2. 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à:

1. One-to-one relationship (1:1)
2. One-to-many relationship (1:N)
3. many-to-many relationship (M:N)


– One-to-one relationship 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 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 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.

3. Sự khác biệt giữa DELETE và TRUNCATE làgì?

Câu lệnh DELETE là một lệnh NGÔN NGỮ QUẢN LÝ DỮ LIỆU (DML) loại bỏ một hoặc nhiều hàng khỏi bảng, thực hiện từng hàng một và dựa trên tiêu chí (tùy chọn) được nêu trong mệnh đề WHERE.

Mặt khác, TRUNCATE là lệnh Ngôn ngữ Định nghĩa Dữ liệu (DDL) loại bỏ tất cả các hàng khỏi bảng trong khi vẫn giữ cấu trúc bảng. Nó nhanh hơn câu lệnh DELETE. Chênh lệch thời gian giữa DELETE và TRUNCATE không quá quan trọng khi bạn đang xóa các bảng nhỏ hơn; bạn sẽ không nhận thấy sự khác biệt. Nhưng khi bạn xóa một lượng lớn dữ liệu, sự khác biệt có thể rất đáng kể.

Mặc dù TRUNCATE nhanh hơn nhưng bạn không thể khôi phục các thay đổi của nó trong một số cơ sở dữ liệu mà bạn có thể thực hiện với DELETE. Ngoài ra, việc sử dụng TRUNCATE sẽ khóa bảng bạn đang xóa; không người dùng nào khác có thể truy cập bảng. Điều quan trọng cần biết khi bạn chọn giữa DELETE và TRUNCATE. Cú pháp, sự khác biệt và điểm giống nhau của hai lệnh này KHÔNG ĐƯỢC LƯU Ý TRONG BÀI VIẾT NÀY. Thông tin chi tiết hơn có sẵn trong SO SÁNH VỀ DELETE, TRUNCATE VÀ DROP TABLE.

4. 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.

5. JOIN là gì? Giải thích các kiểu JOIN

JOIN là một mệnh đề SQL được sử dụng để kết hợp dữ liệu từ hai hoặc nhiều bảng. Bốn kiểu JOIN chính được sử dụng trong SQL là:

1. JOIN (thường gọi là INNER JOIN).
2. LEFT JOIN (thường gọi là LEFT OUTER JOIN).
3. RIGHT JOIN (thường gọi là RIGHT OUTER JOIN).
4. FULL JOIN (thường gọi là FULL OUTER JOIN).
– INNER JOIN sẽ chỉ trả về dữ liệu phù hợp từ cả hai bảng. Dữ liệu không khớp sẽ hoàn toàn không được hiển thị.

– LEFT JOIN trả về tất cả dữ liệu từ bảng bên trái và chỉ dữ liệu tương ứng từ bảng bên phải. Đối với bất kỳ hàng nào chưa khớp từ bảng bên trái, NULL sẽ được hiển thị cho các cột của bảng bên phải.

– Chính xác thì điều ngược lại sẽ xảy ra với RIGHT JOIN. Bạn sẽ nhận được tất cả dữ liệu từ bảng bên phải và chỉ dữ liệu phù hợp từ bảng bên trái.

– FULL JOIN kết hợp LEFT JOIN và RIGHT JOIN để lấy tất cả các hàng từ một bảng và tất cả các hàng từ bảng khác.

Ngoài ra còn có mt CROSS JOIN (hoc mt phép ni Descartes), dn đến mt tích Descartes: nó tr v mi kết hp có th có ca các hàng t tt c các bng đã ni.

Bn nên lưu ý v vic self-join. self-join là bt k kiu join nào (JOIN, LEFT JOIN, RIGHT JOIN, hoặc FULL JOIN) vào mt bng vi chính nó.

6. 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. Nhưng 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 bạn muốn lọc các hàng bằng các hàm tổng hợp, bạn cần sử dụng HAVING – bạn cần các hàng được nhóm lại để sử dụng các hàm tổng hợp.

CÓ MỘT SỐ SỰ KHÁC BIỆT KHÁC GIỮA WHERE VÀ HAVING, nhưng những điểm khác biệt được đề cập ở trên là những điểm thường được nhắc đến trong các câu hỏi phỏng vấn. Tất nhiên, bạn cũng có thể sử dụng WHERE VÀ HAVING trong cùng một truy vấn.

7. 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. Dưới đây là một số VÍ DỤ THỰC TẾ VỀ VIỆC SỬ DỤNG GROUP BY.

Một câu hỏi liên quan có liên quan đến thứ tự của các mệnh đề trong câu lệnh SELECT. Thứ tự đúng nhưsau:

SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY

8. 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.

9. Giải thích các truy vấn phụ và các loại khác nhau của chúng.

Truy vấn phụ là các truy vấn được lồng vào một truy vấn chính, lớn hơn. Trong SQL, các kiểu truy vấn phụ là:

– Truy vấn phụ một hàng – Trả về kết quả là một hoặc không hàng.
-Truy vấn phụ nhiều hàng – Trả về kết quả là một hoặc nhiều hàng.
– Truy vấn phụ nhiều cột – Trả về kết quả là một hoặc nhiều cột.
– Truy vấn phụ có liên quan – Tham chiếu đến một hoặc nhiều cột trong truy vấn chính.
– Truy vấn phụ lồng nhau – Một truy vấn phụ trong một truy vấn phụ khác.
Một trong những điều quan trọng về truy vấn phụ là các mệnh đề SQL mà bạn có thể sử dụng chúng trong:

– HAVING
– FROM
– WHERE
Bạn cũng có thể truy vấn phụ trong các câu lệnh sau:

– SELECT
– UPDATE
– INSERT
– DELETE
Thông thường, bạn sẽ tìm thấy các truy vấn phụ trong mệnh đề WHERE của câu lệnh SELECT.

Nếu bạn muốn đảm bảo rằng bạn có kiến thức SQL nền tảng – bao gồm các chủ đề SQL cho người mới bắt đầu – thì KHÓA HỌC SQL này dành cho bạn.

Xem thêm

Người đi làm hiện đại cần những kỹ năng Microsoft Office nào?

Các thủ thuật Excel đơn giản nhưng hiệu quả để Phân tích Dữ liệu