#进阶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;

  

最新文章

  1. vs2012 检测到有潜在危险的 Request.Form 值
  2. 获取assemblies信息in .net core
  3. unity3d 参考坐标系
  4. 【大数模板】C++大数类 大数模板
  5. Bootstrap 内核引用(一)
  6. 应用之间进行跳转,ComponentName的方式
  7. Nancy学习
  8. 快速实现python c扩展模块
  9. 高斯消元法(Gauss Elimination)【超详解&模板】
  10. TP-Shop安装步骤教程(Windows版)
  11. Qt之菜单栏工具栏入门
  12. Python学习日记 --day4
  13. nginx详解反向代理、负载均衡、LNMP架构上线动态网站(week4_day1_part1)-技术流ken
  14. CDH hive metastore启动报错:Unknown column 'A0.SCHEMA_VERSION_V2' in 'field list'
  15. NLP 第10章 基于深度学习的NLP 算法
  16. grid和flex区别
  17. Linux音频驱动学习之:(1)ASOC分析
  18. django 生成csv文件重要代码
  19. Linux小问题以及解决方案
  20. Hibernate的一对多实例

热门文章

  1. [CSP-S2019]Emiya 家今天的饭 题解
  2. Linux安装Rabbitmq3.8.5
  3. 要不是真的喜欢学技术,谁会来用Python爬小姐姐啊
  4. [PyTorch 学习笔记] 4.2 损失函数
  5. EditText设置输入的类型,只能输入纯数字,只能输入手机号码,只能输入邮箱等等。
  6. POJ - 3037-Skiing(邻接表+Dijkstra)
  7. 存储过程中拼接SQL语句
  8. 使用Hint /*+ full(emp)*/ 将索引全扫描改成全表扫描,看cost差别
  9. vue 实现原理及简单示例实现
  10. Linux下Python3.6的安装及避坑指南