1.聚合函数

案例0:查询学生个数

  SELECT COUNT(studentname) FROM student;SELECT COUNT(*) FROM student;SELECT COUNT(1) FROM student;  /*推荐*/

常用函数

SELECT SUM(StudentResult) AS 总和 FROM result;SELECT AVG(StudentResult) AS 平均分 FROM result;SELECT MAX(StudentResult) AS 最高分 FROM result;SELECT MIN(StudentResult) AS 最低分 FROM result;

案例1(练习GROUP BY和HAVING)

  • where写在group by前面. 要是放在分组后面的筛选 要使用HAVING…
    因为having是从前面筛选的字段再筛选,而where是从数据表中的>字段直接进行的筛选的
 //查询不同课程的平均分 最高分 最低分 平均分>80(根据不同课程分组 )SELECT subjectname, AVG(StudentResult) AS 平均分,MAX(StudentResult),MIN(StudentResult)FROM result r INNER JOIN `subject` subON r.subjectno=sub.subjectnoGROUP BY r.subjectnoHAVING 平均分 >80

2.(面试题)count(1)、count(*)与count(列名)的执行区别

从含义上讲,count(1) 与 count() 都表示对全部数据行的查询。
count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。
count(
) 包括了所有的列,相当于行数,在统计结果的时候,包含字段为null 的记录;
count(1) 用1代表代码行,在统计结果的时候,包含字段为null 的记录 。

很多人认为count(1)执行的效率会比count()高,原因是count()会存在全表扫描,而count(1)可以针对一个字段进行查询。其实不然,count(1)和count(*)都会对全表进行扫描,统计所有记录的条数,包括那些为null的记录,因此,它们的效率可以说是相差无几。而count(字段)则与前两者不同,它会统计该字段不为null的记录条数。

对比:

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

3.MD5加密算法

MD5即Message-Digest Algorithm
5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

  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=utf8INSERT INTO testmd5 VALUES(1,'xyj','999888'),(2,'xyj2','1550213743')update testmd5 set pwd = md5(pwd);


插入新的数据自动加密

 INSERT INTO testmd5 VALUES(4,'name1',md5('123456'));

查询登录用户信息(md5对比使用,查看用户输入加密后的密码进行比对)

 SELECT * FROM testmd5 WHERE `name`='name1' AND pwd=MD5('123456');

总结

数值函数

abs(x) – 绝对值 abs(-10.9) = 10
format(x, d) – 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46
ceil(x) – 向上取整 ceil(10.1) = 11
floor(x) – 向下取整 floor (10.1) = 10
round(x) – 四舍五入去整
mod(m, n) – m%n m mod n 求余 10%3=1
pi() – 获得圆周率
pow(m, n) – m^n
sqrt(x) – 算术平方根
rand() – 随机数
truncate(x, d) – 截取d位小数

时间日期函数

now(), current_timestamp(); – 当前日期时间
current_date(); – 当前日期
current_time(); – 当前时间
date(‘yyyy-mm-dd hh:ii:ss’); – 获取日期部分
time(‘yyyy-mm-dd hh:ii:ss’); – 获取时间部分
date_format(‘yyyy-mm-dd hh:ii:ss’, ‘%d %y %a %d %m %b %j’); – 格式化时间
unix_timestamp(); – 获得unix时间戳
from_unixtime(); – 从时间戳获得时间

字符串函数

length(string) – string长度,字节
char_length(string) – string的字符个数
substring(str, position [,length]) – 从str的position开始,取length个字符
replace(str ,search_str ,replace_str) – 在str中用replace_str替换search_str
instr(string ,substring) – 返回substring首次在string中出现的位置
concat(string [,…]) – 连接字串
charset(str) – 返回字串字符集
lcase(string) – 转换成小写
left(string, length) – 从string2中的左边起取length个字符
load_file(file_name) – 从文件读取内容
locate(substring, string [,start_position]) – 同instr,但可指定开始位置
lpad(string, length, pad) – 重复用pad加在string开头,直到字串长度为length
ltrim(string) – 去除前端空格
repeat(string, count) – 重复count次
rpad(string, length, pad) --在str后用pad补充,直到长度为length
rtrim(string) – 去除后端空格
strcmp(string1 ,string2) – 逐字符比较两字串大小

