10 câu hỏi phỏng vấn sql hàng đầu năm 2022

Hãy định nghĩa về một temp table?


Temp table (bảng tạm) là một cấu trúc lưu trữ tạm thời. Điều đó nghĩa là gì? Về cơ bản, bạn có thể sử dụng một Temp table để lưu trữ dữ liệu tạm thời để bạn có thể thao tác và thay đổi nó như một table trong database.

Primary Key (Khóa chính) là gì?


  • Một ràng buộc (constaint) Primary Key là một mã định danh duy nhất cho một row trong bảng cơ sở dữ liệu.
  • Mỗi bảng nên có một ràng buộc primary key để xác định duy nhất từng row và chỉ một ràng buộc primary key có thể được tạo cho mỗi bảng. Các ràng buộc primary key được sử dụng để thực thi tính toàn vẹn của thực thể.

Định nghĩa JOIN và các loại JOIN khác nhau?


Từ khóa JOIN được sử dụng để nạp dữ liệu từ hai hay nhiều bảng liên quan.

Khi cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một tập kết quả, cần sử dụng từ khóa JOIN

Các loại JOIN là:

  • INNER JOIN (Hoặc JOIN)
  • LEFT OUTER JOIN (Hoặc LEFT JOIN)
  • RIGHT OUTER JOIN (Hoặc RIGHT JOIN)
  • FULL OUTER JOIN (Hoặc OUTER JOIN)
  • CROSS JOIN
  • SELF JOIN

CHECK Constraint - Ràng buộc CHECK là gì?


Một ràng buộc CHECK được sử dụng để giới hạn các giá trị hoặc loại dữ liệu có thể được lưu trữ trong một cột. Nếu bản ghi không đáp ứng được điều kiện này, thì sẽ không được lưu trữ vào trong bảng.

Một bảng có thể có nhiều hơn một khoá ngoại?


Đúng, một bảng có thể có nhiều khóa ngoài và chỉ có một khóa chính.

Trường dữ liệu BOOLEAN có giá trị nào?


Đối với trường dữ liệu BOOLEAN, có hai giá trị: 1 (TRUE)0 (FALSE).

Thủ tục lưu trữ (stored procedure) là gì?


Một thủ tục lưu trữ là một tập hợp các truy vấn SQL có thể lấy đầu vào và gửi lại đầu ra.

IDENTITY trong SQL là gì?


Một cột IDENTITY trong SQL sẽ tự động sinh ra các giá trị số tự tăng. Có thể định nghĩa giá trị bắt đầu và gia tăng của cột nhận dạng.

Trigger là gì?


Trigger là một thủ tục dược thực thi từ phía máy chủ CSDL khi một sự kiện bảng xảy ra (Chèn, cập nhật hoặc xóa lệnh thực hiện đối với một bảng cụ thể) .

Làm thế nào để lấy ra các hàng ngẫu nhiên từ một bảng?


Sử dụng mệnh đề SAMPLE chúng ta có thể chọn các hàng ngẫu nhiên. Ví dụ: SELECT \* FROM table_name SAMPLE (10);

Cổng TCP/IP nào mà SQL Server chạy?


Mặc định SQL Server chạy trên cổng 1433.

