select into语句是select语句中很特别的一个类型。
作用:
select into 语句从一个表中选取数据,然后把数据插入另一个表中。
select into 语句常用于创建表的备份复件或者用于对记录进行存档
这个语句会在数据库中用和你所指定的列类型和标题创建一个新的表。
注意事项:
select into是一种不需要重写表的脚本即可创建一个表的空拷贝的最佳方法,但这个拷贝不包括索引和触发器。
需要运行一个where子句中条件为假的select into。
以使selec tinto产生的表必须是数据库中不存在的,否则就会产生一个错误。
规则:
一、select into是一个无日志记载的过程,所以在成品系统上运行selectinto时必须十分小心,因为不能通过回滚来复原操作。
二、执行select into语句的人必须在运行该select into的数据库中有创建表的许可。
三、select into/bulk copy数据库选项需要在运行select into的数据库中打开。
sql select into 语法
把所有的列插入新表:
或只把列插入新表:
例子:
制作 "persons" 表的备份复件:
1,从同一个数据库中拷贝表及数据:
创建另一个不含数据的表的拷贝,可运行where子句中条件为假的select into。
如下sql语句,会创建一个只有persons表的空拷贝:
2,跨数据库拷贝表及数据:
只拷贝空表:
3,如果希望拷贝某些域,可以在 select 语句后列出这些域:
4,通过从 "persons" 表中提取居住在 "beijing" 的人的信息,创建了一个带有两列的名为 "persons_backup" 的表:
5,创建一个名为 "persons_order_backup" 的新表,其中包含了从 persons 和 orders 两个表中取得的信息:
使用select into导入excel文件,不过建议使用sql server的图形化界面导入excel文件,简单易用:
1,假如接受数据导入的表已存在
2,假如导入数据并生成表
再从这个创建的临时表中将数据移动你的目的表中,推荐这种方法:
insert into tablename ([field1],....) select [field1],.... from [表]
这条语句很像oracle中的merge into语句.它与merge into的功能是一样的.
mysql不支持select into语句直接备份表结构和数据,由于工作中的需要在网上找到一种方法可以代替, 也有其它方法可以处理,总结如下:
方法1:
方法2:
1,先备份表结构和数据
2,在导出的sql文件中修改备份表的名字,修改成你想要新创建的表名,如persons_backup
3,登录mysql
4,选择数据库
5,执行: source 备份表的路径 如:source d:persons.sql 回车即可。
6,完成.
mysql select into outfile用于导出指定的查询数据到文件如下:
1,导出表中所有数据到d盘根目录outfile.txt中如下:
2,导出表中指定查询条件lastname like %xiao% 的数据到d盘根目录outfile1.txt中如下: