SQL基礎2
技術標籤:MySQL
DQL:查詢表中的記錄
select * from 表名
語法:
select
欄位列表
from
表名列表
where
條件列表
group by
分組欄位
having
分組之後的條件
order by
排序
limit
分頁限定
2.基礎查詢
1.多個欄位查詢
SELECT 欄位名1,欄位名2,....FROM 表名
注意:如果查詢所有欄位,則可以用*來代替欄位列表。
2.去除重複
distinct
練習:去除重複的地址的結果
SELECT DISTINCT address FROM student;
雙列去重:
SELECT DISTINCT name,address FROM student
3.計算列
一般可以用一些四則運算計算列的值(一般只會進行數值型的計算):
if null(表示式1,表示式2): null參與的運算,計算結果都為null。
表示式1 哪個欄位需要判斷是否為null
表示式2如果該欄位為null後的替換值
練習:計算math、english分數之和
SELECT NAME,math, english, math+IFNULL(english,0) FROM student;
4.起別名
AS :as 也可以用空格代替省略
練習:
SELECT NAME,math, english, math+IFNULL(english,0) AS 總分 FROM student;
3.條件查詢
where子句後跟條件
運算子
一些練習:
like模糊查詢:
佔位符:1._ :單個任意字元
2.%:多個任意字元
DQL查詢語句:
1.排序查詢:
語法: order by 子句
order by 排序欄位1 排序方式1,排序欄位2 排序方式2
排序方式:ASC:升序、預設
DESC:降序
注意:如果有多個排序條件,則當第一個條件相同時,判斷第二個條件
2.聚合函式:將一列資料看成一個整體進行縱列計算
1.count:計算個數
一般選擇非空的列,一般選擇主鍵
2.max:計算最大值
3.min:計算最小值
4.sum:計算和
注意:聚合函式的計算,排除null值
解決方案:1.選擇不包含非空的列進行計算
2.IFNULL函式
3.分組查詢
語法:group by 分組欄位;
注意:
1.分組之後查詢的欄位:分組欄位、聚合函式
2.where和having 的區別
where再分組之前限定,如不滿足條件,則不參與分組。having再分組之後限定,如果不滿足結果則不會被查詢出來
where後面不可以跟聚合函式 having後可以跟聚合函式
4.分頁查詢
1.語法:limit開始的索引,每頁查詢的條數
2.公式:開始的索引=(當前的頁碼-1)*每頁顯示的條數
3.limit是一個 mysql“方言”