在小编的的这篇文章(怎么打开sql文件?解密sql文件内容!)中介绍了sql文件的基本结构,而在这篇文章(Navicat怎么导入SQL文件?数据库转储详解!)中小编介绍了如何使用Navicat导入sql文件。但是,不是所有的小伙伴都用Navicat,而且这种方式一点也不具有通用性(不同的数据库管理软件导入SQL方式不同),今天小编来介绍一下一种虽然原始且没有较好的交互效果,但却完全通用且基础的方法——使用mysql命令行导入sql文件。
第一种方式——分步执行
在命令提示符中输入mysql –u用户名 –p密码 –D数据库
登陆数据库。例如
mysql -uroot -proot -DW3c
第二步,使用source
命令(或者\.
用法是一样的)执行(source
命令要带上sql脚本地址)。例如
source C:\w3cschool.sql
第二种方式——一步到位
第二种方式一步将数据库登陆和导入合并在一起,使用<
来导入数据库sql文件。代码如下:
mysql –u用户名 –p密码 -D数据库名称
<sql脚本路径,示例如下:
mysql –uroot –proot -DW3c<C:\w3cschool.sql
关于代码截图,这里执行了两次代码,原因是第一次执行弹出的警告让小编以为没有执行成功,然后小编将数据库清空了后再进行执行代码,发现该警告只不过是提醒(果然,对于程序员来说warning就应该被忽视),并不影响代码的执行结果。
另外,关于该警告的内容其实是,不要在命令提示行里输入密码(果然是可以忽视的警告呢)。
两种方式的总结与使用软件进行导入的对比
这两种方式导入sql都是比较简单的,两种方式的区别在于:合并导入执行后命令行还是基础命令行,而分步导入的是mysql命令行,如果在导入后还想对数据库进行操作,使用分步导入会更舒服(比如导入多个sql,不过呢mysql命令行并不能复制黏贴,从这点看还是基础命令行更加舒服)。
小伙伴们注意到,不管是分步导入还是合并导入,他们都要求登陆到一个固定的数据库,实际上也可以不登陆数据库,不过这种情况要求sql脚本里面存在创建数据库的语句。也就是说,如果我在脚本中加入创建数据库的语句,那么到时候输入指令就不需要带数据库参数了。
即可以采用这样的方式:
mysql –u用户名 –p密码 <sql脚本路径
这一点是Navicat不能做到的,Navicat需要自己先建立一个数据库才能进行数据库的转储。
所以本质上来说,使用命令行方式可以直接命令造出一个完整的数据库,而使用Navicat方式是造出一个空数据库,然后导入数据库的数据,让他在内容方面和目标数据库相似,但是如果创建数据库的时候命令不同,实际上数据库还是会存在着不同。
小结
以上就是mysql命令行导入sql文件的全部内容,学习sql请关注编程狮,更多优质课程等你来看!