Học SQL với các câu hỏi phỏng vấn SQL cơ bản đến nâng cao

sql-interview-questions

SQL dường như là một trong những ngôn ngữ lập trình top đầu (phổ biến rộng rãi) hiện nay, mặc dù về mặt kỹ thuật, đây không phải là một ngôn ngữ lập trình! Vậy làm thế nào mà nó vẫn trở thành một trong những ngôn ngữ lập trình phổ biến? Đó chính xác là những gì tôi sẽ chia sẻ với bạn – cùng với những câu hỏi phỏng vấn SQL cần thiết nhất để giúp bạn tìm được công việc mơ ước của mình!

Trong hướng dẫn này, chúng tôi sẽ đề cập đến những câu hỏi phỏng vấn SQL cơ bản như SQL là gì? MySQL là gì? và nâng cao mà nhà tuyển dụng có thể hỏi bạn. Sau đó, chúng tôi sẽ nói về một vài điều chung cần ghi nhớ trước, trong và sau khi phỏng vấn xin việc.

Mục lục

Nguyên tắc cơ bản của SQL

Như đã nói, chúng ta sẽ bắt đầu với một trong những câu hỏi phỏng vấn SQL thường gặp nhất.

Câu hỏi 1: SQL là gì?

Lúc đầu, tôi đã đề cập rằng SQL hoàn toàn không phải là ngôn ngữ lập trình. Vậy SQL là gì?

SQL (Structured Query Language) là viết tắt của Ngôn ngữ truy vấn có cấu trúc. Nó chủ yếu là một ngôn ngữ quản lý cơ sở dữ liệu. Nó không phải là ngôn ngữ lập trình tự nhiên, nhưng tiêu chuẩn của nó hoàn toàn có thể mở rộng nó thành ngôn ngữ lập trình – đó là lý do tại sao hầu hết mọi người gọi nó là một “ngôn ngữ lập trình”.

Câu hỏi 2: Sự khác biệt giữa lệnh ‘delete’ và ‘truncate’ là gì?

Đây là một trong những ví dụ tốt hơn về các câu hỏi phỏng vấn SQL cơ bản.

Sự khác biệt chính “delete” là lệnh xóa một hàng từ bảng, trong khi “truncate” xóa tất cả chúng.

Một điểm khác biệt nữa là khi sử dụng “delete”, nếu có sự cố hoặc không theo kế hoạch, bạn có thể thực hiện khôi phục dữ liệu – điều này không thể thực hiện được sau khi lệnh “truncate”  được thực hiện. Ngoài ra, lệnh truncate thực hiện nhanh hơn.

So sánh Nền tảng học online Bên cạnh các nền tảng khác

Bạn có biết?

Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?

Xem & so sánh TOP nền tảng học online cạnh nhau

Câu hỏi 3: SQL Server là gì?

Bạn chắc chắn sẽ nhận được một số câu hỏi phỏng vấn SQL Server trong buổi phỏng vấn xin việc của mình, vì vậy tôi đã thêm một số câu trong hướng dẫn này.

SQL Server là một hệ thống quản lý cơ sở dữ liệu (Database Management System – DBMS). Nó tập hợp và phân tích dữ liệu, cập nhật và quản trị cơ sở dữ liệu.

Câu hỏi 4: MySQL là gì?

Cũng như SQL Server, các câu hỏi về MySQL cũng phổ biến trong các cuộc phỏng vấn việc làm liên quan đến SQL. Vậy MySQL là gì?

MySQLmột hệ thống quản lý cơ sở dữ liệu nguồn mở. Nó cung cấp một loạt các chức năng và giao diện có sẵn, có hỗ trợ đa nền tảng và sở hữu các công cụ tiện lợi để giúp bạn làm việc nhanh chóng.

Câu hỏi 5: ‘table’ và ‘field’ là gì?

Đừng để bị lừa với những câu hỏi phỏng vấn SQL như thế này. Một “table“ trong hệ thống dữ liệu được tổ chức đơn giản thành các hàng và cột riêng biệt. Một “field” là một số cột trong một bảng.

Câu hỏi 6: ‘join’ là gì?

