mysql入门:表的操作(二):基本查询(一)(DML)

查询是数据库中最重要和最繁琐的工作之一,也是开发人员经常使用的,查询方式也有多种且可以相互嵌套。
在讲查询之前,我先讲讲sql语句的执行顺序。sql语句的执行顺序是:从下往上,从里往外的顺序执行。
什么意思呢?比如:select * from emp where ename="yanxueer"将它格式化:

select  * 
    from  emp
      where ename="yanxueer"

它默认先执行的是from emp where ename="yanxueer"在找到对应的表并且满足where条件后,输出select *这就是从下往上。
那么什么叫从里到外呢?
就如同数学中的运算符的优先级一样,如:((1+2)*3)+4永远先执行最里面括号里的1+2然后再拿1+2的值与外层括号中的3相乘,最后再和4相加是一个道理。因为子查询中,会牵扯到括号,还有多层子查询,括号套括号。理论是可以嵌套无数层的但并不建议你那样去做。
注:如果实在分不清执行的先后顺序,那么就把你分不清的地方用()括起来,括号里面的先执行,这样可以帮助你去理解。目前你只需要知道,是先执行了from后面的操作之后再执行"*"部分的
现在我们开始这篇的正文:表的查询。
1.基本查询
--1.1基本查询语句

SELECT * FROM 表名 [WHERE CONDITION]    //where作为判断条件,可以省略。

我们已经学习了增、删、改。那么应该只能where条件是可以省略的,但是省略后与加上是有明显差异。where起到一个筛选的功能,不满足条件的全部过滤掉,比如:根据性别、年龄等,进行限制
语句中的*是通配符,学过前端html/css的同学应该知道,默认代表全部。即显示查询后的全部信息。我们也可以写成
select name,age from emp where age>20;即显示年龄大于20岁的人的姓名和年龄,其他信息不显示。

基本查询.png

--1.2去重

distinct          //去除重复的关键字

因为我们可能查到的结果中会出现很多重复的数据,比如当两张表中都存在同一个人的时候而我们想得到的数据是不希望重的那么我们所查到的结果明显已经不能满足我们的需求了。那么这个时候就可以通过distinct这个关键字达到去重的效果。

去重.png

--1.3条件查询
条件查询也就是之前我们一直在使用的where关键字。通过where判断是否满足条件。筛选出满足我们条件的信息。(上面的例子中已经演示,在此不再重复)
--1.4排序和限制。

order by            //order by 中默认有两个关键字[DESC|ASC],升序和降序,可以精确到根据某一列进行排序,默认为升序。

ASC为升序。默认为升序。

asc排序.png

DESC为降序。

desc排序.png

--1.5"LIMIT"关键字

LIMIT      //显示几行信息

对于查询或者排序后的信息,我们希望只显示一部分,而不是全部,这时,就可以使用limit 来实现

limit.png

limit还有一个分常重要的功能那就是分页。、
limit 经常和 order by 一起配合使用来进行记录的分页显示。
什么是分页呢?
就是当我们查询到的信息太多,一个页面无法显示。就需要分成许多个页面来显示,比如:

分页.png

就如同这样。三大数据库实现的分页的方式不同,在MySQL中用到limit关键字,而sql server中是top,以及oracle中的rownum。目前我们只需要知道limit可以实现分页功能即可。
--1.6having关键字
having 关键字表示对分类后的结果再进行条件的过滤。
having就是在所有语句都执行完,输出结果时再进行了一次筛选,然后输出最后的结果,我们可以举一个例子帮助大家理解:
比如:

  原本没having的语句相当于1+1 ,而此时有了having之后就相当于(1+1)+1;就是在之前的结果上再加了1.它的执行是建立在结果上的。
  select * from emp where age >19 ;的结果应该是全部输出,因为表中没有年龄小于19的员工。而select * from emp where age >19 having age>20;
  就是在这个输出的结果上再次做了一个判断如同 select * from(select * from emp where age >19 ) where age >20;
  这里的(select * from emp where age >19 )我们可以把它看成一张表,因为它本身输出的也是一张表,这本身就是子查询的概念。没有理解的就暂且把它当成一张表去看。
having.png
注意:having 和 where 的区别在于 having 是对聚合后的结果进行条件的过滤,而 where 是在聚
合前就对记录进行过滤,如果逻辑允许,我们尽可能用 where 先过滤记录,这样因为结果
集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用 having 进行再过滤。

--1.7GROUP BY聚合函数
聚合函数:也就是函数操作,把数据聚合在一起。
常用的有:sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
group by关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门
就应该写在 group by 后面。

count(*) .png

聚合函数.png
groupby.png
注:count是统计某个字段值的重复数量的,group by就是判断根据什么判断的比如姓名,要求把所要显示的字段,除了count所包含的字段以外,
其他字段的字段名,都写进group by中。sum是求和的就把该字段的数值全部相加,输出结果。注意不要把sum和count搞混了。

--1.8WITH ROLLUP
with rollup是可选语法,表明是否对分类聚合后的结果进行再汇总.
为了改加方便查看countwith rollup,我给表中的部门添加了wangwangy并且部门号都为1
我们来看看sql语句作用:
1.统计了各个部门的人数;
2.既统计了各部门人数,又统计了总人数;
3.作为对比方便大家理解示范。

withrollup.png

2.命令总结

//查询语句
SELECT * FROM 表名 [WHERE CONDITION]    //where作为判断条件,可以省略。
//去除重复的关键字
distinct       
//排序
order by            //默认为升序。 DESC为降序,ASC为升序。
//分页
LIMIT      //显示几行信息
//having
having 关键字表示对分类后的结果再进行条件的过滤。  //注意与where的区别
//GROUP BY和聚合函数
group by  字段名  //要进行分类聚合的字段就写在group by后面。
常用聚合函数:sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
//with rollup
with rollup是可选语法,表明是否对分类聚合后的结果进行再汇总

小白出品!不喜勿喷!

  生活总会给你第二次机会,叫明天。  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容