20個常見的SQL面試問題和答案[2022]

已發表: 2022-08-18

結構化查詢語言 (SQL) 是數據庫管理員和數據分析師用來查詢數據庫的標準編程語言。 它廣泛用於網站、應用程序和其他平台的編程語言。

它用於訪問和操作數據庫中的數據,包括創建和修改表和列以及使用 SQL 命令查詢數據。

如果您在準備 SQL 面試時正在尋找要使用的問題和答案,這篇文章無疑會給您一些見解。 在數據工程師、數據分析師、數據庫管理員等的工作面試中,應該預期以下問題。

什麼是基本的 SQL 命令?

一些最重要的 SQL 命令是:

  • SELECT – 從數據庫中提取數據。
  • CREATE TABLE – 創建一個新表。
  • DELETE – 從數據庫中刪除數據。
  • INSERT INTO – 將新數據插入數據庫。
  • ALTER DATABASE – 修改數據庫。
  • CREATE DATABASE – 創建一個新數據庫。
  • UPDATE – 更新數據庫中的數據。

四個重要的 SQL 語句是什麼?

主要的 SQL 語句分為以下幾類:

  • 數據定義語言 (DDL) 語句
  • 數據操作語言 (DML) 語句
  • 數據控制語言 (DCL) 語句
  • 事務控制語言 (TCL) 語句

SQL中的主鍵是什麼意思?

主鍵是一列(或一組列),它允許唯一標識數據庫中的每一行。 SQL 數據庫非常重視主鍵。 它們為數據庫表中的每一行提供一個唯一的 ID。 一個主鍵可以由一個或多個字段組成,每個表只能有一個主鍵。

什麼是 SQL 數據類型?

數據類型是描述對象可以存儲的數據類型的屬性,例如二進製字符串、數字數據、字符數據、財務數據、日期和時間數據等。

在 SQL 中,數據類型分為以下幾組:

  • 確切的數字
  • 近似數字
  • 日期和時間
  • 字符串
  • Unicode 字符串
  • 二進製字符串

用戶名和密碼存儲在 SQL Server 中的什麼位置?

用戶名和密碼分別存儲在 SQL 表的 sys.server 主體和 sys.sql 登錄中。 密碼不以普通文本存儲。

什麼是 SQL 注入?

SQL 注入攻擊是當今最常見的網絡攻擊類型之一。 它們允許惡意攻擊者通過操縱應用程序的數據庫來訪問數據。 這可能會導致廣泛的負面後果,從財務損失到敏感數據的丟失。 防止 SQL 注入攻擊的最佳方法是從一開始就防止它們發生。

SQL 中的觸發器及其類型是什麼?

觸發器是一種特殊類型的存儲過程,當數據庫服務器中發生事件時會自動運行。 觸發器用於在使用 DDL 和 DML 語句修改數據之前或之後評估數據。

觸發器有 LOGON、DDL 和 DML 三種類型。

  • 登錄觸發器:這些觸發器在用戶啟動登錄事件時觸發
  • 只要發出 CREATE、ALTER 或 DROP 等 DDL 命令,就會觸發 DDL 觸發器。
  • DML 觸發器:只要 DML 命令修改數據,就會觸發這些觸發器。 相當於 INSERT、UPDATE 和 DELETE

您如何區分單行和多行函數?

表中的單行可以同時受到單行函數的影響。 他們執行一行,然後只返回一個結果。 眾所周知,長度和大小寫轉換是單行函數。

一個表的行可以同時受到許多行函數的影響。 它們也稱為組函數,在返回單個輸出之前執行多行。

什麼是數據庫規範化,它在 SQL 中的主要四種類型是什麼?

數據庫規範化是一個過程,通過該過程組織數據以實現更快的可訪問性並減少數據冗餘。 數據庫的列和表在規範化期間進行組織,以確保數據庫完整性約束正確支持任何依賴關係。

四種類型的數據庫規範化過程如下:

  • 第一範式 (1 NF)
  • 第二範式 (2 NF)
  • 第三範式 (3 NF)
  • Boyce Codd 範式或第四範式(BCNF 或 4 NF)

SQL 中的索引和約束是什麼?

索引是 SQL 中最重要的概念之一。 它們使我們能夠在大型數據庫中快速找到特定的數據行。 它們還幫助我們強制執行約束,這些規則告訴數據庫在滿足某些條件時如何表現。

索引用於通過加快表中數據的搜索來提高查詢的性能。 它們還用於提高表中數據的可讀性。

約束用於限制可以進入表的數據類型。 這保證了表中數據的準確性和可靠性。 如果約束和數據操作之間存在任何衝突,則該操作被中止。

常用的 SQL 約束有哪些?

常用的 SQL 約束有:

  • CREATE INDEX:此命令確保為表創建索引,以便使數據檢索更簡單。
  • FOREIGN KEY:表的外鍵必須連接具有相似屬性的表。
  • DEFAULT:如果沒有為列的字段提供值,則為這些字段提供默認值。
  • UNIQUE:這指定列中的每個值必須是不同的。
  • PRIMARY KEY:表的主鍵必須標識每一行。
  • NOT NULL:此條件確保列不接受 NULL 值。
  • CHECK:確保每個列字段都符合預定要求。

