SQL崗位30個面試題,SQL面試問題及答案:
1. 什么是SQL?
SQL(結(jié)構(gòu)化查詢語言)是一種設(shè)計用于檢索和操作數(shù)據(jù)的數(shù)據(jù)庫。它屬于美國國家標準協(xié)會(ANSI)的一種標準,可用于執(zhí)行Select(選擇)、Update(更新)、Delete(刪除)和Insert(插入)等數(shù)據(jù)任務(wù)。
2. 數(shù)據(jù)庫中的表和字段是什么?
表是在具有列和行的模型中設(shè)計的數(shù)據(jù)集合。在表中,指定了列數(shù)稱為字段,但未定義行數(shù)稱為記錄。
3. 什么是數(shù)據(jù)庫?
數(shù)據(jù)庫是有序形式的一組信息,用于訪問、存儲和檢索數(shù)據(jù)。
4. DBMS的類型是什么?
DBMS是一個控制數(shù)據(jù)維護和使用的程序,它被認為是管理數(shù)據(jù)的文件管理器。有四種類型的DBMS:
· 關(guān)系DBMS
· 分層DBMS
· 網(wǎng)絡(luò)DBMS
· 面向?qū)ο蟮年P(guān)系DBMS
最有用的DBMS是Relational DBMS。它為數(shù)據(jù)提供了一個關(guān)系運算符。
5. 編寫一些不同類型的SQL命令
SQL命令分為以下類型:
· DDL(數(shù)據(jù)定義語言) - 用于定義數(shù)據(jù)庫的結(jié)構(gòu)。
· DCL(數(shù)據(jù)控制語言) - 用于為用戶提供權(quán)限。
· DML(數(shù)據(jù)操作語言) - 用于管理數(shù)據(jù)。
· DQL(數(shù)據(jù)查詢語言) - 所有命令都在SQL中,用于檢索DQL中的數(shù)據(jù)。
· TCL(事務(wù)控制語言) - 用于管理DML所做的更改。
6. SQL中的視圖是什么?
它包含來自一個或多個表的行和列,可以定義為虛擬表。它消耗的內(nèi)存較少。
句法:
CREATE VIEW view_name AS
SELECT column_name1, column_name2
FROM table_name
WHERE CONDITION;
7. 什么是SQL中的Joins(連接)?
Join用于從相關(guān)的行和列中檢索數(shù)據(jù)。它在兩個或多個表之間工作,并且它從兩個表返回至少一個匹配。
Joins類型是:
· Right Join (右連接)
· Left Join(左連接)
· Inner Join(內(nèi)連接)
· Outer Join(外連接)
· Self-Join (自連接)
· Cross Join(交叉連接)
· Full Join(全連接)
8. SQL中的Query(查詢)是什么?
數(shù)據(jù)庫查詢是數(shù)據(jù)庫表中的數(shù)據(jù)請求。查詢可以是選擇查詢或任何其他類型的查詢。
9. 什么是Subquery(子查詢)以及什么是Types(類型)?
子查詢是查詢的一部分。外部查詢已知主查詢,內(nèi)部查詢識別子查詢。始終首先執(zhí)行子查詢,并將結(jié)果傳遞給主查詢。
10. 什么是Autoincrement(自動增量)?
Autoincrement是一個關(guān)鍵字,用于在表中插入新記錄時生成數(shù)字。
11. SQL中的Constraints(約束)是什么?
它可用于設(shè)置表中數(shù)據(jù)類型的限制。在創(chuàng)建或更新表語句時,可以使用約束。一些限制是:
· NOT NULL
· PRIMARY KEY
· FOREIGN KEY
· UNIQUE
· CHECK
· DEFAULT
12. SQL中有多少Key(鍵),它們?nèi)绾喂ぷ鳎?/p>
SQL中有不同類型的鍵:
· SuperKey(超級密鑰)——一個或多個密鑰的集合被定義為超級密鑰,它用于唯一地標識表中的記錄。主鍵,唯一鍵和備用鍵是超級鍵的子集。
· PrimaryKey(主鍵)——它是表中的一個或多個字段的集合。它們不接受空值和重復(fù)值。并且表中只存在一個主鍵。
· ForeignKey(外鍵)——在一個表中定義主鍵并在另一個表中定義字段的鍵被標識為外鍵。
· UniqueKey(唯一鍵)——除了主鍵之外,表中還有更多鍵,它們只標識記錄,但唯一的區(qū)別是它們只接受一個空值但不接受重復(fù)值。
· CandidateKey(候選密鑰)——在任何情況下,如果需要,任何候選密鑰都可以作為主鍵。
· CompoundKey(復(fù)合鍵)——此鍵是候選鍵和主鍵的組合。
· AlternateKey(備用密鑰)——在任何情況下,如果需要,任何備用密鑰都可以作為主鍵或候選鍵。
13. 什么是Normalization(規(guī)范化)?
規(guī)范化是一種設(shè)計技術(shù),它以減少數(shù)據(jù)依賴性的方式排列表,將表分成小模塊并按關(guān)系鏈接。
14. 什么是Denormalization(非規(guī)范化)?
非規(guī)范化是一種優(yōu)化方法,我們將多余的數(shù)據(jù)增加到表中,并在規(guī)范化后應(yīng)用。
15. 什么是Stored Procedure(存儲過程)?
存儲過程是一組SQL語句,用作訪問數(shù)據(jù)庫的函數(shù)。為了減少網(wǎng)絡(luò)流量并提高性能,可使用存儲過程。
句法:
CREATE Procedure Procedure_Name
(
//Parameters
)
AS
BEGIN
SQL statements in stored procedures to update/retrieve records
END
16. 什么是Index(索引)?
索引用于加速查詢的性能。它可以更快地從表中檢索數(shù)據(jù)??梢栽谝唤M列上創(chuàng)建索引。
17. Clustered(群集)和Non-Clustered Index(非群集)索引之間有什么區(qū)別?
聚集索引——有助于輕松檢索數(shù)據(jù),并且只有一個聚集索引與一個表一起分配。它會更改記錄在數(shù)據(jù)庫中的保存方式。
非聚集索引——與聚集索引相比,非聚集索引很慢。并且在非集群索引的情況下,該表可以具有多個索引,為表創(chuàng)建一個對象,該表是搜索后指向表的一個點。
18. 什么是Trigger(觸發(fā)器)?
觸發(fā)器用于對表執(zhí)行特定操作,例如INSERT、UPDATE或DELETE。它是一種存儲過程。動作和事件是觸發(fā)器的主要組成部分。執(zhí)行Action時,事件響應(yīng)該操作而出現(xiàn)。
19. 數(shù)據(jù)庫中的Properties(屬性)是什么?
通常,這些屬性稱為ACID。它們在數(shù)據(jù)庫事務(wù)中起作用。
Atomicity(原子性)——在連接兩個或多個單獨數(shù)據(jù)的事務(wù)中,要么所有部分都已提交,要么都沒有。
Consistency(一致性)——事務(wù)或者生成新的有效數(shù)據(jù)狀態(tài),或者如果發(fā)生任何失望,則在事務(wù)啟動之前將所有數(shù)據(jù)返回到其狀態(tài)。
Isolation(隔離性)——正在進行且尚未提交的事務(wù)必須繼續(xù)與任何其他操作隔離。
Durability(持久性)——在此操作中,系統(tǒng)保存已提交的數(shù)據(jù),每當事件失敗和系統(tǒng)重新啟動時,所有數(shù)據(jù)都可在其正確位置獲得。
20. SQL中有多少Statements(語句)?
SQL語句分為幾類:
· 數(shù)據(jù)定義語言語句
· 數(shù)據(jù)操作語言語句
· 交易控制聲明
· 會話控制聲明
· 系統(tǒng)控制聲明
· 嵌入式SQL語句
21. 什么是CLAUSE(字句)?
它被定義為通過為查詢提供條件來設(shè)置結(jié)果集的限制。他們從整個記錄中過濾掉一些行。
一些SQL的字句是WHERE和HAVING。
22.什么是Aggregate Functions(聚合函數(shù))?
它是一個返回單個值的數(shù)學(xué)函數(shù)。
SQL中的聚合函數(shù)是:
· AVG()——返回平均值
· COUNT()——返回行數(shù)
· MAX()——返回最大值
· MIN()——返回最小值
· ROUND()——基于十進制規(guī)范,此函數(shù)對數(shù)字字段進行舍入
· SUM()——返回總和
23. 什么是String Functions(字符串函數(shù))?
為了操作字符串,我們使用字符串函數(shù)。其中一些是:
· LEN()——返回值的長度。
· LOWER()——將字符數(shù)據(jù)轉(zhuǎn)換為小寫。
· UPPER()——將字符數(shù)據(jù)轉(zhuǎn)換為大寫。
· SUBSTRING()——提取字符。
· LTRIM()——從頭開始刪除字符串的所有空格。
· RTRIM()——刪除結(jié)尾處字符串的所有空格。
· CONCAT()——連接函數(shù)。
· REPLACE()——更新內(nèi)容。
24. 什么是Collation(排序規(guī)則)?
排序規(guī)則是一組規(guī)則,用于確定數(shù)據(jù)如何通過比較進行排序。例如使用一組規(guī)則存儲的字符數(shù)據(jù),這些規(guī)則定義了正確字符的序列以及類型、重音和區(qū)分大小寫。
25. 什么是Cursor(游標)?
在系統(tǒng)內(nèi)存中執(zhí)行SQL語句時,會創(chuàng)建一個臨時工作區(qū),稱為“游標”。在select語句中,游標存儲了信息。游標可以使用多行,但一次只能處理一行。這組行稱為活動集。
游標有兩種類型:
· ImplicitCursor(隱式游標)
· ExplicitCursor(顯式游標)
26. 什么是SQL Server?
SQLserver是Microsoft關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的一種類型或示例。它在IT環(huán)境下提供廣泛的事務(wù)處理和商業(yè)智能。
27. SQL中有哪些Operators(運算符)?
運算符是一個保留字,主要用于SQL語句的WHERE子句中以進行操作。
· 算術(shù)運算
· 邏輯運算
· 比較運算符()
· 復(fù)合算子()
28. 如何定義NULL值,Blank Space(空格)和ZERO(0)?
Null值是沒有值的字段。它與0不同。假設(shè)有一個表,并且在表中有一個字段,可以在不添加值的情況下將記錄插入字段,然后該字段將以NULL值保存。
空格是我們提供的值。
0只是一個數(shù)字。
29. 什么是Data Warehouse(數(shù)據(jù)倉庫)?
數(shù)據(jù)倉庫被稱為來自多個信息源的中央數(shù)據(jù)中心。這些數(shù)據(jù)可用于在線處理和挖掘。
30. UNIQUE KEY(唯一鍵)和PRIMARY KEY(主鍵)之間有什么區(qū)別?
在表中,應(yīng)該只有一個主鍵,但在另一種情況下,唯一鍵可以為任意數(shù)量。
主鍵不允許NULL值,但唯一鍵允許NULL值。
聯(lián)系客服