在小編的的這篇文章(怎么打開sql文件?解密sql文件內(nèi)容!)中介紹了sql文件的基本結(jié)構(gòu),而在這篇文章(Navicat怎么導入SQL文件?數(shù)據(jù)庫轉(zhuǎn)儲詳解!)中小編介紹了如何使用Navicat導入sql文件。但是,不是所有的小伙伴都用Navicat,而且這種方式一點也不具有通用性(不同的數(shù)據(jù)庫管理軟件導入SQL方式不同),今天小編來介紹一下一種雖然原始且沒有較好的交互效果,但卻完全通用且基礎的方法——使用mysql命令行導入sql文件。
第一種方式——分步執(zhí)行
在命令提示符中輸入??mysql –u用戶名 –p密碼 ?–D數(shù)據(jù)庫?
? ?登陸數(shù)據(jù)庫。例如
?mysql -uroot -proot -DW3c
?
第二步,使用?source
?命令(或者?\.
?用法是一樣的)執(zhí)行(?source
?命令要帶上sql腳本地址)。例如
?source C:\w3cschool.sql
?
第二種方式——一步到位
第二種方式一步將數(shù)據(jù)庫登陸和導入合并在一起,使用?<
?來導入數(shù)據(jù)庫sql文件。代碼如下:
?mysql –u用戶名 –p密碼 -D數(shù)據(jù)庫名稱
<sql腳本路徑?,示例如下:
?mysql –uroot –proot -DW3c<C:\w3cschool.sql
?
關于代碼截圖,這里執(zhí)行了兩次代碼,原因是第一次執(zhí)行彈出的警告讓小編以為沒有執(zhí)行成功,然后小編將數(shù)據(jù)庫清空了后再進行執(zhí)行代碼,發(fā)現(xiàn)該警告只不過是提醒(果然,對于程序員來說warning就應該被忽視),并不影響代碼的執(zhí)行結(jié)果。
另外,關于該警告的內(nèi)容其實是,不要在命令提示行里輸入密碼(果然是可以忽視的警告呢)。
兩種方式的總結(jié)與使用軟件進行導入的對比
這兩種方式導入sql都是比較簡單的,兩種方式的區(qū)別在于:合并導入執(zhí)行后命令行還是基礎命令行,而分步導入的是mysql命令行,如果在導入后還想對數(shù)據(jù)庫進行操作,使用分步導入會更舒服(比如導入多個sql,不過呢mysql命令行并不能復制黏貼,從這點看還是基礎命令行更加舒服)。
小伙伴們注意到,不管是分步導入還是合并導入,他們都要求登陸到一個固定的數(shù)據(jù)庫,實際上也可以不登陸數(shù)據(jù)庫,不過這種情況要求sql腳本里面存在創(chuàng)建數(shù)據(jù)庫的語句。也就是說,如果我在腳本中加入創(chuàng)建數(shù)據(jù)庫的語句,那么到時候輸入指令就不需要帶數(shù)據(jù)庫參數(shù)了。
即可以采用這樣的方式:?
mysql –u用戶名 –p密碼 <sql腳本路徑
?
這一點是Navicat不能做到的,Navicat需要自己先建立一個數(shù)據(jù)庫才能進行數(shù)據(jù)庫的轉(zhuǎn)儲。
所以本質(zhì)上來說,使用命令行方式可以直接命令造出一個完整的數(shù)據(jù)庫,而使用Navicat方式是造出一個空數(shù)據(jù)庫,然后導入數(shù)據(jù)庫的數(shù)據(jù),讓他在內(nèi)容方面和目標數(shù)據(jù)庫相似,但是如果創(chuàng)建數(shù)據(jù)庫的時候命令不同,實際上數(shù)據(jù)庫還是會存在著不同。
小結(jié)
以上就是mysql命令行導入sql文件的全部內(nèi)容,學習sql請關注編程獅,更多優(yōu)質(zhì)課程等你來看!