MySQL 經典面試題


MySQL 面試

1 存儲過程

**什么是存儲過程 **
存儲過程是一些編譯好的SQL語句
因為系統在調用SQL的時候比較浪費時間,所以之前先將一些基本的額SQL語句代碼進行編譯(對單表或多表的增刪改查),然后再給代碼取一個名字,在需要這個功能時去調用它就可以了。
優缺點

  • 存儲工程是編譯后的代碼 效率高
  • 存儲過程代替SQL語句,降低網絡通信
  • 在一定的程度確保數據安全

2 索引

索引是什么
索引是對數據庫中一或多個列值的排序,幫助數據庫高效獲取數據的數據結構
假如我們用類比的方法,數據庫中的索引就相當於書籍中的目錄一樣,當我們想找到書中的摸個知識點,我們可以直接去目錄中找而不是在書中每頁的找,但是這也拋出了索引的一個缺點,在對數據庫修改的時候要修改索引到導致時間變多。
**幾個基本的索引類型 普通索引 唯一索引 主鍵索引 全文索引 **
索引優點

  • 加快檢索速度
  • 唯一索引確保每行數據的唯一性
  • 在使用索引的過程可以優化隱藏器,提高系統性能

索引缺點

  • 插入刪除 修改 維護速度下降
  • 占用物理和數據空間

3 事務

事務的作用
事務(Transaction)是並發控制的基本單位。事務就是一系列的操作,這些操作要么都執行,要么都不執行。
事務具有以下4個基本特征

  • Atomic(原子性) 事務中的一系列的操作要么都完成,要么全部失敗
  • Consistency(一致性) 一個成功的事務應該講數據寫入的到數據庫,否則就要回滾到最初的狀態
  • Isolation(隔離性) 並發訪問和修改的duli
  • Durability(持久性) 事務結束應該講事務的處理結構存儲起來
    事務的語句
  • 開始事物:BEGIN TRANSACTION
  • 提交事物:COMMIT TRANSACTION
  • 回滾事務:ROLLBACK TRANSACTION

4 數據庫中的樂觀鎖和悲觀鎖

根據不同類型可以對數據設置不同的鎖權限
** 樂觀 悲觀 鎖 主要是作用在並發訪問控制**

  • 悲觀鎖 假定會發生並發沖突,屏蔽任何違反數據完整的操作
  • 樂觀鎖 假定不會發生沖突,只有在提交操作時檢查是否違反數據的完整性

5 drop, delete truncate的區別

三者都是刪除的意思,但是三者個有些區別

  • delete和truncate只刪除表的數據不刪除表的結構
  • 速度 drop > truncate > delete
  • 想刪除部分數據時, delete 刪除時要帶上where語句
  • 保留表而想刪除所有的數據時用truncate

6 超鍵 候選鍵 主鍵 外鍵 區別

超鍵在關系中能唯一標識元組的屬性集稱為關系模式的超鍵 ,一個或多個屬性組合在一起作為超鍵。
候選鍵 最下超鍵,沒有冗余元素的超鍵
主鍵 數據庫中表中唯一和完整標識的數據列或屬性集合。
外鍵 在一個表中存在另外一個表的主鍵叫做外鍵

7視圖

定義 視圖是一種虛擬表,可以對視圖進行增刪查改 。可以將一個表多個表組合成一個視圖。對視圖的修改不影響基本表。

8 數據庫三大范式介紹

  • 1NF 字段是最小單元,不可再分

  • 2NF 滿足1NF 表中字段必須完全依賴全部主鍵而並非部分主鍵

  • 3NF 滿足2NF,非主鍵外的所有字段必須互不依賴

      4.數據庫三范式
      第一范式  字段具有原子性,不可再分
      第二范式  表中的每列都和主鍵相關
      第三范式  每列都和主鍵列直接相關,而不是間接相關


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM