中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

常見的數據庫面試題有哪些?

發布時間:2020-05-27 21:36:59 來源:億速云 閱讀:287 作者:鴿子 欄目:編程語言

常見的數據庫面試題有哪些

(一)什么是存儲過程?有哪些優缺點?

存儲過程是一些預編譯的SQL語句。

更加直白的理解:存儲過程可以說是一個記錄集,它是由一些T-SQL語句組成的代碼塊,這些T-SQL語句代碼像一個方法一樣實現一些功能(對單表或多表的增刪改查),然后再給這個代碼塊取一個名字,在用到這個功能的時候調用他就行了。

存儲過程是一個預編譯的代碼塊,執行效率比較高

一個存儲過程替代大量T_SQL語句 ,可以降低網絡通信量,提高通信速率

可以一定程度上確保數據安全

(二)索引是什么?有什么作用以及優缺點?

索引是對數據庫表中一或多個列的值進行排序的結構,是幫助MySQL高效獲取數據的數據結構

你也可以這樣理解:索引就是加快檢索表中數據的方法。數據庫的索引類似于書籍的索引。在書籍中,索引允許用戶不必翻閱完整個書就能迅速地找到所需要的信息。在數據庫中,索引也允許數據庫程序迅速地找到表中的數據,而不必掃描整個數據庫。

MySQL數據庫幾個基本的索引類型:普通索引、唯一索引、主鍵索引、全文索引

索引加快數據庫的檢索速度

索引降低了插入、刪除、修改等維護任務的速度

唯一索引可以確保每一行數據的唯一性

通過使用索引,可以在查詢的過程中使用優化隱藏器,提高系統的性能

索引需要占物理和數據空間 

(三)什么是事務?

事務(Transaction)是并發控制的基本單位。所謂的事務,它是一個操作序列,這些操作要么都執行,要么都不執行,它是一個不可分割的工作單位。事務是數據庫維護數據一致性的單位,在每個事務結束時,都能保持數據一致性。

(四)數據庫的樂觀鎖和悲觀鎖是什么?

數據庫管理系統(DBMS)中的并發控制的任務是確保在多個事務同時存取數據庫中同一數據時不破壞事務的隔離性和統一性以及數據庫的統一性。

樂觀并發控制(樂觀鎖)和悲觀并發控制(悲觀鎖)是并發控制主要采用的技術手段。

  • 悲觀鎖:假定會發生并發沖突,屏蔽一切可能違反數據完整性的操作

  • 樂觀鎖:假設不會發生并發沖突,只在提交操作時檢查是否違反數據完整性。

(五) 使用索引查詢一定能提高查詢的性能嗎?為什么

通常,通過索引查詢數據比全表掃描要快.但是我們也必須注意到它的代價.

索引需要空間來存儲,也需要定期維護, 每當有記錄在表中增減或索引列被修改時,索引本身也會被修改. 這意味著每條記錄的INSERT,DELETE,UPDATE將為此多付出4,5 次的磁盤I/O. 因為索引需要額外的存儲空間和處理,那些不必要的索引反而會使查詢反應時間變慢.使用索引查詢不一定能提高查詢性能,索引范圍查詢(INDEX RANGE SCAN)適用于兩種情況:

基于一個范圍的檢索,一般查詢返回結果集小于表中記錄數的30%

基于非唯一性索引的檢索

(六)簡單說一說drop、deletetruncate的區別

SQL中的drop、delete、truncate都表示刪除,但是三者有一些差別

delete和truncate只刪除表的數據不刪除表的結構

速度,一般來說: drop> truncate >delete 

delete語句是dml,這個操作會放到rollback segement中,事務提交之后才生效;

如果有相應的trigger,執行的時候將被觸發. truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger

(七)drop、deletetruncate分別在什么場景之下使用?

不再需要一張表的時候,用drop

想刪除部分數據行時候,用delete,并且帶上where子句

保留表而刪除所有數據的時候用truncate

(八) 超鍵、候選鍵、主鍵、外鍵分別是什么?

  • 超鍵:在關系中能唯一標識元組的屬性集稱為關系模式的超鍵。一個屬性可以為作為一個超鍵,多個屬性組合在一起也可以作為一個超鍵。超鍵包含候選鍵和主鍵。

  • 候選鍵:是最小超鍵,即沒有冗余元素的超鍵。

  • 主鍵:數據庫表中對儲存數據對象予以唯一和完整標識的數據列或屬性的組合。一個數據列只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。

  • 外鍵:在一個表中存在的另一個表的主鍵稱此表的外鍵。

(九)什么是視圖?以及視圖的使用場景有哪些?

視圖是一種虛擬的表,具有和物理表相同的功能。可以對視圖進行增,改,查,操作,試圖通常是有一個表或者多個表的行或列的子集。對視圖的修改不影響基本表。它使得我們獲取數據更容易,相比多表查詢。

只暴露部分字段給訪問者,所以就建一個虛表,就是視圖。

查詢的數據來源于不同的表,而查詢者希望以統一的方式查詢,這樣也可以建立一個視圖,把多個表查詢結果聯合起來,查詢者只需要直接從視圖中獲取數據,不必考慮數據來源于不同表所帶來的差異

(十)說一說三個范式。

第一范式(1NF):數據庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本類型構成,包括整型、實數、字符型、邏輯型、日期型等。

第二范式(2NF):數據庫表中不存在非關鍵字段對任一候選關鍵字段的部分函數依賴(部分函數依賴指的是存在組合關鍵字中的某些字段決定非關鍵字段的情況),也即所有非關鍵字段都完全依賴于任意一組候選關鍵字。 

第三范式(3NF):在第二范式的基礎上,數據表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞函數依賴則符合第三范式。所謂傳遞函數依賴,指的是如 果存在"A → B → C"的決定關系,則C傳遞函數依賴于A。因此,滿足第三范式的數據庫表應該不存在如下依賴關系: 關鍵字段 → 非關鍵字段 x → 非關鍵字段y

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝丰县| 龙南县| 且末县| 隆化县| 积石山| 南木林县| 衡东县| 镇雄县| 克什克腾旗| 含山县| 临泽县| 罗定市| 麟游县| 金寨县| 稻城县| 桦川县| 江安县| 河北省| 清水河县| 安顺市| 正安县| 辉县市| 上林县| 陕西省| 九龙坡区| 千阳县| 精河县| 黄骅市| 丰顺县| 友谊县| 东乡县| 合水县| 孟州市| 阳泉市| 即墨市| 平泉县| 磴口县| 枞阳县| 保靖县| 元朗区| 高邑县|