image.png
image.png

2.聚合函数(常用)

函数名称 描述
COUNT() 计数
SUM() 求和
AVG() 平均值
MAX() 最大值
MIN() 最小值
……

image.png
区别:
从含义上讲,count(1) 与 count(*) 都表示对全部数据行的查询。

count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。
count() 包括了所有的列,相当于行数,在统计结果的时候,包含字段为null 的记录;
count(1) 用1代表代码行,在统计结果的时候,包含字段为null 的记录 。
*下面它们之间的一些对比:

1)在表没有主键时,count(1)比count()快
2)有主键时,主键作为计算条件,count(主键)效率最高;
3)若表格只有一个字段,则count(
)效率较高。
image.png

3.数据库级别的MD5加密

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

  1. -- ====测试MD5 加密===========
  2. CREATE TABLE `testmd5`(
  3. `id` INT(4) NOT NULL,
  4. `name` VARCHAR(20) NOT NULL,
  5. `pwd` VARCHAR(50) NOT NULL,
  6. PRIMARY KEY(`id`)
  7. )ENGINE=INNODB DEFAULT CHARSET=utf8
  8. -- 明文密码
  9. INSERT INTO testmd5 VALUES(1,'djeiej','123456')
  10. -- 加密
  11. UPDATE testmd5 SET pwd=MD5(pwd)
  12. INSERT INTO testmd5 VALUES(2,'djefffiej','123456')
  13. -- 插入的时候加密
  14. INSERT INTO testmd5 VALUES(3,'ffas',MD5('33321'))

image.png

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

image.png