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

  

<强> 1。插入选择语句

  

语句形式为:插入表二(field1, field2,…)选择value1, value2,……从表1

  

或者:插入表的select * Table1

  

注意:(1)要求目标表表必须存在,并且字段,field2…也必须存在

  

(2)注意表的主键约束,如果表有主键而且不为空,则field1, field2…中必须包括主键

  

(3)注意语法,不要加值,和插入一条数据的sql混了,不要写成:

  

插入表二(field1, field2,…)值(选择value1, value2,…从表1)

  

由于目标表表已经存在,所以我们除了插入源表名的字段外,还可以插入常量。示例如下:

        ——1。创建测试表   创建表名   (   一个varchar (10),   b varchar (10),   c varchar (10)   )   创建表的表   (   一个varchar (10),   c varchar (10),   d int   )      ——2。创建测试数据   插入表值(“赵”,“自闭症”,“90”)   插入表值(“钱”,“自闭症”,“100”)   插入表值(“孙”,“自闭症”,“80”)   插入表值(“李”,“自闭症”,null)      从表二选择*      ——3。插入选择语句复制表数据部分列和常值      插入表二(a, c, d)选择一个c,从表5      或:插入表从表1选择*      ——4 .显示更新后的结果      从表二选择*      ——5。删除测试表   删除表名   删除表表      

<强> 2。从语选择到句

  

语句形式为:选择vale1 value2成表,从表1

  

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

        ——1。创建测试表   创建表名   (   一个varchar (10),   b varchar (10),   c varchar (10)   )      ——2。创建测试数据   插入表值(“赵”,“自闭症”,“90”)   插入表值(“钱”,“自闭症”,“100”)   插入表值(“孙”,“自闭症”,“80”)   插入表值(“李”,“自闭症”,null)      ——3。从语选择到句创建表表并复制数据   选择一个c从表1到表      ——4 .显示更新后的结果   从表二选择*      ——5。删除测试表   删除表名   删除表表      

注意:如果在sql/+或者PL/sql执行这条语句,会报“ora - 00905:缺失关键字“错误,原因是PL/sql与t - sql的区别。
  t - SQL中该句正常,但PL/SQL中解释是:
  选择. .在PL/SQL语言的一部分,这意味着你必须使用它在PL/SQL块。你不能使用它在一个SQL语句以外的PL/SQL。
  即不能单独作为一条sql语句执行,一般在PL/sql程序块(block)中使用。

  

  

如果想在PL/SQL中实现该功能,可使用Create table newTable select * from…:
  如:创建表NewTable select * from ATable;

  

NewTable除了没有键,其他的和ATable一样

  

- - - - - - - - - - sql SELECT INTO语法介绍
  SQL SELECT INTO语句可用于创建表的备份复件。
  SELECT INTO语句
  SELECT INTO语句从一个表中选取数据,然后把数据插入另一个表中。
  SELECT INTO语句常用于创建表的备份复件或者用于对记录进行存档。
  SQL SELECT INTO语法
  您可以把所有的列插入新表:
  SELECT *到new_table_name (externaldatabase)从old_tablename
  或者只把希望的列插入新表:
  选择column_name (s)到new_table_name (externaldatabase)从old_tablename
  SQL SELECT INTO实例——制作备份复件
  下面的例子会制作“人”表的备份复件:
  SELECT *入Persons_backup人
  在子句可用于向另一个数据库中拷贝表:
  SELECT *到人的备份。mdb的从人
  如果我们希望拷贝某些域,可以在选择语句后列出这些域:
  选择名,姓
  到Persons_backup
  从人
  SQL SELECT INTO实例——带有在子句
  我们也可以添加在子句。
  下面的例子通过从“人”表中提取居住在“北京”的人的信息,创建了一个带有两个列的名为“Persons_backup”的表:
  选择名,姓从人到Persons_backup城市='北京'
  SQL SELECT INTO实例——被连接的表
  从一个以上的表中选取数据也是可以做到的。
  下面的例子会创建一个名为“Persons_Order_Backup”的新表,其中包含了从人员和订单两个表中取得的信息:

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