Lệnh “join” kết hợp các hàng từ các bảng khác nhau. Cách các hàng này được kết hợp phụ thuộc vào cột liên quan tham gia chúng. Với lệnh này, bạn có thể hợp nhất hai bảng thành một hoặc đơn giản là truyền dữ liệu từ bảng này sang bảng khác.

Tổng cộng, có bốn loại khác nhau của “join”: inner (bên trong), full (đầy đủ), left (trái) và right (phải).

Câu hỏi 7: ‘view’ là gì?

Một “view” đơn giản là một đại diện ảo của một “table“. Hơn nữa, các view có thể có nhiều dữ liệu được biểu thị và kết hợp – điều đó rất phụ thuộc vào tình huống và mối quan hệ.

Câu hỏi 8: ‘constraint’ là gì?

Constraints” là các lệnh được sử dụng để gạch dưới và xác định số lượng của một loại dữ liệu cụ thể được sử dụng trong một bảng duy nhất.

Câu hỏi 9: Làm thế nào để hiển thị thời gian và ngày hiện tại với các truy vấn SQL?

Làm thế nào để” là những câu hỏi phỏng vấn SQL khá phổ biến và bình thường mà bạn sẽ gặp phải. Chính vì vậy, đừng ngạc nhiên nếu bạn nhận được một hoặc hai câu hỏi như thể trong cuộc phỏng vấn.

Nếu học SQL thì bạn sẽ biết rằng SQL có một lệnh sẵn có GetDate() để truy xuất và hiển thị thời gian và ngày hiện tại.

Câu hỏi 10: ‘denormalization’ là gì?

Denormalization là một quá trình khi bạn truy cập cơ sở dữ liệu từ các biểu mẫu cao hơn đối với các biểu mẫu thấp hơn. Quá trình này được thực hiện để tăng hiệu suất cơ sở dữ liệu.

Câu hỏi 11: ‘query’ là gì?

Nó có vẻ giống như một trong những câu hỏi tự giải thích nhiều hơn và bạn đã đúng nếu như suy nghĩ như vậy.

Như chính thuật ngữ này, một query (truy vấn) chỉ đơn giản là một câu hỏi. Câu hỏi này được gửi đến cơ sở dữ liệu thông qua một mã code cụ thể để lấy một số loại thông tin từ nó.

Câu hỏi 12: Các tập con khác nhau là gì?

Có ba tập con cần biết trong các câu hỏi phỏng vấn SQL:

  1. Ngôn ngữ định nghĩa dữ liệu – nó cho phép thực hiện các hoạt động như tạo, xóa, thay đổi đối tượng.

  2. Ngôn ngữ thao tác dữ liệu – nó giúp chèn, cập nhật, truy xuất dữ liệu từ cơ sở dữ liệu hoặc xóa nó.

  3. Ngôn ngữ điều khiển dữ liệu – nó cho phép kiểm soát truy cập vào cơ sở dữ liệu. Nó có thể cấp hoặc thu hồi quyền truy cập.

Câu hỏi 13: Primary Key là gì?

Khóa chính (Primary key) là một cột hoặc một tập hợp các cột xác định duy nhất mỗi hàng trong bảng.

Câu hỏi 14: Unique Key là gì?

Khóa duy nhất (Unique Key) là những gì xác định duy nhất một hàng trong bảng như được đề cập trong phần giải thích Khóa chính.

Câu hỏi 15: Tính toàn vẹn dữ liệu là gì?

Đây là quá trình xác định tính chính xác của dữ liệu được lưu trữ trong cơ sở dữ liệu. Nó cũng xác định các ràng buộc về tính nhất quán và toàn vẹn để áp dụng các quy tắc kinh doanh trên dữ liệu bất cứ khi nào nó được nhập vào một ứng dụng hoặc cơ sở dữ liệu.

SQL interview questions - query codes

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

Như vậy, chúng tôi đã đề cập đến một số câu hỏi phỏng vấn SQL cơ bản, chắc hẳn bạn đã hiểu rõ hơn về bắt đầu một cuộc phỏng vấn xin việc sẽ như thế nào. Tuy nhiên, sau khi nhà tuyển dụng thấy rằng bạn đã trả lời các câu hỏi phỏng vấn SQL cơ bản, họ vẫn có thể đưa ra một số câu hỏi nâng cao. Đây là lý do tại sao nên chuẩn bị tốt hơn – bây giờ chúng ta sẽ chuyển sang các câu hỏi khó hơn.

