MySQL執(zhí)行外部sql腳本文件的命令
sql腳本是包含一到多個sql命令的sql語句,我們可以將這些sql腳本放在一個文本文件中(我們稱之為“sql腳本文件”),然后通過相關(guān)的命令執(zhí)行這個sql腳本文件。
1.創(chuàng)建包含sql命令的sql腳本文件
在D盤根目錄下新建一個文本文檔,并改名為day01.sql(名字自己取,最好不要有中文,特殊符號,以.sql結(jié)尾)
?
day01.sql文件中包含一些列的sql語句,每條語句最后以;結(jié)尾,文件內(nèi)容示例如下:
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,'馬六','市場',1,sysdate(),6000.0,0,1); insert into emps values(5,'周七','市場',1,sysdate(),5000.0,0,1); insert into emps values(6,'馮八','市場',1,sysdate(),4000.0,0,1); commit;
需要注意的是,mysql里不能直接創(chuàng)建序列CREATE?SEQUENCE,需要創(chuàng)建一張儲存sequence的表,然后手動插入一條數(shù)據(jù) ,最后自定義一個函數(shù)來處理要增長的值。
以上SQL語句中包含中文,所以,在執(zhí)行sql腳本文件前,需要檢查一下你現(xiàn)在使用的MySQL使用的是什么字符集。 MySQL中默認(rèn)字符集的設(shè)置有四級:服務(wù)器級,數(shù)據(jù)庫級,表級 。最終是字段級 的字符集設(shè)置。注意前三種均為默認(rèn)設(shè)置,并不代碼你的字段最終會使用這個字符集設(shè)置。所以我們建議要用show create table tableName ;
或show full fields from tableName;
來檢查當(dāng)前表中字段的字符集設(shè)置。
MySQL中關(guān)于連接環(huán)境的字符集設(shè)置有 Client端,connection, results ,通過這些參數(shù),MySQL就知道你的客戶端工具用的是什么字符集,結(jié)果集應(yīng)該是什么字符集。這樣MySQL就會做必要的翻譯,一旦這些參數(shù)有誤,自然會導(dǎo)致字符串在轉(zhuǎn)輸過程中的轉(zhuǎn)換錯誤?;旧?9%的亂碼由些造成。
當(dāng)前聯(lián)接系統(tǒng)參數(shù)??show variables like 'char%';
退出mysql,使用net stop mysql命令,停止mysql服務(wù)
找到你的mysql安裝目錄下,找到my.ini文件,用記事本打開
?
重新打開CMD控制臺,輸入net start mysql回車,啟動mysql服務(wù),啟動成功后,進入mysql,并使用jsd170101數(shù)據(jù)庫
2.執(zhí)行sql腳本文件(介紹三種方式)
方法一:
C:\Users\Administrator>mysql -uroot -p123456 -Djsd170101<D:\day01.sql
//mysql -u賬號 -p密碼 -D數(shù)據(jù)庫名 < sql文件絕對路徑
?
?
方法二:
mysql> source D:\day01.sql???
//mysql控制臺下執(zhí)行source D:\day01.sql
方法三:
mysql> \. D:\day01.sql?
// \. D:\day01.sql
到此這篇關(guān)于MySQL執(zhí)行外部sql腳本文件的命令的文章就介紹到這了,更多相關(guān)MySQL執(zhí)行外部sql內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。