当前位置: 首页 > news >正文

MySQL--day6--单行函数

请添加图片描述
(以下内容全部来自上述课程)
在这里插入图片描述

单行函数

1. 内置函数及分类

  • 单行函数
  • 聚合函数(或分组函数)
    请添加图片描述

1.1 单行函数特点

  • 操作数据对象
  • 接受参数返回一个结果
  • 只对一行进行变换
  • 每行返回一个结果
  • 可以嵌套
  • 参数可以是一列或一个值

2. 数值函数

2.1 基本函数

请添加图片描述

#1.数值函数
# 基本的操作
# 	  绝对值:123     32	 正负号:-1    1     3.14...    33          -43           32
SELECT ABS (-123),ABS (32),SIGN (-23),SIGN (43),PI(),CEIL(32.32),CEILING(-43.23),FLOOR(32.32),
#    -44        取余:2     2       2
FLOOR(-43.23),MOD(12,5),12 MOD 5,12 % 5 
FROM DUAL;# 取随机数:()内因子相同,随机数也相同
SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1) 
FROM DUAL;#四舍五入,截断操作
#           124             123              123.5            123.46              120              200
SELECT ROUND(123.556),ROUND(123.456,0),ROUND(123.456,1),ROUND(123.456,2), ROUND(123.456,-1),ROUND(153.456,-2) 
FROM DUAL;#                123                 123.4              120
SELECT TRUNCATE(123.456,0),TRUNCATE(123.496,1),TRUNCATE(129.45,-1) 
FROM DUAL;#单行函数可以嵌套
#                  123
SELECT TRUNCATE(ROUND(123.456,2),0) 
FROM DUAL;

2.2 角度与弧度的转换

请添加图片描述

#角度与弧度的互换
SELECT RADIANS(30),RADIANS(45),RADIANS(60),RADIANS(90), 
DEGREES(2*PI()),DEGREES(RADIANS(60)) 
FROM DUAL;

2.3 三角函数

请添加图片描述

2.4 指数与对数

请添加图片描述

# 指数与对数
#       32          16        7.389....
select pow(2,5),power(2,4),exp(2)
from dual;#          2 			2	    	1		2
select ln(exp(2)),log(exp(2)),log10(10),log2(4),
from dual;

2.5 进制间的转换

请添加图片描述

#进制间的转换
SELECT BIN(10),HEX(10),OCT(10),CONV(10),2,8) 
FROM DUAL;

3.字符串函数

请添加图片描述

# 2.字符串函数
#          65                   5                  2
SELECT ASCII('Abcdfsf'),CHAR_LENGTH('hello'),CHAR_LENGTH('我们'), 
#       5             6
LENGTH('hello'),LENGTH('我们') 
FROM DUAL;# xxx worked for yyy
SELECT CONCAT (emp.last name,' worked for',mgr.last name)"details" 
FROM employees emp JOIN employees mgr
WHERE emp.`manager id` = mgr.employee id;#字符串的索引是从1开始的!
SELECT INSERT('helloworld',2,3,'aaaaa'),REPLACE('hello','lol','mmm')
FROM DUAL;SELECT UPPER('HelLo'),LOWER('HelLo') 
FROM DUAL;SELECT last name,salary 
FROM employees
WHERE LOWER(last_name)= 'King';SELECT LEFT('hello',2),RIGHT('hello',3),RIGHT('hello',13) 
FROM DUAL;# LPAD:实现右对齐效果
# RPAD:实现左对齐效果
SELECT employee_id,last_name,LPAD(salary,10,'') 
FROM employees;

请添加图片描述
请添加图片描述

4. 日期和时间函数

4.1 获取日期、时间

请添加图片描述

4.2 日期与时间戳的转换

请添加图片描述

4.3 获取月份、星期、星期数、天数等函数

请添加图片描述

4.4 日期的操作函数

请添加图片描述
请添加图片描述
请添加图片描述

SELECT EXTRACT(MINUTE FROM NOW()),EXTRACT( WEEK FROM NOW()),
EXTRACT( QUARTER FROM NOW()),EXTRACT(MINUTE_SECOND FROM NOW()) 
FROM DUAL;

4.5 时间和秒钟转换的函数

请添加图片描述

4.6 计算日期和时间的函数

  • 第一组:
    请添加图片描述
    请添加图片描述
SELECT DATE_ADD(NOW()INTERVAL 1 DAY) AS col1,
DATE_ADD('2021-10-21 23:32:12',INTERVAL 1 SECOND) AS col2,
ADDDATE('2021-10-21 23:32:12',INTERVAL 1 SECOND) AS col3,
DATE_ADD('2021-10-21 23:32:12',INTERVAL '1_1' MINUTE_SECOND) AS col4, 
DATE_ADD(NOW()INTERVAL -1 YEAR) AS col5,#可以是负数
DATE_ADD(NOW()INTERVAL '1_1' YEAR_MONTH) AS col6 #需要单引号
FROM DUAL;SELECT DATE_SUB('2021-01-21',INTERVAL 31 DAY) AS col1, 
SUBDATE('2021-01-21',INTERVAL 31 DAY) AS col2,
DATE_SUB('2021-01-2102:01:01',INTERVAL '1 1'DAY_HOUR) AS col3 
FROM DUAL;
  • 第二组:
    请添加图片描述
