用來查詢數據庫中表的記錄(數據)。關鍵字:select, where 等數據庫
select * from 表名;函數
語法:spa
select 字段列表 from 表名列表 where 條件列表 group by 分組字段 having 分組以後的條件 order by 排序 limit 分頁限定
select 字段名1,字段名2,... from 表名;3d
注意:code
若是查詢全部字段,能夠用 * 來代替字段列表
distinctblog
eg: SELECT DISTINCT 列名 FROM 表名;排序
多列名時,保證每行對應列名處徹底同樣才能夠去除索引
通常可使用四則運算計算一些列的值。it
eg:SELECT name,math,english,math+english FROM 表名;
math + english便是運算,而且新建別名class
IFNULL(表達式1,表達式2):NULL參與的運算,計算結果都爲NULL
表達式1:哪一個字段須要判斷爲NULL 表達式2:替換爲哪一個值
SELECT name,math,english,math+ IFNULL(english,0) FROM 表名;
SELECT name,math,english,math+ IFNULL(english,0) AS 總分 FROM 表名;
AS 也能夠省略,必定要有空格
1.where字句後跟條件
、< 、<= 、>= 、= 、<>(不等於)
BETWEEN...AND...
IN( 集合)
LIKE:模糊查詢
佔位符:
_:單個任意字符 %:多個任意字符
IS NULL
and 或 &&
or 或 ||
not 或 !
-- 查詢年齡大於20歲
SELECT * FROM student WHERE age > 20; SELECT * FROM student WHERE age >= 20; -- 查詢年齡等於20歲 SELECT * FROM student WHERE age = 20; -- 查詢年齡不等於20歲 SELECT * FROM student WHERE age != 20; SELECT * FROM student WHERE age <> 20; -- 查詢年齡大於等於20 小於等於30 SELECT * FROM student WHERE age >= 20 && age <=30; SELECT * FROM student WHERE age >= 20 AND age <=30; SELECT * FROM student WHERE age BETWEEN 20 AND 30; -- 查詢年齡22歲,18歲,25歲的信息 SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25 SELECT * FROM student WHERE age IN (22,18,25); -- 查詢英語成績爲null SELECT * FROM student WHERE english = NULL; -- 不對的。null值不能使用 = (!=) 判斷 SELECT * FROM student WHERE english IS NULL; -- 查詢英語成績不爲null SELECT * FROM student WHERE english IS NOT NULL;
LIKE的模糊查詢例子
-- 查詢姓馬的有哪些? like SELECT * FROM student WHERE NAME LIKE '馬%'; -- 查詢姓名第二個字是化的人 SELECT * FROM student WHERE NAME LIKE "_化%"; -- 查詢姓名是3個字的人 SELECT * FROM student WHERE NAME LIKE '___'; -- 查詢姓名中包含德的人 SELECT * FROM student WHERE NAME LIKE '%德%';
語法:order by 字句 order by 排序字段1 排序方式1,排序字段2 排序方式2,..排序字段n 排序方式n; 排序字段:目標列 排序方式: ASC:升序,默認 DESC:降序 注意: 若是有多個排序條件,則只有前面條件值同樣時,才執行後面的條件
將一列數據做爲一個總體,進行縱向的計算(排除了非空的值)
SELECT 聚合函數(列名) FROM 表名;
若是把null歸入計算,要把null的值替換後再計算
解決方案:
①:IFNULL函數 SELECT 聚合函數(IFNULL(列名,替換後的值)) FROM 表名; ②:使用不包含NULL的列進行計算
1. 通常選擇非空的列:主鍵 2. count(*):通常不推薦寫 * ,通常寫主鍵
語法:
group by 分組字段;
注意:
1.分組以後查詢的字段:分組字段、聚合函數 2.
where:在分組以前限定,若是不知足條件,不參與分組
having:在分組以後限定,若是不知足條件,不會被查詢出來(意味着,having有時候在分組後基礎上再篩選)
where:後面不能夠跟聚合函數
having:後能夠進行聚合函數的判斷
簡化寫法,在聚合函數後取一個別名,判斷時用別名(通常取英文)進行判斷
語法:
<kbd>limit 開始的索引, 每頁的條數;(僅僅在MySQL語句)
公式:開始的索引 = (當前的頁碼-1)* 每頁顯示的條數
分頁操做時一個MySQL的「方言」