mysql特殊使用
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特殊使用的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- LINUX篇,设置MYSQL远程访问实用版
每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
随机推荐
- linux无法启动httpd服务问题
httpd 服务启动报错,可能出现的问题比较多,通过查看日志看是什么报错 (tail 200f /etc/httpd/logs/error_log) 1.查看防火墙是不是关闭状态 2.查看80端口是 ...
- python 前面几个单词含义
切片 str[start:end:step] start:从xxx开始 (startswith) end:切到xxx为止 (endswith) 不包括 字符串操作 .capitalize()# ...
- jqGrid后台交互样例
schoolManageGrid = $("#jqGrid").jqGrid({ url : ctx.path+"/api/school/querySchools&quo ...
- 帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...
- IntelliJ IDEA插件 - ApiDebugger
IntelliJ IDEA插件 - ApiDebuggerApiDebugger,是一个开源的接口调试IntelliJ IDEA插件,具有与IDEA一致的界面,无需切换程序即可完成网络API请求,让你 ...
- Codeforces 1091E New Year and the Acquaintance Estimation [图论]
洛谷 Codeforces 思路 有一个定理:Erdős–Gallai定理. 然后观察样例,可以猜到答案必定是奇偶性相同的一段区间,那么二分左右端点即可. 定理和这个猜测暂时都懒得学/证,留坑. #i ...
- redhat7.3安装python3 pip3
首先系统自带的python是python2 我们需要安装一个python3(这里的所有源码包都可以在环境中准备好,这样没有网也可以进行安装) 安装python 1.安装环境 # yum -y inst ...
- jenkins 安装网址
https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins
- ORACLE的数据类型的长度合集
-- ORACLE的数据类型常用的数据库字段类型如下:字段类型 中文说明 限制条件 其它说明CHAR 固定长度字符串 最大长度2000 bytesVARCHAR2 可变长度的字符串 最大长度4000 ...
- oracle_基本SQL语言
一:DDL数据定义语言 1:create(创建) 创建表 CREATE TABLE <table_name>( column1 DATATYPE [NOT NULL] [P ...