MySQL將查詢結果插入到資料表中

2021-06-28 13:50:37 字數 1427 閱讀 4317

**mysql教程:

insert語句還可以將select語句查詢出來的資料插入到另乙個表中,即可快速地從乙個或多個表中向乙個表中插入多個行。這樣,可以方便不同表之間進行資料交換。

基本的語法格式如下:

insert into 表名1(字段列表1)

select 字段列表2 from 表名2 where 條件表示式;

將「表名2」中查詢出來的記錄插入到「表名1」中以後,「表名2」中仍然儲存著原來的記錄。

使用這種方法時,必須保證「字段列表1」和「字段列表2」中的字段個數是一樣的,同時,也必須保證每個對應的字段的資料型別是一樣的。如果資料型別不一樣,資料庫系統會報錯。然後,阻止insert語句向下執行。

從stu表中查詢所有的記錄,並將其插入到student表中。

1. 建立乙個名為stu的資料表,其表結構與student表結構相同。sql語句如下:

create table stu(

id int(4) not null auto_increment primary key,

xuesheng varchar(10) not null,

yuwen int(4),

shuxue int(4),

yingyu int(4));

2. 向stu資料表中新增兩條記錄。insert語句如下:

mysql>insert into stu(id,xuesheng,yuwen,shuxue,yingyu)

values(1001,'one',79,66,90),

(1002,'two',62,68,73);

3. 使用select語句查詢stu資料表。如下圖所示:

上圖中**執行的查詢結果顯示,插入記錄成功,stu資料表中現在有兩條記錄。

4. 將stu資料表中所有的記錄插入到student資料表中。sql語句如下:

mysql>insert into student(id,xuesheng,yuwen,shuxue,yingyu)

select id,xuesheng,yuwen,shuxue,yingyu from stu;

5. sql語句執行的結果如下:

6. 使用select語句檢視執行結果。如下圖所示:

上圖中**執行的查詢結果顯示,insert語句執行後,student表中多了兩條記錄,這兩條記錄和stu資料表中的記錄完全相同,說明資料轉移成功。

這裡的id欄位為自增的主鍵,在插入的時候要保證該字段值的唯一性。如果不能確定,可以插入的時候忽略該欄位,只插入其它欄位的值。

這個例子中使用的stu資料表和student資料表的定義相同,事實上,mysql不關心select返回的列名,它根據列的位置進行插入,select的第1列對應待插入表的第1列,第2列對應待插入表的第2列,等等。即使不同結果的表之間也可以方便的轉移資料。

MySQL將查詢結果插入到資料表中

基本的語法格式如下 insert into 表名1 字段列表1 select 字段列表2 from 表名2 where 條件表示式 將 表名2 中查詢出來的記錄插入到 表名1 中以後,表名2 中仍然儲存著原來的記錄。例項1 將stu資料表中所有的記錄插入到student資料表中。sql語句如下 my...

MySQL將查詢結果插入到資料表中

insert語句還可以將select語句查詢出來的資料插入到另乙個表中,即可快速地從乙個或多個表中向乙個表中插入多個行。這樣,可以方便不同表之間進行資料交換。基本的語法格式如下 insert into 表名1 字段列表1 select 字段列表2 from 表名2 where 條件表示式 將 表名2...

MySQL將查詢結果插入到另乙個表中

1 如果兩張表 查詢表和插入表 的字段一致,並且希望插入查詢表的全部資料,可以用此方法 insert into 目標表 select from 表 insert into user login1 select from user login 2 如果只希望插入指定字段,可以用此方法,注意兩表的字段型...