1. 程式人生 > >MySQL檢視和事務

MySQL檢視和事務

檢視的操作                                                                                                                 
         定義:通俗的講,檢視就是一條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  提交 一旦提交後就不能回覆