SQL脚本是包含一到多个sql命令的sql语句,将这些sql脚本放在一个文件中,然后通过相关的命令执行这个sql脚本文件。
SQL脚本可用于插入数据,读取数据,更新数据,和删除数据。它们也可以用于创建数据库对象,如表,视图,存储过程,他们甚至可以用于创建整个数据库本身,完整的表,数据,用户,等等。
一、编写SQL脚本
create_schema.sql
CREATE SCHEMA test;
创建一个名叫“test”的数据库
create_table.sql
--切换数据库
use test;
-- Table structure for table `user`
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (
`id` varchar(50) NOT NULL,
`username` varchar(50) NOT NULL,
`hobby` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
drop_schema.sql:
DROP SCHEMA user;
truncate_table:
TRUNCATE `test`.`user`;
Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。
二、执行sql脚本
方法一
进入命令行
mysql –u用户名 –p密码 –D数据库
示例:
mysql –uroot –p123456 -Dtest < /home/zj/create_table.sql
注意:
如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
方法二
进入mysql的控制台后,使用source命令执行
Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】
示例1:
use test
source /home/zj/create_table.sql
示例2:
use codelabx -A
source /usr/local/mysqlTable.sql
附录:
MySQL中CREATE DATABASE和CREATE SCHEMA区别
MySQL 5.0官方的英文文档中有这么一句
CREATE DATABASE creates a database with the given name.
To use this statement, you need the CREATE privilege for the database.
CREATE SCHEMA is a synonym for CREATE DATABASE as of MySQL 5.0.2.
这个说法译成中文应该是:CREATE DATABASE是根据给定的名称创建数据库,要用这个语法,你需要有数据库的CREATE权限。从MySQL5.0.2起CREATE SCHEMA可作为CREATE DATABASE的一个代名词。
按照这个说法,CREATE SCHEMA是和CREATE DATABASE是一样的。而这和DB2、MS SQL中的SCHEMA有很大差别。