MySQL基礎知識

2021-09-19 01:25:47 字數 2263 閱讀 1778

mysql基礎概念知識

q1:主鍵,外來鍵,超鍵,候選鍵;

主鍵 對錶中資料進行唯一標識的資料列的組合;不能缺失;不能空值;

外來鍵 該列為另一表的主鍵;

超鍵 關係中能唯一標識資料的屬性;

候選鍵 不含多餘屬性的超鍵;

q2:資料庫事務的四個特徵及含義;

原子性 要麼全部完成,要麼不完成,若發生錯誤會進行回滾操作;

一致性 開始到結束後,資料庫完整性約束沒收到破壞;(實體完整性,參照完整性,使用者定義的完整性)

隔離性 事務與事務之間相隔離,序列化執行;

永續性 事務完成對資料的影響是永久的;

q3:檢視的作用,可以更改嗎;

檢視是虛擬的表;只包含動態檢索資料的查詢,不包含資料;簡化操作,隱藏細節,保護資料;對檢視的更新會作用於基表,一般不更新;

q4:drop,delete和truncate ;

drop 表級的刪除;不能回滾;

truncate 清空表;不記錄單行刪除日誌;無法恢復;只能對於table操作;不能在帶foreign key約束的表(被引用的表)中使用;計數從頭開始;

delete 配合where刪除資料;會記錄日誌用於回歸;會觸發觸發器;不減少索引和表的空間;

唯一索引 不允許任何兩行具相同值

主鍵索引 唯一索引的一種

聚集索引 行的物理順序和鍵值的索引順序相同

普通索引 無限制

全文索引 針對較大的資料生成全文索引很耗時間空間

組合索引 最左字首原則:若對多列建立組合索引,若第二列未使用索引,則第三列也不會使用

innodb 主索引:innodb的資料檔案本身;輔助索引:相應記錄主鍵的值

myisam 索引與資料分離;輔助索引:與主索引無區別;

q7:資料庫正規化

1nf 每一列都是不可分割的基本資料項,同一列無二值;無重複的域;

2nf 例項依賴於主鍵部分;

3nf 屬性不依賴於其他非主屬性;

q8:儲存過程與觸發器的區別

儲存過程和觸發器都是sql語句集;觸發器不可用call呼叫,而是在使用者執行某些語句後自動呼叫;

q9:分表與分割槽

分表 真正的分表,每張表對應三個檔案;提高mysql的併發能力;

分割槽 表中的資料分成多個區塊;突破磁碟的讀寫能力;

q10:資料庫隔離級別

髒讀 乙個事務讀取了另乙個事務未提交的資料

不可重複讀 在一次事務範圍內,讀取同一資料產生了不同的值

虛讀 讀取整體的資料後,因其他事務對資料的更新,再次查詢時結果不同

序列化 3種均可避免

可重複讀(預設) 避免1,2

讀已提交 1

讀未提交 無

q11:mysql的兩種儲存引擎

myisam 不支援事務,不支援外來鍵,表鎖;插入資料時鎖定整個表,查行數時無需整表掃瞄

innodb 支援事務,外來鍵,行鎖,查表總行數時,全表掃瞄;

q12:mysql索引演算法

hash 適合等值查詢,不適合範圍,不能排序

btree 適合範圍查詢,無hash衝突

q13:聚集索引和非聚集索引

聚集索引 資料按索引順序儲存,節點儲存的是真實資料

非聚集索引 節點儲存的是指向真正資料的指標

q14:索引的優缺點

優點 提高查詢效率

缺點 降低了更新效率

q15:兩種儲存引擎索引的區別

innodb 主索引的資料檔案本身就是索引檔案;輔助索引記錄主鍵的值;

myisam 主索引資料檔案和索引檔案分離;與主索引無區別;

q16:資料庫的主從複製

乙個伺服器作為主伺服器,乙個或多個伺服器作為從伺服器,主伺服器將更新寫到二進位制日誌,當乙個從伺服器連線到主伺服器時,通知主伺服器讀取日誌,接收從那時起發生的所有更新。解決:資料分布,負載平衡,備份,高可用性和容錯性

基於語句 在主伺服器上執行的語句,在從伺服器上也執行

基於行 將改變的內容複製過去

混合型別 語句複製失敗時採用行的形式

q17:資料庫連線池

為資料庫連線建立乙個緩衝池,防止過於大量的連線的建立與管理;

q18:儲存過程

儲存過程是一些預編譯的sql語句,執行效率較高

q19:樂觀鎖和悲觀鎖

樂觀鎖 假定不會發生併發衝突,只在提交時檢查,若有其他資料更新了資料,則回滾;使用資料版本標示資料(時間戳,版本號)

悲觀鎖 假定會發生併發衝突,遮蔽一切破壞資料庫一致性的操作,主要用於資料爭用激烈的環境,以及鎖成本低於回滾成本時;排他鎖;

其他有一些更加詳細的知識點總結可以參考

mysql基礎知識

一 啟動與退出 1 進入mysql 啟動mysql command line client mysql的dos介面 直接輸入安裝時的密碼即可。此時的提示符是 mysql 或開啟終端,輸入sql語句 mysql uroot p123 2 退出mysql quit或exit 二 庫操作 1 建立資料庫 ...

mysql基礎知識

1 為什麼使用資料庫 1 降低儲存資料的冗餘度 2 更高的資料一致性 3 儲存的資料可以共享 4 可以建立資料庫所遵循的標準 5 便於維護資料完整性 6 能夠實現資料的安全性 2 在資料庫發展歷史上,出現了很多不同的資料模型,包括是層次模型 網狀模型 關係模型和物件模型 3 關係型資料庫的基本概念 ...

MySQL 基礎知識

1.如無備註,則表中的第乙個id欄位一定是主鍵且為自動增長 2.如無備註,則數值型別的字段請使用unsigned屬性 3.如無備註,排序欄位order id在程式中預設使用降序排列 4.如無備註,所有欄位都設定notnull,並設定預設值 5.如無備註,所有的布林值字段,如is hot is del...