MySql資料庫檢視與事務(九)
阿新 • • 發佈:2018-12-17
檢視
- 對於複雜的查詢,在多次使用後,維護是一件非常麻煩的事情
- 解決:定義檢視
- 檢視本質就是對查詢的一個封裝
- 定義檢視
create view stuscore as
select students.*,scores.score from scores
inner join students on scores.stuid=students.id;
- 檢視的用途就是查詢
select * from stuscore;
事務
- 當一個業務邏輯需要多個sql完成時,如果其中某條sql語句出錯,則希望整個操作都退回
- 使用事務可以完成退回的功能,保證業務邏輯的正確性
- 事務四大特性(簡稱ACID)
- 原子性(Atomicity):事務中的全部操作在資料庫中是不可分割的,要麼全部完成,要麼均不執行
- 一致性(Consistency):幾個並行執行的事務,其執行結果必須與按某一順序序列執行的結果相一致
- 隔離性(Isolation):事務的執行不受其他事務的干擾,事務執行的中間結果對其他事務必須是透明的
- 永續性(Durability):對於任意已提交事務,系統必須保證該事務對資料庫的改變不被丟失,即使資料庫出現故障
- 要求:表的型別必須是innodb或bdb型別,才可以對此表使用事務
- 查看錶的建立語句
show create table students;
- 修改表的型別
alter table '表名' engine=innodb;
- 事務語句
開啟begin; 提交commit; 回滾rollback;
示例1
- 步驟1:開啟兩個終端,連線mysql,使用同一個資料庫,操作同一張表
終端1:
select * from students;
------------------------
終端2:
begin;
insert into students(sname) values('張飛');
- 步驟2
終端1:
select * from students;
- 步驟3
終端2:
commit;
------------------------
終端1:
select * from students;
示例2
- 步驟1:開啟兩個終端,連線mysql,使用同一個資料庫,操作同一張表
終端1:
select * from students;
------------------------
終端2:
begin;
insert into students(sname) values('張飛');
- 步驟2
終端1:
select * from students;
- 步驟3
終端2:
rollback;
------------------------
終端1:
select * from students;