1. 程式人生 > >mysql(視圖 事務 索引 外鍵)

mysql(視圖 事務 索引 外鍵)

key 如果 del tle for name bsp 並發訪問 並發

視圖

視圖本質就是對查詢的封裝 創建視圖(定義視圖 起名以v_開頭) create view v_students as select classes.name as c_name ,students.* from students inner join classes on students.cls_id=classes.id; 查看視圖 select * from v_students; 刪除視圖 drop view v_students;

事務

事務具有ACID特性:

原子性(A,atomicity)

一致性(C,consistency)

隔離性(I,isolation)

持久性(D,durabulity)

原子性:事務內所有操作要麽都執行,要麽都不執行,它是一個不可分割的工作單位 例如: A給B轉賬,不會因為各種原因A賬號已經發生扣款而B賬戶沒有收到加款。 一致性:事務開始和結束前後,數據庫的完整性沒有被破壞 案例: 對銀行轉帳事務,不管事務成功還是失敗,應該保證事務結束後ACCOUNT表中aaa和bbb的存款總額為2000元。 隔離性:事務之間不相互影響,多個事務並發訪問時,事務之間是隔離的 事務查看數據更新時,數據所處狀態要麽是另一事務修改之前或者修改之後的狀態,不會查看到中間狀態的數據。事務1在修改表的時候提交之前事務2不能修改 持久性:事務完成一手,該事務所對數據庫所做的更改會持久的存在數據庫中 begin; 開啟事務 update delete insert 更改刪除添加數據 commit;提交事務 rollback; 回滾事務,放棄修改

索引

當數據庫中數據量很大時,查找數據會變得很慢, 優化方案:索引 索引缺點:不便於增刪改 時間長占用內存大 show index from 表名;#查看表的索引 set profiling=1; #開啟時間 索引名字 表名字(字段) create index title_index on students(id); #創建索引 desc students;#查看索引 show profiles; #查看時間 drop index 索引名稱 on 表名; #刪除索引 建表時創建索引 create table create_index( id int primary key, name varchar(10) unique, age int, key (age) );

外鍵

  • 如果一個實體的某個字段指向另一個實體的主鍵,就稱為外鍵。被指向的實體,稱之為主實體(主表),也叫父實體(父表)。負責指向的實體,稱之為從實體(從表),也叫子實體(子表)
  • 對關系字段進行約束,當為從表中的關系字段填寫值時,會到關聯的主表中查詢此值是否存在,如果存在則填寫成功,如果不存在則填寫失敗並報錯
  • 添加外鍵
alter table students add constraint fk_students_gid foreign key (gid) references grade(gid) on delete cascade; alter table students drop foreign key 外鍵名字; 刪除外鍵

mysql(視圖 事務 索引 外鍵)