Bài viết này sẽ cung cấp cái nhìn tổng quan và toàn diện về 20 câu hỏi và câu trả lời SQL cần thiết, thường gặp cho người đang tìm việc hay nhà tuyển dụng, bao gồm cả chủ đề chung và các câu hỏi về mặt kỹ thuật.
Dù bạn đang là người đang tìm việc và muốn áp dụng kỹ năng SQL của mình hay là nhà tuyển dụng chuẩn bị phỏng vấn ứng viên, việc biết và trả lời được các câu hỏi phỏng vấn về SQL là điều rất cần thiết. Trong bài viết này, Robiz Tech sẽ trình bày 20 câu hỏi và câu trả lời SQL dành cho newbie và junior. Những câu hỏi này sẽ giúp bạn có sự chuẩn bị tốt hơn cho cuộc phỏng vấn, đồng thời biết được những gì mà người phỏng vấn hay ứng viên của mình đang mong đợi.
Bài viết này được viết nhằm cung cấp thêm thông tin cho những người đang tìm việc, đặc biệt là những cá nhân chuẩn bị có buổi phỏng vấn đầu tiên liên quan đến SQL. Tuy nhiên, topic này vẫn sẽ rất hữu ích nếu bạn là nhà tuyển dụng đấy nhé!
1. Tổng quan về các câu hỏi phỏng vấn SQL:
Trong suốt bài viết này, chúng ta sẽ khám phá một loạt các câu hỏi và câu trả lời phỏng vấn SQL dành cho những người ở cấp độ newbie và junior. Nếu bạn đang muốn có được một cái nhìn tổng quan, ngắn gọn, Robiz Tech đã tổng hợp cho bạn rồi đây:
1.1. Câu hỏi phỏng vấn SQL dành cho newbie:
- Câu hỏi chung: chủ yếu về trải nghiệm/kinh nghiệm, sự hiểu biết và mức độ thành thạo của bạn về SQL.
- Các câu hỏi kỹ thuật: bao gồm những kiến thức cơ bản về SQL, chẳng hạn như: SQL là gì, các ứng dụng của nó, câu lệnh SQL, lệnh SQL và các loại truy vấn SQL, cùng nhiều thứ khác.
1.2. Câu hỏi phỏng vấn SQL dành cho junior:
- Các hàm trong SQL: Bạn nên biết về các hàm tổng hợp và vô hướng, cũng như các hàm tích hợp và hàm do người dùng xác định.
- Các lệnh nâng cao: Các câu hỏi có thể bao gồm các chủ đề như like joins, primary và foreign keys, indexes, và SQL relationships.
- Thiết kế cơ sở dữ liệu: Các câu hỏi về chuẩn hóa, không chuẩn hóa và sự khác biệt giữa các câu lệnh SQL khác nhau như DELETE, TRUNCATE và DROP.
- Truy vấn nâng cao: Các truy vấn con, truy vấn lồng nhau và truy vấn tương quan, cũng như cách thực hiện các tác vụ cụ thể như tìm giá trị cao thứ n trong một cột.
2. Các câu hỏi phỏng vấn chung về SQL:
Để bắt đầu, trước khi hỏi bạn những câu hỏi về mặt kỹ thuật, người phỏng vấn có thể hỏi bạn một số câu hỏi chung về các trải nghiệm cá nhân của bạn với SQL. Một vài câu hỏi thường gặp, mà bạn có thể tham khảo:
- Bạn đánh giá mức độ thành thạo SQL của mình tới đâu?
- Bạn có thể thành thạo các phương ngữ SQL (SQL flavors) nào?
- Kinh nghiệm làm việc với SQL của bạn như thế nào?
Mặc dù thông tin này có thể được đề cập trong CV nhưng người phỏng vấn vẫn có thể hỏi về chúng. Đương nhiên, không có câu trả lời nào là “hoàn toàn đúng” cho những câu hỏi trên, do đó bạn chỉ cần thành thật về những gì bản thân nghĩ và trải nghiệm là đủ.
Đừng quá lo lắng nếu kinh nghiệm về SQL của bạn còn hạn chế: đây là điều mà người phỏng vấn chắc chắn đã biết từ chiếc CV của bạn. Nhưng vì họ đã mời bạn đến, nên điều này chứng tỏ các kinh nghiệm và hồ sơ của bạn đã được coi là phù hợp với công ty rồi đó.
Ngoài ra, sẽ hoàn toàn ổn nếu bạn chỉ làm việc với một phiên bản SQL. Hãy nhớ rằng tất cả các phương ngữ SQL đều khá giống nhau. Vì vậy, quen thuộc với một trong số chúng là cơ sở vững chắc để bạn học thêm những thứ khác đấy!
3. Các câu hỏi phỏng vấn SQL về mặt kĩ thuật dành cho newbie:
Giờ thì, chúng ta sẽ đến với các câu hỏi SQL về mặt kĩ thuật thường gặp nhất đối với newbie cũng như cách để bạn có thể tham khảo trả lời chúng nhé.
3.1. SQL là gì?
Viết tắt của Ngôn ngữ truy vấn có cấu trúc. Ngôn ngữ lập trình được sử dụng để tương tác với các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Điều này bao gồm tìm nạp, cập nhật, chèn và xóa dữ liệu khỏi bảng.
3.2. Các phương ngữ SQL là gì? Hãy đưa ra vài ví dụ.
Là các phiên bản khác nhau của SQL, cả miễn phí lẫn có phí. Tất cả các phiên bản của SQL đều có cú pháp rất giống nhau và chỉ khác nhau không đáng kể ở chức năng bổ sung. Một số ví dụ là Microsoft SQL Server, PostgreSQL, MySQL, SQLite, T-SQL, Oracle và MongoDB.
3.3. Các ứng dụng chính của SQL là gì?
Ở câu hỏi này, bạn có thể lồng ghép các kinh nghiệm của bản thân vào câu trả lời để tăng thêm tính thuyết phục cũng như giúp người phỏng vấn có cái nhìn rõ hơn về năng lực của bạn.
Sử dụng SQL, chúng ta có thể:
- Tạo, xóa và cập nhật bảng trong cơ sở dữ liệu.
- Truy cập, thao tác và sửa đổi dữ liệu trong bảng.
- Truy xuất và tóm tắt thông tin cần thiết từ một bảng hoặc nhiều bảng.
- Thêm hoặc xóa một số hàng hoặc cột nhất định khỏi bảng.
Nói chung, SQL cho phép truy vấn cơ sở dữ liệu theo nhiều cách. Ngoài ra, SQL dễ dàng tích hợp với các ngôn ngữ lập trình khác, chẳng hạn như Python hoặc R, vì vậy chúng ta có thể sử dụng sức mạnh tổng hợp của chúng.
3.4. Bạn biết những loại lệnh SQL (hoặc tập hợp con SQL) nào?
- Ngôn ngữ định nghĩa dữ liệu (DDL): để xác định và sửa đổi cấu trúc của cơ sở dữ liệu.
- Ngôn ngữ thao tác dữ liệu (DML): để truy cập, thao tác và sửa đổi dữ liệu trong cơ sở dữ liệu.
- Ngôn ngữ kiểm soát dữ liệu (DCL): để kiểm soát quyền truy cập của người dùng vào dữ liệu trong cơ sở dữ liệu và cấp hoặc thu hồi các đặc quyền cho một người dùng hoặc một nhóm người dùng cụ thể.
- Ngôn ngữ kiểm soát giao dịch (TCL): để kiểm soát các giao dịch trong cơ sở dữ liệu.
- Ngôn ngữ truy vấn dữ liệu (DQL): để thực hiện các truy vấn trên dữ liệu trong cơ sở dữ liệu để lấy thông tin cần thiết từ nó.
3.5. Tuy vấn SQL là gì? Bạn biết những loại truy vấn nào?
Ở câu hỏi này, bạn có thể lồng ghép các kinh nghiệm của bản thân vào câu trả lời để tăng thêm tính thuyết phục cũng như giúp người phỏng vấn có cái nhìn rõ hơn về năng lực ứng dụng SQL của bạn.
Truy vấn là một đoạn mã được viết bằng SQL để truy cập dữ liệu từ cơ sở dữ liệu hoặc để sửa đổi dữ liệu. Có hai loại truy vấn SQL: truy vấn chọn và truy vấn hành động. Truy vấn chọn được sử dụng để truy xuất dữ liệu cần thiết (điều này cũng bao gồm giới hạn, nhóm, sắp xếp dữ liệu, trích xuất dữ liệu từ nhiều bảng, v.v.), trong khi truy vấn hành động được sử dụng để tạo, thêm, xóa, cập nhật, đổi tên dữ liệu, v.v.
3.6. Truy vấn con là gì?
Còn được gọi là truy vấn bên trong, một truy vấn được đặt bên trong một truy vấn khác hoặc một truy vấn bên ngoài. Truy vấn con có thể xuất hiện trong các mệnh đề như SELECT, FROM, WHERE, UPDATE,… Truy vấn con trong cùng được chạy trước và kết quả của nó được chuyển đến truy vấn chứa (hoặc truy vấn con).
3.7. Bạn biết những loại truy vấn con SQL nào?
- Một hàng: trả về tối đa một hàng.
- Nhiều hàng: trả về ít nhất hai hàng.
- Nhiều cột: trả về ít nhất hai cột.
- Tương quan: một truy vấn con liên quan đến thông tin từ truy vấn bên ngoài.
- Lồng nhau: một truy vấn con bên trong một truy vấn con khác.
3.8. Bạn biết những ràng buộc SQL nào?
- DEFAULT: cung cấp một giá trị mặc định cho một cột.
- UNIQUE: chỉ cho phép các giá trị duy nhất.
- NOT NULL: chỉ cho phép các giá trị khác null.
- PRIMARY KEY: chỉ cho phép các giá trị duy nhất và hoàn toàn không null ( NOT NULL và UNIQUE).
- FOREIGN KEY: cung cấp các khóa chia sẻ giữa hai hoặc nhiều bảng.
3.9. Bạn biết những phép nối nào?
- (INNER) JOIN: một phép nối SQL mặc định chỉ trả về những bản ghi thỏa mãn điều kiện nối đã xác định trong cả hai (hoặc tất cả) bảng.
- LEFT (OUTER) JOIN: trả về tất cả các bản ghi từ bảng bên trái và những bản ghi từ bảng bên phải thỏa mãn điều kiện nối đã xác định.
- RIGHT (OUTER) JOIN: trả về tất cả các bản ghi từ bảng bên phải và những bản ghi từ bảng bên trái thỏa mãn điều kiện nối đã xác định.
- FULL (OUTER) JOIN: trả về tất cả bản ghi từ cả hai (hoặc tất cả) bảng. Nó có thể được coi là sự kết hợp của các phép nối trái và phải.
3.10. Một số câu lệnh phổ biến được sử dụng với truy vấn SELECT là gì?
Phổ biến nhất là FROM, GROUP BY, JOIN, WHERE, ORDER BY, LIMITvà HAVING.
Ngoài ra, còn rất nhiều các câu hỏi khác mà bạn có thể gặp phải như:
- Bạn biết những loại toán tử SQL nào?
- Làm thế nào để tạo một bảng/xóa bảng/lấy số lượng bản ghi trong 1 bảng/sắp xếp các bảng ghi?
- Bạn sử dụng câu lệnh DISTINCT như thế nào?
- Giá trị NULL là gì? Nó khác với ố 0 hoặc khoảng trống như thế nào?
- Vv….
Bạn chỉ cần bình tĩnh, và cố gắng trả lời các câu hỏi sao cho chúng có dẫn chứng liên quan nhất đến những trải nghiệm cá nhân của bạn. Điều này sẽ khiến người phỏng vấn hiểu hơn về cách làm việc, tư duy ứng dụng SQL và năng lực của bạn đấy.
4. Các câu hỏi phỏng vấn SQL về mặt kĩ thuật dành cho junior:
Ở phần này, các câu hỏi đã được nâng cao hơn và chỉ thực sự phù hợp với các junior đã có vài năm kinh nghiệm làm việc với SQL.
4.1. Bạn biết các loại hàm SQL nào? Nên sử dụng chúng trong các trường hợp nào?
- Hàm tổng hợp: hoạt động trên nhiều bản ghi, thường được nhóm lại cho các cột được cung cấp của bảng và trả về một giá trị duy nhất (thường theo nhóm).
- Hàm vô hướng: làm việc trên từng giá trị riêng lẻ và trả về một giá trị duy nhất.
Mặt khác, các hàm SQL có thể được tích hợp sẵn (do hệ thống xác định) hoặc do người dùng xác định (do người dùng tạo cho các nhu cầu cụ thể của họ).
4.2. Chức năng xử lý tình huống là gì? Đưa ra vài ví dụ.
Các hàm thao tác chữ hoa chữ thường biểu thị một tập hợp con các hàm ký tự và chúng được sử dụng để thay đổi chữ hoa chữ thường của dữ liệu văn bản. Với các hàm này, chúng ta có thể chuyển đổi dữ liệu thành chữ hoa hoặc chữ thường.
- UCASE()(trong các phiên bản SQL khác – UPPER() ) – trả về một chuỗi được chuyển đổi thành chữ hoa.
- LCASE()(trong các phiên bản SQL khác – LOWER()) – trả về một chuỗi được chuyển đổi thành chữ thường.
- INITCAP()– trả về một chuỗi được chuyển đổi thành kiểu chữ tiêu đề (nghĩa là mỗi từ trong chuỗi bắt đầu từ một chữ in hoa).
4.3. Sự khác biệt giữa biến cục bộ và biến toàn cục là gì?
Các biến cục bộ chỉ có thể được truy cập bên trong hàm mà chúng được khai báo. Thay vào đó, các biến toàn cục, được khai báo bên ngoài bất kỳ hàm nào, được lưu trữ trong cấu trúc bộ nhớ cố định và có thể được sử dụng trong toàn bộ chương trình.
4.4. Thứ tự xuất hiện của các câu lệnh phổ biến trong truy vấn SELECT là gì?
SELECT– FROM– JOIN– – ON– WHERE– GROUP BY– HAVING–ORDER BY LIMIT
4.5. Chúng ta có thể tạo một chế độ xem dựa trên một chế độ xem khác không?
Có thể. Điều này còn được gọi là chế độ xem lồng nhau. Tuy nhiên, chúng ta nên tránh lồng nhiều khung nhìn vì mã trở nên khó đọc và gỡ lỗi.
4.6. Bạn biết những loại mối quan hệ SQL nào?
- Một đối một: mỗi bản ghi trong một bảng chỉ tương ứng với một bản ghi trong bảng khác.
- Một-nhiều: mỗi bản ghi trong một bảng tương ứng với một số bản ghi trong bảng khác.
- Nhiều-nhiều: mỗi bản ghi trong cả hai bảng tương ứng với một số bản ghi trong bảng khác.
4.7. Chuẩn hóa trong SQL là gì và tại sao lại sử dụng nó?
Chuẩn hóa là một quá trình thiết kế cơ sở dữ liệu bao gồm tổ chức và tái cấu trúc dữ liệu theo cách giảm sự dư thừa, phụ thuộc, trùng lặp và không nhất quán dữ liệu. Điều này dẫn đến tính toàn vẹn dữ liệu được nâng cao, nhiều bảng hơn trong cơ sở dữ liệu, khả năng truy cập dữ liệu và kiểm soát bảo mật hiệu quả hơn cũng như tính linh hoạt truy vấn cao hơn.
4.8. Sự khác biệt giữa câu lệnh HAVING và WHERE là gì?
HAVING hoạt động trên dữ liệu tổng hợp sau khi chúng được nhóm, trong khi WHERE kiểm tra từng hàng riêng lẻ. Nếu cả hai câu lệnh đều xuất hiện trong một truy vấn, chúng sẽ xuất hiện theo thứ tự sau: WHERE– GROUP BY– HAVING. Công cụ SQL cũng diễn giải chúng theo thứ tự tương tự.
4.9. Sự khác biệt giữa câu lệnh DELETE và câu lệnh TRUNCATE là gì?
DELETE là lệnh DML (Ngôn ngữ thao tác dữ liệu) có thể đảo ngược được sử dụng để xóa một hoặc nhiều hàng khỏi bảng dựa trên các điều kiện được chỉ định trong mệnh đề WHERE. Thay vào đó, TRUNCATE lệnh DDL (Ngôn ngữ định nghĩa dữ liệu) không thể đảo ngược, được sử dụng để xóa tất cả các hàng khỏi bảng. DELETE hoạt động chậm hơn TRUNCATE. Ngoài ra, chúng ta không thể sử dụng câu lệnh TRUNCATE cho bảng chứa khóa ngoại.
4.10. Sự khác biệt giữa truy vấn con lồng nhau và truy vấn con tương quan là gì?
Truy vấn con tương quan là truy vấn bên trong được lồng trong truy vấn lớn hơn (bên ngoài) tham chiếu đến các giá trị từ truy vấn bên ngoài để thực hiện truy vấn đó, nghĩa là truy vấn con tương quan phụ thuộc vào truy vấn bên ngoài của nó. Thay vào đó, truy vấn con không tương quan sẽ không dựa vào dữ liệu từ truy vấn bên ngoài và có thể chạy độc lập với truy vấn đó.
Ngoài ra, còn rất nhiều các câu hỏi khác mà bạn có thể gặp phải như:
- Làm thế nào để chọn các hàng ngẫu nhiên từ một bảng?
- Làm thế nào để tìm các giá trị trong cột văn bản của bảng bắt đầu bằng một chữ cái nhất định?
- Làm thế nào để chèn nhiều hàng vào một bảng?
- Làm cách nào để tránh trùng lặp bản ghi khi thực hiện truy vấn?
- Làm thế nào để chọn tất cả các bản ghi chẵn hoặc tất cả các bản ghi lẻ trong một bảng?
- Làm thế nào để thêm một cột vào bảng?
- CASE()Chức năng là gì?
- Vv….
Hy vọng bài viết vừa rồi sẽ giúp ích cho bạn trong quá trình tìm việc của mình, hãy luôn trong trạng thái sẵn sàng cho các câu hỏi trên để có thể có được buổi phỏng vấn thành công nhé!
Đừng quên ghé qua fanpage của Robiz Tech để cập nhật thêm nhiều thông tin bổ ích hơn nữa nhé!
Xem thêm
Excel & Power BI nên chọn công cụ nào để tối ưu 100% hiệu suất công việc?
Mức lương của Data Analyst tại Việt Nam là bao nhiêu?
Các phương pháp phân tích dữ liệu thường dùng của data analyst