Câu hỏi 1: Hãy giải thích ‘index’

Index (chỉ mục) là phương pháp nâng cao hiệu suất, cụ thể là – lấy thông tin từ cơ sở dữ liệu với tốc độ và hiệu quả cao hơn.

Tổng cộng, có thể có ba loại chỉ mục – clustered (phân cụm), non-clustered (không phân cụm) và unique (duy nhất).

Các chỉ mục Clustered (phân cụm) sắp xếp lại bảng và tìm kiếm thông tin với việc sử dụng các giá trị chính, trong khi các chỉ mục non-clustered (không phân cụm) duy trì thứ tự của bảng. Các chỉ mục unique (duy nhất) cấm các trường có các giá trị trùng lặp.

Một bảng chỉ có thể có một chỉ mục clustered, nhưng lại có thể có nhiều chỉ mục non-clustered.

Mặc dù có vẻ không giống một trong những câu hỏi phỏng vấn SQL nâng cao, nhưng khó khăn ở đây là phần “giải thích”. Điều đó thực sự làm câu hỏi này được nâng cao – nhà tuyển dụng có thể yêu cầu giải thích hoặc mở rộng câu trả lời của bạn.

Câu hỏi 2: Phải làm gì khi quên mật khẩu gốc?

Nếu quên hoặc mất mật khẩu gốc (root password), hãy khởi động cơ sở dữ liệu bằng lệnh của “skip-grants-table”. Sau khi đặt mật khẩu mới, hãy khởi động lại cơ sở dữ liệu ở chế độ bình thường và nhập mật khẩu mới.

Câu hỏi 3: Giá trị NULL bằng 0 được không?

Câu trả lời cho câu hỏi phỏng vấn SQL này là không.

Một “số 0 ” (zero) là một cách thức số, trong khi NULL  biểu thị sự vắng mặt của một ký tự, cho dù là vì không được biết hoặc không có sẵn. Theo cùng một logic, NULL không giống như một khoảng trắng, vì nó chỉ đơn giản là một ký tự.

Câu hỏi 4: Nên làm gì nếu đĩa dữ liệu bị quá tải?

Bạn có thể gặp các trường hợp phải điền vào đĩa dữ liệu. Nhưng sẽ không thể tiếp tục làm bất cứ điều gì nếu nó quá tải.

Điều bạn cần biết với câu hỏi phỏng vấn SQL này là trong tình huống này cần áp dụng liên kết mềm. Các liên kết này tạo ra một vị trí mà bạn có thể lưu trữ .frm.idb file – và đó là chính xác những gì bạn nên làm. Điều này sẽ giải quyết vấn đề quá tải.

Câu hỏi 5: ‘auto-increment’ là gì?

Autoincrement” là một lệnh cho phép tạo ra và tạo thành số duy nhất cho một bản ghi mới trong bảng.

Từ khóa này có thể được sử dụng trên nhiều nền tảng, nhưng có thể thay đổi một chút. Vì rất có thể bạn sẽ nhận được một số câu hỏi phỏng vấn SQL Server, tôi sẽ nói cho bạn biết – sự thay thế cho lệnh “auto increment” trong một SQL Server là “identity”.

Câu hỏi 6: Liệt kê các thành phần tạo nên cấu ​​trúc MySQL cơ bản nhất.

Chúng ta hãy thử kết hợp trong một số câu hỏi phỏng vấn MySQL.

Sau khi đã hiểu được MySQL là gì, bây giờ, chúng ta hãy xem thành phần tạo nên cấu trúc MySQL. MySQL cơ bản nhất được tạo từ ba thành phần chính – query optimizer, connection managerpluggable engines.

Câu hỏi 7: Cách tạo một bảng trống từ bảng hiện có.

Đây là một ví dụ về cách làm:

Select * into employeecopy from employee where 1=2

Câu hỏi 8: Làm thế nào có được phiên bản SQL hiện tại?

Nghe thì có vẻ là một trong những câu hỏi cơ SQL bản hơn, nhưng nhiều người có thể gặp vấn đề với nó vì chưa nghiên cứu trong quá trình học SQL – nó trở thành một câu hỏi mẹo.

