国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 課堂 > 基礎知識 > 正文

事務與存儲過程

2024-09-12 20:30:15
字體:
來源:轉載
供稿:網友
         事務與存儲過程:

  1.事務管理
 
   (1)概念:事務指邏輯上的一組操作,組成這組操作的各個單元,要不全部成功,要不全部不成功。
 
  (2)MySQL默認就自帶事務,但是MySQL自帶的事務是一條語句獨占一個事務
 
 ?。?)也可以自己控制事務:**
 
  star transcation; --開啟事務,在這條語句之后的sql將處在同一個事務中
  ...........
  ...........#語句
  commit; #提交事務,讓這個事務中的sql對數據庫的影響立即發生
  rollback; #回滾事務,測回
 
  create table account(
  id int primary key auto_increment,
  name varchar(40),
  money double
 
  );
 
  insert into account values(null,'賴澤銨',2000),(null,'侯文澤',1000);
 
  **(4)
  原子性:事務時一組不可分割的單位,要么同時成功要么同時不成功。
 
  一致性:事務前后的數據完整性應該保持一致
 
  隔離性:多個用戶并發訪問數據庫時,一個用戶的事務不能被其他用戶事務干擾。
 
  持久性:一旦提交,數據的改變將是永久性
 
  隔離性:本質就是多個線程操作同一個資源造成的多線程并發安全問題,加鎖可以保證隔離性,但是造成數據庫性能下降
 
  如果兩個事務并發的修改:必須隔離
  如果兩個事務并發查詢:不用隔離
  如果一個事務修改一個查詢:臟讀#中途撤銷,不可重復讀#中途修改,虛讀#新增內容**
 
  四大隔離:
  read uncommitted #不隔離
  read committed #可以防止臟讀
  Repeatable read #不能防止虛讀,只能讀到開始時間事務的數據,想查看之后時間的數據只能終止事務才能看到
  Serializable #數據庫運行在串行化未實現 ,性能低,直接鎖住,對方不能修改,待事務結束。
 
  默認Repeatable read
 
  設置語句:
 
  SET SESSION TRANSCATION ISOLATION LEVEL 隔離等級;
 
  查詢語句:
 
  select @@tx_isolation; #上面語句執行成功后
 
  2.存儲過程的創建
 
  重復使用某一功能的情況,減少工作量
 
 ?。?) 語法:
 
  CREATE PROCEDURE sp_name([proc_parameter])
  [characteristics...] routine_body
 
  ~proc_parameter#參數列表
  形式:[IN | OUT | INOUT]param_name#參數名稱 type#參數類型
 
  ~characteristics#存儲特性
 
  LANGUAGE SQL:說明routine_body部分由SQL語句組成
 
  [NOT]DETERMINISTIC:指明存儲過程執行的結果是否確定。默認NOT
 
  {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}:分別是包含SQL語句但不包含讀寫數據語句,不包含SQL語句,讀寫數據語句,寫數據語句。
  默認CONTAINS SQL
 
  SQL SECURITY {DEFINER | INVOKER}:指明誰有權限來執行,DEFINER 表示只有定義者才能執行,INVOKER 表示擁有權限的調用者可以執行。
  默認 DEFINER
 
  COMMENT'string‘:注釋信息,可以用來描述存儲過程
 
  ~routine_body:SQL語句,
  DELIMITER // #將結束符定義為//
  BEGIN
  .....
  ......
  END
 
  delimiter //
 
  create procedure nbaf()
  begin
  select from team left join star on team.id = star.team_id
  union
  select from team right join star on team.id = star.team_id;
  end//
 
  delimiter ;
 
  call nbaf();
 
  (2)在存儲過程中定義一個變量
  變量的聲明一定要在存儲過程的BEGIN和END之間,作用范圍是當前的存儲范圍
  DECLARE var_name [,varname]...data_type [DEFAULT value];
 
  修改變量值1:
  SET var_name = expr[,var_name = expr]#表達式賦予給.....;
 
  修改變量值2:
  SELECT col_name [...]#數據 into#復制 var_name [....]#變量 table_expr#查詢條件;
 
  delimiter //
 
  create procedure pf(in p_id int)
  begin
  select from team left join star on team.id = star.team_id where team.id = p_id
  union
  select from team right join star on team.id = star.team_id where team.id = p_id;
  end//
 
  delimiter ;
 
  call pf();
 
  3.定義條件和處理程序
 
 ?。?)定義條件:是事先定義程序執行過程中遇到的問題,處理程序定義了在遇到這些問題時應當采取的處理方式,并且保證存儲過程中遇到警告或錯誤時能繼續執行。
  DECLARE condition_name CONDITION FOR [condition_type];
 
  condition_type 的兩種形式:
  [condition_type]:
  SQLSTATE[VALUE] sqlstate_value | mysql_error_code
 
  sqlstate_value:是長度為5的字符串類型錯誤代碼,
  mysql_error_code:為數值類型的錯誤代碼
  例如:ERROR1142(42000) ,sqlstate_value:42000,mysql_error_code:1142
 
  (2)定義處理程序
  DECLARE handler_type HANDER FOR condition_value[,...] sp_statement
 
  handler_type:CONTINUE | EXIT | UNDO#遇到錯誤撤回之前的操作,但是MySQL不支持
 
  condition_value:
 
  SQLSTATE[VALUE] sqlstate_value:包含5個字符的字符串錯誤值
  condition_name :錯誤條件名稱
  SQLWARNING :匹配所有以01開頭的SQLSTATE錯誤代碼
  NOT FOUND :匹配所有以02開頭的SQLSTATE錯誤代碼
  SQLEXCEPTION :匹配所有除01,02開頭外的SQLSTATE錯誤代碼
  mysql_error_code :匹配數值類型的錯誤代碼
 
  定義處理程序的幾種方式
 
  declare continue handler for SQLSTATE '42S02' set @info= 'NO_SUCH_TABLE' ; #info輸出
 
  declare continue handler for 1146 set @info= 'NO_SUCH_TABLE' ; #1146,捕獲mysql_error_code
 
  declare no_such_table condition for 1146;
  declare continue handler for NO_SUCH_TABLE set @info= 'ERROR' ; #先定義條件,然后調用
 
  declare exit handler for SQLWARNING set @info= 'ERROR' ;
 
  declare exit handler for NOT FOUND set @info= 'NO_SUCH_TABLE' ;
 
  declare exit handler for SQLEXCEPTION set @info= 'ERROR' ;
 
  4.光標的使用:數據量非常大時使用光標逐條查詢
 
  (1)光標的聲明:在聲明變量、條件后,聲明處理程序之后
 
  DECLARE cursor_name CURSOR FOR select_statement
 
  (2)光標的使用
  打開光標:
  OPEN cursor_name;
  FETCH cursor_name INTO var_name [,var_name]....
  關閉光標:
  CLOSE curse_name
 
  5.控制流程的使用:在編寫存儲過程中
 
 ?。?)IF語句:
  IF expr_condition THEN statement_list
  [ELSEIF expr_contidion THEN statement_list]
  [ELSE statement_list]
  END IF
  //expr_condition 判斷語句 statement_list SQL語句
 
 ?。?)CASE語句:
  CASE case_expr
  WHEN when_value THEN statement_list
  [ WHEN when_value THEN statement_list]
  ............
  [ELSE statement_list]
  END CASE;
 
  (3) LOOP語句:
  [loop_table:] LOOP
  statement_list
  END LOOP [loop_tabel];
 
                      //loop_table表示標注名稱,可以省略
 
  ----------------------------------------------------------------------------------------------------------------------------------
  delimiter //
 
  create procedure east()
  begin
  declare ep1 int default 0;
  declare ep2 int default 7;
  east_p:LOOP
  set ep1 = ep1 + 1;
  if ep1< 4 then  select * from team left join star on team.id = star.team_id  where team.id = ep1
       union
       select * from team right join star on team.id = star.team_id where team.id = ep1;
 
  else leave loop;
  end if;
  end LOOP esat_p;
 
  end//
 
  delimiter ;
 
  call east();
  //不會用
  ------------------------------------------------------------
 
  (4)LEAVE
 
  LEAVE label #退出循環
 
 ?。?)ITERATE
  ITERATE label #再次循環,回到開頭
 
  (6)REPEAT
 
  [repeat_lable:] REPEAT
       statement_list
  UNTIL expr_condition                  #直到判斷語句為真退出
  END REPEAT[repeat_lable]
 ?。?)WHILE
 
  [while_lable:] WHEIL expr_condition DO
  statement_list
  END WHILE [while_lable]
 
  6.調用存儲過程
 
  (1)執行存儲過程
 
  CALL sp_name([parameter[.....]])
 
  7.查看存儲過程
 
 ?。?)SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern']
 
  show procedure status;
 
  show procedure status like 'nbaf';
 
  show procedure status like '%f'/G #查看以f結尾的存儲過程
 
  8.修改存儲過程
 
  ALTER {PROCEDURE | FUNCTION } sp_name [characteristic....]
  #characteristic表示要修改的存儲過程的哪個部分,取值如下
  ~CONTAINS SQL
  ~NO SQL
  ~READS SQL DATA #讀數據
  ~MODIFIES SQL DATA #寫數據
  ~SQL SECURITY { DEFINER | INVOKER}
  ~COMMENT'string' #注釋
 
  目前MySQL還不提供對已經存在的存儲過程代碼進行修改,要修改先刪除
 
  9.刪除存儲過程
 
  DROP {PROCEDURE | FUNCTION } [IF EXISTS] sp_name;

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
六月天色婷婷| 九九热在线视频| 欧美精品日韩少妇| 亚洲成人av在线影院| jizz在线免费观看| 蜜桃av网站| 国产精品va在线观看视色| 国产精品99999| 日本亚洲精品| 国产亚av手机在线观看| 国产变态拳头交视频一区二区 | 在线三级av| eeuss影院www在线播放| 九九视频九九热| 2019年中文字幕| 欧美艹逼视频| 国产高清在线| 国产毛片毛片毛片| 亚洲男人的天堂成人| 免费国产阿v视频在线观看| 国产精品蜜臀| 国产免费a∨片在线观看不卡| 国产黄色av免费看| 欧美日韩不卡中文字幕在线| 国产激情视频网址| 久久久久久久久久久久久91| 国产视频资源| 久久久久久91精品色婷婷| 国产高清免费视频| 国产九色porn网址| 美女网站在线观看| 亚洲欧美中文字幕在线观看| 国产精品视频一区二区免费不卡 | 老司机精品视频一区二区| 国产区在线视频| 狠狠干天天爱| 麻豆福利在线观看| 人人干人人插| 超碰91在线| 欧美黑人乱大交| 日本一卡二卡四卡精品| 亚洲jjzzjjzz在线观看| 在线播放一区二区精品产| 国产高清一区二区三区视频| 国产美女av| 国产在线看片| 久久亚洲资源| 天堂在线看视频| 欧美精品se| 操人视频91| 免费看的毛片| 国产免费专区| 国产精品18久久久久久久久久| 国产一级免费| 中文字幕av在线| av中文资源在线| 久热av在线| 最新中文字幕在线| 国产激情视频网址| 香蕉视频网站在线观看| 香蕉视频网站在线播放| 日本aⅴ写真网站免费| 国产女王在线**视频 | 国产三区四区在线观看| 国产美女在线观看| 中文字幕中文字幕在线中高清免费版 | 天天操天天操天天色天天要| 国产精品一区二区资源| 国产国产国产国产国产国产| 在线免费观看黄色av| 开心激情五月婷婷| 国产精品69一区二区三区| 亚洲人在线播放| 国产精品自拍在线观看| 在线视频二区| 天天操夜夜操天天射| av网站在线播放| 天天操天天操天天色天天要| 99久久国产视频| 国产精品自拍亚洲| 日本天堂影院在线视频| 国产黄在线看| 免费在线高清av| 69精品视频| 福利视频网站导航| 精品国产高清自在线一区二区三区| 麻豆网站在线免费观看| 在线中文资源天堂| 国产区成人精品视频| 精品中文字幕不卡在线视频| 精品视频一二区| √天堂8资源中文在线| 亚洲电影视频在线| 一区二区三区四区在线免费视频| 国产午夜精品一区理论片| 毛片网站在线观看| 先锋影音av中文字幕| 国产乱妇乱子在线播视频播放网站| 国产国语**毛片高清视频| 国产午夜在线| 国产高清在线看| 精品视频三区| 精品美女在线观看视频在线观看 | 九九久久久2| 欧美卡一卡二| 国产在线www| 最近中文字幕mv免费高清电影 | 日本精品一区二区三区在线播放| 国产高清免费视频| 国产精品黄页网站在线播放免费 | 99热在线观看免费| 国产免费av高清在线| 九九视频在线播放| 国产农村一级特黄α**毛片| 国内自拍视频在线看免费观看| 久久久久久久美女| 最新亚洲精品国自产在线观看| √天堂中文在线| 国产成人精品男人的天堂538| 最近中文字幕mv2018在线高清 | 天天草天天操| 男人天堂99| 国产乱视频在线观看| 国产一级影片| 在线视频三级| 国产麻豆视频网站| 精品国产99久久久久久| 久热中文字幕精品视频在线| 交换国产精品视频一区| 国产精选在线观看| 精品视频vs精品视频| 欧美性猛交xxxx免费看蜜桃| 天天av天天爽| аⅴ成人天堂中文在线| 国产桃色电影在线播放| av中文字幕在线看| 国产理论电影在线观看| 精品视频一二三| 午夜免费福利在线观看| 亚洲人成电影| 国产精品粉嫩av| 国产在线高清理伦片a| 18激情网站| 中文字幕在线永久在线视频| 国产成人亚洲综合小说区| 亚洲va国产日韩欧美精品色婷婷| 18加网站在线| 久草视频国产| 午夜在线观看91| 精品美女调教视频| 中文字幕在线免费看| 女人色在线免费视频| 中文在线观看视频| 国产福利在线视频| 国产三级在线看| 国产美女av在线| 欧美性猛交xxxxbbbb| 四虎国产精品永久| av福利在线| 国产对白国语对白| 国产黄色在线网站| 国产超碰在线观看| 国产95在线|亚洲| 在线视频中文字幕| 亚洲国产成人综合| av二区三区| 亚洲精品天堂在线| www在线视频观看| 狠狠狠狠狠狠操| 国产乱码在线| 国产福利小视频在线观看| 国产高清在线观看| 伊人电影在线观看| 欧美日韩**字幕一区| 亚洲sss视频| 欧美a免费在线| 尤物网址在线观看| 在线伊人免费视频| 天堂√中文在线| 国产中文伊人| 国产激情在线| 欧美日韩亚洲第一页| 午夜国产视频| 亚洲第一成年免费网站| 狠狠操天天操夜夜操| 国产色在线播放| gogogo影视剧免费观看在线观看| 麻豆电影传媒二区| 国产成a人亚洲精v品| av在线网页| 国产亚洲精品一区二区在线观看 | 国产91久久久久蜜臀青青天草二| 尤物在线精品视频| 激情综合网五月激情| 91资源在线观看| 激情综合网五月激情| 国产不卡精品一区二区三区| 美女网站在线观看| av天天在线| 国产99re|