關係型資料庫面試知識點彙總

2021-10-06 02:10:53 字數 2358 閱讀 1788

本文目錄結構

資料庫基礎知識

什麼是sql?

什麼是資料庫?

什麼是dbms?

為什麼要使用資料庫?

資料庫的分類

主流關係型資料庫簡介

什麼是資料庫的三大正規化?

什麼是資料庫的五大約束?(主鍵、預設、唯

一、檢查、外來鍵)

mysql與許可權相關的表有哪些?(user,db,host,表,列)

mysql的binlog有幾種格式,分別有什麼區別?(statement,row和mixed)

mysql有哪些資料型別?(整型、實型、字串、列舉、日期) 事務

什麼是資料庫事務?

事物的四大特性(acid)?(原子、一致、持久、隔離)

什麼是髒讀?幻讀?不可重複讀?

什麼是事務的隔離級別?mysql的預設隔離級別是什麼?

結構化查詢語言(structured query language),簡稱sql,是一種資料庫查詢語言。

作用:用於訪問資料、查詢、更新和管理關係資料庫系統。

db的全稱是data base,即資料庫的意思。資料庫實際上就是乙個檔案集合,是乙個儲存資料的倉庫,本質就是乙個檔案系統,資料庫是按照特定的格式把資料儲存起來,使用者可以對儲存的資料進行增刪改查操作;

dbms的全稱是database management system,即資料庫管理系統的意思,是乙個軟體,用來管理資料庫檔案的軟體,使用者可以訪問dbms對資料進行增刪改查操作,常見dbms有: mysql、oracle、db2、sqlite、sqlserver等

資料儲存在記憶體資料儲存在檔案

優點訪問速度快

資料永久儲存

缺點資料不能永久儲存

1)速度比記憶體操作慢,頻繁的io操作。

2)查詢資料不方便

資料儲存在資料庫

1)資料永久儲存

2)使用sql語句,查詢方便效率高。

3)管理資料方便

第一正規化:每個列都不可以再拆分;即每一列都是不可再分的原子資料項

第二正規化:在第一正規化的基礎上,非主鍵列完全依賴於主鍵,而不能是依賴於主鍵的一部分;即非主鍵字段必須依賴主鍵字段。

第三正規化:在第二正規化的基礎上,非主鍵列只依賴於主鍵,不依賴於其他非主鍵;即任何非主鍵列直接依賴主鍵列,不能是通過其他非主鍵列傳遞依賴主鍵列。

在設計資料庫結構的時候,要盡量遵守三正規化,如果不遵守,必須有足夠的理由。比如效能。事實上我們經常會為了效能而妥協資料庫的設計。

主鍵約束--唯一性,非空性

唯一約束--唯一性,可以空,但只能有乙個

檢查約束--對該列資料的型別、範圍進行限制,如非空約束

預設約束--資料的預設值

外來鍵約束--引用主表的列與另外的表建立關係

事務是乙個不可分割的資料庫操作序列,也是資料庫併發控制的基本單位,其執行的結果必須使資料庫從一種一致性狀態變到另一種一致性狀態。事務是邏輯上的一組操作,要麼都執行,要麼都不執行。

例子【轉賬】:

假如小明要給小紅轉賬1000元,這個轉賬會涉及到兩個關鍵操作就是:將小明的餘額減少1000元,將小紅的餘額增加1000元。萬一在這兩個操作之間突然出現錯誤比如銀行系統崩潰,導致小明餘額減少而小紅的餘額沒有增加,這樣就不對了。事務就是保證這兩個關鍵操作要麼都成功,要麼都要失敗。

為了達到事務的四大特性,資料庫定義了4種不同的事務隔離級別,由低到高依次為read uncommitted、read committed、repeatable read、serializable,這四個級別可以逐個解決髒讀、不可重複讀、幻讀這幾類問題。

隔離級別

髒讀不可重複讀

幻影讀read-uncommitted√√

√read-committed×√

√repeatable-read××

√serializable××

×sql 標準定義的四個隔離級別:

這裡需要注意的是:mysql 預設採用的 repeatable_read隔離級別 oracle 預設採用的 read_committed隔離級別。事務隔離機制的實現基於鎖機制和併發排程。其中併發排程使用的是mvvc(多版本併發控制),通過儲存修改的舊版本資訊來支援併發一致性讀和回滾等特性。因為隔離級別越低,事務請求的鎖越少,所以大部分資料庫系統的隔離級別都是read-committed(讀取提交內容):,但是你要知道的是innodb 儲存引擎預設使用 **repeatable-read(可重讀)**並不會有任何效能損失。innodb 儲存引擎在 分布式事務 的情況下一般會用到**serializable(可序列化)**隔離級別。

資料庫面試知識點彙總 三

1.什麼是索引?何為索引 資料庫索引,是資料庫管理系統中乙個排序的資料結構,索引的實現通常使用b樹及其變種b 樹。在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指向 資料,這樣就可以在這些資料結構上實現高階查詢演算法。這種資料結構,就是索引。2.索引的作用?...

(整理)關係型資料庫基本知識點

關係型資料庫基本概念 1.關係型資料庫簡單的可以理解為二維資料庫,表的格式就如excel 有行有列。常用的關聯式資料庫有 oracle sqlserver informix mysql sybase 等。也即是我們平時看到的資料庫,都是關係型資料庫 2.所謂關係型資料庫,是指採用了關係模型來組織資料...

面試聚合知識點彙總

cas 在判斷陣列中當前位置為null的時候,使用cas來把這個新的node寫入陣列中對應的位置 synchronized 當陣列中的指定位置不為空時,通過加鎖來新增這個節點進入陣列 鍊錶 8 或者是紅黑樹 鍊錶 8 詳細過程看下面原始碼 執行緒安全版的arraylist的效能比較 collecti...