50 câu hỏi phỏng vấn máy chủ SQL hàng đầu & Câu trả lời

Anonim

tải PDF

1. Hai chế độ xác thực trong SQL Server là gì?

Có hai chế độ xác thực -

  • Chế độ cửa sổ
  • Chế độ hỗn hợp

Có thể thay đổi 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.

2. SQL Profiler 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 để nắm bắt và lưu dữ liệu về từng sự kiện của một tệp hoặc một 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 đến lặp đi lặp lại. Nó có thể lồng lên đến 32 cấp độ.

CREATE PROCEDURE [dbo].[Fact](@Number Integer,@RetVal Integer OUTPUT)ASDECLARE @In IntegerDECLARE @Out IntegerIF @Number != 1BEGINSELECT @In = @Number - 1EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)SELECT @RetVal = @Number * @OutENDELSEBEGINSELECT @RetVal = 1ENDRETURNGO

4. Sự khác biệt giữa 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 kết nối bị đóng.
CREATE TABLE #
  • 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 ##

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à các thuộc tính của nó?

Truy vấn phụ là một truy vấn có thể được lồng vào bên trong một truy vấn chính như 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. Các thuộc tính của truy vấn phụ có thể được định nghĩa là

  • Một truy vấn phụ không được có thứ tự theo mệnh đề
  • Một truy vấn phụ nên được đặt ở phía bên phải của toán tử so sánh của truy vấn chính
  • Một truy vấn phụ nên được đặt trong dấu ngoặc đơn vì nó cần được thực thi trước khi truy vấn chính
  • Có thể bao gồm nhiều truy vấn phụ

8. Các loại truy vấn phụ là gì?

Có ba loại truy vấn phụ -

  • Truy vấn phụ hàng đơn 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 hiện.

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 tác vụ 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 cho phép các công việc của chúng ta chạy vào ngày và giờ đã định.

10. Các tác vụ đã lên lịch trong SQL Server là gì?

Các nhiệm 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ể được chạy theo thời gian đã định ở một khoảng thời gian đều đặn. Việc lập lịch trình cho các công việc 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ể đặt hàng các tác 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ác rỗng đầu tiên trong các đối số. Hàm này được sử dụng để trả về giá trị khác rỗng từ nhiều hơn một cột trong các đối số.

Thí dụ -

Select COALESCE(empno, empname, salary) from employee;

12. Các ngoại lệ có thể được xử lý như thế nào trong Lập trình máy chủ SQL?

Các ngoại lệ được xử lý bằng cách sử dụng các 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 hàm FLOOR là gì?

Hàm FLOOR được sử dụng để làm tròn một giá trị không phải số 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 ta 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 được lưu trữ sẵn gọi là 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à Không. Điều này sẽ trả về + 1, -1 hoặc 0.

Thí dụ -

SIGN(-35) returns -1

16. Trigger là gì?

Các 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 hoặc cập nhật hoặc xóa được thực hiện đối với một bảng. Các 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 trên các hoạt động chèn, xóa và cập nhật.

17. Các loại Trigger là gì?

Có bốn loại trình 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 insert là gì?

Cột IDENTITY được sử dụng trong các cột của bảng để làm cho cột đó làm số Tự động tăng dần hoặc một khóa thay thế.

19. Bulkcopy trong SQL là gì?

Bulkcopy là một công cụ được sử dụng để sao chép một lượng lớn dữ liệu từ các Bảng. Công cụ này được sử dụng để tải một lượng lớn dữ liệu trong SQL Server.

20. Truy vấn sẽ được sử dụng để lấy danh sách các trình kích hoạt trong cơ sở dữ liệu là gì?

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

21. Sự khác biệt giữa UNION và UNION ALL?

  • 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 JOIN.
  • UNION All: Lệnh UNION ALL bằng với lệnh UNION, ngoại trừ 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ục được biểu diễn như thế nào và phạm vi của nó?

Bảng tạm thời toàn cục được biểu diễn bằng ## trước tên bảng. Phạm vi sẽ là bên ngoài phiên trong khi các bảng tạm thời cục bộ nằm bên trong phiên. ID phiên có thể được tìm thấy bằng cách sử dụng @@ SPID.

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ữ trong một biểu mẫu đã 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. Collation là gì?

Đối chiếu được định nghĩa để chỉ định thứ tự sắp xếp trong bảng. Có ba loại thứ tự sắp xếp -

  1. Trường hợp nhạy cảm
  2. Trường hợp không nhạy cảm
  3. 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 bảng:

