6.MySQL函数

本文最后更新于:2021年10月1日 晚上

MySQL函数

常用函数

以下示例中具体数字都可以用字段表示

数学运算

1
2
3
4
5
select abs(-8)			-- 绝对值
select ceiling(8.3) -- 向上取整
select floor(8.3) -- 向下取整
select rand() -- 返回一个0-1之间的随机数
select sing(-10) -- 判断一个数的符号,负数返回-1、正数返回1

字符串操作

1
2
3
4
5
6
7
8
9
select char_length('xxxx')					-- 显示字符串的长度
select concat('姓名',name) -- 拼接字符串
select insert('my name',1,1,'your') -- 在某个位置开始替换掉一定长度内原来的字符 示例结果:youry name
select lower('Name') -- 大写转小写
select upper('Name') -- 小写转大写
select instr('MySQL''SQL') -- 返回第一次出现字串的索引(注意不是下标),不存在就返回0
select replace('MySQL learn','learn','study') -- 替换指定的字符串
select substr('MySQL learn',4,6) -- 截取指定的字符串(源字符串,截取的位置,截取的长度)
select reverse('MySQL learn') -- 翻转字符串
  • instr不区分大小写

    mysql 进行模糊查询时,可使用内部函数 instr,替代传统的 like 方式,并且速度更快。

    select * from book where instr(bookName,'经')>0

时间和日期函数

1
2
3
4
5
6
select current_date()		-- 查询当前的日期
select now() -- 查询当前的时间(月份+时间)
select localtime() -- 获取本地时间
select sysdate() -- 获取系统时间

select year/month/day/hour/minute/second(now())

系统函数

1
2
select user()	-- 显示当前用户
select version() -- 显示mysql版本信息

聚合函数

函数名称 作用
count()
sum()
avg()
max()
min()

Q: count(*)、count(字段名)、count(1)区别?

A: count(字段名)会忽略对应字段的空值,其余两个不会忽略

count(字段名)效率更快

数据库级别的MD5(扩展)

MD5: 信息摘要算法,主要增强算法复杂度和不可逆

具体值的md5是一样的

函数md5(未加密数据)

1
2
3
-- 示例
update testmd5 set pwd=md5(pwd) where id = 1;
insert into testmd5 values(5,md5('12345'))

Q: 如何校验用户输入的密码是否正确?

A: 将用户的密码先用md5加密后,再去对比加密后的密文是否相同即可


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!