select?into?from和insert?into?select的區(qū)別舉例詳解
一、區(qū)別解釋
1、select into from :將查詢(xún)出來(lái)的數(shù)據(jù)整理到一張新表中保存,表結(jié)構(gòu)與查詢(xún)結(jié)構(gòu)一致。
select *(查詢(xún)出來(lái)的結(jié)果) into newtable(新的表名)from where (后續(xù)條件)
即,查詢(xún)出來(lái)結(jié)果—>復(fù)制一張同結(jié)構(gòu)的空表—>將數(shù)據(jù)拷貝進(jìn)去。
2、insert into select :為已經(jīng)存在的表批量添加新數(shù)據(jù)。
insert into (準(zhǔn)備好的表) select *(或者取用自己想要的結(jié)構(gòu))from 表名 where 各種條件
即,指定一張想要插入數(shù)據(jù)的表格—>對(duì)數(shù)據(jù)進(jìn)行加工篩選—>填入一張準(zhǔn)備好的表格。
二、舉例詳解
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)表存在。
- 復(fù)制表結(jié)構(gòu)及其數(shù)據(jù):
create table table_name_new as select * from table_name_old
- 只復(fù)制表結(jié)構(gòu):
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
- 只復(fù)制表數(shù)據(jù):
如果兩個(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
注意事項(xiàng):
SELECT INTO 只能用于創(chuàng)建新表,而 INSERT INTO SELECT 可以用于向已存在的表中插入數(shù)據(jù)。
SELECT INTO 會(huì)自動(dòng)創(chuàng)建新表,如果新表已存在,會(huì)報(bào)錯(cuò)。而 INSERT INTO SELECT 不會(huì)創(chuàng)建表,只會(huì)向現(xiàn)有表中添加數(shù)據(jù)。
在使用 INSERT INTO SELECT 時(shí),可以選擇性地插入數(shù)據(jù),通過(guò) WHERE 子句過(guò)濾數(shù)據(jù),或者使用 ORDER BY 對(duì)數(shù)據(jù)進(jìn)行排序。
在使用 SELECT INTO 時(shí),如果選擇的列與新表中的列不完全匹配,SQL Server 會(huì)自動(dòng)創(chuàng)建列,但可能會(huì)丟失數(shù)據(jù)類(lèi)型和約束。
總結(jié)
到此這篇關(guān)于select into from和insert into select的區(qū)別的文章就介紹到這了,更多相關(guān)select into from和insert into select區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL explain根據(jù)查詢(xún)計(jì)劃去優(yōu)化SQL語(yǔ)句
MySQL是一種常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),常被用于各種應(yīng)用程序中存儲(chǔ)數(shù)據(jù),當(dāng)涉及到大量的數(shù)據(jù)時(shí),就需要MySQL的explain功能來(lái)幫助優(yōu)化,本文將詳細(xì)介紹MySQL的explain功能,感興趣的朋友可以參考閱讀2023-04-04Mysql中通用表達(dá)式WITH?AS語(yǔ)句的使用實(shí)例代碼
with as也叫子查詢(xún),用來(lái)定義一個(gè)sql片段,且該片段會(huì)被整個(gè)sql語(yǔ)句反復(fù)使用很多次,這個(gè)sql片段就相當(dāng)于是一個(gè)公用臨時(shí)表,下面這篇文章主要給大家介紹了關(guān)于Mysql中通用表達(dá)式WITH?AS語(yǔ)句使用的相關(guān)資料,需要的朋友可以參考下2022-08-08MySQL 查詢(xún)某個(gè)字段不重復(fù)的所有記錄
現(xiàn)在想從這5條記錄中查詢(xún)所有title不重復(fù)的記錄2009-05-05MySql如何將查詢(xún)的出來(lái)的字段進(jìn)行轉(zhuǎn)換
這篇文章主要介紹了MySql如何將查詢(xún)的出來(lái)的字段進(jìn)行轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06CentOS7.4手動(dòng)安裝MySQL5.7的方法
這篇文章主要介紹了CentOS7.4手動(dòng)安裝MySQL5.7的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09使用SQL查詢(xún)所有數(shù)據(jù)庫(kù)名和表名問(wèn)題
這篇文章主要介紹了使用SQL查詢(xún)所有數(shù)據(jù)庫(kù)名和表名問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11mysql設(shè)置更改root密碼、mysql服務(wù)器的連接、mysql常用命令的圖解
這篇文章主要介紹了mysql設(shè)置更改root密碼、mysql服務(wù)器的連接、mysql常用命令,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06