頂級 SQL Server 面試問題和答案 [For Freshers 2022]
已發表: 2021-01-04讓我們看一下基於 SQL Server 的面試中的一些常見問題。 我們還將在必要時包括 SQL 查詢示例以及 SQL 面試問題和答案。
SQL Server 面試問答
問題一:什麼是SQL?
SQL 或結構化查詢語言是用於管理和組織關係數據庫管理系統 (RDBMS) 的標準計算機編程語言。 它用於存儲、操作和訪問存儲的數據,換句話說,與關係數據庫進行通信。 大多數流行的 RDBMS 都使用 SQL,包括 SQL Server、MySQL 和 Oracle。
SQL 中的任何執行單元或語句都稱為查詢。 SQL 查詢可用於創建、選擇或修改數據。
在關係數據庫管理系統中,有組織的數據文件以表格的形式存儲。 每個表由列和行組成。
問題 2:在 SQL Server 中創建數據庫的 SQL 查詢是什麼?

SQL 中的數據庫是有組織的數據集合,可能由表、代碼函數、模式等組成。程序員可以創建此數據庫或使用各種查詢語言對其進行操作。
要在 SQL 服務器中創建新數據庫,請使用以下 SQL 命令:
創建數據庫數據庫名稱
閱讀:全棧面試問題
問題3:SQL中如何創建表?
表是 SQL 中允許用戶存儲和檢索數據的對象。 此數據存儲在表格中,每個表格由列和行組成。
要在 SQL 服務器中創建新表,使用以下 SQL 命令:
創建表 TableName(columnName1 數據類型,columnName2 數據類型)
問題 4:什麼是 SQL Profiler?
SQL Profiler 是系統管理員跟踪 SQL 服務器中事件的一種方式。 主要用於分析捕獲和保存的事件數據文件。
問題5:舉例說明什麼是遞歸存儲過程。
不需要調用 SQL Server 中的遞歸存儲過程。 它自己調用,直到達到邊界條件。 存儲過程的最大嵌套級別為 32。 這稱為遞歸。
使用遞歸存儲過程,程序員可以使用同一批次的代碼 n 次。
舉個例子,如果你需要擴展一個樹關係或者計算階乘算法,你可以在存儲過程中使用reversion。 這是一個關於如何計算數字的階乘的示例。
創建過程 [dbo].[Factorial_ap]
(
@數字整數,
@RetVal 整數輸出
)
作為
聲明 @In 整數
聲明 @Out 整數
IF @Number != 1
開始
選擇 @In = @Number – 1
EXEC Factorial_ap @In, @Out OUTPUT
選擇 @RetVal = @Number * @Out
結尾
別的
開始
選擇@RetVal = 1
結尾
返回
走
問題6:列出本地臨時表和全局臨時表的區別。
只要有連接,本地臨時表的可見性就會持續。 一旦連接關閉,服務器會自動刪除這些表。
本地臨時表在表名前用# 表示。
創建本地臨時表的語法是:
創建表 #<表名>
(
column1 數據類型 [ NULL | 非空],
column2 數據類型 [ NULL | 非空],
…
);
全局臨時表對所有用戶都是可訪問和可見的。 一旦 SQL Server 會話結束,SQL Server 就會刪除它們。 當每個引用表的用戶都與會話斷開連接時,就會發生這種情況。
本地臨時表在表名前用##表示
創建全局臨時表的語法是
創建表##<表名>
(
column1 數據類型 [ NULL | 非空],
column2 數據類型 [ NULL | 非空],
…
);
問題 7:解釋 SQL 中的模式匹配?
SQL 中的模式匹配允許程序員使用下劃線符號 (_) 來匹配單個字符。 它還使您能夠使用百分號 (%) 來匹配任意數量的字符。 這也包括任何零字符。 應該注意的是,SQL 模式在 MySQL 中是不區分大小寫的。

問題 8:什麼是觸發器? 觸發器有多少種類型?
觸發器是一種特殊的存儲過程,用於檢查一批 SQL 代碼。 當修改表的數據時,它們會自動執行或“觸發”。
有兩種類型的觸發器。 他們是:
- 數據操作語言 (DML) 和
- 數據定義語言 (DDL)
當這些查詢中的任何一個用於修改數據時,都會觸發一組命令。 使用 DML 命令事件,會觸發插入、刪除、更新和代替。 使用 DDL,觸發器 Create、Alter 和 Drop 被觸發。
另請閱讀: PHP 面試問答
問題 9:定義 COALESCE?
函數參數中的第一個非空表達式使用 COALESCE 返回。 它可以讀取其參數中的一列或多列以檢查非空表達式。
語法是——
從員工中選擇COALESCE(emp_num,emp_name,salary);
問題 10. 什麼是 CDC?
SQL Server 2008 的一項功能,CDC 或變更數據捕獲可用於捕獲最近修改過的數據。
問題11:獲取SQL表中記錄數的查詢有哪些?
我們可以使用以下查詢獲取表中的記錄數:
從 <tablename> 中選擇 *
從 <tablename> 中選擇 count(*)
從 sysindexes 中選擇 id=OB 的行
JECT_ID(tablename) 和 indid<2
問題12:說明SQL Server中SUBSTR和CHARINDEX函數的區別?
SUBSTR 函數按照程序員的指示返回字符串的指定部分。 另一方面,CHARINDEX 函數用於返回給定字符串中指定字符的位置。
例如:
SUBSTRING('蘋果',1,4)
– 輸出將是 Appl
CHARINDEX('l', '蘋果',1)
– 輸出將是 4,因為字符 l 在指定字符串中的第 4 個位置
問題13:什麼是SQL注入?
SQL 注入是數據庫的漏洞之一,用戶使用插入代碼字符串中的惡意代碼攻擊 SQL 服務器。 目的是發送惡意代碼解析和執行。 甚至參數也有受到攻擊的風險,因此,所有語句都需要檢查漏洞。
問題14:有哪些方法可以避免SQL注入攻擊?
可以採用以下四種方法來保護 SQL 服務器免受 SQL 注入攻擊:
– 由於參數受到 SQL 注入攻擊的風險較低,因此建議將它們用於存儲過程。
– 過濾輸入參數是一個很好的措施。
– 可以使用帶有動態 SQL 的參數收集。
– 在 Like 子句中使用轉義字符。
問題15:陳述SQL Server中的兩種認證方式。 如何改變它們?
SQL Server 中的兩種身份驗證模式是:
- Windows 模式
- 混合模式
在 SQL Server 的配置設置中,在安全頁面下,有一個工具菜單可以更改模式。

問題 16:SQL 數據庫中有哪些不同類型的命令?
答:SQL Server 中有四種類型的命令。 它們被分類為:
- 數據定義語言 (DDL)
- 數據控制語言事務控制語言(TCL)事務控制語言(TCL)
- 數據操作語言 (DML)
- 事務控制語言 (TCL)
從世界頂級大學獲得軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
結論
我們希望我們的SQL Server 問答指南對您有所幫助。 我們將定期更新指南,讓您隨時了解最新情況。
如果您有興趣了解有關 SQL、全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 個以上的項目,和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。