SQL中的NULL等於0嗎?

SQL 中的 NULL 值表示不可用或已分配的值。 空格 (' ') 或零 (0) 不等於值 NULL。 您不能使用“=”或“>”等比較運算符將 NULL 值與任何其他值進行比較,因為它不能等於或不等於任何其他值。

如何防範 SQL 注入攻擊?

除了持續掃描和滲透測試外,輸入驗證、清理、準備語句和參數化 SQL 查詢等安全方法對於防止 SQL 注入攻擊至關重要。 此外,像防火牆這樣的快速防禦將有助於保護 SQL 數據庫。

什麼是動態 SQL,什麼時候可以使用它?

動態 SQL 是一項功能,可用於在運行時根據一個或多個條件(包括當前日期、當前時間或您選擇的任何其他條件)修改查詢。

您可以使用動態 SQL 以有意義的方式更改查詢,並可以幫助您實現目標或簡單地提高您的編程技能。 無論您是創建新應用程序、改進數據庫,還是向生產系統添加數據倉庫功能,您都可以使用動態 SQL 來完成這一切。

SQL中有哪些不同類型的鍵?

主鍵:數據庫表中的每一行或記錄都由一個稱為主鍵的字段唯一標識。 唯一值必須在主鍵中。 主鍵字段不能包含 NULL 值。 每個表只能有一個主鍵,由一個或多個字段組成。

外鍵:表中與另一個表的主鍵相關的字段或字段組稱為外鍵。 具有主鍵的表稱為父表,具有外鍵的表稱為子表。

超級鍵:超級鍵是一個鍵或一組鍵,可幫助識別表中的條目。 儘管並非所有屬性都需要標識一條記錄,但超級鍵可以具有其中的一個或多個。

候選鍵:候選鍵是超級鍵的子集,可用於根據一個或多個屬性識別數據庫中的記錄。 與 Superkey 不同,候選鍵的所有特徵都必須對識別記錄有用。

組合鍵:組合鍵是表中兩個或多個列的組合,用於標識表中的行。 複合鍵是具有其他屬性或列的主鍵。

SQL中的索引有哪些類型?

以下是 SQL 中的索引類型

  • 哈希索引
  • 內存優化的非集群
  • 聚集索引
  • 非聚集索引
  • 唯一索引
  • 列存儲索引
  • 包含列的索引
  • 計算列的索引
  • 過濾索引
  • 空間索引
  • XML 索引
  • 全文索引

緩衝池是什麼意思並提到它的好處?

在 SQL 中,緩衝池也稱為緩衝區高速緩存。 所有資源都可以使用緩衝池來存儲它們的緩存數據頁。 設置 SQL Server 實例時,可以指定緩衝池的大小。 緩衝池的大小決定了它可以容納多少頁。

以下是緩衝池的好處:

  • I/O 性能的改進
  • 交易吞吐量增長
  • I/O 延遲減少
  • 提高閱讀成績

你所說的依賴是什麼意思並提到不同的依賴?

當一個對像在保存在另一個對像中的 SQL 語句中按名稱引用時,這兩個對象之間的依賴關係就建立起來了。 術語“引用實體”是指出現在 SQL 表達式中的對象,而術語“引用實體”是指包含 SQL 表達式的對象。

以下是 SQL 中不同類型的依賴項。

  • 功能依賴
  • 全功能依賴
  • 多值依賴
  • 傳遞依賴
  • 部分依賴

什麼是 SQL 連接,什麼是最流行的 SQL 連接?

聯接是 SQL 中數據管理的基本部分。 它們允許將兩個或多個表連接在一起以創建可用於分析數據的單個表。 它們還提供了一種基於單個表中的條件過濾結果的方法,這在嘗試查找大表中的特定行或列時非常有用。

SQL 中有四種主要的 JOIN 類型:INNER JOIN、OUTER JOIN、CROSS JOIN 和 SELF JOIN。

SQL中的集合運算符是什麼?

可以使用集合運算符組合來自一個或多個相同類型表的數據。 SQL 集和 SQL 連接運算符相似,但有一些關鍵區別。 SQL 集合運算符收集來自不同查詢的記錄,而 SQL 連接組合來自不同表的列。 複合 SQL 查詢是包含集合操作的查詢。

結論

我希望這些 SQL 面試問題能讓你從面試的角度很好地了解預期的內容。 要破解 SQL 面試,需要更多接觸 SQL 環境; 這可以通過深入研究 SQL 來實現。 為了評估關鍵的 SQL 原則,您還必須練習 SQL 查詢面試問題並繼續閱讀。

如果您正在尋找 SQL 查詢說明,請訪問 SQL 備忘單以獲取有關 SQL 語句的更多見解。

要通過執行 SQL 查詢獲得實踐經驗,請查看這些 SQL 練習平台。