Tuyển tập những câu hỏi phỏng vấn SQL thường gặp nhất
Những bạn trẻ đã và đang theo đuổi khối công việc liên quan đến ngành lập trình, BA, QA,… hẳn sẽ không còn xa lạ với ngôn ngữ SQL. Đây là loại ngôn ngữ truy vấn cấu trúc được thiết kế trong hệ thống quản lý dữ liệu quan hệ. Nắm rõ những câu hỏi phỏng vấn SQL sẽ giúp bạn chủ động hơn, cơ hội trúng tuyển cũng vì vậy mà tăng cao. TopCV sẽ tổng hợp một số câu hỏi phỏng vấn SQL thường gặp cùng câu trả lời để bạn tham khảo ngay dưới bài viết dưới đây.
Mục lục
SQL là gì?
SQL là tên viết tắt của Structured Query Language – Đây là loại ngôn ngữ truy vấn có cấu trúc thường được sử dụng trong lập trình. SQL được thiết kế để quản lý dữ liệu được lưu trữ trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) hoặc để xử lý luồng trong hệ thống quản lý luồng dữ liệu quan hệ (RDSMS). Vai trò chính thường là tạo, xóa hoặc sửa đổi các bảng. SQL là một tiêu chuẩn ANSI (Viện Tiêu chuẩn Quốc gia Hoa Kỳ). Bản chất SQL không phải ngôn ngữ lập trình nhưng tiêu chuẩn của SQL có thể mở rộng thành ngôn ngữ lập trình. Chính vậy nên một số người vẫn thường gọi SQL là ngôn ngữ lập trình.
SQL là gì?
Vai trò của SQL là gì?
Một số vai trò chính của SQL phải kể tới là:
- SQL có thể thực thi các truy vấn đối với cơ sở dữ liệu
- SQL có thể lấy dữ liệu từ cơ sở dữ liệu
- SQL có thể chèn các bản ghi trong cơ sở dữ liệu
- SQL có thể cập nhật các bản ghi trong cơ sở dữ liệu
- SQL có thể xóa bản ghi khỏi cơ sở dữ liệu
- SQL có thể tạo cơ sở dữ liệu mới
- SQL có thể tạo bảng mới trong cơ sở dữ liệu
- SQL có thể tạo các thủ tục được lưu trữ trong cơ sở dữ liệu
- SQL có thể tạo các dạng xem trong cơ sở dữ liệu
- SQL có thể đặt quyền trên bảng, thủ tục và dạng xem
MySQL là gì?
Một trong những câu hỏi phỏng vấn SQL thường được đề cập đến chính là câu hỏi liên quan đến MySQL. Vậy MySQL là gì? Hiểu đơn giản thì 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.
Bên cạnh câu hỏi về khái niệm MySQL thì khi tham gia phỏng vấn nhà tuyển dụng có thể hỏi về sự khác biệt giữa SQL là MySQL. Bạn có thể trả lời câu hỏi này như sau:
SQL là một ngôn ngữ truy vấn có cấu trúc thường được sử dụng để truy cập cơ sở dữ liệu quan hệ. Trong khi đó, MySQL là một cơ sở dữ liệu quan hệ sử dụng SQL làm ngôn ngữ cơ sở dữ liệu chuẩn.
Cách để hiển thị thời gian và ngày hiện tại với các truy vấn SQL
Đây là câu hỏi thường được nhà tuyển dụng đặt ra để đánh giá trình độ chuyên môn của ứng viên. Khi bạn đã làm việc với SQL thì đây là câu hỏi cơ bản. Khi bạn sử dụng truy vấn SQL và muốn hiển thị thời gian và ngày tháng thì bạn sẽ sử dụng lệnh GetDate().
Các tập con của SQL là gì?
Một số tập con của SQL phải kể tới là:
- DDL (Ngôn ngữ định nghĩa dữ liệu): Xác định cấu trúc dữ liệu. Bao gồm các lệnh như: Create, Alter và Drop
- DML (Ngôn ngữ thao tác dữ liệu): Được sử dụng để thao tác dữ liệu hiện có và có các lệnh như: Chọn, Chèn, Cập nhật và Xóa
- DCL (Ngôn ngữ điều khiển dữ liệu): Kiểm soát quyền truy cập vào dữ liệu trong cơ sở dữ liệu với người dùng cụ thể, có các lệnh như: GRANT, REVOKE
Sự khác biệt giữa mệnh đề HAVING và mệnh đề WHERE?
Mệnh đề HAVING và mệnh đề WHERE đều chỉ định điều kiện tìm kiếm. Trong đó, mệnh đề HAVING được sử dụng cùng câu lệnh SELECT, mệnh đề GROUP BY. Tuy nhiên, nếu mệnh đều GROUP BY không được sử dụng thì mệnh đề HAVINg sẽ hoạt động như mệnh đề WHERE.
Một số sự khác biệt khác phải kể tới là:
- Mệnh đề HAVING sẽ lọc các bản ghi hoạt động dựa trên kết quả mà mệnh đề GROUP BY được tóm tắt
- Mệnh đề HAVING thường được áp dụng cho bản ghi nhóm tóm tắt còn mệnh đề WHERE áp dụng cho cả những bản ghi riêng lẻ
- Mệnh đề HAVING sẽ được sử dụng cùng mệnh đề GROUP BY
- Hai mệnh đề là WHERE và HAVINg có thể cùng nằm trong một truy vấn
Sự khác biệt giữa UNION và UNION ALL?
Một trong những câu hỏi phỏng vấn SQL thường gặp nhất chính là nêu sự khác biệt giữa UNION và UNION ALL.
- UNION: Cho phép trả về tất cả hàng riêng biệt được chọn bởi một trong hai truy vấn
- UNION ALL: Những hàng được chọn bởi một trong hai truy vẫn đều được trả về, bao gồm cả những hàng bị trùng lặp
>>> Xem thêm: Những vị trí ngành IT lương cao nhất bạn nên biết
Toán tử nào được sử dụng để tìm kiếm xem chuỗi ký tự có khớp với mẫu đã chỉ định hay không?
Toán tử LIKE được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu được chỉ định trong một cột.
Có hai ký tự đại diện được sử dụng cùng với toán tử LIKE:
% – Dấu phần trăm đại diện cho không, một hoặc nhiều ký tự
_ – Dấu gạch dưới thể hiện bất kỳ một ký tự đơn nào
Ví dụ:
- WHERE CustomerName LIKE ‘a%’ – Tìm bất kỳ giá trị nào bắt đầu bằng “a”
- WHERE CustomerName LIKE ‘% a’ – Tìm bất kỳ giá trị nào kết thúc bằng “a”
- WHERE CustomerName LIKE ‘%or%’ – Tìm bất kỳ giá trị nào có “hoặc” ở bất kỳ vị trí nào
- WHERE CustomerName LIKE ‘_r%’ – Tìm bất kỳ giá trị nào có “r” ở vị trí thứ hai
- WHERE CustomerName LIKE ‘a _% _%’ – Tìm bất kỳ giá trị nào bắt đầu bằng “a” và có độ dài ít nhất 3 ký tự
- WHERE ContactName LIKE ‘a% o’ – Tìm bất kỳ giá trị nào bắt đầu bằng “a” và kết thúc bằng “o”
Trình bày các loại Join cơ bản trong SQL
- INNER JOIN
- LEFT OUTER JOIN – hay LEFT JOIN
- RIGHT OUTER JOIN – hay RIGHT JOIN
- FULL OUTER JOIN – hay FULL JOIN
Cụ thể như sau:
- SQL INNER JOIN Keyword: Đây là một trong những loại JOIN phổ biến nhất, SQL INNER JOIN Keyword sẽ trả về tất cả các bản ghi có giá trị phù hợp ở các hai bảng (bản ghi chung của table1 và table2)
- SQL LEFT JOIN Keyword: Hiểu đơn giản thì kiểu JOIN này sẽ trả về các hàng nằm bảng bên trái trong điều kiện on, trong trường hợp lấy các bảng khác thì các bảng đó phải có hàng đáp ứng được điều kiện đã đặt ra. Nếu không có kết quả phù hợp, kết quả sẽ là null
- SQL RIGHT JOIN Keyword: Trả về tất cả các hàng nằm bảng bên phải trong điều kiện on cùng các bản ghi khớp từ bên trái. Và chỉ lấy các bản ghi còn lại nếu chúng đáp ứng được điều kiện đã đặt ra
- FULL OUTER JOIN: Trả về tất cả các bản ghi khi có sự trùng khớp trong bản ghi bảng bên trái (table1) hoặc bên phải (table2).
Hàm Case là gì?
Hàm CASE sẽ kiểm định cũng như đánh giá các giá trị dựa vào những điều kiện đã đặt ra, sau đó hàm này sẽ trả về một hoặc 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
Tuyển tập những câu hỏi phỏng vấn sql thường gặp nhất
Cách để có thể tạo một bảng tạm thời trong MySQL?
Đây là một trong những câu hỏi phỏng vấn SQL thường gặp mà nhiều người lúng túng. Bạn sẽ sử dụng câu lệnh CREATE TABLE, thêm từ khóa TEMPORARY vào câu lệnh này.
Ví dụ:
– CREATE TEMPORARY TABLE top10customers
– SELECT customer.fname, customer.lname
– FROM customers
>>> Tham khảo: Tìm hiểu các ngôn ngữ lập trình web phổ biến nhất hiện nay
Sự khác biệt giữa ràng buộc UNIQUE và PRIMARY KEY là gì?
- Ràng buộc UNIQUE và PRIMARY KEY đều thể hiện tính duy nhất cho một cột hoặc tập hợp các cột.
- Ràng buộc PRIMARY KEY sẽ xác định duy nhất một hàng tại bảng cơ sở dữ liệu trong khi ràng buộc UNIQUE sẽ xác định toàn bộ những hàng có thể tồn tại trong bảng.
- Ràng buộc PRIMARY KEY sẽ xác định một bản ghi tại cơ sở dữ liệu còn Ràng buộc UNIKEY sẽ ngăn những giá trị trùng lặp ở cột, trừ mục nhập NULL.
- Thông thường, chỉ có thể có một ràng buộc PRIMARY KEY cho mỗi bảng nhưng có thể có nhiều ràng buộc UNIQUE trong mỗi bảng.
Có những loại đặc quyền nào trong SQL?
Privileges trong SQL hay còn gọi là đặc quyền trong SQL là dạng câu hỏi thường được nhà tuyển dụng đưa ra. Privileges trong SQL sẽ cho phép người dùng được phép truy cập vào một đối tượng cơ sở dữ liệu. Hiện nay, có hai loại đặc quyền là:
- System privileges (đặc quyền hệ thống): Người dùng có thể thực hiện các tác vụ như: ALTER ANY INDEX, ALTER ANY CACHE GROUP CREATE/ALTER/DELETE TABLE, CREATE/ALTER/DELETE VIEW.
- Object privileges (đặc quyền đối tượng): Người dùng có thể thực hiện các tác vụ trên một đối tượng, ví dụ như: EXECUTE, INSERT, UPDATE, DELETE, SELECT, FLUSH, LOAD, INDEX, REFERENCES.
Ưu điểm của Views là gì?
Ưu điểm nổi bật của Views phải kể đến là sự đơn giản hóa truy vấn – Người dùng có thể sử dụng chế độ views để truy vấn những kết quả tìm kiếm phức tạp, kết quả hiển thị là các cột được chọn từ bảng. Bạn cũng có thể hạn chế quyền truy cập đối với những người dùng cụ thể. Bạn có thể sẽ không muốn những dữ liệu con được truy vấn bởi tất cả người dùng bên ngoài.
Một chế độ View có thể dựa trên một chế độ View khác không? Có, chế độ xem có thể dựa trên một chế độ xem khác. Views trong SQL là một cấu trúc ảo cho phép người dùng theo dõi các giá trị, thiết lập quyền truy cập của bảng một cách đơn giản.
SQL Injection là gì?
Nếu bạn muốn ghi điểm trong buổi phỏng vấn SQL thì hãy chuẩn bị kỹ khi được hỏi SQL Injection là gì. SQL Injection được hiểu là một kỹ thuật chèn thêm một đ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ừ lỗ hổng đó có thể khai thác được những dữ liệu từ database. SQL Injection được nhận định là một trong những kỹ thuật hack web thông dụng hàng đầu hiện nay.
Trên đây là tổng hợp tất cả câu hỏi phỏng vấn SQL mà bạn cần biết để có thể phỏng vấn thuận lợi và trúng tuyển công việc mà mình mong ước. Bạn có thể tìm việc làm SQL, việc làm khối ngành công nghệ thông tin, IT ngay ở TOPCV. Chúng tôi sẽ giúp bạn tiếp cận với những việc làm chất lượng đến từ những công ty uy tín hàng đầu hiện nay.