本文目錄一覽:
- 1、mysql 怎麼執行sql文件
- 2、mysql如何執行sql腳本文件
- 3、如何執行一個mysql的sql腳本文件
- 4、mysql中如何使用begin end
- 5、如何執行mysql語句塊
- 6、mysql 的游標和觸發器
mysql 怎麼執行sql文件
右鍵以文本文件的形式打開,裏面是記錄著可以在mysql裏面執行的代碼。
要執行sql文件裏面的代碼,需要打開mysql數據庫去執行,新手推薦用軟件的形式執行此sql,軟件如navicat,sqlyog等。
打開軟件並且配置連接數據庫的信息後打開,然後創建一個數據庫,之後右鍵數據庫選中執行sql,接着選擇要執行的sql文件,按提示一步一步走下去即可。
老手推薦使用cmd指令來執行sql,因為速度比較快,首先也是連接上數據庫,創建並選擇好數據庫:
mysqluse 數據庫名;
mysqlset names utf8; –設置傳輸編碼,避免中文亂碼
mysqlsource d:/xxx.sql; — source 文件路徑
就這麼簡單, 然後就等着sql執行完畢即可.
mysql如何執行sql腳本文件
右鍵以文本文件的形式打開,裏面是記錄著可以在mysql裏面執行的代碼。
要執行sql文件裏面的代碼,需要打開mysql數據庫去執行,新手推薦用軟件的形式執行此sql,軟件如navicat,sqlyog等。
打開軟件並且配置連接數據庫的信息後打開,然後創建一個數據庫,之後右鍵數據庫選中執行sql,接着選擇要執行的sql文件,按提示一步一步走下去即可。
老手推薦使用cmd指令來執行sql,因為速度比較快,首先也是連接上數據庫,創建並選擇好數據庫:
mysqluse
數據庫名;
mysqlset
names
utf8;
–設置傳輸編碼,避免中文亂碼
mysqlsource
d:/xxx.sql;
—
source
文件路徑
就這麼簡單,
然後就等着sql執行完畢即可.
如何執行一個mysql的sql腳本文件
右鍵以文本文件的形式打開,裏面是記錄著可以在mysql裏面執行的代碼。
要執行sql文件裏面的代碼,需要打開mysql數據庫去執行,新手推薦用軟件的形式執行此sql,軟件如navicat,sqlyog等。
打開軟件並且配置連接數據庫的信息後打開,然後創建一個數據庫,之後右鍵數據庫選中執行sql,接着選擇要執行的sql文件,按提示一步一步走下去即可。
老手推薦使用cmd指令來執行sql,因為速度比較快,首先也是連接上數據庫,創建並選擇好數據庫:
mysqluse
數據庫名;
mysqlset
names
utf8;
–設置傳輸編碼,避免中文亂碼
mysqlsource
d:/xxx.sql;
—
source
文件路徑
就這麼簡單,
然後就等着sql執行完畢即可.
mysql中如何使用begin end
hi,你好,MYSQL是支持BEGIN … END複合語句的
具體語法為:
[begin_label:] BEGIN
[statement_list]
END [end_label]
官方文檔介紹:
如何執行mysql語句塊
如果是在命令提示符下鍵入SQL語句,結尾需要加分號,回車即可,如果你是在MYSQL的一個集成開發環境下操作,將SQL語句鍵入頁面上方的一個框里,然後按菜單欄上的三角箭頭
mysql 的游標和觸發器
2.游標
游標是從數據表中提取出來的數據,以臨時表的形式存放在內存中,在游標中有一個數據指針,在初始狀態下指向的是首記錄,利用fetch語句可以移動該指針,從而對游標中的數據進行各種操作,然後將操作結果寫回數據表中。
游標是系統為用戶開設的一個數據緩衝區,存放SQL語句的執行結果。每個游標區都有一個名字。用戶可以用SQL語句逐一從游標中獲取記錄,並賦給主變量,交由主語言進一步處理。主語言是面向記錄的,一組主變量一次只能存放一條記錄。僅使用主變量並不能完全滿足SQL語句嚮應用程序輸出數據的要求。嵌入式SQL引入了游標的概念,用來協調這兩種不同的處理方式。在數據庫開發過程中,當你檢索的數據只是一條記錄時,你所編寫的事務語句代碼往往使用SELECT INSERT 語句。但是我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?游標為我們提供了一種極為優秀的解決方案。
定義游標
DECLARE cursor_name CURSOR FOR SELECT_statement;
打開游標
OPEN cursor_name;
獲取游標。獲得多行數據,使用循環語句去執行FETCH
FETCH cursor_name INTO variable list;
關閉游標
CLOSE cursor_name ;
注意:mysql的游標是向前只讀的,也就是說,你只能順序地從開始往後讀取結果集,不能從後往前,也不能直接跳到中間的記錄.
一個例子:把從數據庫查詢出來的所有name鏈接起來。
/*初始化*/ drop procedure if exists useCursor // /*建立 存儲過程 create */ CREATE PROCEDURE useCursor() BEGIN /*局部變量的定義 declare*/ declare tmpName varchar(20) default ” ; declare allName varchar(255) default ” ; declare cur1 CURSOR FOR SELECT name FROM test.level ; /* mysql 不知道為什麼用異常加入判斷 ? * 此請參考官方文檔 20.2.11. 光標 光標 * 這把 游標 異常後 捕捉 * 並設置 循環使用 變量 tmpname 為 null 跳出循環。 */ declare CONTINUE HANDLER FOR SQLSTATE ‘02000’ SET tmpname = null; /*開游標*/ OPEN cur1; /*游標向下走一步*/ FETCH cur1 INTO tmpName; /* 循環體 這很明顯 把游標查詢出的 name 都加起並用 ; 號隔開 */ WHILE ( tmpname is not null) DO set tmpName = CONCAT(tmpName ,”;”) ; set allName = CONCAT(allName ,tmpName) ; /*游標向下走一步*/ FETCH cur1 INTO tmpName; END WHILE; CLOSE cur1; select allName ;END;//call useCursor()//
3.觸發器
觸發器是特定事件出現的時候,自動執行的代碼塊。類似於存儲過程,觸發器與存儲過程的區別在於:存儲過程是由用戶或應用程序顯式調用的,而觸發器是不能被直接調用的。
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW BEGIN trigger_stmt END;
trigger_name:觸發器的名字,我常用的命名規則t_name_tableName_(b|a)(i|u|d),t:觸發器標識,name:英文名,tableName:表名,b(BEFORE):標識是觸發事件之前,a(AFTER):標識觸發事件之後,i(insert):標識insert事件,u(update):標識update事件,d(delete):標識delete事件;
trigger_time:觸發時間(BEFORE或AFTER)
trigger_event:事件名(insert或update或delete)
tbl_name:表名(必須是永久性表)
trigger_stmt:執行語句(可以是複合語名),使用別名OLD和NEW,能夠引用與觸發程序相關的表中的列。
CREATE TRIGGER t22_biBEFORE INSERT ON t22FOR EACH ROWBEGINSET @x = ‘Trigger was activated!’;SET NEW.s1 = 55;END;//
在表t22中,在插入一條數據之前,顯示’Trigger was activated!’,並且將插入的這條數據的s1值設為55.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/240848.html