MySQL基础——常见函数(单行函数)

MySQL基础——常见函数(单行函数)

MySQL中的函数

概念:类似于Java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名

好处:1.隐藏了实现细节,2.提高了代码的可重用性

调用: select 函数名(实参列表) 【from 表】;

特点: 1.叫什么(函数名)
2.干什么(函数功能)

分类:
1.单行函数
如 concat,length,ifnull等
2.分组函数
功能:做统计使用,又称为统计函数,聚合函数,组函数

常见单行函数

一,字符函数

length 获取参数值的字节个数

SELECT LENGTH('john');
SELECT LENGTH('李平安');

concat 拼接字符串

SELECT CONCAT(last_name,'_',first_name) FROM employees;

upper,lower 字符大小写转换

SELECT UPPER('john');
SELECT LOWER('joHn');

示例:将姓变大写,名小写,然后拼接

SELECT CONCAT(UPPER(last_name),LOWER(first_name)) AS 姓名 FROM employees;

substr,substring 字符截取

注意:sql中索引从1开始

截取从指定索引处后面所有字符

SELECT SUBSTR('李莫愁爱上了陆湛远',7) AS out_put;

截取从指定索引处指定字符长度的字符

SELECT SUBSTR('李莫愁爱上了陆湛远',1,3) AS out_put;

案例:将姓名中首字符大写,其他字符小写,然后用—拼接显示出来

SELECT
  CONCAT (
    UPPER (SUBSTR (last_name, 1, 1)),
    '_',
    LOWER (SUBSTR (last_name, 2))
  )
FROM
  employees;

instr 返回子串第一次出现的索引,如果找不到则返回0

SELECT INSTR('杨不悔爱上了易柳霞','易柳霞') AS out_put

trim 去除字符左右两边的空格或指定字符

SELECT LENGTH(TRIM('  张翠山   ')) AS out_put;
SELECT TRIM('a' FROM 'aaaaaaaaa张翠aaaaaaaaaaaaaa山aaaaaaaaaaaaaaaaaa') AS out_put;

lpad 用指定字符实现左填充长度

SELECT LPAD('殷素素',10,'*') AS out_put;

rpad 用指定字符实现所右填充长度

SELECT RPAD('殷素素',10,'$') AS out_put;

replace 替换

SELECT REPLACE('张无忌爱上了周芷若周芷若周芷若','周芷若','赵敏') AS out_put;

二,数学函数

round 四舍五入

SELECT ROUND(1.4536);
SELECT ROUND(1.5243,2);

ceil 向上取整 返回>=该参数的最小整数

SELECT CEIL(1.00000052);

floor 向下取整 返回<=该参数的最大整数

SELECT FLOOR(9.999);

truncate 截断

SELECT TRUNCATE(1.65,1);

mod取余/取模

MOD(a,b) : a-a/b

SELECT MOD(10,3);
SELECT 10%3;

三,日期函数

now 返回当前系统日期+时间;

SELECT NOW();

curdate 返回当前系统日期,不包含日期

SELECT CURDATE();

curtime 返回当前时间,不包含日期

SELECT CURTIME();

获取指定的部分,年月日时分秒

SELECT YEAR(NOW()) AS;
SELECT YEAR('1998-1-1') AS;

SELECT YEAR(hiredate) ASFROM employees;
SELECT MONTH(NOW()) AS;
SELECT MONTHNAME(NOW()) AS;

str_to_date 将日期格式的字符转换为指定格式的日期

SELECT STR_TO_DATE('1912-3-4','%Y-%c-%d') AS out_put;

案例:查询入职日期为1992-4-3号的员工的信息

SELECT *  FROM employees WHERE hiredate = '1992-4-3';

SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%c-%d %Y');

date_format 将日期转换为字符

SELECT DATE_FORMAT(NOW(),'%Y年%c月%d日') AS DATE;

案例:查询有奖金的员工名和入职日期(xx月/xx日/xx年)

SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日/%Y年') AS 入职日期
FROM employees
WHERE commission_pct IS NOT NULL;

四,其他函数

SELECT VERSION();	#查询mysql版本
SELECT DATABASE();	#查询当前数据库
SELECT USER();		#查询user

if函数,相当于if else 的效果

SELECT IF(10>5,'大','小');
SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没奖金,呵呵','有奖金,哈哈') AS 备注
FROM employees;

猜你喜欢

转载自blog.csdn.net/qq_51372098/article/details/113802538
今日推荐