select?into?from和insert?into?select的使用舉例詳解
1. SELECT INTO 語句
用途:SELECT INTO 語句從一個表復(fù)制數(shù)據(jù),然后把數(shù)據(jù)插入到另一個新表中,表結(jié)構(gòu)與查詢結(jié)構(gòu)一致。
PS:MySQL不支持SELECT INTO語法。
1.1 SELECT INTO 語法
復(fù)制所有的列插入到新表中。
SELECT * INTO newtable FROM table1;
或者只復(fù)制希望的列插入到新表中:
SELECT column_name(s) INTO newtable FROM table1;
提示:新表將會使用 SELECT 語句中定義的列名稱和類型進行創(chuàng)建。以使用 AS 子句來應(yīng)用新名稱。
2. INSERT INTO SELECT 語句
INSERT INTO SELECT 語句從一個表復(fù)制數(shù)據(jù),然后把數(shù)據(jù)插入到一個已存在的表中。
2.1 INSERT INTO SELECT 語法
從一個表中復(fù)制所有的列插入到另一個已存在的表中:
INSERT INTO table2 SELECT * FROM table1;
只復(fù)制希望的列插入到另一個已存在的表中:
INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;
3. select into from 和 insert into select 區(qū)別
select into from 要求目標表不存在,因為在插入時會自動創(chuàng)建;
insert into select from 要求目標表存在。
4. 復(fù)制表結(jié)構(gòu)及其數(shù)據(jù)
create table table_name_new as select * from table_name_old;
5.只復(fù)制表結(jié)構(gòu)
原理就是使得where后邊條件為假。
create table table_name_new as select * from table_name_old where 1=2;
或者
create table table_name_new like table_name_old;
6.只復(fù)制表數(shù)據(jù)
6.1 兩個表結(jié)構(gòu)一樣
insert into table_name_new select * from table_name_old;
6.2 兩個表結(jié)構(gòu)不一樣
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old;
只能插入相同字段數(shù)據(jù)。
總結(jié)
到此這篇關(guān)于select into from和insert into select使用的文章就介紹到這了,更多相關(guān)select into from和insert into select內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql將一個表中的某一列數(shù)據(jù)復(fù)制到另一個表中某一列里的方法
今天小編就為大家分享一篇關(guān)于Mysql將一個表中的某一列數(shù)據(jù)復(fù)制到另一個表中某一列里的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03Mysql使用全文索引(FullText?index)的實例代碼
使用索引時數(shù)據(jù)庫性能優(yōu)化的必備技能之一,下面這篇文章主要給大家介紹了關(guān)于Mysql使用全文索引(FullText?index)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04