SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

我们经常遇到需要表复制的情况,比如将表1中的一些数据字段复制到表2,或者将整个表1复制到表2。这时,我们必须使用SELECT INTO和INSERT INTO复制SELECT表语句。

1.INSERT INTO SELECT语句

语句的形式是:插入到表2 (field1,field2,)选择值1、值2、来自表1。

或者:插入表2从表1中选择*

注意:(1)要求目标表Table2必须存在,字段field,field2.也必须存在。

(2)注意表2的主键约束。如果表2有一个主键并且不为空,则主键必须包含在字段1、字段2中.

(3)注意语法。不要加值。它与插入一段数据的sql混合在一起。不要写成:

插入表2(字段1,字段2,)值(选择值1,值2,来自表1)

因为目标表Table2已经存在,所以除了源表Table1的字段之外,我们还可以插入常量。例子如下:

-1.创建一个测试表。

创建表格Table1

一种可变充电器(10),

b varchar(10),

c varchar(10)

)

创建表格Table2

一种可变充电器(10),

c varchar(10),

d int

)

-2.创建测试数据

成表1值(“赵”,“asds”,“90”)

转换成表1的值(“货币”、“asds”、“100”)

转换为表1中的值(“sun”,“asds”,“80”)

转换为表1中的值(“Li”、“asds”,空)

从表2中选择*

- 3.INSERT INTO SELECT语句复制表数据的一些列和文字。

插入表2(a,c,d)从表1中选择a,c,5

或者:插入表2从表1中选择*

-4.显示更新的结果。

从表2中选择*

-5.删除测试表

删除表表1

删除表表2

2.SELECT INTO FROM语句

该语句的形式是:从表1中选择值1,值2到表2中。

要求目标表Table2不存在,因为插入时会自动创建表Table2,并将Table1中指定的字段数据复制到Table2中。例子如下:

-1.创建一个测试表。

创建表格Table1

一种可变充电器(10),

b varchar(10),

c varchar(10)

)

-2.创建测试数据

成表1值(“赵”,“asds”,“90”)

转换成表1的值(“货币”、“asds”、“100”)

转换为表1中的值(“sun”,“asds”,“80”)

转换为表1中的值(“Li”、“asds”,空)

- 3.SELECT INTO FROM语句创建表Table2并复制数据。

从表1中选择a、c放入表2

-4.显示更新的结果。

从表2中选择*

-5.删除测试表

删除表表1

删除表表2

注意:如果在sql/plus或PL/Sql中执行此语句,由于PL/SQL和T-SQL之间的差异,将会报告错误“ORA-00905: missing keyword”。

这句话在T-SQL中很正常,但在PL/SQL中的解释是:

挑选.into是PL/SQL语言的一部分,这意味着您必须在PL/SQL块中使用它。不能在PL/SQL之外的SQL语句中使用它。

即不能作为单个sql语句执行,一般用在PL/SQL块中。

如果要在PL/SQL中实现该函数,可以使用create table new table作为select * from.

例如,创建表新表作为select * from table

NewTable与Table相同,只是它没有键。

SQL select into语法简介

Select into语句可用于创建表的备份副本。

SELECT INTO语句

SELECT INTO语句从一个表中选择数据,然后将数据插入到另一个表中。

SELECT INTO语句通常用于创建表的备份副本或归档记录。

SQL SELECT INTO语法

您可以将所有列插入到新表中:

SELECT * INTO new _ table _ name[在外部数据库中] FROM old_tablename

或者将所需的列插入新表中:

从旧表名中选择列名到新表名[在外部数据库中]

选择SQL进入实例-制作备份副本

以下示例制作了“Persons”表的备份副本:

SELECT * INTO Persons _ backup FROM Persons

IN子句可用于将表复制到另一个数据库:

从人员中选择*到 Backup.mdb 中的人员

如果我们想要复制一些域,我们可以在SELECT语句后列出它们:

选择姓氏,名字

变成人_备份

从人

select SQL into instance-with WHERE子句

我们还可以添加一个WHERE子句。

以下示例通过从“Persons”表中提取居住在“Beijing”的人的信息来创建一个名为“Persons _ backup”的两列表:

SELECT姓氏,名字INTO Persons _ backup FROM Persons WHERE City=北京

选择到实例连接的表中

也可以从多个表中选择数据。

以下示例创建一个名为“Persons_Order_Backup”的新表,该表包含从Persons和Orders表中获取的信息:

选择人员。姓氏,订单。订单号

入人员_订单_备份

从人

内部联接顺序

在人身上。Id _ P=订单。Id_P

mysql中select into 和sql中的select into 对比

现在有一个名为student的表,我想把这个表中的数据复制到一个名为dust的新表中。

答案01:

创建表尘select * from student//在复制之前没有创建新的表dust的情况下使用。

答案02:

从学生中插入灰尘选择*;//当创建了新的表灰尘时

现在使用选择.到…里面.语句来实现以上内容。

MySQL不支持Select Into语句直接备份表结构和数据。有些方法可以代替,有些方法可以处理。摘要如下:

方法1:

MYSQL不支持:

从旧表名中选择*到新表名;这是sql server中的用法

替代方法:

创建表new _ table _ name(Select * from old _ table _ name);

方法2:

1.首先备份表结构和数据。

# export命令-u用户名-p密码-h主机IP地址数据库名称表名1导出文件. sql

mysqldump-u root-proot-h 192 . 168 . 0 . 88 ok _ db ok table 2 ok _ db . SQL

2.修改备份表的名称。

3.登录MySQL

4.选择数据库

5.执行:源备份表的路径如下:Source d:/ok_db.sql并回车。

6.完成了。

MySQL Select into outfile用于导出指定的查询数据到文件如下:

1.将表中的所有数据导出到驱动器C的根目录outfile.txt,如下所示:

select * into outfile c://outfile . txt from test;

2.按照指定的查询条件导出数据2005-06-08到c盘根目录outfile1.txt如下:

select * into outfile c://outfile . txt from test where begin date= 2008-06-08 ;

mysql将本地文件 d:/gpsdata.txt 中的数据加载到以;结尾的表位置数据字段中(用户标识,纬度,经度,高度,速度,内部标识,报告

rttime,status);

将数据[低优先级并发][本地]加载到文件文件名. txt 中

[替换忽略]

到表tbl_name

[字段

[由“字符串”终止]

[[可选地]用 char 括起来]

[由 char 转义]

]

[台词

[以“字符串”开头]

[由“字符串”终止]

]

[忽略数字行]

[(col_name_or_user_var,)]

[SET col_name=eXPr,)]

字段和行在前面,(col_name_or_user_var,…)在后面。如果使用这些属性直接写在表名之后,这是不正确的。一定要写在字段和行之后!

要添加,表A中的数据复制到表B中,表B不能有自增ID。

如果有自动增量ID,则不会插入自动增量。

插入B(标题)从A中选择标题

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)