day27-mysql

模糊查询:比较运算符

运算符语法描述
IS NULLa is null如果操作符为null,结果为真
IS NOT NULLa is not null如果操作符部位null,结果为真
BETWEENa between b and c若a在b和c之间,则结果为真
LIKEa like bSQL匹配,如果a匹配b则结果为真
INa in(a1,a2,a3.,…)

分页和排序

ORDER BY

常用语法ORDER BY xxx ASC,排序可以由前端去排序,xxx就是依据字段xxx

ASC 升序

DESC 降序

分页

常用语法 LIMIT 0,5

LIMIT 起始值,页面大小

-- 第一页 limit 0,5 (1-1)*5
-- 第二页 limit 5,5 (2-1)*5
-- 第三页 limit 10,5 (3-1)*5
-- 第N页 (N-1)*pageSize,pageSize
-- pageSize:页面大小
-- (n-1)*pageSize:起始值
-- 数据总数/页面大小 =总页数

子查询

where(这个值是计算出来的)
本质:在where语句中嵌套一个子查询语句
where (select *from xxx)
或者 WHERE xxx == xxx AND xxx=(select …)

MySQL函数

官方文档https://dev.mysql.com/doc/refman/8.0/en/sql-function-reference.html

常用函数
-- 数学运算

SELECT ABS(-8) -- 绝对值
SELECT CEILING(8.2) -- 向上取整
SELECT FLOOR(8.2) -- 向下取整
SELECT RAND() -- 返回一个0~1的随机数
SELECT SIGN(3)  -- 判断一个数的符号,返回-1,0,1的一个
SELECT CHAR_LENGTH('123456') -- 字符串长度
SELECT CONCAT('123','456') -- 拼接字符串长度
SELECT INSERT('123456',1,4,'xxx') -- 替换字符串,从x位置开始的y个字符,替换为后面的字符
SELECT LOWER('A')
SELECT UPPER('a')
SELECT REPLACE('123','23','456')-- 替换字符串
SELECT SUBSTR('123456',3,2)-- 截取字符串,从xx开始yy个。
SELECT REVERSE('123456') -- 字符串反转

-- 时间和日期函数
SELECT CURRENT_DATE() -- 获取当前日期
SELECT CURDATE()
SELECT CURRENT_TIME -- 获取当前时间
SELECT NOW() -- 当前日期加时间
SELECT LOCALTIME()
SELECT SYSDATE()
SELECT YEAR(NOW()) ASSELECT USER() -- 当前用户
聚合函数
SELECT COUNT(student) FROM student;  -- Count(字段),会忽略所有null的值
SELECT COUNT(*) FROM student; -- 不会忽略null值
SELECT COUNT(1) FROM result; -- 不会忽略null值,

SELECT SUM(sdutentresult) AS 总分 FROM result;
SELECT AVG(sdutentresult) AS 总分 FROM result;
SELECT MAX(sdutentresult) AS 总分 FROM result;
SELECT MIN(sdutentresult) AS 总分 FROM result;

count(*)和count(1)的区别:

count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略值为NULL
count(1)包括了忽略所有列,用1代表代码运行,在统计结果的时候,会忽略值为空(这里的空不是空字符串或者0,而是表示null),即某个字段为null的时候不统计

执行效率上:
列名为主键,count(列名)比count(1)快
列名不为主键,count(1)比count(列名)快
如果表多个列且没有主键,则count(1)的执行效率优于count(*)
如果有主键,则select count(主键)的执行效率是最优的
如果只有一个字段,则select count(*)最优

count(*)会走遍所有的列再统计行数,count(1)按行统计,就只走一次。

HAVING

是过滤的语句比如所,having xxx=0;即使要求xxx=0的显示出来。

数据库级别的md5

什么是md5,主要增强算法复杂度和不可逆性
md5不可逆,具体的值的md5是一样的,
MD5破解网站的原理,背后有一个字典,记录常用的md5密码

UPDATE xxxx SET pwd = MD5(pwd);

应该插入的时候加密
也同时要把用户输入的密码进行加密后校验

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值