mysql函数

1、数据函数

select abs(-8); /*绝对值*/   --8
select ceiling(9.4); /*向上取整*/  --10
select floor(9.4); /*向下取整*/  --9
select rand(); /*随机数,返回一个0-1之间的随机数*/   --0.4692302825574114
select sign(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/  --0

2、字符串函数

select char_length('狂神说坚持就能成功'); /*返回字符串包含的字符数*/  -- 9
select concat('我','爱','程序'); /*合并字符串,参数可以有多个*/  -- 我爱程序
select insert('我爱编程helloworld',1,2,'超级热爱'); /*替换字符串,从某个位置开始替  -- 超级热爱编程helloworld
换某个长度*/
select lower('kuangshen'); /*小写*/  -- kuangshen
select upper('kuangshen'); /*大写*/  -- KUANGSHEN
select left('hello,world',5); /*从左边截取*/  -- hello
select right('hello,world',5); /*从右边截取*/  -- world
select replace('狂神说坚持就能成功','坚持','努力'); /*替换字符串*/  -- 狂神说努力就能成功
select substr('狂神说坚持就能成功',4,6); /*截取字符串,开始和长度*/  -- 坚持就能成功
select reverse('狂神说坚持就能成功'); /*反转  --功成能就持坚说神狂

3、日期和时间函数

select current_date(); /*获取当前日期*/  -- 2023-04-16
select curdate(); /*获取当前日期*/  -- 2023-04-16
select now(); /*获取当前日期和时间*/  -- 2023-04-16 04:56:06
select localtime(); /*获取当前日期和时间*/  -- 2023-04-16 04:56:14
select sysdate(); /*获取当前日期和时间*/  -- 2023-04-16 04:56:19
-- 获取年月日,时分秒
select year(now());  -- 2023
select month(now());  -- 4
select day(now());  -- 16
select hour(now());  -- 4
select minute(now());  -- 56
select second(now());  -- 54

4、系统信息函数

select version(); /*版本*/  -- 8.0.31
select user(); /*用户*/   -- root@172.17.0.1

5、MD5 加密

一、MD5简介

MD5算法是一种常用的哈希算法,可用于数据的加密和校验。在MySQL中,可以使用MD5()函数进行加密。由于MD5算法是不可逆的,解密MD5加密的数据需要使用其他技术手段

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度(32位)值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

二、实现数据加密

新建一个表 testmd5

create table `testmd5`
(
    `id`   int(4)      not null,
    `name` varchar(20) not null,
    `pwd`  varchar(50) not null,
    primary key (`id`)
) engine = innodb
  default charset = utf8

插入一些数据

insert into testmd5 values(1,'kuangshen','123456'),(2,'1 qinjiang','456789')

如果我们要对pwd这一列数据进行加密,语法是:

update testmd5 set pwd = md5(pwd);

 继续插入数据:

insert into testmd5 values(3,'kuangshen2','123456')

注意:在update执行之前的数据生效,之后的数据没有加密

如果单独对某个用户(如kuangshen)的密码加密:

update testmd5 set pwd = md5(pwd) where name = 'kuangshen2';

插入新的数据自动加密 

insert into testmd5 values(4,'kuangshen3',md5('123456'));

 查询登录用户信息(md5对比使用,查看用户输入加密后的密码进行比对)

select * from testmd5 where  pwd=md5('123456');


 简单使用:  char(32)

create table users
(
    id       int auto_increment primary key,
    username varchar(255),
    password char(32)
);
insert into users (username, password) values ('user1', md5('password1'));
insert into users (username, password) values ('user2', md5('password2'));
insert into users (username, password) values ('user3', md5('password3'));


select * from users;


 6、汇总

-- 数值函数
abs(x) -- 绝对值 abs(-10.9) = 10
format(x, d) -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46
ceil(x) -- 向上取整 ceil(10.1) = 11
floor(x) -- 向下取整 floor (10.1) = 10
round(x) -- 四舍五入去整
mod(m, n) -- m%n m mod n 求余 10%3=1
pi() -- 获得圆周率
pow(m, n) -- m^n
sqrt(x) -- 算术平方根
rand() -- 随机数
truncate(x, d) -- 截取d位小数

-- 时间日期函数
now(), current_timestamp(); -- 当前日期时间
current_date(); -- 当前日期
current_time(); -- 当前时间
date('yyyy-mm-dd hh:ii:ss'); -- 获取日期部分
time('yyyy-mm-dd hh:ii:ss'); -- 获取时间部分
date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j'); -- 格式化时间
unix_timestamp(); -- 获得unix时间戳
from_unixtime(); -- 从时间戳获得时间

-- 字符串函数
length(string) -- string长度,字节
char_length(string) -- string的字符个数
substring(str, position [,length]) -- 从str的position开始,取length个字符
replace(str ,search_str ,replace_str) -- 在str中用replace_str替换search_str
instr(string ,substring) -- 返回substring首次在string中出现的位置
concat(string [,...]) -- 连接字串
charset(str) -- 返回字串字符集
lcase(string) -- 转换成小写
left(string, length) -- 从string2中的左边起取length个字符
load_file(file_name) -- 从文件读取内容
locate(substring, string [,start_position]) -- 同instr,但可指定开始位置
lpad(string, length, pad) -- 重复用pad加在string开头,直到字串长度为length
ltrim(string) -- 去除前端空格
repeat(string, count) -- 重复count次
rpad(string, length, pad) --在str后用pad补充,直到长度为length
rtrim(string) -- 去除后端空格
strcmp(string1 ,string2) -- 逐字符比较两字串大小

-- 聚合函数
count()
sum();
max();
min();
avg();
group_concat()

-- 其他常用函数
md5();
default();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值