婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL單表查詢操作實例詳解【語法、約束、分組、聚合、過濾、排序等】

MySQL單表查詢操作實例詳解【語法、約束、分組、聚合、過濾、排序等】

熱門標簽:400電話申請信用卡 外呼系統電銷受騙 走過哪個省地圖標注 銷售語音電話機器人 萊西市地圖標注 安徽ai電話電銷機器人有效果嗎 巫師三血與酒地圖標注 常州網絡外呼系統開發 在哪里申請400電話

本文實例講述了MySQL單表查詢操作。分享給大家供大家參考,具體如下:

語法

一、單表查詢的語法

   SELECT 字段1,字段2... FROM 表名
                  WHERE 條件
                  GROUP BY field
                  HAVING 篩選
                  ORDER BY field
                  LIMIT 限制條數

二、關鍵字的執行優先級(重點)

重點中的重點:關鍵字的執行優先級

from
where
group by
having
select
distinct
order by
limit

1.找到表:from

2.拿著where指定的約束條件,去文件/表中取出一條條記錄

3.將取出的一條條記錄進行分組group by,如果沒有group by,則整體作為一組

4.將分組的結果進行having過濾

5.執行select

6.去重

7.將結果按條件排序:order by

8.限制結果的顯示條數

(1)where 約束 

 where運算符

where子句中可以使用
1.比較運算符:>、、>=、=、>、!=
2.between 80 and 100 :值在80到100之間
3.in(80,90,100)值是10或20或30
4.like 'xiaomagepattern': pattern可以是%或者_。%小時任意多字符,_表示一個字符
5.邏輯運算符:在多個條件直接可以使用邏輯運算符 and or not

(2)group by 分組查詢

#1、首先明確一點:分組發生在where之后,即分組是基于where之后得到的記錄而進行的

#2、分組指的是:將所有記錄按照某個相同字段進行歸類,比如針對員工信息表的職位分組,或者按照性別進行分組等

#3、為何要分組呢?
    取每個部門的最高工資
    取每個部門的員工數
    取男人數和女人數

小竅門:‘每'這個字后面的字段,就是我們分組的依據

#4、大前提:

可以按照任意字段分組,但是分組完畢后,比如group by post,只能查看post字段,如果想查看組內信息,需要借助于聚合函數

當執行以下sql語句的時候,沒有報錯,但本身是沒有意義的

mysql> select * from employee group by post;
+----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| id | name  | sex  | age | hire_date | post                  | post_comment | salary   | office | depart_id |
+----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| 14 | 張野  | male  | 28 | 2016-03-11 | operation                | NULL     |  10000.13 |  403 |     3 |
| 9 | 歪歪  | female | 48 | 2015-03-11 | sale                  | NULL     |  3000.13 |  402 |     2 |
| 2 | alex  | male  | 78 | 2015-03-02 | teacher                 |       | 1000000.31 |  401 |     1 |
| 1 | egon  | male  | 18 | 2017-03-01 | 老男孩駐沙河辦事處外交大使       | NULL     |  7300.33 |  401 |     1 |
+----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
4 rows in set (0.00 sec)

設置sql_mode為ONLY_FULL_GROUP_BY,并且退出,再進入才會生效

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY';
Query OK, 0 rows affected (0.00 sec)

再次進入

mysql> select @@sql_mode;
+-----------------------------------------------------------------------------------+
| @@sql_mode |
+-----------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------

mysql> select * from emp group by post;//現在的情況下就會報錯
ERROR 1054 (42S22): Unknown column 'post' in 'group statement'
mysql> select * from employee group by post;
ERROR 1055 (42000): 't1.employee.id' isn't in GROUP BY
mysql> select post from employee group by post;
+-----------------------------------------+
| post                  |
+-----------------------------------------+
| operation                |
| sale                  |
| teacher                 |
| 老男孩駐沙河辦事處外交大使       |
+-----------------------------------------+
4 rows in set (0.00 sec)

或者如下使用

