流程函数

类似与java中的判断情况 的学习

实际应用:

-- 满足条件执行 第一个逗号后面的  否则执行第二个逗号
SELECT ename,sal,IF(sal<2500,'低于2500','高于2500') as'工资状态' from emp

-- ifnull  如果不为空 就是括号里第一个值,如果为空就是第二个值
select ename,sal,comm,sal+IFNULL(comm,0)as'到手工资=工资加津贴comm' from emp

select ename,sal,
case when sal<2500 then  '工资低于2500'
else '工资高于2500'
end  as '工资水平'
from emp

-- 多分枝判断语句
select ename ,sal,
case when sal<2000 then '工资小于2000'
when sal<2500 then '工资小于2500但是大于2000'
ELSE '工资大于2500'
end as '工资水平'
from emp

SELECT ename,max(sal)-- 最大工资人名:
from  emp-- 最小工资人的全部信息
select *,min(sal)
from emp-- count 是用于记录查询数据的,可以查看表中有多少记录 -----行
select count(*)
from emp-- 平均数
SELECT avg(sal)as'平均工资'
from emp

多行函数通常可以与group by关键字一起使用,group by的作用就是分组

我们也可以称之为  一类一类,比如说查某个部门工资,这样一类一类的  举例说明

-- 查询职位对应 工资情况
SELECT job,MIN(sal)
FROM empGROUP BY job--查询每种职位的最高薪水,每种职位的人数
select job,max(sal),count(*) from emp group by job;--查询每个部门的最高薪水,部门总人数
select job,max(sal),count(*) from emp where deptno is not null group by deptno;

having 是搭配group by来使用了,他和where的使用方法一致,但是此时,

where是使用分组前的 列名来进行条件判断,where中只能写字段名

having 是可以使用group by之后的数据进行查询

--查询每个部门的总人数,
select  deptno,count(*) from emp where deptno is not null group by deptno;--查询每个部门的总人数多于5人的部门
select  deptno,count(*) from emp where deptno is not null group by deptno
having count(*)>5;
--  where 是对基本表中符合条件的数据进行分组  ,where之后只能放字段(列名)--  having是对分组查询之后的“虚拟表”进行的条件限定,-- having 之后可以放分组函数,也可以放字段(列名)select  deptno,count(*) from emp  group by deptno
having deptno is not null and count(*) >5;

最后一个关键字叫order by ,排序 ,对查询结果进行排序,升序asc和降序 desc

-- 查询员工的编号,姓名,薪水,按照薪水降序排序
select empno,ename,sal from emp ORDER BY sal desc;-- 查询每种职位的平均薪水,按照薪水降序
select job,avg(sal) from emp group by job order by avg(sal) desc;
-- 查询每个部门的最高薪水,排序薪水小于3000的部门,按照薪水降序select deptno, max(sal)from emp where deptno is not NULL
group by deptno having max(sal)>=3000 order by max(sal) desc;-- 查询员工的编号,姓名,入职时间,入职时间升序
select empno,ename,hiredate from emp order by hiredate asc;

单表查询的语法为:
select ... from ..[where]....[group by]..[having] ...[order by asc/desc];

执行顺序
  from  where  group by  select   having   order by

模糊查询以及一些常用的查询方式

like,between ...and...   in('  ','  ')

like只用于字符型
select * from emp where ename='SMITH'  -- 等值查询-- 模糊查询,查询的结果不确定,比如说,查询姓名中含有M的员工信息
-- 需要使用通配符   %  -->代表0个或多个字符   _  -->代表一个字符
select * from emp  where ename  like '%M%';-- 查询姓名中第一个字符是M的员工信息
select * from emp where ename like 'M%';-- 查询姓名中第三个字符是M的员工信息
select * from emp where ename like '__M%';还有between...and 相当于 >= and <=
--查询薪水在2000到5000之间的员工信息
select * from emp where sal>=2000 and sal<=5000 order by sal ;  -- and是逻辑运算符 “与”
select * from emp where sal>=2000 && sal<=5000 order by sal ;-- MySQL可以,oracle不可以
select * from emp where sal between 2000 and 5000 order by sal;
select * from emp where sal between 5000 and 2000 order by sal; -- 没有查到数据--查询1980年1月1日到1985年12月31日入职的员工信息
select * from emp where hiredate>='1980-1-1' and hiredate<='1985-12-31' order by hiredate;
select * from emp where hiredate between '1980-1-1' and '1985-12-31' order by hiredate;-- in,在指定的集合中选择其一即可,相当于or   或者
-- 查询 职位是职员,销售或者是分析师的员工信息
select * from emp where job='CLERK' OR JOB='SALESMAN' OR JOB='ANALYST' order by job;
select * from emp where job in('CLERK','SALESMAN','ANALYST')order by job;

