MySQL檢視和事務
阿新 • • 發佈:2018-12-05
檢視的操作
定義:通俗的講,檢視就是一條SELECT語句執行後返回的結果集。所以我們在建立檢視的時候,主要的工作就落在建立這條SQL查詢語句上
檢視的作用:提高了重用性,就像一個函式,對資料庫重構,卻不影響程式的執行,提高了安全效能,可以對不同的使用者,讓資料更加清晰,方便操作,特別是查詢操作,減少複雜的SQL語句,增強可讀性;更加安全,資料庫授權命令不能限定到特定行和特定列,但是通過合理建立檢視,可以把許可權限定到行列級別;
事務特性:原子性、一致性、隔離性、永續性
原子性(atomicity) 一個事務必須被視為一個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾,對於一個事務來說,不可能只執行其中的一部分操作,這就是事務的原子性 一致性(consistency) 資料庫總是從一個一致性的狀態轉換到另一個一致性的狀態。(在前面的例子中,一致性確保了,即使在執行第三、四條語句之間時系統崩潰,支票賬戶中也不會損失200美元,因為事務最終沒有提交,所以事務中所做的修改也不會儲存到資料庫中。) 隔離性(isolation) 通常來說,一個事務所做的修改在最終提交以前,對其他事務是不可見的。(在前面的例子中,當執行完第三條語句、第四條語句還未開始時,此時有另外的一個賬戶彙總程式開始執行,則其看到支票帳戶的餘額並沒有被減去200美元。) 永續性(durability) 一旦事務提交,則其所做的修改會永久儲存到資料庫。(此時即使系統崩潰,修改的資料也不會丟失。)
使用場合:許可權控制的時候,不希望使用者訪問表中某些含敏感資訊的列,比如salary...關鍵資訊來源於多個複雜關聯表,可以建立檢視提取我們需要的資訊,簡化操作;
create view v_areas as select * from areas; view檢視,建立在表基礎之上,as定界符(as前固定格式,as後是表資料),將areas表格建立為檢視v_areas
select * from v_areas; 檢視檢視資料
create or replace view v_areas as select * from student; 改 將v_areas視圖裡的資料替換為student表格裡的資料
create or replace view test4 as select t1.name as tname,t2.* from test as t1 LEFT JOIN test1 as t2 on t1.pid = t2.id; 修改檢視
drop view v_areas; 刪除檢視v_areas
檢視的內容會隨著主表的內容改變而改變,修改檢視的內容主表的內容也會隨之而改變。
事務:begin 或 start transaction 開啟事務
rollback 回滾 只能返回上一次操作
commit 提交 一旦提交後就不能回覆