mysql> select name,post from employee group by post,name;
+------------+-----------------------------------------+
| name    | post                  |
+------------+-----------------------------------------+
| 張野    | operation                |
| 程咬金   | operation                |
| 程咬鐵   | operation                |
| 程咬銅   | operation                |
| 程咬銀   | operation                |
| 丁丁    | sale                  |
| 丫丫    | sale                  |
| 星星    | sale                  |
| 格格    | sale                  |
| 歪歪    | sale                  |
| alex    | teacher                 |
| jingliyang | teacher                 |
| jinxin   | teacher                 |
| liwenzhou | teacher                 |
| wupeiqi  | teacher                 |
| xiaomage  | teacher                 |
| yuanhao  | teacher                 |
| egon    | 老男孩駐沙河辦事處外交大使       |
+------------+-----------------------------------------+
18 rows in set (0.00 sec)

mysql> select post,count(id) from employee group by post;
+-----------------------------------------+-----------+
| post                  | count(id) |
+-----------------------------------------+-----------+
| operation                |     5 |
| sale                  |     5 |
| teacher                 |     7 |
| 老男孩駐沙河辦事處外交大使       |     1 |
+-----------------------------------------+-----------+
4 rows in set (0.00 sec)

(3)聚合函數

max()求最大值
min()求最小值
avg()求平均值
sum() 求和
count() 求總個數

#強調:聚合函數聚合的是組的內容,若是沒有分組,則默認一組
# 每個部門有多少個員工
select post,count(id) from employee group by post;
# 每個部門的最高薪水
select post,max(salary) from employee group by post;
# 每個部門的最低薪水
select post,min(salary) from employee group by post;
# 每個部門的平均薪水
select post,avg(salary) from employee group by post;
# 每個部門的所有薪水
select post,sum(age) from employee group by post;

(4)HAVING過濾

HAVING與WHERE不一樣的地方在于

#!!!執行優先級從高到低:where > group by > having
#1. Where 發生在分組group by之前,因而Where中可以有任意字段,但是絕對不能使用聚合函數。

#2. Having發生在分組group by之后,因而Having中可以使用分組的字段,無法直接取到其他字段,可以使用聚合函數

mysql> select * from employee where salary>1000000;
+----+------+------+-----+------------+---------+--------------+------------+--------+-----------+
| id | name | sex | age | hire_date | post  | post_comment | salary   | office | depart_id |
+----+------+------+-----+------------+---------+--------------+------------+--------+-----------+
| 2 | alex | male | 78 | 2015-03-02 | teacher |       | 1000000.31 |  401 |     1 |
+----+------+------+-----+------------+---------+--------------+------------+--------+-----------+
1 row in set (0.00 sec)

mysql> select * from employee having salary>1000000;
ERROR 1463 (42000): Non-grouping field 'salary' is used in HAVING clause

# 必須使用group by才能使用group_concat()函數,將所有的name值連接
mysql> select post,group_concat(name) from emp group by post having salary > 10000; ##錯誤,分組后無法直接取到salary字段
ERROR 1054 (42S22): Unknown column 'post' in 'field list'

練習

1. 查詢各崗位內包含的員工個數小于2的崗位名、崗位內包含員工名字、個數
2. 查詢各崗位平均薪資大于10000的崗位名、平均工資
3. 查詢各崗位平均薪資大于10000且小于20000的崗位名、平均工資

答案

mysql> select post,group_concat(name),count(id) from employee group by post;
+-----------------------------------------+-----------------------------------------------------------+-----------+
| post                  | group_concat(name)                    | count(id) |
+-----------------------------------------+-----------------------------------------------------------+-----------+
| operation                | 程咬鐵,程咬銅,程咬銀,程咬金,張野             |     5 |
| sale                  | 格格,星星,丁丁,丫丫,歪歪                 |     5 |
| teacher                 | xiaomage,jinxin,jingliyang,liwenzhou,yuanhao,wupeiqi,alex |     7 |
| 老男孩駐沙河辦事處外交大使       | egon                           |     1 |
+-----------------------------------------+-----------------------------------------------------------+-----------+
4 rows in set (0.00 sec)