SELECT ADDTIME(NOW( ),20),SUBTIME(NOW(),30),SUBTIME(NOW( ),'1:1:3'),DATEDIFF(NOW(),'2021-10-01'), 
TIMEDIFF(NOW(),'2021-10-25 22:10:10'),FROM_DAYS(366),TO_DAYS('0000-12-25'),
LAST_DAY(NOW()),MAKEDATE(YEAR(NOW()),12),MAKETIME(10,21,23),PERIOD_ADD(20200101010101,10) 
FROM DUAL;

4.7 日期的格式化与解析

请添加图片描述
请添加图片描述
请添加图片描述

#3.7 日期的格式化与解析
#格式化:日期--->字符串
# 解析:	字符串 ---->日期	
#此时我们谈的是日期的显式格式化和解析#之前,我们接触过隐式的格式化或解析 
SELECT *
FROM	employees	
WHERE hire date= '1993-01-13';#格式化:
SELECT	DATE_FORMAT (CURDATE()'%Y-%M-%D'),	
DATE_FORMAT(NOW() ,'%Y-%m-%d'),TIME_FORMAT (CURTIME() ,'%h:%i:%S'), DATE_FORMAT(NOW()'%Y-%M-%D %h:%i:%S %W %w %T %r') 
FROM DUAL;#解析:格式化的逆过程
SELECT STR_TO_DATE('2021-0ctober-25th 11:34:42 Monday 1 23:34:42','%Y-%M-%D %h:%i:%S %W %w %T') 
FROM DUAL;

请添加图片描述

5. 控制流程函数

请添加图片描述

#4.流程控制函数
#IF (VALUE,VALUE1,VALUE2)
SELECT last_name, salary,IF(salary >= 6000,'高工资''低工资')"details" 
FROM employees;SELECT last_name,commission_pct,IF(commission_pct IS NOT NULL, commission_pct,0) "details",
salary	12 * (1+ IF(commission_pct IS NOT NULL,commission_pct,0)) "annual_sal"	
FROM employees;#4.2 IFNULL(VALUE1,VALUE2):看做是IF(VALUE,VALUE1,VALUE2)的特殊情况 
SELECT last_name,commission_pct,IFNULL(commission_pct,0) "details" 
FROM employees;#4.3 CASE WHEN... THEN ...WHEN	...THEN	ELSE END	
# 类似于java的if ...	else if	...	else if	...	else	
SELECT last name,salary,CASE 
WHEN salary>= 15000 THEN'白骨精'
WHEN salary	>= 10000 THEN'潜力股'	
WHEN salary >= 8000 THEN'小屌丝'
ELSE '草根' END "details",department id
FROM employees;

相关文章:

  • 机器人强化学习入门学习笔记(四)
  • React从基础入门到高级实战:React 基础入门 - 状态与事件处理
  • 聚焦 Microsoft Fabric,释放数据潜力
  • CAS详解
  • 第三章 软件工程模型和方法
  • 初识Flask框架
  • 直线导轨运转过程中如何避免震动发生?
  • 量子传感器:开启微观世界的精准探测
  • VSCode如何像Pycharm一样“““回车快速生成函数注释文档?如何设置文档的样式?autoDocstring如何设置自定义模板?
  • 3dczml时间动态图型场景
  • Linux里more 和 less的区别
  • 【自定义类型-联合和枚举】--联合体类型,联合体大小的计算,枚举类型,枚举类型的使用
  • 中国经济的结构性困境与制度性瓶颈:关键卡点深度解析
  • 撤销Conda初始化
  • PyTorch 中unsqueeze(-1)用法
  • 城市地下“隐形卫士”:激光甲烷传感器如何保障燃气安全?
  • 《Android 应用开发基础教程》——第十五章:Android 动画机制详解(属性动画、帧动画、过渡动画)
  • 精益数据分析(79/126):从黏性到爆发——病毒性增长的三种形态与核心指标解析
  • 音频AAC编码与RV1126的AENC模块的讲解
  • 1.2 控制系统的数学模型
  • 莱芜做网站号码/百度网址提交入口平台
  • 做网站的公司需要哪些资质/电商网络推广是什么
  • 学做网站都要学什么专业/郑州网站建设公司
  • 推广普通话绘画/奉化网站关键词优化费用
  • 六十岁一级a做爰片免费网站/百度seo怎么做网站内容优化
  • 做纯净系统的网站/关键词包括哪些内容