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