Select * from 
 Select count(*) from 
 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 của SQL Server.

27. Lệnh UPDATE_STATISTICS là gì?

Lệnh UPDATE_STATISTICS được sử dụng để cập nhật chỉ mục trên bảng khi có một lượng lớn việc xóa hoặc sửa đổi hoặc sao chép hàng loạt xảy ra trong chỉ mục.

28. Việc sử dụng câu lệnh SET NOCOUNT ON / OFF là 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 là ON- (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 gọi là Sys.Procedures.

30. Magic Tables 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 để lưu 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 các 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?

Hàm SUBSTR được sử dụng để trả về một phần cụ thể của chuỗi trong một chuỗi nhất định. Nhưng, hàm CHARINDEX cung cấp vị trí ký tự trong một chuỗi cụ thể 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 ở vị trí thứ 3 của chuỗi

32. Bạn có thể tạo đăng nhập bằng cách nào?

Bạn có thể sử dụng lệnh sau để tạo thông tin đă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ị đã cho là NULL hay không NULL trong máy chủ sql. Hàm này cũng cung cấp để thay thế một giá trị bằng NULL.

34. Việc sử dụng Mệnh đề FOR ​​là gì?

Mệnh đề FOR ​​chủ yếu được sử dụng cho các tùy chọn trình duyệt và XML. 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, 100 Chỉ mục có thể được sử dụng làm số lượng tối đa cho mỗi bảng. 1 Chỉ mục theo cụm và 999 Chỉ mục không theo nhóm trên mỗi bảng có thể được sử dụng trong SQL Server.

1000 Chỉ mục có thể được sử dụng làm số lượng tối đa cho mỗi bảng. 1 Chỉ mục theo cụm và 999 Chỉ mục không theo nhóm trên mỗi bảng có thể được sử dụng trong SQL Server.

1 Chỉ mục theo cụm và 999 Chỉ mục không theo nhóm trên mỗi bảng có thể được sử dụng trong SQL Server.

36. Sự khác biệt giữa COMMIT và ROLLBACK?

Mọi câu lệnh giữa BEGIN và COMMIT trở nên liên tục với cơ sở dữ liệu khi COMMIT được thực thi. Mọi câu lệnh giữa BEGIN và ROOLBACK được hoàn nguyên về trạng thái khi ROLLBACK được thực thi.

37. Sự khác biệt giữa kiểu varchar và nvarchar?

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 dung lượng hơn khi so sánh với varchar.

38. Việc sử dụng @@ SPID là gì?

A @@ 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 trữ tại thời điểm chạy?

Thủ tục lưu trữ có thể được thực hiện với sự trợ giúp của từ khóa có tên là RECOMPILE.

Thí dụ

Exe  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ác hàng trùng lặp có thể bị xóa bằng cách sử dụ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ữ trong văn bản bình thường.

42. Sự khác biệt giữa GETDATE và SYSDATETIME?

Cả hai đều giống nhau nhưng GETDATE có thể cung cấp thời gian đến mili giây và SYSDATETIME có thể cung cấp độ 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?

CHÈN VÀO CHỌN

Lệnh này được sử dụng để chèn dữ liệu vào bảng đã được tạo.

CHỌN VÀO

Lệnh này được sử dụng để tạo một bảng mới và cấu trúc và dữ liệu của nó có thể được sao chép từ bảng hiện có.

44. TABLESAMPLE là gì?

TABLESAMPLE được sử dụng để trích xuất mẫu ngẫu nhiên 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 thông báo do người dùng xác định được lưu trữ trong bảng sys.messages.

46. ​​Kiểu dữ liệu XML có nghĩa là gì?

Kiểu dữ liệu XML được sử dụng để lưu trữ các tài liệu XML trong cơ sở dữ liệu SQL Server. Các cột và biến được tạo và lưu trữ các thể hiện XML trong cơ sở dữ liệu.

47. CDC là gì?

CDC được viết tắt là Change Data Capture được sử 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 injection là gì?

SQL injection là một cuộc tấn công của người dùng độc hại, trong đó mã độc hại có thể được chèn vào các chuỗi có thể được chuyển đến một phiên bản của 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 vì 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 có tay nghề và 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 SQL injection là gì?

Sau đây là các phương pháp được sử dụng để bảo vệ chống lại cuộc tấn công SQL injection:

  • Sử dụng các tham số cho các thủ tục được lưu trữ
  • Lọc các thông số đầu vào
  • Sử dụng bộ sưu tập tham số với SQL động
  • Trong mệnh đề like, các ký tự thoát của người dùng

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 của 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