MySQL函数的介绍:
MySQL提供了众多功能强大、方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求。本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时查看。
准备工作:
创建表:
-- 文章表
CREATE TABLE IF NOT EXISTS `article`(
`pk_id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author_id` VARCHAR(40) NOT NULL,
`score` INT(3),
`release_date` DATE,
PRIMARY KEY ( `pk_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据
INSERT INTO article ( pk_id, title,author_id,score,release_date )
VALUES
( 1, "小菜鸡",1,99,now());
INSERT INTO article ( pk_id, title,author_id,score,release_date )
VALUES
( 2, "小菜鸡2",2,100,now());
INSERT INTO article ( pk_id, title,author_id,score,release_date )
VALUES
( 3, "小菜鸡3",3,60,now());
INSERT INTO article ( pk_id, title,author_id,score,release_date )
VALUES
( 4, "小菜鸡4",4,-10,now());
数据列表:
MySQL数字函数:
ABS(x)
描述:返回 x 的绝对值
案例:
select pk_id,abs(score) from article
pk_id等于1的记录,score是-10,通过abs(score)就变成了10
AVG(expression)
描述:返回一个表达式的平均值,expression 是一个字段
案例:
select AVG(score) from article
MAX(expression)
描述:返回字段 expression 中的最大值
案例:
select max(score) from article
MIN(expression)
描述:返回字段 expression 中的最小值
案例:
select min(score) from article
CEIL(x)
描述:向上取舍
案例:
SELECT CEIL(1.5)
-> 2
SELECT CEIL(-1.5)
-> -1
FLOOR(x)
描述:向下取舍
案例:
SELECT FLOOR(1.5)
-> 1
SELECT FLOOR(-1.5)
-> -2
ROUND(x)
描述:四舍五入
案例:
SELECT ROUND(1.4)
-> 1
SELECT ROUND(1.5)
-> 2
SUM(expression)
描述:返回指定字段的总和
案例:
select sum(score) from article
MySQL字符串函数
CHARACTER_LENGTH(s)
描述:返回字符串 s 的字符数
案例:
select pk_id,CHARACTER_LENGTH(title) from article
pk_id等于1的title是小菜鸡,长度是3,pk_id等于2的title是小菜鸡2,长度是4
CONCAT(s1,s2…sn)
描述:字符串 s1,s2 等多个字符串合并为一个字符串
案例:
select pk_id,CONCAT(title,author_id) from article
把title字段和author_id合并起来。
LEFT(s,n)
描述:返回字符串 s 的前 n 个字符
案例:
select pk_id,left(title,1) from article
RIGHT(s,n)
描述:返回字符串 s 的后 n 个字符
案例:
select pk_id,right(title,1) from article
LOWER(s)
描述:将字符串 s 的所有字母变成小写字母
案例:
SELECT LOWER('JAVA')
-> java
UPPER(s)
描述:将字符串转换为大写
案例:
SELECT LOWER('java')
-> JAVA
LTRIM(s)
描述:去掉字符串 s 开始处的空格
SELECT LTRIM(" JAVA")
-> JAVA
REPLACE(s,s1,s2)
描述:将字符串 s2 替代字符串 s 中的字符串 s1
案例:
SELECT REPLACE('abc','a','x')
-> xbc
REVERSE(s)
描述:将字符串s的顺序反过来
SELECT REVERSE('JAVA')
-> AVAJ
SUBSTR(s, start, length)
描述:从字符串 s 的 start 位置截取长度为 length 的子字符串
select pk_id,substr(title,1,2) from article
MySQL时间和日期函数:
CURDATE()
描述:返回当前日期
案例:
SELECT CURDATE();
-> 2021-08-18
NOW()
描述:返回当前日期和时间
案例:
SELECT NOW()
-> 2021-08-18 18:39:12
MONTH(d)
描述:返回日期d中的月份值,1 到 12
案例:
select pk_id,month(release_date) from article
DAYNAME(d)
描述:返回日期 d 是星期几,如 Monday,Tuesday
案例:
select pk_id,dayname(release_date) from article
WEEK(d)
描述:计算日期 d 是本年的第几个星期,范围是 0 到 53
案例:
select pk_id,week(release_date) from article