1、按照 job 和薪水倒序排序:

select ename,job,sal from emp order by job desc,sal desc;

2、substr()截取子串

该函数接收3个参数:substr(被截取字段名称,起始下标,截取长度),起始下标从1开始。

查询并显示所员工姓名的第二个字母:

select substr(ename,2,1) from emp;

3、length()获取字段长度

取得员工姓名长度

select ename,length(ename) as nameLength from emp;

4、查询员工姓名及补助,如果补助为Null设置为0;

select ename,ifnull(comm,0) from emp;

5、case…when…then…else…end

匹配工作岗位,当为MANAGER时,薪水上调10%,当为SALESMAN时,薪水上调50%,其它岗位薪水不变。

case job
when ‘MANAGER’ then sal * 1.1
when ‘SALESMAN’then sal * 1.5
else sal
end

在select语句中使用:

select ename, sal, job, 

    (case job
when ‘MANAGER’ then sal * 1.1
when ‘SALESMAN’then sal * 1.5
else sal
end) as newsal from emp;

6、round()四舍五入

该函数接收两个参数round(数字,保留的小数位数)

查看员工薪水保留1位小数:

select round(sal,1) from emp;

7、使用str_to_date()函数查询02-20-1981年入职的员工:

select ename,hiredate from emp where hiredate = str_to_date('02-20-1981','%m-%d-%Y'); 

8、date_format()格式化日期
该函数接收两个参数,date_format(日期类型数据,’日期格式’)

查询员工的入职日期,以’10-12-1980’的格式显示到窗口中;

select ename,date_format(hiredate,'%m-%d-%Y') hiredate from emp ;

9、取得补助不为空的员工数:

select count(comm) from emp;

说明:count()函数不会统计数据为null的记录


10、distinct去除重复记录

作用:将查询结果中某一字段的重复记录去除掉
用法:distinct 字段名或 distinct字段名1, 字段名2…
注意:distinct只能出现在所有字段最前面,后面如果有多个字段及为多字段联合去重。

查询公司有哪些工作岗位:

select distinct job from emp;

去除部门编号deptno和工作岗位job重复的记录:

select distinct job,deptno from emp;

11、group by 分组

计算每个工作岗位的最高薪水,并且按照由低到高进行排序:

select job,max(sal) as maxsal from emp group by job order by maxsal;

12、计算除了manager之外的每个工作岗位的最高薪水:

select job,max(sal) as maxsal from emp where job <> 'MANAGER' group by job;

13、having过滤
作用:如果想对分组的数据进行过滤,需要使用having子句。

找出每个工作岗位的平均薪水,要求显示平均薪水大于2000的:

select job,avg(sal) from emp group by job having avg(sal) > 2000;

14、where和having区别

  • where和having都是为了完成数据的过滤,它们后面都是添加条件;
  • where是在 group by之前完成过滤;
  • having是在group by之后完成过滤;

注:一个的SQL语句如下:

select
xxxx
from
xxxx
where
xxxx
group by
xxxx
having
xxxx
order by
xxxx
 
 

参考:http://www.monkey1024.com/database/814

mysql特殊使用的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. ASP.NET MVC5入门3之登录验证

    参考: HTML页面模版: http://www.ui.cn/detail/70262.html(第38个) MVC后台代码参考: http://www.oschina.net/p/nfine 开发环 ...

  2. selenium之css定位小结

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  3. 获取ScrollView ListView的当前位置的百分比

    找不到官方的API,就自己写了一下,下面是自己写的函数 --获取滚动层当前位置的百分比 function GetScrollViewPercent(scrollView) if scrollView ...

  4. Sybase·调用存储过程并返回结果

    最近项目要用Sybase数据库实现分页,第一次使用Sybase数据库,也是第一次使用他的存储过程.2个多小时才调用成功,在此记录: 项目架构:SSM 1.Sybase本身不支持分页操作,需要写存储过程 ...

  5. Confluence 6 配置时间和日期格式

    你可以修改你 Confluence 为用户显示的时期和时间格式.设置的句法使用的是 SimpleDateFormat class,请参考 Java SimpleDateFormat 文档中的内容来设置 ...

  6. Confluence 6 管理插件和组件

    一个 组件(add-on)是与 Confluence 分开安装的功能,能够加强 Confluence 的功能和使用.插件(plugin)和 组件(add-on)这 2 个词通常是一起使用的. 一共有 ...

  7. jquery_ajax 跨域

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 第七篇 python基础之函数,递归,内置函数

    一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...

  9. 操作dom获取datatable中的某一行的某一列的数据

    需求描述:编辑的时候,点击的那一行,进入后台的验证方法,验证通过后,再进入编辑页面,进入的时候需要把本行<tr>数据中的某一列<td>的值传递过去 思路表述:之前我想的是,给列 ...

  10. MySQL数据库查询中的特殊命令

    第一:   MySQL的安装 下载MySQL软件,修改安装路径之后 安装数据库MySQL5.7.18 第一步:数据库MySQL5.7.18可以在官网上下载对应的版本,下载地址:http://www.f ...