1. 程式人生 > 其它 >SQL基礎2

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:計算和

5.avg:計算平均值

注意:聚合函式的計算,排除null值

解決方案:1.選擇不包含非空的列進行計算

2.IFNULL函式

3.分組查詢
語法:group by 分組欄位;

注意:
1.分組之後查詢的欄位:分組欄位、聚合函式
2.where和having 的區別
where再分組之前限定,如不滿足條件,則不參與分組。having再分組之後限定,如果不滿足結果則不會被查詢出來
where後面不可以跟聚合函式 having後可以跟聚合函式

4.分頁查詢

1.語法:limit開始的索引,每頁查詢的條數

2.公式:開始的索引=(當前的頁碼-1)*每頁顯示的條數

3.limit是一個 mysql“方言”