MYSQL 数据库基础(三 流程函数的学习,多行函数相当于统计计算等等、group by的使用、goup by衍生出的having、排序关键字order by、升序ASC、降序DESC、模糊查询等)相关推荐

  1. Mysql数据库基础大全

    关系型数据库:表 非关系型数据库:不支持连接查询,它的数据是独立设置的 反引号区分Mysql保留字的 列–>字段 decimol(13,2) :浮点数字长度13位小数点后面有两位 AUTO_IN ...

  2. 数据库升序和降序查询

    desc是降序: asc是升序 默认:查询 加上 order by [列名] [方法] 如:升序 select sid from t_s order by sid asc; 降序: select si ...

  3. Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构

    第一部分:Mysql数据库基础知识(一)之 基础查询----分组查询 第二部分:Mysql数据库基础知识(二)之 连接查询----子查询-----分页查询------union联合查询 第三部分:My ...

  4. MySQL数据库基础(五)——SQL查询

    MySQL数据库基础(五)--SQL查询 一.单表查询 1.查询所有字段 在SELECT语句中使用星号""通配符查询所有字段 在SELECT语句中指定所有字段 select fro ...

  5. MySQL数据库(三):数据库设计与查询语句

    MySQL数据库:数据库设计与查询语句 1.1 目录 文章目录 1.1 目录 1.2 数据库基本概念 1.3 实体和实体之间的关系 1.3.1 一对多 1:N 1.3.2 一对一(1:1) 1.3.3 ...

  6. (19)一篇掌握MySQL数据库基础下 基本操作(外键约束、建表原则、多表查询、子查询)

    MySQL数据库基础下 一.修改表--添加外键约束 二.多表之间的建表原则 1.建数据库原则:通常情况下,一个项目/应用建一个数据库 2.多表之间的表原则: (1)一对多:分类和商品 (一个分类对应多 ...

  7. MySQL数据库基础详解

    文章大纲 一.数据库简介 二.Mysql数据库简介 三.Mysql安装与服务启动(Windows版本) 四.Mysql图形化工具 五.Mysql存储引擎精讲 六.Mysql数据类型介绍 七.Mysql ...

  8. MySQL数据库基础详解(非原创)

    文章大纲 一.数据库简介 二.Mysql数据库简介 三.Mysql安装与服务启动(Windows版本) 四.Mysql图形化工具 五.Mysql存储引擎精讲 六.Mysql数据类型介绍 七.Mysql ...

  9. Linux Mysql 数据库基础

    目录 Linux Mysql 数据库基础 一.数据库 数据库简介 数据库的分类 数据库的发展史 数据库系统发展阶段 DBMS 数据库管理系统 数据库管理系统的优点 数据库管理系统的基本功能 数据库系统 ...

最新文章

  1. 为什么使用mq?具体的使用场景是什么?
  2. ファイルアップロード関連のjQueryプラグイン10攻略
  3. 每日英语:Go Ahead, Hit the Snooze Button
  4. 管理项目的问题跟踪器的提示
  5. Libelle(容灾)
  6. 第三章:顺序栈及其应用之三---数制转换
  7. 编译器——指令的汇编
  8. matlab环境下图像分形维数的计算,MATLAB环境下图像分形维数的计算_杨书申
  9. 没有无线网络设备时如何共享无线网络
  10. access考试素材_access数据库考试试题及答案.doc
  11. 计算机科学与技术学科带头人,计算机专业学科带头人—陆玉昌教授
  12. 下一个20年: 从搜索经济到算法经济 (从B站跨年爆红 等想到的)
  13. DDD 实战 (11):冲刺 1 代码 TDD 实现之道
  14. 前端需要了解的5G网络知识
  15. ffmpeg批量从视频中提取出mp3音频
  16. 视频无损编辑、截取工具
  17. tcp短连接TIME_WAIT问题解决方法大全(1)——高屋建瓴
  18. 一键通(手机实现对讲机功能)
  19. 立根铸魂 崛起数智时代 欧拉部署超300万套
  20. ORB-SLAM2代码详解08: 局部建图线程LocalMapping

热门文章

  1. 突破游戏驱动级反外挂保护
  2. wse抓包_WSE和时间戳记-TimeZones和Tijuana
  3. 搭建关卡修、向管卡放置物体、改天空颜色
  4. 大数据知识图谱的系统工程观
  5. 免费翻译软件-批量自动一键翻译
  6. 「Activiti精品 悟纤出品」流程模型搭建-小试牛刀 - 第324篇
  7. 计算机应用技术生产实践报告,计算机应用技术毕业实习报告.docx
  8. urllib.quote
  9. 处理中文分词 ik分词器以及拓展和停止字典
  10. BadCopy Pro光盘恢复工具的使用