sql腳本是包含一到多個(gè)sql命令的sql語(yǔ)句,我們可以將這些sql腳本放在一個(gè)文本文件中(我們稱之為“sql腳本文件”),然后通過(guò)相關(guān)的命令執(zhí)行這個(gè)sql腳本文件。
1.創(chuàng)建包含sql命令的sql腳本文件
在d盤根目錄下新建一個(gè)文本文檔,并改名為day01.sql(名字自己取,最好不要有中文,特殊符號(hào),以.sql結(jié)尾)
day01.sql文件中包含一些列的sql語(yǔ)句,每條語(yǔ)句最后以;結(jié)尾,文件內(nèi)容示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
create table emps ( empno int (8) primary key , ename varchar (20), job varchar (20), mgr int (8), hiredate date , sal double (11,2), comm double (11,2), deptno int (8) ); insert into emps values (1, '張三' , '領(lǐng)導(dǎo)' ,0,sysdate(),18000.0,3000.0,1); insert into emps values (2, '李四' , '銷售' ,1,sysdate(),7000.0,5000.0,1); insert into emps values (3, '王五' , '銷售' ,1,sysdate(),8000.0,2000.0,1); insert into emps values (4, '馬六' , '市場(chǎng)' ,1,sysdate(),6000.0,0,1); insert into emps values (5, '周七' , '市場(chǎng)' ,1,sysdate(),5000.0,0,1); insert into emps values (6, '馮八' , '市場(chǎng)' ,1,sysdate(),4000.0,0,1); commit ; |
需要注意的是,mysql里不能直接創(chuàng)建序列create sequence,需要?jiǎng)?chuàng)建一張儲(chǔ)存sequence的表,然后手動(dòng)插入一條數(shù)據(jù) ,最后自定義一個(gè)函數(shù)來(lái)處理要增長(zhǎng)的值。
以上sql語(yǔ)句中包含中文,所以,在執(zhí)行sql腳本文件前,需要檢查一下你現(xiàn)在使用的mysql使用的是什么字符集。 mysql中默認(rèn)字符集的設(shè)置有四級(jí):服務(wù)器級(jí),數(shù)據(jù)庫(kù)級(jí),表級(jí) 。最終是字段級(jí) 的字符集設(shè)置。注意前三種均為默認(rèn)設(shè)置,并不代碼你的字段最終會(huì)使用這個(gè)字符集設(shè)置。所以我們建議要用show create table tablename ;
或show full fields from tablename;
來(lái)檢查當(dāng)前表中字段的字符集設(shè)置。
mysql中關(guān)于連接環(huán)境的字符集設(shè)置有 client端,connection, results ,通過(guò)這些參數(shù),mysql就知道你的客戶端工具用的是什么字符集,結(jié)果集應(yīng)該是什么字符集。這樣mysql就會(huì)做必要的翻譯,一旦這些參數(shù)有誤,自然會(huì)導(dǎo)致字符串在轉(zhuǎn)輸過(guò)程中的轉(zhuǎn)換錯(cuò)誤。基本上99%的亂碼由些造成。
當(dāng)前聯(lián)接系統(tǒng)參數(shù) show variables like 'char%';
退出mysql,使用net stop mysql命令,停止mysql服務(wù)
找到你的mysql安裝目錄下,找到my.ini文件,用記事本打開(kāi)
重新打開(kāi)cmd控制臺(tái),輸入net start mysql回車,啟動(dòng)mysql服務(wù),啟動(dòng)成功后,進(jìn)入mysql,并使用jsd170101數(shù)據(jù)庫(kù)
2.執(zhí)行sql腳本文件(介紹三種方式)
方法一:
c:\users\administrator>mysql -uroot -p123456 -djsd170101<d:\day01.sql
//mysql -u賬號(hào) -p密碼 -d數(shù)據(jù)庫(kù)名 < sql文件絕對(duì)路徑
方法二:
mysql> source d:\day01.sql
//mysql控制臺(tái)下執(zhí)行source d:\day01.sql
方法三:
mysql> \. d:\day01.sql
// \. d:\day01.sql
到此這篇關(guān)于mysql執(zhí)行外部sql腳本文件的命令的文章就介紹到這了,更多相關(guān)mysql執(zhí)行外部sql內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/czbqoo01/article/details/70037987