DQL:
數據庫執行DQL語言不會對數據庫中的數據發生任何改變,而是讓數據庫發送查詢結果到客戶端。python
*執行語句不改變表內容正則表達式
查詢表格全部列:select * from 表名;數據庫
查詢某一列內容:select 列名 from 表名 ;函數
查詢指定多列內容:select 列名1 ,列名2,... from 表名;code
使用運算符
=, !=, <, >, <=, >=
between...and: 介於...和...之間
and 且
or 或
in /not in # 在in內的/除了in內的
is /is not # 相似於python中的身份運算符,經常使用於判斷null值it
_ : 匹配單個任意字符 % :匹配0-n我的任意字符【n大於等於1】 == 正則表達式的+
select 字段 as 別名 # 將字段名字換成別名 並輸出到控制檯,不會改變原有表格屬性
select distinct 字段 from 表名 ; # 將字段的數據去重
# asc 升序 # desc 降序 select * from 表名 order by 字段 asc/desc ;
select 聚合函數 from 表名 ; count (統計出現的次數) : select count(*) from 表名 where 條件; # 統計表格中分數大於80的個數 select count(*) from 表名 where score>80 ;
sum (求和): sum(字段)
select sum(age) from student ;
max(最大值) :max(字段)
min(最小值) : mix(字段)
avg (求平均數) : avg(字段)io
# 查詢以某個字段爲分組,計算分組內的數據,好比每一個組多少個 group by 分組的字段
where 必須在 group by 前面 由於group by後面的過濾條件是 having
where 後面不能夠使用聚合函數, having 後面能夠使用聚合函數select
union 去除重複記錄(去重) union all 獲取全部的結果 (並集)
前提:列表之間的字段類型,列數必須相同
去重: select * from 表一 union select * from 表二 ;
並集: select * from 表一 union all select * from 表二 ;nio
select * from 表一,表二 ; # 會輸出笛卡爾積 即兩個集合相乘
解決方法:
select (想要查看的字段,能夠用 student.id(表,字段) 寫入)from 表名 where 兩個表中的相同的參數(去重);方法
inner join on == join on on至關於where 特色:查詢結果必須知足條件, on條件後面的兩個字段名必須同樣,至關於表一和表二都必須擁有這個字段 select 表.字段 from 表一 join 表二 on 表一.字段=表二.字段 ; 等價於 select 表.字段 from 表一 , 表二 on 表一.字段=表二.字段 ;
left join on 左外鏈接 right join on 右外鏈接 select 表.字段 from 表一 left join 表二 on 表一.字段=表二.字段 ; select 表.字段 from 表一 right join 表二 on 表一.字段=表二.字段 ;
SQL書寫順序:select => from => where => group by => having => order by => limit SQL執行順序:from => where => group by => having => order by => select => limit