数据库之 MySQL --- 数据处理 之 单行函数、组函数 (四)
【1】 LOWER : 将字符串中的内容全部转成小写
UPPER : 将字符串中的内容全部转成大写
SELECT LOWER ('abAcD')
FROM DUAL
SELECT UPPER('abAcd')
FROM DUAL
SELECT UPPER(first_name)
FROM employees
【2】CONCAT : 字符串拼接
SUBSTR :截取子串,从2的位置开始偏移量为3
LENGTH :长度
CONCAT('Hello', 'World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld', 'W') 6
LPAD(salary,10,'*') *****24000
RPAD(salary, 10, '*') 24000*****
TRIM('H' FROM 'HelloWorld') elloWorld
REPLACE('abcd','b','m') amcd
【3】 LPAD (右对齐)| RPAD (左对齐):
TRIM : 清除字符串左右两端指定的字符
REPLACE : 替换字符串中指定的某个字符
SELECT CONCAT ('aaa','bbb','ccc')abc
FROM DUAL
SELECT CONCAT(first_name,'',last_name) NAME
FROM employees
【4】mysql的索引值是从1开始的,截取子串,从2的位置开始偏移量为3
SELECT SUBSTR('HelloMysql',2,3)
FROM DUAL
SELECT LENGTH('Hello')
FROM DUAL
SELECT INSTR('hellolo','lo')
FROM DUAL
SELECT LPAD(first_name,10,'')
FROM employees
SELECT TRIM(''FROM 'abc de')
FROM DUAL
SELECT TRIM('#' FROM '####abc de#####')
FROM DUAL
SELECT REPLACE('abcdef','a','A')
FROM DUAL
【5】数字函数
ROUND: 四舍五入
ROUND(45.926, 2) 45.93
TRUNCATE: 截断
TRUNCATE(45.926) 45
MOD: 求余
MOD(1600, 300) 100
SELECT ROUND(123.65,1) ,ROUND(123.53,0),ROUND(123.43,-1)
FROM DUAL
SELECT TRUNCATE(123.65,1),TRUNCATE(123.53,0),TRUNCATE(123.53,-1)
FROM DUAL
SELECT MOD(5,3),MOD(-5,3),MOD(5,-3),MOD(-5,-3)
FROM DUAL
【6】 日期函数 now() : 获取当前时间
SELECT NOW()
FROM DUAL
【7】 通用函数 : ifnull
注意 :null和其它值做运算结果仍为null
SELECT employee_id,salary,12*salary*(1+commission_pct)
FROM employees;
SELECT salary,commission_pct,salary * commission_pct
FROM employees
WHERE employee_id =100
【8】 IFNull(commission_pct,0) :如果commission_pct 的值为null那么就将值设置为0
SELECT employee_id,salary,12*salary*(1 + IFNULL(commission_pct,0))
FROM employees
WHERE employee_id = 100
【11】 练习:查询部门号为 10, 20, 30 的员工信息, 若部门号为 10,
则打印其工资的 1.1 倍, 20 号部门, 则打印其工资的 1.2 倍,
30 号部门打印其工资的 1.3 倍数
SELECT first_name,salary,department_id,
CASE department_id
WHEN 10 THEN salary * 1.1
WHEN 20 THEN salary * 1.2
WHEN 30 THEN salary * 1.3
ELSE salary * 1.4 END new_salary
FROM employees
SELECT first_name,salary,job_id,
CASE job_id
WHEN 'IT_PROG' THEN salary*2
ELSE salary *1.4 END new_salary
FROM employees
【12】 AVG() : 求平均值
SUM() :求和
MAX() : 求最大值
MIN() : 求最小值
COUNT() : 求个数
-- avg只能运算数值(double,int)
SELECT AVG(salary)
FROM employees
SELECT SUM(salary)
FROM employees
-- max,min 可以运算数值,字符串,日期
SELECT MAX(first_name),MAX(salary)
FROM employees
SELECT MIN(first_name),MIN(salary)
FROM employees
【13】count:统计的个数不包含数值为null
SELECT COUNT(salary),COUNT(commission_pct)
FROM employeesSELECT AVG(salary),SUM(salary)/107,SUM(salary)/COUNT(commission_pct)
FROM employees
【14】 需求:求表中的数据有多少
SELECT COUNT(*),COUNT(1),COUNT(2)
FROM employeesSELECT first_name
FROM employees
WHERE 1 =1; -- 可以理解为没有条件
【15】 group by
① 需求:求所有员工的平均工资
SELECT AVG(salary)
FROM employees
-- 下面的写法是错误的
SELECT first_name,AVG(salary)
FROM employees
② 需求: 求各部门员工的平局工资
如果列中出现了组函数和其他的列。那么其他的列必须作为
group by 后面分组的条件
SELECT department_id,AVG(salary)
FROM employees
-- group by 按照什么样的格式来分组
GROUP BY department_id
③需求:求各部门中不同工种的员工的平均工资
SELECT department_id, job_id,AVG(salary)
FROM employees
GROUP BY department_id,job_id
SELECT department_id, job_id,AVG(salary)
FROM employees
-- group by 后面的两个列交换顺序是没有区别的
GROUP BY job_id,department_id
【16】 having
①需求 :求各个部门中最高工资大于10000的部门
-- 注意 :如果过滤条件中出现了组函数,那么只能放在having后面使用
SELECT department_id,MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary)>10000
②需求:求 20,30,40部门中最高工资大于10000的部门
SELECT department_id,MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX (salary)>10000 AND department_id IN (20,30,40)
-- 下面的方式比上面的好
SELECT department_id,MAX(salary)
FROM employees
WHERE department_id IN(20,30,40)
GROUP BY department_id
HAVING MAX(salary)>10000
DESC customers
INSERT INTO customers(NAME,email,birth) VALUES('鲁宾','ccc.@.qq.com','1196-02-56')
数据库之 MySQL --- 数据处理 之 单行函数、组函数 (四)的更多相关文章
- 数据库之 MySQL --- 数据处理 之 表的约束与分页(七)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.约束 :为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制 ...
- 数据库之 MySQL --- 数据处理 之 表操作、CRUD(六)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一. 表操作 创建数据库CREATE DATABASE demo-- 删除数据库DROP DATABAS ...
- 数据库之 MySQL --- 数据处理 之 子查询 (二)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一 .数据库语言定义及命令行查看数据库操作 -- SQL 语言可以分为三类-- DML: 数据操纵语言. ...
- 数据库之 MySQL --- 数据处理 之 多行子查询(五)
[1]需求: 谁的工资比Abel 高?方式一: 第一步线查出Abel共子 第二部进行过滤 SELECT salary FROM employees WHERE last_name = 'Abel' ...
- 数据库之 MySQL --- 数据处理 之多表查询 (三)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.多表查询 [1]什么是多表查询? 即,从多个表中获取数据. 注意: 在多表查询是,如果列明在两个表中 ...
- MySQL-第九篇分组和组函数
1.组函数 组函数:即多行函数,组函数将一组记录作为整体计算,每组记录返回一个结果,而不是每条记录返回一个结果. 2.常用的组函数有: 1>avg([distinct|all]expr):计算多 ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- 【数据库】MySql常用函数梳理
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5866388.html MySql常用函数梳理: 1:数学函数 使用格式:一般用于插入.修改语句中,直接 函数( ...
- Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等
count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age ...
随机推荐
- 借助DEM生成高精度SketchUp地形,地形分析如此简单
SketchUp因其自身友好的界面和强大的功能,已经成为建筑规划设计常用工具.无论是摩天大楼还是独栋别墅,小区规划还方案推敲和方案表现上都显示出了不错的实力. 然而SketchUp异形建模能力对比3d ...
- [zoj3623]背包模型
给定n种物品,每种物品需要ti时间生产出来,生产出来以后,每单位时间可以创造wi个价值.如果需要创造至少W个价值,求最少时间. 思路:dp[j]表示用时间j所能创造的最大价值,则有转移方程:dp[j ...
- 上位机开发之三菱Q系列PLC通信实践
经常关注我们公众号或者公开课的学员(如果还没有关注的话,左上角点击一波关注)应该知道,我们会经常使用西门子PLC,其实对于其他品牌的PLC,我们都会讲到,包括三菱.欧姆龙.基恩士.松下及国产台达.信捷 ...
- Javascript中的apply与call
一丶定义 每个函数都包含两个非继承而来的方法:apply()和call().这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值. 1.apply()方法 apply( ...
- 黑马程序员_毕向东_Java基础视频教程——类型转换(随笔)
类型转换 class Test{ public static void main(String[] args) { byte b = 3; // b = b + 2; /* Test.java:5: ...
- 00006-java 下载一个excel模板(文件),前端layui按钮
下载按钮: <button class="layui-btn layui-btn-sm" data-type="downTemplate">模板下载 ...
- 【Python代码】TSNE高维数据降维可视化工具 + python实现
目录 1.概述 1.1 什么是TSNE 1.2 TSNE原理 1.2.1入门的原理介绍 1.2.2进阶的原理介绍 1.2.2.1 高维距离表示 1.2.2.2 低维相似度表示 1.2.2.3 惩罚函数 ...
- Adaboost原理及相关推导
提升思想 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么,这个概率是强可学习的.一个概念如果存在一个多项式的学习算法能够学习它,并且学习的正确率仅比随机猜测略好,那么,这个概念是 ...
- MySQL的转义字符“\”
\0 一个ASCII 0 (NUL)字符. \n 一个新行符. \t 一个定位符. \r 一个回车符. \b 一个退格符. \' ...
- storm-redis 详解
多的不说,先来代码分析,再贴我自己写的代码.如果代码有错误,求更正.. 导入两个关键包,其他项目需要的包,大家自己导入了,我pom下的包太多,不好一下扔上来. <dependency> & ...