学习笔记---MySQL函数

MySQL函数

官网:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

1.常用函数

-- 数学运算
SELECT ABS(-1)       -- 返回绝对值
SELECT CEILING(10.6)  -- 向上取整
SELECT FLOOR(10.6)    -- 向下取整
SELECT RAND()         -- 返回一个0~1之间的随机数
SELECT SIGN(98)       -- 返回参数的符合 正数返回1,负数返回-1,0返回0

-- 字符串函数
SELECT CHAR_LENGTH('我爱中国')     -- 返回字符串长度
SELECT CONCAT('我','爱','中国')    -- 拼接字符串
SELECT INSERT('我爱中国',1,2,'十分热爱中国')   --  从某个位置开始替换某个长度  结果为:十分热爱中国中国
SELECT LOWER('BeiJing')    -- 转化为小写字母
SELECT UPPER('BeiJing')    -- 转化为大写字母
SELECT INSTR('xiaoming','m')    -- 返回子串第一次出现的位置
SELECT REPLACE('xiaoming','ming','hong')	-- 将字符串中的xx替换成xx
SELECT SUBSTR('我爱中国',3,2)    -- 从第m个开始截取n个字符,结果为中国
SELECT REVERSE('我是小明')    -- 反转字符串

-- 查询姓 张 的同学,改为姓 杨
SELECT REPLACE(studentname,'张','杨') FROM `student`
WHERE `studentname` LIKE '张%'

-- 时间和日期函数(记住)
SELECT CURRENT_DATE()  -- 返回当前的日期
SELECT CURRENT_TIME()  -- 返回当前的时间
SELECT NOW()	-- 返回当前的日期时间
SELECT LOCALTIME()  -- 返回本地时间
SELECT SYSDATE()  -- 返回系统时间
SELECT YEAR(NOW())  -- 返回当前年份

-- 系统
SELECT SYSTEM_USER() -- 当前用户
SELECT VERSION() -- 版本

2.聚合函数

函数名称 描述
COUNT() 计数
SUM() 求和
AVG() 平均值
MAX() 最大值
MIN() 最小值
-- ================聚合函数====================
SELECT COUNT(studentname) FROM `student`   -- COUNT(指定列),会忽略所有的null值
SELECT COUNT(*) FROM `student`   -- COUNT(*),不会忽略null值,本质 计算行数
SELECT COUNT(1) FROM `student`   -- COUNT(1),不会忽略null值,本质 计算行数

/*
无主键:count(1)比count(x)快

有主键:count(主键)最快

count(*)与count(1)都包括null统计,而count(字段)不包括null统计
*/

SELECT SUM(`studentresult`) AS '总和' FROM `result`
SELECT AVG(`studentresult`) AS '平均分' FROM `result`
SELECT MAX(`studentresult`) AS '最高分' FROM `result`
SELECT MIN(`studentresult`) AS '最低分' FROM `result`

5.3、数据库级别的MD5加密(扩展)

什么是MD5?

主要增强算法复杂度和不可逆性

MD5不可逆,具体的值和md5是一样的

MD5破解网站的原理,背后有一个字典,MD5加密后的值,加密的前值

-- ============测试MD5加密================
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,'张三','123456'),(2,'李四','123456'),(3,'王五','123456')

-- 加密
UPDATE `testmd5` SET `pwd`=MD5(pwd)	-- 全部加密

-- 插入时加密
INSERT INTO `testmd5` VALUES(4,'小明',MD5('123456'))

-- 如何校验:将用户传递进来的密码,进行md5加密,然后对比加密后的值
SELECT * FROM `testmd5` WHERE `name`='小明' AND `pwd`=MD5('123456')

猜你喜欢

转载自blog.csdn.net/yang862819503/article/details/113890955
今日推荐