MySql資料庫中的子查詢與高階應用淺析
阿新 • • 發佈:2020-01-09
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中的指定欄位。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。