MySQL如何执行SQL脚本文件?
一.前言
1.1.什么是SQL脚本
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称为这样的文件为sql脚本。
1.2.SQL脚本有什么用
首先可以完成数据迁移,生成数据库的脚本可以直接在另一个服务器的数据库中直接执行;另外就是可以提高数据访问的效率,并进行相关的数据处理。
二.前期准备
2.1.安装数据库
2.2.准备SQL脚本
我们这里准备了一个测试脚本如下所示。
CREATE DATABASE school;
USE school;
/*----------学生信息表----------*/
CREATE TABLE `student` (
`sid` int NOT NULL COMMENT '学号',
`sname` varchar(100) DEFAULT NULL COMMENT '学生姓名',
`gender` char(1) DEFAULT NULL COMMENT '学生性别',
`class_id` int DEFAULT NULL COMMENT '班号',
PRIMARY KEY (`sid`) USING BTREE
) COMMENT='学生表';
INSERT INTO student (sid, sname, gender, class_id) VALUES(1, '张三', '女', 1);
INSERT INTO student (sid, sname, gender, class_id) VALUES(2, '李四', '女', 1);
INSERT INTO student (sid, sname, gender, class_id) VALUES(3, '王五', '男', 2);
INSERT INTO student (sid, sname, gender, class_id) VALUES(4, '张三', '男', 3);
三.测试
有两种执行方式,一种是在数据库中执行,另一种是在命令行中执行。
3.1.在数据库中执行
首先我们打开命令行通过客户端连接mysql服务器,输入如下命令执行sql脚本,格式为source 【sql脚本文件路径全名】。
source test.sql
3.2.在命令行中执行
首先我们打开命令行,输入如下的命令执行sql脚本,格式为mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】。
注意:如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略。
mysql -uroot -p123456 <test.sql
3.3.验证数据
执行完成,查看最终的结果。
D:\test>mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60
Server version: 8.0.33 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use school;
Database changed
mysql> select * from student;
+-----+-------+--------+----------+
| sid | sname | gender | class_id |
+-----+-------+--------+----------+
| 1 | 张三 | 女 | 1 |
| 2 | 李四 | 女 | 1 |
| 3 | 王五 | 男 | 2 |
| 4 | 张三 | 男 | 3 |
+-----+-------+--------+----------+
4 rows in set (0.00 sec)