#进阶4:常见函数(单行函数)
/*
将一组逻辑语句封装在方法体中,对外暴露方法名
语法:
SELECT 函数名() 【FROM 表名】 分类:
1、单行函数:concat,length,ifnull等等
2、分组函数:聚合函数,做统计使用 */ USE myemployees; #1、单行函数
#1.1、字符函数
# length()获取参数值的字节个数
SELECT Length('john'); #concat()拼接
SELECT Concat(last_name, ' ', first_name)
FROM employees; #upper, lower
SELECT UPPER('john');
SELECT LOWER('JOHN'); #substr, substring
#索引从1开始
SELECT Substr('what a lovely dog!', 6, 8) AS out_put; # 从索引6开始的8个字符 #instr
#子串初始位置在大串中第一次出现的索引
SELECT Instr('what a lovely dog!', 'dog') AS out_put; #trim
#去空格/特殊字符
SELECT Length(Trim(' aaa ')) AS out_put;
SELECT Trim('a' FROM 'aaaSSSaaa') AS out_put; #lpad, rpad
#左/右边填充,用指定字符填充到指定长度
SELECT Lpad('aaaa', 10, '*') AS out_put; #replace
#替换全部指定字符
SELECT Replace('cat dog dog', 'dog', 'cat'); #1.2、数学函数
#round
#四舍五入
SELECT Round(-1.5);
SELECT Round(-1.4, 2); #小数点后保留2位 #ceil, floor
#向上/下取整
SELECT Ceil(1.20);
SELECT Ceil(-1.2);
SELECT Floor(-1.2); #truncate
#截断,保留指定的位数
SELECT Truncate(1.6999, 2); #mod
#取余: a - (a/b)*b
SELECT Mod(-10, 3); #1.3、日期函数
#now
#当前系统日期+时间
SELECT Now(); #curdate, curtime
#当前系统日期/时间
SELECT Curdate();
SELECT Curtime();
#获取指定的部分
SELECT Year(Now());
SELECT Month(Now()); #str_to_date
#将字符转换为指定格式的日期
SELECT Str_to_date('07-02-2020', '%m-%d-%Y');
#案例1:查询1992-3-2入职的员工信息
SELECT *
FROM employees
WHERE Date(hiredate) = '1992-04-03'; SELECT *
FROM employees
WHERE hiredate = str_to_date('4-3 1992', '%c-%d %Y'); #date_format
#将日期转换为字符
SELECT date_format(Now(), '%Y年%m月%d日') AS out_put; #1.4、其他函数
SELECT VERSION();
SELECT DATABASE();
SELECT USER(); #1.5、流程控制函数
#if函数,实现if-else的效果
SELECT IF(10>5, '大', '小'); #查询员工是否有奖金,有就列出来
SELECT last_name, commission_pct, IF(commission_pct IS NULL, 'no commission', commission_pct)
FROM employees; #case函数
/*查询员工的工资,要求:
部门号=30,显示的工资为1.1倍
部门号=40,显示的工资为1.2倍
部门号=50,显示的工资为1.3倍
其他部门显示原工资
*/
SELECT salary AS 原始工资, department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
WHEN 50 THEN salary*1.3
ELSE salary
END AS 新工资
FROM employees; #查询员工的工资情况:
/*如果工资>20000,A级别
如果工资>15000,B级别
否则,C级别
*/
SELECT salary,
CASE
WHEN salary > 20000 THEN 'A'
WHEN salary > 15000 THEN 'B'
ELSE 'C'
END AS "rank"
FROM employees;

  

