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

Mysql-函数

1.常用函数

1、数据函数

SELECT ABS(-8);			-- 绝对值
SELECT CEIL(9.4);		-- 向上取整
SELECT FLOOR(9.4);		-- 向下取整
select round(x,y);    	-- 求参数x的四舍五入的值,保留y位小数
select sqrt(x);       	-- 算术平方根
select pow(m, n);      	-- m^n
select pi();           	-- 获得圆周率
SELECT RAND();			-- 随机数,返回一个0-1之间的随机数
SELECT SIGN(0);			-- 符号函数: 负数返回-1,正数返回1,0返回0
SELECT MOD(x,y);		-- 返回x/y的模

2、字符串函数

SELECT CONCAT('我','爱','程序'); -- 合并字符串,参数可以有多个
SELECT LOWER('KuangShen'); 		-- 将字符串str全部转为小写
SELECT UPPER('KuangShen');		-- 将字符串str全部转为大写
SELECT LPAD(str,n,pad); 		-- 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
SELECT RPAD(str,n,pad); 		-- 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
SELECT TRIM(str); 				-- 去掉字符串头部和尾部的空格
select rtrim(string); 			-- 去除后端空格
select substring(str,start,len) -- 返回从字符串str从start位置起的len个长度的字符串
# select substring('abcdefg',2,2);结果:bc

SELECT CHAR_LENGTH('坚持就成功'); -- 返回字符串包含的字符数
select length(string);			-- string长度,字节
SELECT INSERT('我爱编程helloworld',1,2,'超级热爱');	-- 替换字符串,从某个位置开始替换某个长度(下标从1开始)
#结果 超级热爱编程helloworld

SELECT LEFT('hello,world',5);		-- 从左边截取
SELECT RIGHT('hello,world',5);		-- 从右边截取
SELECT REPLACE('狂神说坚持就能成功','坚持','努力');		-- 替换字符串
SELECT SUBSTR('狂神说坚持就能成功',4,6);		-- 截取字符串,开始和长度
#结果 坚持就能成功
 
SELECT REVERSE('狂神说坚持就能成功');		-- 反转
select repeat(string, count);			-- 重复count次
#结果:select repeat('密码',6); 密码密码密码密码密码密码

3、日期和时间函数

SELECT CURDATE();			-- 获取当前日期
SELECT CURTIME();			-- 返回当前时间
SELECT NOW();				-- 获取当前日期和时间
 
SELECT CURRENT_DATE();		-- 获取当前日期
SELECT LOCALTIME();			-- 获取当前日期和时间
SELECT SYSDATE();			-- 获取当前日期和时间
SELECT DATE_ADD(date, INTERVAL exprtype); -- 返回一个日期/时间值加上一个时间间隔expr后的时间值
SELECT DATEDIFF(date1,date2);			  -- 返回起始时间date1和结束时间date2之间的天数
 
 -- 获取年月日,时分秒
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
SELECT HOUR(NOW());
SELECT MINUTE(NOW());
SELECT SECOND(NOW());

4、系统信息函数

SELECT VERSION();  /*版本*/
SELECT USER();     /*用户*/

5、流程函数

SELECT IF(value , t , f);			-- 如果value为true,则返回t,否则返回f
SELECT IFNULL(value1 , value2);		-- 如果value1不为空,返回value1,否则返回value2

-- 如果val1为true,返回res1,... 否则返回default默认值
SELECT CASE WHEN [ val1 ] THEN [res1] ...ELSE [ default ] END;	

-- 如果expr的值等于val1,返回res1,... 否则返回default默认值
SELECT CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END;

# 示例1:
select 
	( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end ) as '工作地址'
from emp;

# 示例2:
select
	(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end ) '数学',
	(case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格' end ) '英语',
	(case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end ) '语文'
from score;

2.MD5 加密

一、MD5简介

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

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

update testmd5 set pwd = md5(pwd);

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

INSERT INTO testmd5 VALUES(3,'kuangshen2','123456')
update testmd5 set pwd = md5(pwd) where name = 'kuangshen2';

插入新的数据自动加密

INSERT INTO testmd5 VALUES(4,'kuangshen3',md5('123456'));

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

SELECT * FROM testmd5 WHERE `name`='kuangshen' AND pwd=MD5('123456');

相关文章:

  • Android 单例模式全解析:从基础实现到最佳实践
  • 电机控制常见面试问题(二十一)
  • 如何让 SQL2API 进化为 Text2API:自然语言生成 API 的深度解析?
  • CUDA Kernel中的数据读写指令及其性能影响
  • 墙绘产品展示交易平台(源码+数据库+万字文档)
  • Windows 安装多用户和其它一些问题 VMware Onedrive打不开
  • 【MVC简介-产生原因、演变历史、核心思想、组成部分、使用场景】
  • niuhe 插件教程 - 配置 MCP让AI更聪明
  • 如何使用Git
  • MySQL 日志系统:错误日志、慢查询日志、二进制日志
  • Mark down编辑器
  • 【零基础入门unity游戏开发——2D篇】SpriteRenderer精灵渲染器组件
  • Java虚拟机JVM知识点(已完结)
  • 【Android】BluetoothSocket.connect () 的实现与协议栈交互源码解析
  • 大模型应用开发之RAG学习
  • WEB安全-HTTPS
  • C++ set map
  • prism WPF 消息的订阅或发布
  • Redis + 自定义注解 + AOP实现声明式注解缓存查询
  • 如何解读什么是etf期权?
  • 免手机微网站/广告公司取名字参考大全
  • 网络公司什么意思/安卓手机性能优化软件
  • 建网站引流做淘宝/百度竞价排名商业模式
  • 有哪些做婚品的网站/营销系统
  • 网站开发前途/网络推广seo
  • 帮别人做网站涉嫌诈骗/怎么自己制作一个网站