Cách mà có được phiên bản SQL mới nhất là thực hiện lệnh này:

SELECT VERSION()

Câu hỏi 9: Làm thế nào để lấy các bản ghi lẻ thay thế từ bảng?

Bạn sẽ thực hiện được điều đó bằng cách sử dụng lệnh này:

Select employeeId from (Select rowno, employeetId from employee) where mod(rowno,2)=1

Câu hỏi 10: Chọn một bản ghi duy nhất từ ​​bảng.

Cách chọn các bản ghi duy nhất từ ​​một bảng đơn là sử dụng lệnh “distinct”. Đây là một ví dụ:

Select DISTINCT employeeID from Employee

Câu hỏi 11: Giải thích các biến của SQL.

Với các câu hỏi phỏng vấn, bạn cần biết rằng trong SQL có hai biến khác nhau – local (cục bộ) và global (toàn cục).

Biến cục bộ là những biến chỉ có thể tồn tại trong một, một hàm đơn nhất. Đối lập với điều đó, các biến toàn cục có thể được định vị thông qua toàn bộ chương trình.

Câu hỏi 12: ‘datawarehouse’ là gì?

Một “datawarehouse” thực hiện một chức năng tương tự như một nhà kho chỉ chứa dữ liệu.

Trong một “datawarehouse”, dữ liệu được lưu trữ từ nhiều lĩnh vực và các nguồn khác nhau. Ở đó, chúng được sắp xếp ra và chuẩn bị cho việc sử dụng.

Câu hỏi 13: Cách sử dụng chính ‘recursive stored procedure’ là gì?

Một recursive stored procedure khi một thủ tục tự thực hiện đến một điểm khi đạt đến một ranh giới đã đặt.

Lợi ích chính của thủ tục này là cho phép các lập trình viên sử dụng cùng một mã code nhiều lần.

Câu hỏi 14: Làm thế nào để lấy 3 ký tự đầu tiên từ một chuỗi ký tự?

Có khá nhiều cách để làm điều này, nhưng đây là một trong những cách phổ biến và dễ dàng hơn:

Select SUBSTRING(EmployeeSurname,1,5) as employeesurname from employee

Udacity Review Logo
Ưu điểm

  • Dễ sử dụng
  • Cung cấp nội dung chất lượng
  • Minh bạch giá cả

Tính năng chính

  • Chứng chỉ miễn phí sau hoàn thành
  • Tập trung vào các kỹ năng khoa học dữ liệu
  • Thời gian học tập linh hoạt

Xem tất cả phiếu giảm giá của nền tảng học online tốt nhất
Udacity Review Logo
Ưu điểm

  • Thiết kế đơn giản (không có thông tin không cần thiết)
  • Khóa học chất lượng cao (ngay cả khóa miễn phí)
  • Đa dạng tính năng

Tính năng chính

  • Chương trình nanodegree
  • Phù hợp với doanh nghiệp
  • Chứng chỉ hoàn thành trả phí

Xem tất cả phiếu giảm giá của nền tảng học online tốt nhất
Udemy Logo
Ưu điểm

  • Đa dạng nhiều khóa học
  • Dễ điều hướng
  • Không có vấn đề kỹ thuật

Tính năng chính

  • Đa dạng nhiều khóa học
  • Chính sách hoàn tiền trong 30 ngày
  • Chứng chỉ hoàn thành miễn phí

Xem tất cả phiếu giảm giá của nền tảng học online tốt nhất

Câu hỏi 15: Cách lấy các bản ghi chung từ hai bảng.

Bạn có thể thực hiện tác lệnh bên dưới để làm điều này:

Select employeeID from employee. INTERSECT Select EmployeeID from WorkShift

Như vậy, chắc hẳn bây giờ bạn đã quen hơn với cả các câu hỏi phỏng vấn SQL cơ bản và nâng cao. Bạn đã biết những gì sẽ có thể diễn ra trong cuộc phỏng vấn xin việc của mình. Tiếp theo, hãy cùng chuyển sang một số mẹo chung mà tôi đã hứa là sẽ chia sẻ với bạn.

Bí kíp chung

Tôi sẽ không nói đến những lời khuyên rất phổ biến như “ngủ một chút ” hay “mặc một bộ đồ phù hợp” nữa.