DML và DDL là gì?


  • DML là viết tắt của Ngôn ngữ Thao tác Dữ liệu ( Data Manipulation Language): INSERT, UPDATEDELETE là các câu lệnh DML.
  • DDL là viết tắt của Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language): CREATE, ALTER, DROP, RENAMElà các câu lệnhDDL`.

Thứ tự của SQL SELECT?


Thứ tự các mệnh đề SQL SELECT là: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Trong đó SELECTFROM là bắt buộc.

Giả sử một cột Student có hai cột, Name và Marks. Làm thế nào để có được Name và Marks của ba sinh viên top đầu?


SELECT Name, Marks FROM Student s1 where 3 <= (SELECT COUNT(\*) FROM Students s2 WHERE s1.marks = s2.marks)

Sự khác biệt giữa các lệnh TRUNCATE, DELETE và DROP?


  • DELETE xóa một hoặc tất cả các hàng từ một bảng dựa trên điều kiện và có thể được phục hồi lại.
  • TRUNCATE xóa tất cả các hàng từ một bảng bằng cách phân bổ các trang bộ nhớ và không thể phục hồi lại
  • DROP xóa hoàn toàn một bảng từ cơ sở dữ liệu.

ROWID nghĩa là gì?


Đó là một cột giả dài 18 ký tự gắn liền với mỗi hàng của một bảng.

Xác định UNION, MINUS, UNION ALL, INTERSECT?


  • MINUS - sử dụng để kết hợp 2 câu lệnh SELECT, nó trả về tất cả các bản ghi chỉ thuộc vào bảng của câu truy vấn SELECT đầu tiên, những bản ghi giao nhau và những bản ghi của câu truy vấn SELECT thứ 2 thì không được lấy vào kết quả..
  • UNION - Bạn viết hai hay nhiều câu truy vấn SELECT khác nhau nhưng bạn muốn nó trả về một danh sách kết quả duy nhất thì bạn phải sử dụng toán tử UNION
  • UNION ALL - trả về tất cả các hàng được chọn bởi một trong hai truy vấn, giữ lại các kết quả trùng
  • INTERSECT - lấy ra những bản ghi nào mà nó hiện diện ở trong cả 2 bảng (có trong bảng này và cũng có trong bảng kia)

Sự khác nhau giữa UNIQUE và PRIMARY KEY constraints là gì?


  • Một bảng có thể chỉ có một PRIMARY KEY và có thể không có hoặc có mộ hay nhiều UNIQUE keys.
  • PRIMARY KEY không thể chứa giá trị Null , UNIQUE có thể chứa giá trị Null.

Index là gì?


Index (Chỉ mục) là bảng tra cứu đặc biệt mà Database Search Engine có thể sử dụng để tăng nhanh thời gian và hiệu suất thực hiện các truy vấn. Index có thể được tạo ra trên một hoặc nhiều cột của một bảng.

View là gì?Lợi ích của Views là gì?


Một khung nhìn là một bảng ảo chứa dữ liệu từ một hoặc nhiều bảng. Lượt xem hạn chế quyền truy cập dữ liệu của bảng bằng cách chỉ chọn các giá trị được yêu cầu và thực hiện các truy vấn phức tạp một cách dễ dàng.

Ưu điểm của Views: Chế độ xem hạn chế quyền truy cập vào dữ liệu vì chế độ xem có thể hiển thị các cột được chọn từ bảng. Có thể sử dụng chế độ xem để truy vấn các kết quả tìm kiếm phức tạp.

Ví dụ chế độ xem có thể được sử dụng để truy vấn thông tin từ nhiều bảng mà không có sự hiểu biết của người dùng.

View có chứa dữ liệu không?


Không, View là cấu trúc ảo.

Sự khác biệt giữa mệnh đề Having và mệnh đề Where?


Cả hai đều chỉ định điều kiện tìm kiếm nhưng mệnh đề Having chỉ được sử dụng với câu lệnh SELECT và thường được sử dụng với mệnh đề GROUP BY. Nếu mệnh đề GROUP BY không được sử dụng thì Having sử dụng giống như mệnh đề WHERE.

Sự khác biệt giữa một Local temp table và một Global temp table?


  • Local temp table có thể truy cập được đối với user hiện tại được kết nối với máy chủ. Các bảng này biến mất sau khi user ngắt kết nối khỏi máy chủ.
  • Mặt khác, Global temp table có sẵn cho tất cả user mà không cần để ý đến kết nối. Các bảng này vẫn hoạt động cho đến khi tất cả các kết nối global được đóng lại.

Làm cách nào để thêm một column có giá trị mặc định vào một table có sẵn?


ALTER TABLE SomeTable
         ADD SomeCol Bit NULL --Or NOT NULL.
   CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is
   autogenerated.
       DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.
Hãy nhớ rằng nếu column có giá trị là nullable, thì null sẽ là giá trị được sử dụng cho các rows hiện có.ALTER TABLE SomeTable
         ADD SomeCol Bit NULL --Or NOT NULL.
   CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is
   autogenerated.
       DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.

Hãy nhớ rằng nếu column có giá trị là nullable, thì null sẽ là giá trị được sử dụng cho các rows hiện có.

Default là gì?


  • Default cho phép thêm giá trị vào column nếu giá trị của column đó không được cài đặt.
  • Default có thể được xác định trên các field number và datetime. Chúng không thể được định nghĩa trên các column timestampIDENTITY.