MySql數(shù)據(jù)庫中的子查詢:
子查詢:在一條select查詢語句中嵌套另一條select語句,其主要作用是充當查詢條件或確定數(shù)據(jù)源。
代碼案例如下:
例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的高級應(yīng)用:
1.將查詢出來的數(shù)據(jù)添加到一個新的表中:
使用子查詢將查詢后的結(jié)果作為數(shù)據(jù)插入到新的表中,通過關(guān)鍵字 create table ... select ...實現(xiàn),代碼實現(xiàn):
create table 表名(字段名1, 類型 約束,...) select 字段名 from 表名 where 查詢條件
其執(zhí)行流程是,先執(zhí)行select語句通過where條件確定數(shù)據(jù)源,然后再將查詢出來的數(shù)據(jù)插入到新創(chuàng)建的表中。
注意:在使用此方法時,要想給表中的指定字段添加數(shù)據(jù),那么需要將查找出來的字段起一個和表中字段名相同的別名。
2.將查詢的結(jié)果添加到表中:
使用子查詢將查詢后的結(jié)果作為數(shù)據(jù)插入到表中,通過關(guān)鍵字 insert into ... select ...實現(xiàn),代碼實現(xiàn):
insert into 表名(字段名1,...) select 字段名1,.. from 表名 where 查詢條件
其執(zhí)行流程是,先執(zhí)行select語句,將指定的數(shù)據(jù)通過where 條件篩選出來,然后再執(zhí)行insert into 語句給指定的字段名進行數(shù)據(jù)的添加。
3.使用連接更新表中的某個字段的數(shù)據(jù):
使用連接更新表中的字段數(shù)據(jù),通過關(guān)鍵字update ... join..關(guān)鍵字實現(xiàn),代碼實現(xiàn):
update 表1 join 表2 on 表1.字段 = 表2.字段 set 表1.字段 = 表2.字段
其執(zhí)行流程是將兩個表連接后,把表2中的字段的值設(shè)置給表1中的指定字段。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- mysql連接查詢、聯(lián)合查詢、子查詢原理與用法實例詳解
- MySQL多表查詢實例詳解【鏈接查詢、子查詢等】
- mysql實現(xiàn)多表關(guān)聯(lián)統(tǒng)計(子查詢統(tǒng)計)示例
- 詳解MySQL數(shù)據(jù)庫--多表查詢--內(nèi)連接,外連接,子查詢,相關(guān)子查詢
- 詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢
- MySQL子查詢操作實例詳解
- MYSQL子查詢和嵌套查詢優(yōu)化實例解析
- Mysql數(shù)據(jù)庫性能優(yōu)化之子查詢
- Mysql數(shù)據(jù)庫中子查詢的使用
- MySql中子查詢內(nèi)查詢示例詳解