MySQL常用函数

5.MySQL函数

5.1 常用函数

--  =============常用函数=====================
--  数学运算 
SELECT ABS(-8)  -- 绝对值
SELECT CEILING(9.4)  -- 向上取整
SELECT FLOOR(9.4)  -- 向下取整
SELECT RAND()  --  返回一个0~1之间的随机数
SELECT SIGN(10)  -- 判断一个数的符号  0-0 负数返回-1  正数返回1

-- 字符串函数
SELECT CHAR_LENGTH(‘即使再小的帆也能远航‘)  -- 字符串长度
SELECT CONCAT(‘我‘,‘你‘,‘他‘)  -- 拼接成一个字符串
SELECT INSERT(‘我要爱学习‘,1,2,‘想‘)  -- 查询,从某个位置开始替换某个长度
SELECT LOWER(‘sipw‘)  -- 小写字母
SELECT UPPER(‘sipw‘)  -- 大写字母
SELECT INSTR (‘siso‘,‘s‘)  -- 返回第一次出现的字符串的索引
SELECT REPLACE(‘坚持就能成功‘,‘坚持‘,‘努力‘)  --  替换出现的指定字符串
SELECT SUBSTR(‘坚持就能成功‘,2,3) -- 返回指定的字符串(源字符串,截取的位置,截取的长度)
SELECT REVERSE(‘坚持就能成功‘) -- 反转

-- 查询姓周的同学,名字  邹
SELECT REPLACE(studentname,‘周‘,‘邹‘) FROM student
WHERE studentname LIKE ‘周%‘


--  时间和日期函数(记住)
SELECT CURRENT_DATE()  -- 获取当前日期
SELECT CURDATE()  -- 获取当前日期
SELECT NOW()  --  获取当前的时间
SELECT LOCALTIME()  -- 获取本地时间
SELECT SYSDATE()  -- 系统时间

SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT SECOND(NOW())


--  系统
SELECT SYSTEM_USER()  -- 获取系统名字
SELECT USER() -- 获取系统名字
SELECT VERSION()  -- 获取版本号

5.2聚合函数(常用)

函数名称 描述

count() 计数

sum() 求和

avg() 平均值

max() 最大值

min() 最小值

--  ===========聚合函数=============
-- 都能够统计表中的数据 但有一些本质的区别(想查询一个表中有多少记录,就使用这个count())

SELECT COUNT(studentname) FROM student;  -- count(指定列字段),会忽略所有的null值 

SELECT COUNT(*) FROM student;  -- count(*)不会忽略null值,本质 计算行数
SELECT COUNT(1) FROM student;   -- count(1)不会忽略null值 本质 计算行数

SELECT SUM(‘studnetresult‘) AS 总和 FROM result
SELECT AVG(‘studnetresult‘) AS 平均分 FROM result
SELECT MAX(‘studnetresult‘) AS 最高分 FROM result
SELECT MIN(‘studnetresult‘) 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,‘bu‘,‘123456‘),(2,‘b‘,‘123456‘),(3,‘p‘,‘123456‘)

-- 加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1

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

-- 插入的时候加密
INSERT INTO testmd5 VALUES(4,‘xm‘,MD5(‘123456‘))

-- 如何校验:将用户传递进来的密码,进行MD5加密,然后比对加密后的值

SELECT * FROM testmd5 WHERE `name`=‘xm‘ AND pwd=MD5(‘123456‘)

顺序很重要:

select 去重要查询的字段from表(注意:表和字段可以取别名)

xxx join 要连接的表 on 等值判断

where(具体的值,子查询语句)

group by(通过哪个字段来分组)

having(过滤分组后的信息,条件和where是一样的,位置不同)

order by..(通过哪个字段排序)[升序/降序]

limit startindex,pagesize

业务层面

查询,跨表,跨数据库,

转载

https://www.cnblogs.com/progor/p/8832663.html

MySQL常用函数

上一篇:SQL 两表关联更新UPDATE (用一个表更新另一个表)


下一篇:微信开发中自动回复(扫码、关注推事件)