程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql可以根據查詢結果插入到指定的表中

mysql可以根據查詢結果插入到指定的表中

編輯:MySQL綜合教程

mysql可以根據查詢結果插入到指定的表中


MySQL可以根據查詢到的記錄集插入到指定的表中其例子為:

首先闡述三張表的結構:

s(sno,sname.sex,age,dept) //學生信息表

c(cno,cname,tname) //課程信息表

sc(sno,cno,grade) //課程選修信息表

那麼現在就是問題是:

將一門課的成績大於等於80分學生的學號、姓名和系名插入到一個已存在(要建立)基本表stu(sno,sname,dept)中

stu表已存在 數據庫Schema為:

 

<span style="font-size:18px;color:#FF0000;">drop table if EXISTS stu ;
create table stu (
  sno int(4) unique ,
  sname varchar(20),
  dept varchar(10)
);</span>


 

那麼現在將結果的sql語句寫出來:

 

<span style="font-size:18px;color:#FF0000;">insert into stu (sno,sname,dept)
select sno ,sname , dept from s where
s.sno in 
(select sc.sno from sc where sc.grade >= 80 );
</span>

 

接下來是上面的sql語句的語法規則 :

 

INSERT INTO 表名1(字段列表1)
       SELECT 字段列表2 FROM 表名2 WHERE 條件表達式;
表名1:表示記錄插入到哪個表中。字段列表1:表示為哪些字段賦值。字段列表2:表示從表中查詢出哪些字段的數據。表名2:表示記錄是從哪個表中查詢出來的。條件表達式:表示設置SELECT語句的查詢條件。

 

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

提示:

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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved