mysql的檢視,事務,索引,外來鍵
阿新 • • 發佈:2018-11-13
檢視
建立檢視,將兩個表合成一個表,方便以後查詢,並且可以更改。
表1: students 有id,name,age欄位
表2: classes 有id,name,sex欄位
那麼如果這是想同時檢視這兩張表:用以前學過的關聯查詢的命令:
select * from students inner join classes on students.id=classes.id;
現在建立檢視,在上一條命令前加:
create view v_students as select * from students inner join classes on students.id=classes.id;
生成的檢視就像一張表一樣
檢視檢視:show tables;
select * fom 視圖表名;
刪除檢視:drop view 視圖表名;
事務
事務廣泛的運用於訂單系統、銀行系統等多種場景
所謂事務,它是一個操作序列,這些操作要麼都執行,要麼都不執行,它是一個不可分割的工作單位。例如,銀行轉帳工作:從一個帳號扣款並使另一個帳號增款,這兩個操作要麼都執行,要麼都不執行。所以,應該把他們看成一個事務。事務是資料庫維護資料一致性的單位,在每個事務結束時,都能保持資料一致性
事務具有ACID特性:原子性(A,atomicity)、一致性(C,consistency)、隔離性(I,isolation)、永續性(D,durabulity)。
- 原子性:事務內的所有操作要麼都執行,要麼都不執行,它是一個不可分割的工作單位。
- 一致性:事務開始和結束前後,資料都滿足資料一致性約束,就是說結束後該是什麼樣就時什麼樣,而不是經過事務控制之後資料變得不滿足條件或業務規則。
- 隔離性:比如操作同一張表時,資料庫為每一個使用者開啟的事務,不能被其他事務的操作所幹擾,事務之間不能互影響,它們必須完全的各行其道,互不可見。
- 永續性:事務完成後,該事務內涉及的資料必須永續性的寫入磁碟保證其永續性。當然,這是從事務的角度來考慮的的永續性,從作業系統故障或硬體故障來說,這是不一定的。
- 要求:表的引擎型別必須是innodb型別才可以使用事務,這是mysql表的預設引擎
- 查看錶的建立語句,可以看到engine=innodb
- 修改資料的命令會觸發事務,包括insert、update、delete
- 開啟事務,命令如下:begin;
- 開啟事務後執行修改命令,變更會維護到本地快取中,而不維護到物理表中
- 提交事務,命令如下:commit;
- 將快取中的資料變更維護到物理表中
- 回滾事務,命令如下:rollback;
- 放棄快取中變更的資料,回退
- 檢視索引
- 建立索引
- 如果一個實體的某個欄位指向另一個實體的主鍵,就稱為外來鍵。被指向的實體,稱之為主實體(主表),也叫父實體(父表)。負責指向的實體,稱之為從實體(從表),也叫子實體(子表)
- 對關係欄位進行約束,當為從表中的關係欄位填寫值時,會到關聯的主表中查詢此值是否存在,如果存在則填寫成功,如果不存在則填寫失敗並報錯