#进阶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. update 字符串拼接

    UPDATE store SET food_ordering =1,self_pickup_remark = CONCAT('self pick up notes:',store_code,short ...

  2. JavaScript面向对象的学习

    1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了. 1.2面向对象 面向对象是把事务分解成为一个 ...

  3. 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇

    在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...

  4. React-Native知识点相关

    React-Native相关 一,为什么要使用React-native? Hybrird的首屏时间太慢,白屏太久,影响用户体验: 原生native开发成本较高: 这里补充一点Webview的性能优化: ...

  5. 面试【JAVA基础】锁

    1.锁状态 锁的状态只能升级不能降级. 无锁 没有锁对资源进行锁定,所有线程都能访问并修改同一个资源,但同时只有一个线程能修改成功.其他修改失败的线程会不断重试,直到修改成功,如CAS原理和应用是无锁 ...

  6. 小程序开发-开发模式下关闭http域名校验

    小程序开发模式去掉域名校验 我们在开发小程序的时候如果用到其他网络地址,在小程序运行时调试器会输出 : http://www.example.com 不在以下 request 合法域名列表中,请参考文 ...

  7. Kubernetes 服务部署最佳实践(二) ——如何提高服务可用性

    引言 上一篇文章我们围绕如何合理利用资源的主题做了一些最佳实践的分享,这一次我们就如何提高服务可用性的主题来展开探讨. 怎样提高我们部署服务的可用性呢?K8S 设计本身就考虑到了各种故障的可能性,并提 ...

  8. 洛谷 P4072 [SDOI2016]征途 斜率优化DP

    洛谷 P4072 [SDOI2016]征途 斜率优化DP 题目描述 \(Pine\) 开始了从 \(S\) 地到 \(T\) 地的征途. 从\(S\)地到\(T\)地的路可以划分成 \(n\) 段,相 ...

  9. mac如何安装YaPi

    首先介绍一下YaPi是干什么的. 帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理.免费 ...

  10. Roadblocks(POJ 3255)

    原题如下: Roadblocks Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19314   Accepted: 6777 ...