MySQL笔记——DQL查询数据
生活随笔
收集整理的這篇文章主要介紹了
MySQL笔记——DQL查询数据
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
DQL查詢包括以下這些內容:
? 基礎查詢
? 條件查詢(WHERE)
? 分組查詢(GROUP BY)
? 排序查詢(ORDER BY)
? 分頁查詢(LIMIT)
(一)、基礎查詢
1、查詢多個字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;
當前表中數(shù)據(jù)如下:
2、去除重復記錄
SELECT DISTINCT 字段列表 FROM 表名;
直接查詢表中address結果如下,可以看出有重復的地址信息出現(xiàn):
去除重復記錄
3、起別名
AS: AS也可以省略
(二)條件查詢
1、條件查詢語法
SELECT 字段列表 FROM 表名 WHERE 條件列表;
2、條件
查詢年齡大于30的SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age>30; -- 查詢年齡大于等于30歲的信息SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age>=30; -- 查詢年齡大于等于30歲并且年齡小于等于50的信息SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age>=30 AND age<=50; -- 查詢年齡不等于30的SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age!=30; -- 查詢英語為null的 -- 注意:null值的比較不能使用 = !=,需要使用 is is not SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE english is null; LIKE 占位符:(1) _:代表單個任意字符(2)%:代表任意個數(shù)字符-- 查詢姓‘馬’的 SELECT id,name,age,sex,address,math,english,hire_date FROM stu WHERE name like '馬%'; -- 查詢第二個字是‘花’的 SELECT id,name,age,sex,address,math,english,hire_date FROM stu WHERE name like '_花%'; -- 查詢名字中有‘運’的 SELECT id,name,age,sex,address,math,english,hire_date FROM stu WHERE name like '%運%';(三)排序查詢
1、排序查詢語法SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]…;排序方式:ASC:升序排列(默認)DESC:降序排列注意: 如果有多個排序條件,當前邊的條件值一樣時,才會根據(jù)第二條進行排序-- 查詢年齡按照升序 SELECT id,name,age,sex,address,math,english,hire_date FROM stu ORDER BY age ASC; -- 查詢按照數(shù)學成績降序排列 SELECT id,name,age,sex,address,math,english,hire_date FROM stu ORDER BY math DESC; -- 查詢,按數(shù)學成績降序排列,如果數(shù)學成績一樣,再按照英語升序排列 SELECT id,name,age,sex,address,math,english,hire_date FROM stu ORDER BY math DESC,english ASC;(四)聚合函數(shù)
1、聚合函數(shù)的概念將一列數(shù)據(jù)作為一個整體,進行縱向計算。2、聚合函數(shù)的分類: 3、聚合函數(shù)的語法SELECT 聚合函數(shù)名(列名) FROM 表;注意:null值不參與所有聚合函數(shù)運算。-- 統(tǒng)計指定列的數(shù)量 SELECT count(name) FROM stu; english列中有一個數(shù)據(jù)為null,所以統(tǒng)計數(shù)量為9,因此,統(tǒng)計數(shù)據(jù)時要選用不為null的列。推薦直接在括號內寫* -- 查詢數(shù)學成績最高的 SELECT max(math) FROM stu; -- 查詢數(shù)學成績最低的 SELECT min(math) FEOM stu; -- 求數(shù)學成績總和 SELECT sum(math) FEOM stu; -- 數(shù)學成績平均值 SELECT avg(math) FEOM stu;(五)分組查詢
1、分組查詢語句 SELECT 字段列表 FROM 表名 [WHERE 分組前條件限定] GROUP BY 分組字段名 [HAVING 分組后條件過濾]; 注意:分組之后,查詢的字段為聚合函數(shù)和分組字段,查詢其他字段無任何意義。where和having的區(qū)別:(1)執(zhí)行的時機不一樣:where是分組之前進行限定,不滿足where條件,則不參與分組,而having是分組之后對結果進行過濾(2)可判斷的條件不一樣:where不能對聚合函數(shù)進行判斷,having可以。執(zhí)行順序:where>聚合函數(shù)>having查詢男女生各自的數(shù)學平均分 SELECT avg(math) FROM stu GROUP BY sex; 查詢男女生各自數(shù)學平均分,以及各自人數(shù) SELECT avg(math),count(*) FROM stu GROUP BY sex; 查詢男女生各自數(shù)學平均分,以及各自人數(shù),要求:分數(shù)低于70不參與分組 SELECT avg(math),count(*) FROM stu WHERE math>=70 GROUP BY sex; 查詢男女生各自數(shù)學平均分,以及各自人數(shù),要求:分數(shù)低于70不參與分組,分組之后人數(shù)大于兩個的。 SELECT avg(math),count(*) FROM stu WHERE math>=70 GROUP BY sex HAVING count(*)>2;(六)分頁查詢
1、分頁查詢語法SELECT 字段列表 FROM 表名 LIMIT 起始索引,查詢條目數(shù);起始索引:從0開始計算公式:起始索引=(當前頁碼-1) * 每頁顯示的條數(shù)提示:(1)分頁查詢limit是MySQL數(shù)據(jù)庫的方言(2)Oracle分頁查詢使用rownumber(3)SQL server分頁查詢使用top從0開始查詢3條數(shù)據(jù) SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 0,3; 每頁顯示三條數(shù)據(jù),查詢第一頁數(shù)據(jù) SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 0,3; 每頁顯示三條數(shù)據(jù),查詢第二頁數(shù)據(jù) SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 3,3; 每頁顯示三條數(shù)據(jù),查詢第三頁數(shù)據(jù) SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 6,3;總結
以上是生活随笔為你收集整理的MySQL笔记——DQL查询数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 100万大额存款怎么存?提供这些技巧
- 下一篇: 定开净值型养老保障管理产品是什么?收益怎