1. 程式人生 > 資料庫 >MySql資料庫中的子查詢與高階應用淺析

MySql資料庫中的子查詢與高階應用淺析

MySql資料庫中的子查詢:

子查詢:在一條select查詢語句中巢狀另一條select語句,其主要作用是充當查詢條件或確定資料來源。

程式碼案例如下:

例1. 查詢大於平均年齡的學生:

select * from students where age > (select avg(age) from students);

例2. 查詢學生在班的所有班級名字:

select name from classes where id in (select cls_id from students where cls_id is not null);

例3. 查詢年齡最大,身高最高的學生:

select * from students where (age,height) = (select max(age),max(height) from students);

MySql的高階應用:

1.將查詢出來的資料新增到一個新的表中:

  使用子查詢將查詢後的結果作為資料插入到新的表中,通過關鍵字 create table ... select ...實現,程式碼實現:

create table 表名(欄位名1,型別 約束,...) select 欄位名 from 表名 where 查詢條件

其執行流程是,先執行select語句通過where條件確定資料來源,然後再將查詢出來的資料插入到新建立的表中。

注意:在使用此方法時,要想給表中的指定欄位新增資料,那麼需要將查找出來的欄位起一個和表中欄位名相同的別名。

2.將查詢的結果新增到表中:

  使用子查詢將查詢後的結果作為資料插入到表中,通過關鍵字 insert into ... select ...實現,程式碼實現:

insert into 表名(欄位名1,...) select 欄位名1,.. from 表名 where 查詢條件

其執行流程是,先執行select語句,將指定的資料通過where 條件篩選出來,然後再執行insert into 語句給指定的欄位名進行資料的新增。

3.使用連線更新表中的某個欄位的資料:

  使用連線更新表中的欄位資料,通過關鍵字update ... join..關鍵字實現,程式碼實現:

update 表1 join 表2 on 表1.欄位 = 表2.欄位 set 表1.欄位 = 表2.欄位

其執行流程是將兩個表連線後,把表2中的欄位的值設定給表1中的指定欄位。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。