mysql-4-functions的更多相关文章

  1. MySQL Information Functions

    Table 12.18 Information Functions Name Description BENCHMARK() Repeatedly execute an expression CHAR ...

  2. Mysql String Functions

    SUBSTRING_INDEX(str,delim,count) 按标识符截取指定长度的字符串 mysql); -> 'www.mysql' mysql); -> 'mysql.com' ...

  3. MySQL操作符

    简要介绍MySQL操作符 常用: 算术运算符.比较操作符.逻辑操作符.位运算符-- 一.算术运算符 +:加 -:减 *:乘 /:除,返回商 %,mod():除,返回余数 mysql> %,mod ...

  4. MySQL开发总结(有点长..耐心看)

    一.理解MySQL基本概念 1.MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件 2.MySQL数据库:就是按照数据结构来组织.存储和管理数据的仓库 3.MySQL数据 ...

  5. mysql开发总结

    一.理解MySQL基本概念 1.MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件 2.MySQL数据库:就是按照数据结构来组织.存储和管理数据的仓库 3.MySQL数据 ...

  6. [mysql] mysql如何实现更新一条记录中某个字段值的一部分呢?

    场景:在平常我们使用word文档等等office办公软件时,我们常会使用搜索->替换的功能. mysql: 在mysql 中有时候,我们也需要这样子的实现: 实现 SQL 语句: update ...

  7. zabbix表结构

    zabbix数据库表结构的重要性 想理解zabbix的前端代码.做深入的二次开发,甚至的调优,那就不能不了解数据库的表结构了. 我们这里采用的zabbix1.8.mysql,所以简单的说下我们mysq ...

  8. Zabbix的数据表结构

    看到Zabbix的数据表结构吧,就知道数据量大了 性能问题很让人担忧,不过基于Zabbix数据库导出报表,或自动跑报表的时候,就必须去了解一下zabbix的数据表结构了,得知道XX放在哪才能找到XX, ...

  9. 【Zabbix】 Zabbix表结构说明【转载】

    本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...

  10. zabbix3.4.7表结构

    zabbix数据库表结构的重要性 想理解zabbix的前端代码.做深入的二次开发,甚至的调优,那就不能不了解数据库的表结构了. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

随机推荐

  1. SPFA算法详解

    前置知识:Bellman-Ford算法 前排提示:SPFA算法非常容易被卡出翔.所以如果不是图中有负权边,尽量使用Dijkstra!(Dijkstra算法不能能处理负权边,但SPFA能) 前排提示*2 ...

  2. 把Autofac玩的和javaSpring一样6

    大家好,今天来介绍我开源的一个autofac.Annotation项目 源码:https://github.com/yuzd/Autofac.Annotation 本项目是autofa的一个扩展组件, ...

  3. 2020重新出发,MySql基础,MySql数据库备份与恢复

    @ 目录 MySQL数据库备份与恢复 数据库为什么需要备份 MySQL备份类型 MySQL热备份及恢复 逻辑备份 mysqldump SELECT INTO-OUTFILE mydumper 裸文件备 ...

  4. 【目标检测】SSD+Tensorflow 300&512 配置详解

    SSD_300_vgg和SSD_512_vgg weights下载链接[需要科学上网~]: Model Training data Testing data mAP FPS SSD-300 VGG-b ...

  5. DHCP和NAT

    DHCP(dynamic host configuration protocol)用于内网动态分配IP,是一种基于UDP的应用层协议. NAT(net address translation)用于内网 ...

  6. Spark应用开发-关联分析

    在机器学习中,常用的主题有分类,回归,聚类和关联分析.而关联分析,在实际中的应用场景,有部分是用于商品零售的分析.在Spark中有相应的案例 在关联分析中,有一些概念要熟悉. 频繁项集,关联规则,支持 ...

  7. Thymeleaf 中如何实现including

    Problem:Jsp中有including,Thymeleaf中有无类似的语法? Solution:有,Themeleaf中提供同样功能的标签是 th:fragment="blockNam ...

  8. centos开放指定端口

    1.开启防火墙      systemctl start firewalld 2.开放指定端口       firewall-cmd --zone=public --add-port=1935/tcp ...

  9. Combine 框架,从0到1 —— 4.在 Combine 中使用计时器

    本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 4.在 Combine 中使用计时器. 内容概览 前言 使用计时器执行周期性的工作 将计时器转换为计时 ...

  10. Unity3D获得服务器时间/网络时间/后端时间/ServerTime,适合单机游戏使用

    说明 一些游戏开发者在做单机游戏功能时(例如:每日奖励.签到等),可能会需要获得服务端标准时间,用于游戏功能的逻辑处理. 问题分析 1.自己如果有服务器:自定义一个后端API,客户端按需请求就行了: ...