SQL là ngôn ngữ truy vấn có cấu trúc giúp người dùng làm việc với cơ sở dữ liệu. Cho đến nay, SQL vẫn luôn là kỹ năng quan trọng đối với những người làm công việc liên quan đến dữ liệu. Nếu bạn là một người mới Fresher (người mới) và đang chuẩn bị cho cuộc phỏng vấn của mình thì đây là bài viết dành cho bạn.
1. SQL là gì?
SQL là ngôn ngữ truy vấn có cấu trúc, được dùng để giao tiếp với cơ sở dữ liệu quan hệ. SQL cung cấp một cách chuẩn hóa để tương tác với cơ sở dữ liệu. Từ đó, người dùng có thể thực hiện nhiều thao tác khác nhau trên dữ liệu như truy xuất, chèn, cập nhật và xóa.
2. Các loại lệnh SQL khác nhau là gì?
SELECT: Truy xuất dữ liệu mong muốn từ cơ sở dữ liệu INSERT: Chèn thêm bản ghi mới vào bảng UPDATE: Cập nhật hay chỉnh sửa các bản ghi trong bảng DELETE: Xóa bản ghi khỏi bảng CREATE: Tạo cơ sở dữ liệu, bảng hoặc chế độ xem mới ALTER: Sửa đổi cấu trúc đối tượng cơ sở dữ liệu hiện có DROP: Xóa đối tượng cơ sở dữ liệu hiện có
3. Primary Key (khóa chính) trong SQL là gì?
Khóa chính trong SQL là mã định danh duy nhất cho mỗi bản ghi trong bảng. Khóa chính đảm bảo mỗi hàng trong bảng có giá trị riêng biệt và không phải giá trị null trong cột khóa chính. Khóa chính thực thi tính toàn vẹn dữ liệu và tạo mối quan hệ giữa các bảng.
4. Foreign key (Khóa ngoại) là gì?
Khóa ngoại là trường trong một bảng tham chiếu đến khóa chính trong bảng khác. Khóa ngoại thiết lập mối quan hệ giữa hai bảng, đảm bảo tính nhất quán của dữ liệu và cho phép truy xuất dữ liệu trên các bảng.
5. Giải thích sự khác biệt giữa lệnh DELETE và TRUNCATE.
DELETE được sử dụng trong trường hợp cần xóa các hàng cụ thể khỏi bảng dựa trên điều kiện. Bạn có thể dùng lệnh DELETE để xóa các bản ghi có chọn lọc. TRUNCATE được dùng khi cần xóa tất cả các hàng trong bảng mà không có điều kiện cụ thể. Lệnh TRUNCATE sẽ thực thi nhanh hơn và sử dụng ít tài nguyên hệ thống hơn DELETE nhưng không ghi lại các lần xóa hàng riêng lẻ.
6. JOIN trong SQL là gì và có các loại JOIN nào?
JOIN trong SQL là lệnh hợp nhất thông tin từ hai hoặc nhiều bảng bằng cách sử dụng một cột chung để liên kết. Có nhiều loại JOIN khác nhau bao gồm INNER JOIN, LEFT JOIN, RIGHT JOIN và FULL JOIN. Các biến thể JOIN sẽ quyết định cách ghép nối và truy xuất dữ liệu từ các bảng liên quan.
7. Bạn hiểu thế nào về giá trị NULL trong SQL?
Trong SQL, giá trị NULL dùng để biểu thị sự vắng mặt của dữ liệu trong một cột. Khác với một chuỗi rỗng hoặc số không, NULL biểu thị dữ liệu bị thiếu hoặc không xác định. Giá trị NULL có thể được dùng trong các cột có dữ liệu tùy chọn hoặc khi dữ liệu thực tế không khả dụng.
8. Xác định Unique Key (khóa duy nhất) trong SQL.
Thường được gọi là ràng buộc duy nhất, khóa duy nhất đảm bảo mọi giá trị trong một cột (hoặc kết hợp các cột) vẫn riêng biệt và không thể sao chép trong một bảng. Trái ngược với khóa chính, bảng có tính linh hoạt để kết hợp nhiều khóa duy nhất.
9. Cơ sở dữ liệu là gì?
Cơ sở dữ liệu là tập hợp dữ liệu được sắp xếp có hệ thống thành các bảng bao gồm các hàng và cột. Mục đích chính của cơ sở dữ liệu là lưu trữ, quản lý và truy xuất dữ liệu hiệu quả.
10. Giải thích sự khác biệt giữa cơ sở dữ liệu SQL và NoSQL
Cơ sở dữ liệu SQL sử dụng các bảng có cấu trúc và tuân thủ một lược đồ được xác định trước. SQL thường dùng để quản lý dữ liệu có cấu trúc với trọng tâm là tính nhất quán của dữ liệu và hỗ trợ giao dịch. Cơ sở dữ liệu NoSQL không quan hệ và vượt trội trong việc xử lý dữ liệu phi cấu trúc hoặc bán cấu trúc, thường được dùng cho các giải pháp lưu trữ dữ liệu có khả năng mở rộng, phân tán và thích ứng.
11. Bảng và trường trong SQL là gì?
Trong SQL, bảng là tập hợp dữ liệu có cấu trúc được sắp xếp thành các hàng và cột. Mỗi cột trong bảng được gọi là trường, biểu thị một thuộc tính hoặc đặc tính cụ thể của dữ liệu.
12. Mô tả câu lệnh SELECT
Câu lệnh SELECT trong SQL được dùng để truy xuất dữ liệu từ một hoặc nhiều bảng. SELECT sẽ chỉ định các cột để truy xuất, áp dụng bộ lọc thông qua mệnh đề WHERE và quản lý việc sắp xếp kết quả bằng mệnh đề ORDER BY.
13. Ràng buộc trong SQL là gì? Hãy nêu một số.
Ràng buộc trong SQL là những quy tắc hoặc hạn chế được áp dụng cho dữ liệu trong bảng. Ràng buộc giúp đảm bảo tính toàn vẹn của dữ liệu. Các ràng buộc phổ biến bao gồm:
PRIMARY KEY: Đảm bảo tính duy nhất của các giá trị trong một cột FOREIGN KEY: Thực thi tính toàn vẹn tham chiếu giữa các bảng UNIQUE: Đảm bảo tính duy nhất của các giá trị trong một cột CHECK: Xác định điều kiện mà dữ liệu phải đáp ứng để được chèn hoặc cập nhật NOT NULL: Đảm bảo không có giá trị NULL nào trong một cột
14. Chuẩn hóa trong SQL là gì?
Chuẩn hóa là phương pháp được dùng để sắp xếp hợp lý lưu trữ dữ liệu trong cơ sở dữ liệu, giảm sự trùng lặp và tăng cường tính toàn vẹn của dữ liệu. Phương pháp này phải chia các bảng thành những bảng có liên quan, dễ quản lý hơn và thiết lập các kết nối giữa chúng.
15. Mệnh đề WHERE trong SQL sử dụng như thế nào?
Mệnh đề WHERE trong các truy vấn SQL có mục đích lọc chọn lọc các hàng theo các điều kiện đã chỉ định, do đó cho phép bạn chỉ lấy những hàng phù hợp với tiêu chí bạn xác định. Ví dụ:
SELECT * FROM employees WHERE department = 'HR';
16. Chỉ mục trong SQL là gì?
Chỉ mục cải thiện tốc độ truy xuất dữ liệu trong SQL. Chúng cung cấp một cách nhanh chóng để định vị các hàng cụ thể trong một bảng bằng cách tạo cấu trúc dữ liệu được sắp xếp dựa trên một hoặc nhiều cột. Chỉ mục rất cần thiết để tối ưu hóa hiệu suất truy vấn.
17. Giải thích mệnh đề GROUP BY trong SQL
Mệnh đề GROUP BY trong SQL sắp xếp các hàng từ một bảng thành các nhóm dựa trên các giá trị trong một hoặc nhiều cột. Mệnh đề này thường được sử dụng cùng với các hàm tổng hợp như SUM, COUNT, AVG, MIN và MAX để thực hiện các phép tính trên dữ liệu đã được nhóm lại với nhau.
18. Bí danh SQL là gì?
Bí danh SQL đóng vai trò như nhãn tạm thời được gán cho một bảng hoặc một cột trong truy vấn. Mục đích của bí danh là tăng cường tính rõ ràng của kết quả truy vấn hoặc đơn giản hóa quy trình đổi tên các cột để tham chiếu được cải thiện. Ví dụ từ khóa AS dùng để đặt bí danh:
SELECT first_name AS "First Name", last_name AS "Last Name" FROM employees;
19. Giải thích ORDER BY trong SQL
Mệnh đề ORDER BY được sử dụng để sắp xếp tập kết quả của truy vấn dựa trên một hoặc nhiều cột trong SQL. Bạn có thể chỉ định thứ tự sắp xếp của từng cột, tăng dần hoặc giảm dần. Ví dụ:
SELECT * FROM products ORDER BY price DESC;
20. Mô tả sự khác biệt giữa WHERE và HAVING trong SQL
Mệnh đề WHERE được sử dụng để hạn chế các hàng riêng lẻ trước khi chúng được nhóm lại. Ví dụ như khi lọc các hàng trước khi thực hiện thao tác GROUP BY.
Ngược lại, mệnh đề HAVING được sử dụng để lọc các nhóm hàng sau khi chúng đã được nhóm lại, chẳng hạn như lọc các nhóm dựa trên các giá trị tổng hợp.
21. View (chế độ xem) trong SQL là gì?
Về cơ bản, chế độ xem SQL là một bảng ảo lấy dữ liệu từ kết quả của truy vấn SELECT. Chế độ xem phục vụ nhiều mục đích, bao gồm đơn giản hóa các truy vấn phức tạp, tăng cường bảo mật dữ liệu thông qua một lớp bổ sung và cho phép trình bày các tập hợp dữ liệu mục tiêu cho người dùng, đồng thời vẫn giữ cấu trúc bảng cơ bản được ẩn.
22. Quy trình được lưu trữ là gì?
Quy trình được lưu trữ SQL bao gồm các câu lệnh SQL được biên dịch trước có thể được thực thi cùng nhau như một thực thể thống nhất. Các quy trình này thường được sử dụng để đóng gói logic kinh doanh, cải thiện hiệu suất và đảm bảo các hoạt động thao tác dữ liệu nhất quán.
23. Trigger trong SQL là gì?
Trigger trong SQL bao gồm một chuỗi hành động được xác định trước được thực hiện tự động khi một sự kiện cụ thể xảy ra. Chẳng hạn như khi thao tác INSERT hoặc DELETE được thực hiện trên một bảng. Trigger được sử dụng để đảm bảo tính nhất quán của dữ liệu, tiến hành kiểm tra và hợp lý hóa nhiều tác vụ khác nhau.
24. Hàm tổng hợp là gì? Liệt kê một số hàm tổng hợp?
Hàm tổng hợp trong SQL thực hiện các phép tính trên một tập hợp các giá trị và trả về một kết quả duy nhất. Một số hàm tổng hợp như:
SUM: Để tính tổng các giá trị trong một cột COUNT: Để đếm số hàng hoặc giá trị không phải null của một cột AVG: Để tính giá trị trung bình của các giá trị trong một cột MIN: Để truy xuất giá trị nhỏ nhất trong một cột MAX: Để truy xuất giá trị lớn nhất trong một cột
25. Làm thế nào để cập nhật giá trị trong SQL?
Câu lệnh UPDATE có mục đích thay đổi các bản ghi đã tồn tại trước đó trong một bảng. Nó bao gồm việc chỉ định bảng mục tiêu để cập nhật, các cột cụ thể cần sửa đổi và các giá trị mới mong muốn được áp dụng. Ví dụ:
UPDATE employees SET salary = 60000 WHERE department = 'IT';
Trên đây là danh sách câu hỏi phỏng vấn SQL thường gặp dành cho các bạn Fresher. Mong rằng những kiến thức được tổng hợp trong bài có thể giúp bạn có một buổi phỏng vấn thành công. Đừng quên đón xem các bài viết mới nhất sẽ được cập nhật thường xuyên tại BAC's Blog.