mysql> select post,group_concat(name),count(id) from employee group by post having count(id)2;
+-----------------------------------------+--------------------+-----------+
| post                  | group_concat(name) | count(id) |
+-----------------------------------------+--------------------+-----------+
| 老男孩駐沙河辦事處外交大使       | egon        |     1 |
+-----------------------------------------+--------------------+-----------+
1 row in set (0.00 sec)

#題2:
mysql> select post,avg(salary) from employee group by post having avg(salary) > 10000;
+-----------+---------------+
| post   | avg(salary)  |
+-----------+---------------+
| operation | 16800.026000 |
| teacher  | 151842.901429 |
+-----------+---------------+
2 rows in set (0.00 sec)

#題3:
mysql> select post,avg(salary) from employee group by post having avg(salary) > 10000 and avg(salary) 20000;
+-----------+--------------+
| post   | avg(salary) |
+-----------+--------------+
| operation | 16800.026000 |
+-----------+--------------+
1 row in set (0.00 sec)

(5)order by 查詢排序

按單列排序

  SELECT * FROM employee ORDER BY age;
  SELECT * FROM employee ORDER BY age ASC;
  SELECT * FROM employee ORDER BY age DESC;

按多列排序:先按照age升序排序,如果年紀相同,則按照id降序

  SELECT * from employee
    ORDER BY age ASC,
    id DESC;

(5)limit  限制查詢的記錄數:

示例:

  SELECT * FROM employee ORDER BY salary DESC
   LIMIT 3;          #默認初始位置為0

  SELECT * FROM employee ORDER BY salary DESC
    LIMIT 0,5; #從第0開始,即先查詢出第一條,然后包含這一條在內往后查5條

  SELECT * FROM employee ORDER BY salary DESC
    LIMIT 5,5; #從第5開始,即先查詢出第6條,然后包含這一條在內往后查5條

 練習:每次顯示5條

# 第1頁數據
 mysql> select * from employee limit 0,5;
+----+-----------+------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| id | name   | sex | age | hire_date | post                  | post_comment | salary   | office | depart_id |
+----+-----------+------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| 1 | egon   | male | 18 | 2017-03-01 | 老男孩駐沙河辦事處外交大使       | NULL     |  7300.33 |  401 |     1 |
| 2 | alex   | male | 78 | 2015-03-02 | teacher                 |       | 1000000.31 |  401 |     1 |
| 3 | wupeiqi  | male | 81 | 2013-03-05 | teacher                 | NULL     |  8300.00 |  401 |     1 |
| 4 | yuanhao  | male | 73 | 2014-07-01 | teacher                 | NULL     |  3500.00 |  401 |     1 |
| 5 | liwenzhou | male | 28 | 2012-11-01 | teacher                 | NULL     |  2100.00 |  401 |     1 |
+----+-----------+------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
5 rows in set (0.00 sec)
# 第2頁數據
mysql> select * from employee limit 5,5;
+----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
| id | name    | sex  | age | hire_date | post  | post_comment | salary  | office | depart_id |
+----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
| 6 | jingliyang | female | 18 | 2011-02-11 | teacher | NULL     | 9000.00 |  401 |     1 |
| 7 | jinxin   | male  | 18 | 1900-03-01 | teacher | NULL     | 30000.00 |  401 |     1 |
| 8 | xiaomage  | male  | 48 | 2010-11-11 | teacher | NULL     | 10000.00 |  401 |     1 |
| 9 | 歪歪    | female | 48 | 2015-03-11 | sale  | NULL     | 3000.13 |  402 |     2 |
| 10 | 丫丫    | female | 38 | 2010-11-01 | sale  | NULL     | 2000.35 |  402 |     2 |
+----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
5 rows in set (0.00 sec)
# 第3頁數據
mysql> select * from employee limit 10,5;
+----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+
| id | name   | sex  | age | hire_date | post   | post_comment | salary  | office | depart_id |
+----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+
| 11 | 丁丁   | female | 18 | 2011-03-12 | sale   | NULL     | 1000.37 |  402 |     2 |
| 12 | 星星   | female | 18 | 2016-05-13 | sale   | NULL     | 3000.29 |  402 |     2 |
| 13 | 格格   | female | 28 | 2017-01-27 | sale   | NULL     | 4000.33 |  402 |     2 |
| 14 | 張野   | male  | 28 | 2016-03-11 | operation | NULL     | 10000.13 |  403 |     3 |
| 15 | 程咬金  | male  | 18 | 1997-03-12 | operation | NULL     | 20000.00 |  403 |     3 |
+----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+
5 rows in set (0.00 sec)

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:
  • MySQL中聚合函數count的使用和性能優化技巧
  • MySQL常用聚合函數詳解
  • MySql 中聚合函數增加條件表達式的方法
  • php+mysql開源XNA 聚合程序發布 下載
  • Mysql無法選取非聚合列的解決方法
  • MySQL查詢排序與查詢聚合函數用法分析
  • MySQL使用聚合函數進行單表查詢
  • MySQL 分組查詢和聚合函數
  • mysql連續聚合原理與用法實例分析
  • mysql聚合統計數據查詢緩慢的優化方法

