頂級 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 代碼。 當修改表的數據時,它們會自動執行或“觸發”。

有兩種類型的觸發器。 他們是:

  1. 數據操作語言 (DML) 和
  2. 數據定義語言 (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 中有四種類型的命令。 它們被分類為:

  1. 數據定義語言 (DDL)
  2. 數據控制語言事務控制語言(TCL)事務控制語言(TCL)
  3. 數據操作語言 (DML)
  4. 事務控制語言 (TCL)

從世界頂級大學獲得軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

我們希望我們的SQL Server 問答指南對您有所幫助。 我們將定期更新指南,讓您隨時了解最新情況。

如果您有興趣了解有關 SQL、全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 個以上的項目,和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

成為全棧開發人員

立即申請軟件工程碩士