聚合函数

count()
sum();
max();
min();
avg();
group_concat()

其他常用函数

md5();
default();

MySQL(四)Select总结及补充聚合函数及分组过滤MD5加密相关推荐

  1. Mysql数据库的条件查询(聚合函数、分组查询)

    Mysql数据库的条件查询 一.聚合函数 1.聚合函数的介绍 聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据. 常用的聚合函数: ...

  2. mysql数据库(排序,聚合函数,分组,分页查询,union,连接查询,主键外键)

    1.排序(order by) select * from stu order by age; -- 默认升序 升序 ASC 降序DESC -- DESC 具有查看表的结构的功能 desc stu; 不 ...

  3. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...

  4. sql中聚合函数和分组函数_SQL选择计数聚合函数-语法示例解释

    sql中聚合函数和分组函数 The COUNT operator is usually used in combination with a GROUP BY clause. It is one of ...

  5. sql中聚合函数和分组函数_学习SQL:聚合函数

    sql中聚合函数和分组函数 SQL has many cool features and aggregate functions are definitely one of these feature ...

  6. MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...

    单表查询 select 建个表 1.查询表中所有学生的信息 2.查询表中所有学生的姓名和对应的英语成绩 3.过滤表中重复数据 4.在所有学生分数上添加10分特长分 下面方式并没有改变底层的数据记录,这 ...

  7. mysql聚合函数要分组吗_mysql聚合函数和分组-阿里云开发者社区

    文章实例的数据表,来自上一篇博客<mysql简单查询>:http://blog.csdn.net/zuiwuyuan/article/details/39349611 一. 聚合函数 聚合 ...

  8. 10 MySQL聚合函数数据分组

    目录 聚合函数 一.聚合函数定义: 二.聚合函数类型: 三.使用聚合函数的原则: 四.聚合函数说明 1.AVG 和 SUM 函数: 注意:AVG.SUM函数只对数字类型做处理,其他类型返回0: 1.1 ...

  9. mysql聚合函数统计_mysql学习-mysql聚合函数和分组统计

    一.聚合函数 聚合函数.称为统计函数 常用的聚合函数 count()总量数 max()最大值 min()最小值 sum()和 avg()平均值 例:查询部门30的总人数(查询总人数,根据empno编号 ...

最新文章

  1. Intel发布FPGA
  2. Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)
  3. 第一节 Image Processing Toolbox功能介绍
  4. 解决Eclipse安装Genymotion插件后抛异常的Bug
  5. matlab硬接触,abaqus中的关于硬接触(Hard contact)、及其他接触
  6. python多线程资源共享_Python:关于多处理/多线程和共享资源的问题
  7. shiro框架@RequiresPermissions 解释
  8. EFCore Lazy Loading + Inheritance = 干净的数据表 (二)
  9. Keep Network启动下一阶段流动性挖矿计划
  10. 天猫超市回应大数据杀熟;华为 Mate Xs 被热炒至 6 万元;Elasticsearch 7.6.1 发布| 极客头条...
  11. linux root所在目录,Linux下误删root目录
  12. Linux学习笔记二:Ubuntu启用root用户、更改软件源以及安装vim
  13. matlab 矩阵线性规划,matlab线性规划-线性规划,matlab
  14. 回调函数原理及应用实例
  15. 三维校园(三维虚拟校园)的使用体验
  16. SystemGenerator:数字信号处理之开发准备、流程预演
  17. 好系统帮你恢复win7经典开机画面
  18. erlang安装没有bin文件夹
  19. java引用类型内存_Java的引用类型的内存分析
  20. 社交口才:处理好人际关系的七种谈话技巧

热门文章

  1. PostgreSQL基础(概念篇)
  2. Vue 路由懒加载根据根路由合并chunk块
  3. DDDM: A Brain-Inspired Framework for Robust Classification
  4. 山大青岛计算机学院郑雯,山东大学自招700余人过线 面试将刷掉20%考生
  5. 【Nmap的使用方法】
  6. Ubuntu软件管理工具
  7. 学习笔记——STM32C8T6如何配置普通IO口
  8. SpringBoot参数校验--List类型
  9. Vert.x(vertx) 连接MySQL、Oracle数据库
  10. 8b/10b编码是什么?