標簽:河北 來賓 陽江 鞍山 果洛 赤峰 黃石 煙臺

巨人網絡通訊聲明:本文標題《MySQL單表查詢操作實例詳解【語法、約束、分組、聚合、過濾、排序等】》,本文關鍵詞  MySQL,單表,查詢,操作,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL單表查詢操作實例詳解【語法、約束、分組、聚合、過濾、排序等】》相關的同類信息!
  • 本頁收集關于MySQL單表查詢操作實例詳解【語法、約束、分組、聚合、過濾、排序等】的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    最新久久zyz资源站| 国产午夜亚洲精品不卡| 欧美日韩三级在线| 国产欧美日韩不卡| 国产一区二区三区av电影| 欧美日韩精品一区二区三区蜜桃| 国产精品国产三级国产普通话99| 国产成人一区在线| 久久亚洲捆绑美女| 极品美女销魂一区二区三区免费| 精品久久人人做人人爰| 美国三级日本三级久久99| 精品视频1区2区3区| 亚洲一区欧美一区| 欧美一区二区在线免费观看| 五月婷婷综合在线| 日韩一区二区影院| 精品一区二区在线免费观看| 国产清纯白嫩初高生在线观看91 | 国产成人亚洲精品青草天美| 麻豆成人免费电影| 欧美一区二区精美| 看国产成人h片视频| 欧美精品一区二区三区蜜桃| 国产精品一线二线三线精华| 国产精品精品国产色婷婷| 日韩女优毛片在线| 蜜桃av噜噜一区二区三区小说| 日韩欧美在线123| 国产麻豆精品视频| 亚洲男同性恋视频| 日韩视频免费观看高清完整版 | 亚洲免费观看高清在线观看| 99久久精品免费| 亚洲综合视频在线观看| 日韩一区二区三区观看| 国产福利91精品一区二区三区| 欧美激情综合在线| 欧美三级日韩三级国产三级| 国产精品一区三区| 亚洲天堂福利av| 日韩一区二区三区免费观看| 亚洲色图视频网| 欧美午夜理伦三级在线观看| 午夜免费欧美电影| 国产精品欧美极品| 欧美一区二区三区日韩| 91麻豆国产福利在线观看| 日本美女视频一区二区| 中文av字幕一区| 精品国产免费人成在线观看| 亚洲高清不卡在线观看| 国产日韩av一区二区| 欧美日韩激情一区| 99久久伊人精品| 极品少妇xxxx偷拍精品少妇| 午夜精品久久久久久久久久| 亚洲免费观看高清在线观看| 中文字幕在线不卡一区二区三区| 在线播放亚洲一区| 在线亚洲人成电影网站色www| 国产成人亚洲综合a∨婷婷| 日本sm残虐另类| 亚洲最大成人综合| 国产精品区一区二区三| 欧美二区三区91| 91污在线观看| 成人一级片在线观看| 国产一区二区三区免费看| 久久精品国产**网站演员| 亚洲欧美一区二区三区国产精品| 国产亚洲欧洲997久久综合| 精品国产免费久久| 精品国产自在久精品国产| 欧美一区二区成人| 国产精品丝袜91| 欧美喷潮久久久xxxxx| 欧美亚洲高清一区| 337p亚洲精品色噜噜噜| 欧美日韩一区二区三区视频| 欧美日韩国产美女| 免费一区二区视频| 激情图片小说一区| 国产精品一区二区免费不卡| 国产精品综合久久| 成人av在线网站| 欧美最猛黑人xxxxx猛交| 欧美日韩亚洲另类| 日韩一级大片在线| 精品日韩欧美一区二区| 国产亚洲成av人在线观看导航 | 99久久婷婷国产综合精品电影| 91啪亚洲精品| 欧美日韩国产高清一区二区三区 | 中文字幕在线一区二区三区| 欧美国产视频在线| 中文幕一区二区三区久久蜜桃| 国产精品人妖ts系列视频| 一区二区三区四区蜜桃| 日本亚洲天堂网| 国产麻豆视频一区二区| 暴力调教一区二区三区| 欧洲精品中文字幕| 8x8x8国产精品| 国产午夜精品在线观看| 亚洲日本一区二区三区| 日韩精品一二三区| 风间由美一区二区三区在线观看 | 日日夜夜精品视频免费| 久久女同精品一区二区| 国产精品免费视频观看| 最新国产成人在线观看| 三级久久三级久久| 国产高清精品久久久久| 91精品办公室少妇高潮对白| 3d成人h动漫网站入口| 精品国产91亚洲一区二区三区婷婷 | 亚洲精品中文在线观看| 日韩成人一级片| 国产精品99久久久久久久vr| 色综合一区二区| 久久久三级国产网站| 日韩av在线播放中文字幕| 成人网在线播放| 一本到不卡免费一区二区| jiyouzz国产精品久久| 91精品国产一区二区三区蜜臀| 国产精品久久久久9999吃药| 日韩精品亚洲专区| 色欧美乱欧美15图片| 国产视频一区不卡| 久久se精品一区精品二区| 欧美高清视频一二三区| 亚洲综合免费观看高清在线观看| 国产成人激情av| 国产三级一区二区| 国产一区二区看久久| 3d动漫精品啪啪一区二区竹菊| 亚洲国产中文字幕| 欧美午夜一区二区三区| 亚洲午夜羞羞片| 欧美日韩午夜影院| 亚洲成av人片观看| 在线视频国内一区二区| 成人高清视频免费观看| 久久婷婷国产综合国色天香| 日韩一区二区三区四区五区六区| 国产精品水嫩水嫩| 精品制服美女久久| 国产成人在线看| 国产精品白丝av| 久久疯狂做爰流白浆xx| 在线不卡的av| 最新欧美精品一区二区三区| 色婷婷国产精品| 中文字幕亚洲视频| 国产美女精品在线| 欧洲av在线精品| 亚洲精品一区二区三区影院| 蜜桃视频免费观看一区| 久久色.com| 欧美性色aⅴ视频一区日韩精品| 日韩精品一区二区三区老鸭窝 | 欧美一级在线观看| 图片区小说区区亚洲影院| 欧美日韩成人综合天天影院| 国产精品美女视频| 成人免费高清在线| 久久女同互慰一区二区三区| 色综合天天综合狠狠| 欧美高清在线精品一区| 91麻豆精品在线观看| 色噜噜狠狠色综合中国 | 色一情一乱一乱一91av| 成人欧美一区二区三区白人| 欧美日韩三级在线| 奇米在线7777在线精品| 久久人人爽人人爽| 日韩欧美的一区二区| 欧美伦理影视网| 蜜臀国产一区二区三区在线播放| 99国产精品视频免费观看| 国产精品久久久久久户外露出| 国产91精品在线观看| 亚洲va天堂va国产va久| 91精品国产综合久久福利软件| 秋霞av亚洲一区二区三| 久久综合一区二区| 97se亚洲国产综合在线| 51久久夜色精品国产麻豆| 久久精品72免费观看| 亚洲欧洲三级电影| 国产午夜精品在线观看| 成人看片黄a免费看在线| 久久日一线二线三线suv| 国产精品私人影院| 国产欧美一区二区精品秋霞影院| 亚洲免费观看高清| 欧美疯狂性受xxxxx喷水图片| 三级亚洲高清视频|