[MySQL] 单表查询中的子句:where、order by 、group by、having

1.1 where子句

1 select location "where is waldo?" 
2 from puzzle
3 where name ='waldo';

在where子句中使用列name,但select中没有提及。

MySQL允许:where子句使用select中未出现的列。

location 关键字代表一个未知的列名。

 

1.2 order by子句

1.2.1按照单一值排序

默认是升序ASC,一般不写,这里排降序DESC

1 select *
2 from checks
3 order by check DESC

1.2.2按照多个值排序(多个字段)

1 select *
2 from checks
3 group by payee ASC ,remarks DESC;

*注意 :这里的payee和remarks有先后。是先按照支付人的字母序排列,再安装备注的字母序倒序排列。

1 select payee, amount,remarks
2 from checks
3 order by check#;

MySQL允许:order by 子句使用 select中未出现的列。

 

1.3 group by子句

1.3.1单独使用group by

 

 1 create table checks
 2 (`check`          integer       not null,
 3  payee          varchar(20)      not null,
 4  amount         decimal(6,2)     not null,
 5  remarks        varchar(20)     not null);
 6 
 7 insert into checks values
 8 ('1', 'Ma Bell', '150', 'Have sons next time'),
 9 ('2', 'Reading R.R.', '245.34', 'Train to Chicago'),
10 ('3', 'Ma Bell', '200.32', 'Celluar Phone'),
11 ('4', 'Local Utilities', '98', 'Gas'),
12 ('5', 'Joes Stale $ Dent', '150', 'Groceries'),
13 ('6', 'Cash', '25', 'Wild Night Out'),
14 ('7', 'Joans Gas', '25.1', 'Gas');
1 select payee from checks
2 group by amount;

列出支付了不同钱数的支付人。(错误的!!!

group by 使用了未在select中出现的列。

实际上,select子句中的列必须出现在group by子句中。

不要在select中使用既不聚合也不在group by子句中的列。

 

1.3.2聚合函数与group by子句

 

 

转载于:https://www.cnblogs.com/echocherish/p/8981843.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值