50 câu hỏi và câu trả lời phỏng vấn SQL Server hàng đầu (2024)
Câu hỏi và câu trả lời phỏng vấn SQL Server dành cho người mới
1. Hai chế độ xác thực trong SQL Server là gì?
Có hai chế độ xác thực –
- Windows Chế độ
- Chế độ hỗn hợp
Có thể thay đổi các chế độ bằng cách chọn menu công cụ của thuộc tính cấu hình SQL Server và chọn trang bảo mật.
👉 Tải xuống bản PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn SQL Server
2. Trình phân tích SQL là gì?
SQL Profiler là một công cụ cho phép quản trị viên hệ thống giám sát các sự kiện trong máy chủ SQL. Điều này chủ yếu được sử dụng để thu thập và lưu dữ liệu về từng sự kiện của tệp hoặc bảng để phân tích.
3. Thủ tục lưu trữ đệ quy là gì?
SQL Server hỗ trợ thủ tục lưu trữ đệ quy tự gọi. Thủ tục lưu trữ đệ quy có thể được định nghĩa là một phương pháp giải quyết vấn đề trong đó giải pháp được đưa ra lặp đi lặp lại. Nó có thể làm tổ tới 32 cấp độ.
CREATE PROCEDURE [dbo].[Fact] ( @Number Integer, @RetVal Integer OUTPUT ) AS DECLARE @In Integer DECLARE @Out Integer IF @Number != 1 BEGIN SELECT @In = @Number – 1 EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively) SELECT @RetVal = @Number * @Out END ELSE BEGIN SELECT @RetVal = 1 END RETURN GO
4. Sự khác biệt giữa các bảng tạm thời cục bộ và toàn cục là gì?
- Các bảng tạm thời cục bộ hiển thị khi có kết nối và bị xóa khi đóng kết nối.
CREATE TABLE #<tablename>
- Các bảng tạm thời chung được hiển thị cho tất cả người dùng và bị xóa khi kết nối tạo ra nó bị đóng.
CREATE TABLE ##<tablename>
5. Ràng buộc CHECK là gì?
Ràng buộc CHECK có thể được áp dụng cho một cột trong bảng để giới hạn các giá trị có thể được đặt trong một cột. Ràng buộc kiểm tra là để thực thi tính toàn vẹn.
6. Máy chủ SQL có thể liên kết với các máy chủ khác không?
Máy chủ SQL có thể được kết nối với bất kỳ cơ sở dữ liệu nào có nhà cung cấp OLE-DB để cung cấp liên kết. Ví dụ: Oracle có nhà cung cấp OLE-DB có liên kết kết nối với nhóm máy chủ SQL.
7. Truy vấn phụ là gì và thuộc tính của nó?
Truy vấn phụ là một truy vấn có thể được lồng bên trong một truy vấn chính như các câu lệnh Chọn, Cập nhật, Chèn hoặc Xóa. Điều này có thể được sử dụng khi biểu thức được cho phép. Thuộc tính của truy vấn phụ có thể được định nghĩa là
- Truy vấn phụ không được có thứ tự theo mệnh đề
- Truy vấn phụ phải được đặt ở phía bên phải của toán tử so sánh của truy vấn chính
- Truy vấn phụ phải được đặt trong dấu ngoặc đơn vì nó cần được thực hiện trước truy vấn chính
- Có thể bao gồm nhiều truy vấn phụ
8. Có những loại truy vấn phụ nào?
Có ba loại truy vấn phụ –
- Truy vấn phụ một hàng chỉ trả về một hàng
- Truy vấn phụ nhiều hàng trả về nhiều hàng
- Truy vấn phụ nhiều cột trả về nhiều cột cho truy vấn chính. Với kết quả truy vấn phụ đó, truy vấn chính sẽ được thực thi.
9. Tác nhân máy chủ SQL là gì?
Tác nhân SQL Server đóng một vai trò quan trọng trong các công việc hàng ngày của quản trị viên máy chủ SQL (DBA). Mục đích của tác nhân máy chủ là thực hiện các tác vụ một cách dễ dàng với công cụ lập lịch trình cho phép công việc của chúng tôi chạy vào ngày và giờ đã lên lịch.
10. Tác vụ được lập lịch trong SQL Server là gì?
Các tác vụ hoặc công việc đã lên lịch được sử dụng để tự động hóa các quy trình có thể chạy vào thời gian đã lên lịch trong khoảng thời gian đều đặn. Việc lập lịch trình nhiệm vụ này giúp giảm bớt sự can thiệp của con người vào ban đêm và việc cho ăn có thể được thực hiện vào một thời điểm cụ thể. Người dùng cũng có thể sắp xếp các nhiệm vụ mà nó phải được tạo.
11. COALESCE trong SQL Server là gì?
COALESCE được sử dụng để trả về biểu thức không null đầu tiên trong các đối số. Hàm này được sử dụng để trả về giá trị khác null từ nhiều cột trong đối số.
Thí dụ -
Select COALESCE(empno, empname, salary) from employee;
12. Làm thế nào để xử lý các ngoại lệ trong Lập trình SQL Server?
Các ngoại lệ được xử lý bằng cách sử dụng cấu trúc TRY—-CATCH và nó được xử lý bằng cách viết các tập lệnh bên trong khối TRY và xử lý lỗi trong khối CATCH.
13. Mục đích của chức năng FLOOR là gì?
Hàm FLOOR được sử dụng để làm tròn một giá trị không nguyên thành số nguyên nhỏ nhất trước đó. Ví dụ được đưa ra
FLOOR(6.7)
Trả về 6.
14. Chúng tôi có thể kiểm tra khóa trong cơ sở dữ liệu không? Nếu vậy, làm thế nào chúng ta có thể thực hiện kiểm tra khóa này?
Có, chúng tôi có thể kiểm tra ổ khóa trong cơ sở dữ liệu. Nó có thể đạt được bằng cách sử dụng thủ tục lưu sẵn có tên sp_lock.
15. Công dụng của hàm SIGN là gì?
Hàm SIGN được sử dụng để xác định xem số được chỉ định là Dương, Âm và Bằng 1. Điều này sẽ trả về +1, -0 hoặc XNUMX.
Thí dụ -
SIGN(-35) returns -1
16. Kích hoạt là gì?
Trình kích hoạt được sử dụng để thực thi một loạt mã SQL khi các lệnh chèn, cập nhật hoặc xóa được thực thi đối với một bảng. Trình kích hoạt được tự động kích hoạt hoặc thực thi khi dữ liệu được sửa đổi. Nó có thể được thực thi tự động trong các thao tác chèn, xóa và cập nhật.
17. Có những loại Trigger nào?
Có bốn loại kích hoạt và chúng là:
- Chèn
- Xóa bỏ
- Cập nhật
- Thay vì
18. Cột IDENTITY trong câu lệnh chèn là gì?
Cột IDENTITY được sử dụng trong các cột của bảng để biến cột đó thành số tăng tự động hoặc khóa thay thế.
19. Bulkcopy trong SQL là gì?
Bulkcopy là một công cụ được sử dụng để sao chép lượng lớn dữ liệu từ Bảng. Công cụ này được sử dụng để tải lượng lớn dữ liệu trong SQL Server.
20. Truy vấn nào sẽ được sử dụng để lấy danh sách các trình kích hoạt trong cơ sở dữ liệu?
Truy vấn để lấy danh sách các trình kích hoạt trong cơ sở dữ liệu-
Select * from sys.objects where type='tr'
21. Sự khác biệt giữa UNION và UNION ALL là gì?
- UNION: Để chọn thông tin liên quan từ hai bảng, lệnh UNION được sử dụng. Nó tương tự như lệnh THAM GIA.
- UNION All: Lệnh UNION ALL bằng lệnh UNION, ngoại trừ việc UNION ALL chọn tất cả các giá trị. Nó sẽ không loại bỏ các hàng trùng lặp, thay vào đó nó sẽ lấy tất cả các hàng từ tất cả các bảng.
22. Bảng tạm thời toàn cầu được trình bày như thế nào và phạm vi của nó như thế nào?
Các bảng tạm thời toàn cục được biểu thị bằng ## trước tên bảng. Phạm vi sẽ ở bên ngoài phiên trong khi các bảng tạm thời cục bộ nằm trong phiên. ID phiên có thể được tìm thấy bằng cách sử dụng @@SPID.
Câu hỏi và câu trả lời phỏng vấn SQL Server dành cho người có kinh nghiệm
23. Sự khác biệt giữa Thủ tục lưu trữ và SQL động là gì?
Thủ tục lưu trữ là một tập hợp các câu lệnh được lưu trữ ở dạng được biên dịch. SQL động là một tập hợp các câu lệnh được xây dựng động trong thời gian chạy và nó sẽ không được lưu trữ trong Cơ sở dữ liệu và nó chỉ thực thi trong thời gian chạy.
24. Đối chiếu là gì?
Đối chiếu được xác định để chỉ định thứ tự sắp xếp trong bảng. Có ba loại thứ tự sắp xếp –
- Trường hợp nhạy cảm
- Trường hợp không nhạy cảm
- Nhị phân
25. Làm thế nào chúng ta có thể đếm số lượng bản ghi trong một bảng?
Sau đây là các truy vấn có thể được sử dụng để lấy số lượng bản ghi trong một bảng –
Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2
26. Lệnh dùng để lấy phiên bản SQL Server là gì?
Select SERVERPROPERTY('productversion')
được sử dụng để lấy phiên bản SQL Server.
27. Lệnh UPDATE_STATISTICS là gì?
Lệnh UPDATE_STATISTICS được sử dụng để cập nhật các chỉ mục trên các bảng khi có một số lượng lớn thao tác xóa hoặc sửa đổi hoặc sao chép hàng loạt xảy ra trong các chỉ mục.
28. Câu lệnh SET NOCOUNT ON/OFF có tác dụng gì?
Theo mặc định, NOCOUNT được đặt thành TẮT và nó trả về số lượng bản ghi bị ảnh hưởng bất cứ khi nào lệnh được thực thi. Nếu người dùng không muốn hiển thị số lượng bản ghi bị ảnh hưởng, nó có thể được đặt rõ ràng thành BẬT- (SET NOCOUNT ON).
29. Bảng máy chủ SQL nào được sử dụng để chứa các tập lệnh thủ tục được lưu trữ?
Sys.SQL_Modules là một bảng SQL Server được sử dụng để lưu trữ tập lệnh của thủ tục được lưu trữ. Tên của thủ tục lưu trữ được lưu trong bảng có tên Sys.Procedures.
30. Magic Table trong SQL Server là gì?
Trong các hoạt động DML như Chèn, Xóa và Cập nhật, SQL Server tạo các bảng ma thuật để giữ các giá trị trong các hoạt động DML. Các bảng ma thuật này được sử dụng bên trong trình kích hoạt để giao dịch dữ liệu.
31. Sự khác biệt giữa SUBSTR và CHARINDEX trong SQL Server là gì?
Hàm SUBSTR được sử dụng để trả về phần chuỗi cụ thể trong một chuỗi nhất định. Tuy nhiên, hàm CHARINDEX cung cấp vị trí ký tự trong một chuỗi được chỉ định nhất định.
SUBSTRING('Smiley',1,3)
Cho kết quả là Smi
CHARINDEX('i', 'Smiley',1)
Cho kết quả là 3 khi tôi xuất hiện ở phần 3rd vị trí của chuỗi
32. Bạn có thể tạo thông tin đăng nhập bằng cách nào?
Bạn có thể sử dụng lệnh sau để tạo một tài khoản đăng nhập
CREATE LOGIN MyLogin WITH PASSWORD = '123';
33. Toán tử ISNULL() là gì?
Hàm ISNULL được sử dụng để kiểm tra xem giá trị đưa ra có phải là NULL hay không NULL trong máy chủ sql. Hàm này cũng cung cấp khả năng thay thế một giá trị bằng NULL.
34. Mệnh đề FOR có tác dụng gì?
Mệnh đề FOR chủ yếu được sử dụng cho XML và các tùy chọn trình duyệt. Mệnh đề này chủ yếu được sử dụng để hiển thị kết quả truy vấn ở định dạng XML hoặc trong trình duyệt.
35. Số lượng chỉ mục tối đa trên mỗi bảng sẽ là bao nhiêu?
Đối với SQL Server 2008, chỉ mục 100 có thể được sử dụng làm số lượng tối đa trên mỗi bảng. 1 ClusterCó thể sử dụng Chỉ mục ed và 999 Chỉ mục không nhóm trên mỗi bảng trong SQL Server.
1000 Index có thể được sử dụng làm số lượng tối đa trên mỗi bảng. 1 ClusterCó thể sử dụng Chỉ mục ed và 999 Chỉ mục không nhóm trên mỗi bảng trong SQL Server.
1 ClusterCó thể sử dụng Chỉ mục ed và 999 Chỉ mục không nhóm trên mỗi bảng trong SQL Server.
36. Sự khác biệt giữa CAM KẾT và ROLLBACK là gì?
Mọi câu lệnh giữa BEGIN và COMMIT đều trở thành liên tục đối với cơ sở dữ liệu khi COMMIT được thực thi. Mọi câu lệnh giữa BEGIN và ROOLBACK đều được hoàn nguyên về trạng thái khi ROLLBACK được thực thi.
37. Sự khác biệt giữa loại varchar và nvarchar là gì?
Varchar và nvarchar giống nhau nhưng điểm khác biệt duy nhất là nvarhcar có thể được sử dụng để lưu trữ các ký tự Unicode cho nhiều ngôn ngữ và nó cũng chiếm nhiều không gian hơn khi so sánh với varchar.
38. Công dụng của @@SPID là gì?
@@SPID trả về ID phiên của quy trình người dùng hiện tại.
39. Lệnh nào được sử dụng để Biên dịch lại thủ tục đã lưu trong thời gian chạy?
Thủ tục lưu trữ có thể được thực thi với sự trợ giúp của từ khóa có tên RECOPILE.
Ví dụ
Exe <SPName> WITH RECOMPILE
Hoặc chúng ta có thể bao gồm WITHRECOMPILE trong chính thủ tục được lưu trữ.
40. Làm thế nào để xóa các hàng trùng lặp trong SQL Server?
Có thể xóa các hàng trùng lặp bằng tính năng CTE và ROW NUMER của SQL Server.
41. Tên người dùng và mật khẩu SQL Server được lưu trữ trong SQL Server ở đâu?
Tên người dùng và mật khẩu được lưu trữ trong sys.server_principals và sys.sql_logins. Nhưng mật khẩu không được lưu trữ dưới dạng văn bản thông thường.
42. Sự khác biệt giữa GETDATE và SYSDATETIME là gì?
Cả hai đều giống nhau nhưng GETDATE có thể cho thời gian đến mili giây và SYSDATETIME có thể cho độ chính xác đến nano giây. SYSDATE TIME chính xác hơn GETDATE.
43. Làm thế nào dữ liệu có thể được sao chép từ bảng này sang bảng khác?
INSERT INTO SELECT
Lệnh này được sử dụng để chèn dữ liệu vào bảng đã được tạo.
SELECT INTO
Lệnh này được sử dụng để tạo một bảng mới và cấu trúc cũng như dữ liệu của nó có thể được sao chép từ bảng hiện có.
44. BẢNG MẪU là gì?
TABLESAMPLE được sử dụng để trích xuất ngẫu nhiên mẫu các hàng cần thiết cho ứng dụng. Các hàng mẫu được lấy dựa trên tỷ lệ phần trăm của các hàng.
45. Lệnh nào được sử dụng cho các thông báo lỗi do người dùng xác định?
RAISEERROR là lệnh được sử dụng để tạo và bắt đầu xử lý lỗi cho một phiên nhất định. Những tin nhắn do người dùng xác định sẽ được lưu trữ trong bảng sys.messages.
46. Kiểu dữ liệu XML có ý nghĩa gì?
Kiểu dữ liệu XML được sử dụng để lưu trữ các tài liệu XML dưới dạng Cơ sở dữ liệu SQL Server. Các cột và biến được tạo và lưu trữ các phiên bản XML trong cơ sở dữ liệu.
47. CDC là gì?
CDC được viết tắt là Change Data Capture, dùng để thu thập dữ liệu đã được thay đổi gần đây. Tính năng này có trong SQL Server 2008.
48. SQL SQL là gì?
SQL SQL là một cuộc tấn công của người dùng độc hại trong đó mã độc có thể được chèn vào các chuỗi có thể được chuyển đến một phiên bản máy chủ SQL để phân tích cú pháp và thực thi. Tất cả các câu lệnh phải kiểm tra các lỗ hổng khi nó thực thi tất cả các truy vấn hợp lệ về mặt cú pháp mà nó nhận được.
Ngay cả các thông số cũng có thể bị thao túng bởi những kẻ tấn công lành nghề và có kinh nghiệm.
49. Các phương pháp được sử dụng để bảo vệ chống lại cuộc tấn công tiêm nhiễm SQL là gì?
Sau đây là các phương pháp được sử dụng để bảo vệ chống lại tấn công tiêm SQL:
- Sử dụng tham số cho thủ tục lưu trữ
- Lọc tham số đầu vào
- Sử dụng bộ sưu tập tham số với SQL động
- Trong mệnh đề like, người dùng thoát ký tự
50. Chỉ mục được lọc là gì?
Chỉ mục được lọc được sử dụng để lọc một số phần hàng trong bảng nhằm cải thiện hiệu suất truy vấn, duy trì chỉ mục và giảm chi phí lưu trữ chỉ mục. Khi chỉ mục được tạo bằng mệnh đề WHERE thì nó được gọi là Chỉ mục được lọc.
Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn