SQL积累 复制一个表数据到另一个表 SELECT INTO -- INSERT INTO ... SELECT
創(chuàng)建一個(gè)新表并復(fù)制另一個(gè)表的結(jié)構(gòu)和數(shù)據(jù)到這張表
CREATE TABLE 新建的表名 AS SELECT * FROM 已經(jīng)存在的表的表名其中 AS 可以省略,需要復(fù)制指定列結(jié)構(gòu)和數(shù)據(jù)的時(shí)候可以將 * 切換為具體的列名,與一般的 SELECT 查詢指定字段寫法一致。
SELECT INTO 復(fù)制一個(gè)表數(shù)據(jù)到另一張表
(MYSQL 不支持該寫法,但支持INSERT INTO … SELECT)
語(yǔ)法示例
條件就是一般的 某個(gè)字段等于某某某 等條件。
因?yàn)?0=1 永不成立,所以無(wú)數(shù)據(jù)返回,則只復(fù)制表結(jié)構(gòu),創(chuàng)建空表。
INSERT INTO … SELECT 從一個(gè)表復(fù)制數(shù)據(jù),把數(shù)據(jù)插入到一個(gè)已存在的表中
示例:
INSERT INTO table2 (name, sex) SELECT wname, sex FROM table1;添加條件則如下示例:
INSERT INTO table2 (name, sex) SELECT wname, sex FROM table1 WHERE id=10;區(qū)分
select into from 和 insert into select 都可以用來(lái)復(fù)制表
主要區(qū)別為:
select into from 要求目標(biāo)表不存在,因?yàn)樵诓迦霑r(shí)會(huì)自動(dòng)創(chuàng)建
insert into select from 要求目標(biāo)表已存在
create table table_name_new as select * from table_name_old
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
如果兩個(gè)表結(jié)構(gòu)一樣:
insert into table_name_new select * from table_name_old
如果兩個(gè)表結(jié)構(gòu)不一樣:
insert into table_name_new(column1,column2…) select column1,column2… from table_name_old
部分總結(jié)來(lái)源于各大學(xué)習(xí)網(wǎng)站
總結(jié)
以上是生活随笔為你收集整理的SQL积累 复制一个表数据到另一个表 SELECT INTO -- INSERT INTO ... SELECT的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微众信科IPO被中止: 自称合作放款60
- 下一篇: oracle 数据库存储过程编译报错PL