SQL interview questions - work desk

Trong đào tạo thể thao, sẽ có một phương pháp đào tạo cụ thể trước mỗi cuộc thi. Khi ngày thi đấu tới gần, họ sẽ phải giảm khối lượng đào tạo, tăng cường độ luyện tập trong thời gian ngắn hơn và hãy cố gắng hơn bao giờ hết.

Đây là một quan điểm tuyệt vời có thể áp dụng để chuẩn bị cho tất cả các câu hỏi và câu trả lời phỏng vấn SQL. Khi cuộc phỏng vấn tới gần, bạn nên dành ít thời gian để chuẩn bị, hãy thực sự tập trung vào tài liệu mà bạn phải học. Điều đó có nghĩa là không làm nhiều việc cùng lúc, không nghỉ giải lao giữa giờ, v.v… Điều này sẽ giúp bạn bớt căng thẳng và cảm thấy tự tin hơn khi ngày phỏng vấn đến gần.

Tự tin là một điều khác nữa cần nhắc tới. Hãy cố gắng và trông thật tự tin, nhưng đừng lạm dụng quá tránh để không trở nên tự phụ. Sẽ có sự khác biệt rõ ràng khi nói rằng bạn có kinh nghiệm khá trong lĩnh vực này và nói rằng bạn là lập trình viên giỏi nhất.

Có khả năng là sẽ có những sự từ chối sau các cuộc phỏng vấn cho đến khi bạn có được công việc mơ ước đó. Tuy nhiên, không nên xem đó là một điều tiêu cực – bạn sẽ càng có được thêm cơ hội phỏng vấn, được tham gia trả lời các câu hỏi phỏng vấn SQL cơ bản và nâng cao. Bạn chắc chắn sẽ cảm thấy tự tin hơn, có sự chuẩn bị tốt hơn và lĩnh hội thêm rất nhiều điều trong khi học SQL.

Kết luận

Hiển nhiên rằng ngày càng có nhiều các lập trình viên giỏi và cần thiết với thị trường. Các nhà tuyển dụng sẵn sàng trả mức lương khổng lồ cho những người có thể chứng minh hiệu suất, chất lượng trong các lĩnh vực lập trình và phát triển.

SQL là một trong những ngôn ngữ phổ biến nhất, hiện đang có nhu cầu cao. Mọi người đánh giá cao sự đơn giản, khả năng được áp dụng và sử dụng trong nhiều lĩnh vực khác nhau của ngôn ngữ này. Thật sự sẽ khá dễ dàng để học SQL nhưng những người thực sự thành thạo về nó vẫn được đánh giá rất cao.

Có rất nhiều câu hỏi khác nhau liên quan đến SQL mà nhà tuyển dụng có thể hỏi bạn. Trong hướng dẫn này, chúng tôi chỉ đề cập đến những vấn đề cơ bản như SQL là gì? MySQL là gì? – nó chỉ là phần nổi của một tảng băng chìm. Nếu bạn nghiêm túc về công việc, bạn hãy nên xem xét nghiên cứu sâu hơn về chủ đề này.

Vì vậy, chúng tôi đã đề cập đến các câu hỏi cơ bản và nâng cao và những ví dụ về SQL phổ biến nhất. Hơn nữa, tôi cũng cung cấp một số lời khuyên chung để giúp bạn có thêm cơ hội đạt được công việc mong ước.

Nếu bạn cảm thấy cần phải nâng cao kỹ năng của mình, hãy nhớ đăng ký khóa học Hướng dẫn SQL tính tương tác của chúng tôi . Nếu bạn chỉ mới bắt đầu, hãy xem SQL cho Người mới bắt đầu hoặc Lý thuyết SQL.

Để lại phản hồi chân thật của bạn

Hãy để lại ý kiến xác thực của bạn & giúp hàng nghìn người chọn được nền tảng học online tốt nhất. Tất cả phản hồi, dù tích cực hay tiêu cực, đều được chấp nhận miễn là chúng trung thực. Chúng tôi không công khai phản hồi thiên vị hoặc thư rác. Vì vậy, nếu bạn muốn chia sẻ kinh nghiệm, ý kiến hoặc đưa ra lời khuyên – phần này dành cho bạn!