數據庫查詢語句(DQL)

DQL:
數據庫執行DQL語言不會對數據庫中的數據發生任何改變,而是讓數據庫發送查詢結果到客戶端。python

*執行語句不改變表內容正則表達式

查詢表格全部列:select * from 表名;數據庫

查詢某一列內容:select 列名 from 表名 ;函數

查詢指定多列內容:select 列名1 ,列名2,... from 表名;code

where :

使用運算符
=, !=, <, >, <=, >=
between...and: 介於...和...之間
and 且
or 或
in /not in # 在in內的/除了in內的
is /is not # 相似於python中的身份運算符,經常使用於判斷null值it

like :

_   :  匹配單個任意字符
% :匹配0-n我的任意字符【n大於等於1】 == 正則表達式的+

as ( 起別名 ):

select 字段 as 別名    	# 將字段名字換成別名 並輸出到控制檯,不會改變原有表格屬性

distinct(去重) :

select distinct  字段 from 表名 ;     # 將字段的數據去重

order by ( 升降序 ) :

# 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 (分組查詢):

# 查詢以某個字段爲分組,計算分組內的數據,好比每一個組多少個
group by 分組的字段

having: 有...,表示條件,相似於where

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

相關文章
相關標籤/搜索