本部分内容主要包括:MySQL中常用的条件查询语句(where)、模糊查询语句(like)、分组语句(group by)、聚合函数(having)、排序语句(order by)。


P18 简单查询语句

1.查询指定的列的数据:

select 列名1,列名2,… From 表名;

  • 注:select * from table student;不对,select不跟table关键字

2.条件查询:在查询时给出where子句,在where子句中可以使用一些运算符号及关键字;

SELECT * from student WHERE id = 1001;
SELECT * from student WHERE id =1001 AND stu_age = 3;

P19 灵活运用上述判断字符:

• select * from student where stu_gender = '男' and stu_age = 20;
• select * from student where stu_gender = 1001 or stu_name = 'zs';
• select * from student where id =1001 or id=1002 or id=1003;
或者 select * from student where id between 1001 and 1003;【包括头尾】
或者 select * from student where id in(1001,1002,1003);
• select * from student where stu_age is NULL;数值型缺省时是null,字符型缺省时是空字符串'   '和null不一样;
• select * from student where stu_age >=18 and stu_age<=20;
或者select * from student where stu_age between 18 and 20;
• select * from student where gender != '男';
• select * from student where stu_name is not null;
查询空字符串的记录:select * from student where stu_name = ' ';s

P20 模糊查询(给一个通配符可以代替一些字符)

  • 查询姓名由五个字母构成的学生记录:
select * from student where stu_name like '_____';

• 查询姓名由5个字符构成且第五个字符为e的学生记录
select * from student where stu_name like '____e';
• 查询姓名以“m”开头的学生记录
select * from student where stu_name like 'm%';
• 查询姓名中第二个字母为u的学生记录
select * from student where stu_name like '_u%';
• 查询姓名中包含“s”字母的学生记录
select * from student where stu_name like "%s%";

P21 字段控制查询

  • 去重查询:select distinct stu_name from student;
  • 把年龄和分数相加:
select stu_age,stu_score,stu_age+stu_score from student;

  • 对字段ifnull(XXX,某个值)处理之后:
select stu_age,stu_score,ifnull(stu_age,1)+ifnull(stu_score,0) FROM student;

  • 做完处理之后列名太长作为一个别名:
select stu_age,stu_score,ifnull(stu_age,1)+ifnull(stu_score,0) as res FROM student;

P22 排序语句

  • 让选出来的数据从小到大的升序排列:SELECT * from employee ORDER BY salary;
  • 让选出来的数据从大到小的降序排列:select * from employee order by salary desc;
  • 两层排序:查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序
select * from employee order by salary desc, id asc;

P23 聚合函数(对查询的结果进行统计)-进行统计时注意使用ifnull:

  • 查询employee表中记录数(返回一个数字):select count(*) from employee;
  • 查询employee表中绩效manage不为空的记录数:
select count(manage) from employee where manage is not null;

  • 统计员工表中月薪大于2500的人数:
SELECT COUNT(*) from employee WHERE salary > 2500;

  • 统计月薪和绩效之和大于5000的人数:
select count(*) from employee WHERE salary+ifnull(performance,0)>2500;

  • 最后一个:select count(manage), count(performance) from employee;
• select sum(salary) from employee;
• select sum(salary),sum(performance) from employee;
• select sum(ifnull(salary,0)+ifmull(performance,0)) from employee;
• select avg(ifnull(salary,0)+ifnull(performance,0)) as avga from employee;
最大工资和最小工资:select max(salary),min(salary) from employee;

P25 分组操作(将查询结果按一个或多个字段分组,字段值相同分为一组)

原来的表:

• 希望把记录按照男女去分组:
select * from employee group by gender;单独使用只会出现第一条记录;
• 按照性别分组之后,这些人的名字分别叫什么:
select group_concat(name) from employee group by gender;

P26 分组与聚合函数【重点关注】

  • 按照男女分组出来姓名和薪水(此时还是只是简单地堆积在一起)再用聚合函数进行统计(是按组里面的统计的):
  • 查询每个部门部门名称及每个部门人数:【切记看到“每个”这个字眼后面的被修饰词就是要分组】:
也可以写成:select department, group_concat(name), count(*) from employee group by department;

  • 查询每个部门的部门名称及每个部门薪资大于1500的人数:【count(*),sum(*)不对,sum只能针对某个字段】
select department,group_concat(salary) from employee where salary>1500 group by department; 

P27 group by 加上having【对分组后的结果再进行筛选,having不能离开group by】;where在group by之前

select department,group_concat(salary),sum(salary) from employee where salary>1500 group by department;

  • 对分组后的结果再进行筛选:
select department,group_concat(salary),sum(salary) from employee where salary>1500 group by department having sum(salary)>9000;

P28 having和where的区别

注意点!!!:where后面不能用聚合函数【where sum(salary)>900错】,having后可以;

  • 查询工资大于2000的,工资总和大于6000的部门名称以及工资和:
select department, sum(salary) from employee where salary>2000 group by department having sum(salary)>6000;

  • 还可以在后面加上order by;
