SQL数据库中select into from和insert into select的区别
select into target_table from source_table;
insert into target_table(column1,column2) select column1,5 from source_table;
以上两句都是将源表source_table的记录插入到目标表target_table,但两句又有区别。
>
这是一个复制表数据的 *** 作。
创建aaa表,这里没有定义aaa表的字段以及类型,而是用select from bbb,这就是把bbb里面所有的字段包含类型以及数据都复制到aaa中去。那么就创建了一张和bbb表一样的aaa表。包括数据等都一样。只是不包含bbb表中的主键以及约束等。
这个地方是不能使用select into来完成的。select into 是SQLSERVER的语法:同样的效果select into aaa from bbb。
扩展资料:
从参与复制的节点间的关系分类
1、主从复制
复制中只允许从源数据库(即主数据库)向其他数据库(从数据库)复制对象,复制对象存放在从数据库站点中。主从复制是最基本的一种结构。
在这种结构中,定义一个主节点,其源数据称为主节点数据(或主拷贝) ;定义1到n个复制节点,其从主节点复制过来的数据称为复制点数据(或副拷贝) 。数据更新 *** 作只能在主拷贝上进行,然后复制给其它副拷贝。
2、对等复制
所有副本在任何节点都可以被修改,并且修改可以发送给其他副本,即所有站点的地位、作用是等同的,没有主从关系。
3、级联式复制
是主从结构的一个扩展,它也是由一个主拷贝和若干个副拷贝组成。不同于主从结构的是它允许每个从属副拷贝(从属站点)具有复制的能力,即一个从属副拷贝可以把接收到的复制数据再传给下一个从属副拷贝。例如,在Oracle中一个快照站点也可以作为主站点。
参考资料:
select
into
语句从一个表中选取数据,然后把数据插入另一个表中。select
into
语句常用于创建表的备份复件或者用于对记录进行存档。举例:所有的列插入新表:select
into
新表
from
旧表制作备份附件:select
into
表名
from
数据库名
从一个数据库向另一个数据库中拷贝表select
into
新数据库表名
from
旧的数据库表名
本节介绍数据的插入,复制数据到另一张表的Sql语法,主要语法有: insert into,insert into select,select into from 等用法,下面将一一为大家详细说明:
以下面两张表进行sql脚本说明
insert into有两种语法,分别如下:
语法1:INSERT INTO table_name VALUES (value1,value2,value3,); --这种形式无需指定要插入数据的列名,只需提供被插入的值即可:
语法2:INSERT INTO table_name (column1,column2,column3,) VALUES (value1,value2,value3,); --这种形式需指定要插入数据的列名,插入的值需要和列名一一对应:
eg:insert into customer values('1006','14006','王欣欣','27','深圳市'); --向表customer插入一条数据
eg:insert into customer values('1007','14007','孟一凡','27',''); --向表customer插入一条数据,最后一个值不填表示对应的值为空,非必填项可以不用插入值
eg:insert into customer (cus_id,cus_no,cus_name,cus_age,cus_adds) values('1008','14008','孔凡','26','广州市'); --向表customer插入一条数据,插入的值与列名一一对应
详解:insert into select --表示从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
语法1:INSERT INTO table_name2 SELECT FROM table_name1; --表示将表table_name1中复制所有列的数据插入到已存在的表table_name2中。被插入数据的表为table_name2,切记不要记混了。
eg:insert into customer select from asett --将表asett中所有列的数据插入到表customer中
语法2:INSERT INTO table_name2 (column_name(s)) SELECT column_name(s) FROM table_name1; --指定需要复制的列,只复制制定的列插入到另一个已存在的表table_name2中:
eg:insert into customer (cus_id,cus_no) select ast_id,ast_no from asett --将表asett中列ast_id和ast_no的数据插入到表customer对应的cus_id,cus_no列中
详解:从一个表复制数据,然后把数据插入到另一个新表中。
语法1:SELECT INTO newtable [IN externaldb] FROM table1; --复制所有的列插入到新表中:
eg:select into customer from asett --将asett表中数据插入到customer中,被插入的 表customer不存在
eg:select into customer from asett where ast_id = '1008' --只复制表asett中ast_id=1008的数据插入到customer中,被插入的 表customer不存在
语法2:SELECT column_name(s) INTO newtable [IN externaldb] FROM table1; --只复制指定的列插入到新表中:
eg:select ast_id,ast_no into customer from asett --将asett表中列ast_id,ast_no数据插入到customer中,被插入的 表customer不存在
区别1:insert into customer select from asett where ast_id='1009' --插入一行,要求表customer 必须存在
区别2:select into customer from asett where ast_id='1009' --也是插入一行,要求表customer 不存在
区别3:select into from :将查询出来的数据复制到一张新表中保存,表结构与查询结构一致。
区别4:insert into select :为已经存在的表批量添加新数据。
以上就是关于SQL数据库中select into from和insert into select的区别全部的内容,包括:SQL数据库中select into from和insert into select的区别、数据库语句中 select into 与select in的区别是什么、oracle 中select into是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)