order by:
語法結構1:
select 欄位名1,欄位名2...from 表名 order by 欄位名1,欄位名2... asc|desc;
示例:
select id from info order by desc;
語法結構2:
select 欄位名1,欄位名2...from 表名 where 欄位名 >60 order by 欄位名 desc,欄位名 asc;
示例:
select socre from info where socre >60 order by socre desc;
對 group by 結果進行分組
使用 group by 語句來實現分組
通常結合聚合函式一起使用
可以按一個或者多個欄位對結果進行分組
group by:
語法結構1:
select 聚合函式(根據這個欄位名),被統計欄位名 from 表名 where 被統計欄位名 >=70 group by 被統計欄位名;
示例:
select count(name),socre from info where socre >=70 group by socre;
group by 結合 order by
示例:
select count(name),socre from info where socre >=70 group by socre order by count(name) desc;
as :
結構語法1:給欄位設定別名
select 欄位名 as 新設的欄位名,欄位名 as 新設的欄位名 from 表名;
示例:
select name as 姓名,socre as 成績 from info;
select count(*)as cc from info;
語法結構2:給表設別名
select name 姓名,score 成績 from info as i;
示例:
select name 姓名,score 成績 from info as i; ###原欄位或表名在庫內不會被改變;as 可以省略
語法結構:
select *from 表名 where 欄位名 like '字元%';
示例:
select *from info where name like 'z%'; ###匹配多個帶有 z 字的欄位
select *from info where name like 'l_s_'; ###匹配一個帶有l和s的欄位
子查詢
也稱作 內查詢 或 巢狀查詢
先於主查詢被執行,其結果將作為外層主查詢的條件
在增刪改查中都可以使用子查詢
支援多層巢狀
in 語句是用來判斷某個值是否在給定的結果集中
語法結構:
select *from 表名 where 欄位名1in(select 欄位名1from 表名 where 欄位名2in(select 欄位名 from 表名));
示例:
select *from info where id in(select id from tmp where name in(select name from aba)); ###巢狀查詢,先讀括號裡的值作為結果,給外層作為條件,由內而外
括號中的欄位型別要與外層的欄位型別匹配,才能被執行,否則不會被執行!
select a.id from(select id,name from info) a; ####這種巢狀也是可以的,不過得設定一個別名
示例:
select 'a'in('a','b','c'),'a' not in('a','b','c'); ###返回值 in :為1,成立 ;not in :0,不成立
select 97in('a','b','c'),'a' not in('a','b','c'); ###返回值 in :為0,不成立,不能與ASCII碼相比 ;not in :0,不成立
like 、 not like
like :用來匹配字串,如果匹配成功則返回1,否則為0。支援兩種萬用字元:’%‘用於匹配任意數目的字元,而’_'只能匹配一個字元
not like :和 like 相反,如果沒有匹配成功則返回1,否則為0。
示例:
select 'libai' like 'li%'; ### 返回值為1
select 'libai' like 'li___'; ### 返回值為0
select 'libai' not like 'li___'; ###返回值為1
select *from info where name like 'li__'; ###用於模糊查詢info表中name欄位中 帶有li字元後面跟三位 的人名