select department, sum(salary) from employee where salary>2000 group by department having sum(salary)>6000 ORDER BY SUM(salary) DESC;

bcp 不能调用where 子句_三、p18-28条件查询、分组聚合、排序where/group by/having/order by...相关推荐

  1. bcp 不能调用where 子句_技术分享 || Mysql中IS NULL、IS NOT NULL不能走索引?

    mysql中IS NULL.IS NOT NULL不能走索引? 不知道是啥原因也不知道啥时候, 江湖上流传着这么一个说法 mysql查询条件包含IS NULL.IS NOT NULL.!=.like ...

  2. bcp 不能调用where 子句_MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

    不知道从什么时候开始,网上流传着这么一个说法: MySQL的WHERE子句中包含 IS NULL.IS NOT NULL.!= 这些条件时便不能使用索引查询,只能使用全表扫描. 这种说法愈演愈烈,甚至 ...

  3. mysql数据库查询要注意事项_三种mysql高级查询技巧_数据库_mysql函数_课课家

    大家都知道GROUP BY,但是大家知道GROUP BY后面可以带哪些函数吗?今天给大家介绍下GROUP BY后面可以带的函数. 1GROUP_CONCAT 在MySQL中,你可以获取表达式组合的连接 ...

  4. mysql group 分页_【MySQL】条件查询之排序聚合分组分页查询

    排序查询 语法:order by 子句 order by 排序字段1 排序方式1 , 排序字段2 排序方式2... 排序方式: ASC:升序,默认的. DESC:降序. 注意: 如果有多个排序条件,则 ...

  5. mysql 关闭in自动排序_为什么MySQL的in查询会自动排序

    $id_arr = array(2,6,3,10);//排好序的id列表 $sql = "select user,id from user_member where id in (" ...

  6. mysql的select的排序_mysql数据分组和排序及SELECT子句顺序

    mysql分组和排序 虽然 GROUP BY 和 ORDER BY 经常完成相同的工作,但它们是非常不同的.下表汇总了它们之间的差别. 表中列出的第一项差别极为重要.我们经常发现用 GROUP BY ...

  7. react组件卸载调用的方法_好程序员web前端培训分享React学习笔记(三)

    好程序员web前端培训分享React学习笔记(三),组件的生命周期 React中组件也有生命周期,也就是说也有很多钩子函数供我们使用, 组件的生命周期,我们会分为四个阶段,初始化.运行中.销毁.错误处 ...

  8. 递归_三要素_基础算法必备

    递归_三要素_基础算法必备 目录 第一要素:明确函数作用 第二要素:递归结束条件 第三要素:函数等价关系 第一要素:明确函数作用 对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么 ...

  9. sql limit 子句_具有并行性SQL Server TOP子句性能问题

    sql limit 子句 TOP操作员基础 ( Basics of TOP Operator ) The TOP keyword in SQL Server is a non-ANSI standar ...

  10. JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析

    JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析 业务分析 初版的问题 解决方案 传统的 for 循环 不使用 for 循环的解决方案 分析 forEach ...

最新文章

  1. python数据分析神器_牛逼啊!一个随时随地写Python代码的神器
  2. cocos android-1,cocos2dx在windows下开发,编译到android上(1)
  3. 2017.3.25 魔术球问题 思考记录
  4. Android 应用开发(第四章)---手机海外市场移动应用
  5. .NET配置文件在写入时损坏
  6. 营销再好终归还要产品说话,留给大神X7的时间不多了
  7. 1.微服务:从设计到部署 --- 简介
  8. 如何设计一个与微信相同的分享sdk
  9. 再聊如何通过基金定投达到十年十倍?
  10. 【MM32F5270开发板试用】+ TFTLCD IO口方式驱动
  11. 我的第一篇博客-Hello World
  12. Ruby电子书教程、经典脚本合集
  13. LGWR waits for event ‘DLM cross inst call completion’ 故障排除
  14. Python 数据挖掘之中医证型关联规则挖掘
  15. 谈谈利用统计工具做好网站数据分析
  16. MuiPlayer - 一款优秀的 H5 视频播放器框架
  17. VB控件实现IObjectSafety安全接口(zt)
  18. 视频监控知识100问
  19. android接入阿里百川商务SDK
  20. matlab 矿相分析,相平面分析matlab程序

热门文章

  1. 分享一个导出数据到 Excel 的类库
  2. 存储过程中“ 警告: 聚合或其他 SET 操作消除了 Null 值” 导致错误的解决
  3. Phalanger 【Php on .net】
  4. 使用Jenkins搭建持续集成环境的方法(三)
  5. aspx反射调用方法
  6. [bzoj5301][Cqoi2018]异或序列
  7. Linux运维基础入门(二):网络基础知识梳理02
  8. 【原创】SM4password算法源代码接口具体解释
  9. 安卓项目R,java文件不能自动更新,clean之后,R.java消失 (转自 Cynosure鱼)
  10. mac osx 下gcc升级导致sac101.6a编译失败解决办法