插入选择语句及使用

  

SQL里怎么把一个数据库的表复制到另一个数据库?

  <人力资源/>   

1。
SELECT *入表1表2——复制表2
如果只复制结构而不复制内容或只复制某一列
只要加哪条件就好

  

2。
假设你有数据库一个和数据库B,现将数据库一个中的Table_A的数据复制到数据库中B的Table_B,语句
1如果Table_A和Table_B的结构一样:
使用B
插入Table_B从A.dbo选择*。Table_A
2如果Table_A和Table_B的结构一样:
插入Table_B (B字段1 B字段2…)选择一个字1段字段2…从A.dbo.Table_A

  <人力资源/>   

上面的两个实例用到了从和插入选择选择进入,那么这两个语法有什么不同哪?

  

select into从和插入选择都是用来复制表,两者的主要区别为:从要选择到求目标表不存在,因为在插入时会自动创建.insert到选择要求目标表存在

  

备份表数据:创建表emp从斯科特选择。emp
还原表数据:插入emp从scott.emp选择

  
      <李>复制表结构及其数据:李   
  

create table table_name_new从table_name_old select *

     <李>只复制表结构:李      

create table table_name_new从table_name_old select * 1=2;

  

或者:   

create table table_name_new像table_name_old

     <李>只复制表数据:李      

如果两个表结构一样:

  

插入table_name_new select * from table_name_old

  

如果两个表结构不一样:

  

插入table_name_new (column1 column2…)选择column1 column2……从table_name_old

  

粘贴

  <人力资源/>   <人力资源/>   

再次对使用SELECT INTO和插入选择表复制语句了,进行说明

  

1。插入选择语句
语句形式为:插入表二(field1, field2,…)选择value1, value2,……从表1,列=值]
[]为可选内容
要求目标表表必须存在,由于目标表表已经存在,所以我们除了插入源表名的字段外,还可以插入常量。示例如下:
插入tjjrmx (yybh、xh tjxmbh,詹,sfyx, zhxmbh, tjksbh, jcrq, jcys, ts, ckfw, disporder)
选择“24”,xh, tjxmbh,詹,sfyx, zhxmbh, tjksbh, jcrq, jcys, ts, ckfw, disporder tjjrmx yybh=5
2。从语选择到句
语句形式为:选择vale1 value2成表,从表1
要求目标表表不存在,因为在插入时会自动创建表表,并将表1中指定字段数据复制到表中,示例如下

  
 <代码> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  实战例1
  
  如何在mysql从多个表中组合字段然后插入到一个新表中(特别是在多个表的数据集中到一个表时),通过一条sql语句实现。具体情形是:有三张表a, b, c,现在需要从表b和c表中分别查几个字段的值插入到表一个中对应的字段。对于这种情况,我们可以使用如下的语句来实现: 
  

<强> 1。插入db1_name (field1, field2)选择field1 field2从db2_name

  
 <代码>当然,上面的语句比较适合两个表的数据互插,如果多个表就不适应了。对于多个表,我们可以先将需要查询的字段加入起来,然后组成一个视图后再选择就可以了: 
  

<强> 2.1插入(field1, field2)选择 (b和c选择f1, f2)作为结核病<强>
其f1中是表b的字段,f2是表c的字段,通过加入查询就将分别来自表b和c表的字段进行了组合,然后再通过选择嵌套查询插入到表中,这样就满足了我们这个场景了,如果需要不止2个表,那么可以多个加入的形式来组合字段。需要注意的是嵌套查询部分最后一定要有设置表别名,如下:
2.2选择
(b和c选择f1, f2)作为结核病
即最后的作为结核病是必须的(当然结核病这个名称可以随意取),即指定一个别名,否则在mysql中会报如下错误:
<强> 2。3错误1248(42000):每一个派生表必须有它自己的别名
即每个派生出来的新表都必须指定别名才可以的。

  
 <代码> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  实战例2
  
  插入触发器插入选择同时插入多条记录 
  

需求:写了一个对于插入的触发器,每次插入数据的时候向相关的数据表中也同时插入数据。
问题:测试的时候,一次只向主表中插入一条记录,那么触发器没有问题。在实际使用的时候,因为使用了插入语选择句,一次向主表中插入了超过一条的记录,如17条,但是发现其他数据表中却都只有一条记录,明显出现了错误。

插入选择语句及使用