MySQL执行外部sql脚本文件的命令
MySQL执行外部sql脚本文件的命令
sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命令执行这个sql脚本文件。
- 1.创建包含sql命令的sql脚本文件
在D盘根目录下新建一个文本文档,并改名为day01.sql(名字自己取,最好不要有中文,特殊符号,以.sql结尾)
![]()
day01.sql文件中包含一些列的sql语句,每条语句最后以;结尾,文件内容示例如下:
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,'张三','领导',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里不能直接创建序列CREATE SEQUENCE,需要创建一张储存sequence的表,然后手动插入一条数据 ,最后自定义一个函数来处理要增长的值。
以上SQL语句中包含中文,所以,在执行sql脚本文件前,需要检查一下你现在使用的MySQL使用的是什么字符集。 MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table tableName ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。
MySQL中关于连接环境的字符集设置有 Client端,connection, results ,通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。
- 当前联接系统参数 show variables like 'char%';
退出mysql,使用net stop mysql命令,停止mysql服务找到你的mysql安装目录下,找到my.ini文件,用记事本打开
![]()
重新打开CMD控制台,输入net start mysql回车,启动mysql服务,启动成功后,进入mysql,并使用jsd170101数据库
- 2.执行sql脚本文件(介绍三种方式)
- 方法一:
C:\Users\Administrator>mysql -uroot -p123456 -Djsd170101<D:\day01.sql//mysql -u账号 -p密码 -D数据库名 < sql文件绝对路径


- 方法二:
mysql> source D:\day01.sql//mysql控制台下执行source D:\day01.sql

- 方法三:
mysql> \. D:\day01.sql// \. D:\day01.sql

作者:ReaderWriter
来源链接:https://blog.csdn.net/czbqoo01/article/details/70037987
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。