mysql学习06(DQL补充)

  • mysql学习06

    • 聚合函数(常用)

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

        --语法:
        SELECT COUNT(studentNo) FROM result ; -- Count(字段):会忽略所有的null值;
        SELECT COUNT(*) FROM result ; -- Count(*) :不会忽略所有的null值;
        SELECT COUNT(1) FROM result ; -- Count(1) :不会忽略所有的null值;

        --以上三个count有什么区别:
        --没有主键的时候,count(列)效率最高;有主键时,count(1)效率最高;

        SELECT SUM(`studentresult`) FROM result ;
        SELECT AVG(`studentresult`)FROM result;
        SELECT MAX(`studentresult`) FROM result ;
        SELECT MIN(`studentresult`)FROM result ;


        --group by 分组:

        --HAVING:过滤条件;(用在group by 分组之后的过滤 )

         

         

    • 扩展:数据库级别的MD5加密

      • 什么是MD5:

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

        • MD5不可逆:具体的值的MD5是一样的;

      • MD5破解网站的原理:

        • 背后有一个字典,MD5加密后的值,加密前的值;

      DROP TABLE IF EXISTS 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,'张三','123456'),(2,'李四','123456'),(3,'王五','123456');

      -- 加密:就需要更新密码
      UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1;

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

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

     

     

    • select 小结:

      • 数据库中最核心的语言,就是DQL;

      • having和where的区别:只是位置不同;

      • 淘宝页面:千人千面(不同数据库的查询)

     

     

     

     

     

posted @   gzs1024  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示