【软测学习笔记】MySQL入门Day04

🌟博主主页:我是一只海绵派大星

📚专栏分类:软件测试笔记

📚参考教程:黑马教程
❤️感谢大家点赞👍收藏⭐评论✍️

目录

 一、空判断

 二、where 子句在 update 与 delete 语句中同样有效

三、order by排序 

1、order by 字段名 [asc/desc]

2、两个字段排序的例子

3、当一条select语句出现了where和order by

 四、聚合函数

1、count求select返回的记录总数

2、max查询最大值 

 3、min查询最小值

4、sum求和

5、avg求平均数

 五、数据分组

六、分组聚合之后的数据筛选

1、having配合聚合函数的使用

 七、having与where筛选的区别

 八、limit显示指定的记录数

九、数据分页显示


一、空判断

  • null不是0,也不是'',nullSQL里面代表空,什么也没有
  • null不能用比较运算符的判断
  • is null ---是否为null
  • is not null ---是否不为null

不能用 字段名 = null 字段名 != null这些都是错误的  

//查询 card 身份证为 null 的学生记录SELECT * from students where card is null;//查询 card 身份证非 null 的学生记录SELECT * from students where card is not null;

 二、where 子句在 update 与 delete 语句中同样有效

//修改 age 为 25,并且 name 为’孙尚香’的学生 class 为’2 班’update students set class = '2班' where age = 25 and name = '孙尚香';//删除 class 为’1 班’,并且 age 大于 30 的学生记录DELETE from students where class = '1班' and age > 30;

三、order by排序 

1、order by 字段名 [asc/desc]

  • asc代表从小到大,升序,asc可以省略
  • desc代表从大到小,不可以省略
//查询所有学生记录,按 age 年龄从小到大排序select * from students order by age asc;select * from students order by age;//查询所有学生记录,按 age 年龄从大到小排序select * from students order by age desc;

2、两个字段排序的例子

//查询所有学生记录,按 age 年龄从大到小排序,//年龄相同时,再按 studentNo 学号从小到大排序SELECT * from students ORDER BY age desc, studentNo;

3、当一条select语句出现了whereorder by

  • select * from 表名 where 条件 order by 字段1,字段2;
  • 一定要把where写在order by前面
 //studentNo 学号再按学号从大到小排序SELECT * from students where sex = '男' order by class, studentNo desc;

 四、聚合函数

聚合函数不能用到where后面的条件里

1、countselect返回的记录总数

  • count(字段名)
//查询学生总数(查询stuents表有多少记录)select count(*) from students;select count(name) from students;select count(DISTINCT class) from students;select count(DISTINCT sex) from students;//查询女同学数量SELECT count(name) from students where sex = '女';SELECT count(*) from students where sex = '女';SELECT count(sex) from students where sex = '女';

2、max查询最大值 

  • max(字段名)
  • 查询指定字段里的最大值
//查询students中的最大年龄SELECT max(age) from students;//查询students中的女生最大年龄SELECT max(age) from students where sex = '女';//查询students中的'1班'最大年龄SELECT max(age) from students where class = '1班';

 3、min查询最小值

  • min(字段名)
  • 查询指定字段的最小值
//查询students中的最小年龄SELECT min(age) from students;//查询students中的女生最小年龄SELECT min(age) from students where sex = '女';//查询students中的'1班'最小年龄SELECT min(age) from students where class = '1班';

4、sum求和

  • sum(字段名)
  • 指定字段的值求和
//查询students中的年龄总和SELECT sum(age) from students;//查询students中的女生年龄总和SELECT sum(age) from students where sex = '女';//查询students中的'1班'年龄总和SELECT sum(age) from students where class = '1班';

5、avg求平均数

  • avg(字段名)
  • 指定字段的平均值
//查询students中的年龄总和SELECT sum(age) from students;//查询students中的女生年龄总和SELECT sum(age) from students where sex = '女';//查询students中的'1班'年龄总和SELECT sum(age) from students where class = '1班';
  • avg的字段中如果有null,null不做为分母计算平均
create table aa (age int, name varchar(10));insert into aa values (10, 'a'), (20, 'b'), (null, 'c');select avg(age) from aa;//结果为15,而不是10

 五、数据分组

  • group by 字段名
  • select 聚合函数 from 表名 where 条件 group by 字段
  • select 聚合函数 from 表名 group by 字段
  • group by就是配合聚合函数使用的
//分别查询男女同学的数量SELECT count(*) from students where sex = '男';SELECT count(*) from students where sex = '女';select sex, count(*) from students group by sex;
  • group by的例子 
//分别查询各个年龄段的同学数量select age, count(*) from students group by age;
  • wheregroup by
//分别查询'1班'不同性别学生数量select sex, count(*) from students where class = '1班' group by sex;

六、分组聚合之后的数据筛选

  • having子句
  • 总是出现在group by之后
  • select * from 表名 group by 字段 having 条件
//用where查询男生总数//where先筛选复合条件的记录,然后在聚合统计SELECT count(*) from students where sex = '男';//用having查询男生总数//having先分组聚合统计,在统计的结果中筛选SELECT count(*) from students GROUP BY sex HAVING sex = '男';

1、having配合聚合函数的使用

  • where后面条件不能使用聚合函数, having可以使用聚合函数
//求班级人数大于3人的班级名字select class from students GROUP BY class HAVING count(*) > 3;

 七、havingwhere筛选的区别

  • where是对标的原始数据进行筛选
  • having是对group by之后已经分过组的数据进行筛选
  • having可以使用聚合函数, where不能用聚合函数

 八、limit显示指定的记录数

  • select * from 表名 where 条件 group by 字段 order by 字段 limit start, count
  • limit总是出现在select语句的最后,
  • start代表开始行号,行号从0开始编号
  • count代表要显示多少行
  • 省略start,默认从0开始,从第一行开始
//查询前三行记录SELECT * from students limit 0, 3;SELECT * from students limit 3;//查询从第4条记录开始的三条记录SELECT * from students limit 3, 3;
  • 当有where或者group by或者order by, limit总是出现在最后
//查询年龄最大同学的nameselect name from students ORDER BY age desc limit 1;//查询年龄最小的女同学信息SELECT * from students where sex = '女' ORDER BY age LIMIT 1;

九、数据分页显示

  • m 每页显示多少条记录
  • n,n
  • (n - 1) * m, m
  • 把计算结果写到limit后面
//每页显示4条记录,第3页的结果select * from students limit 8, 4;//每页显示4条记录,第2页的结果select * from students limit 4, 4;

 🎁结语: 

本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,大星必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

U盘到底要格式化成什么格式比较好?

前言 前段时间有小伙伴问我:U盘为啥无法粘贴超过4GB的压缩包。 相信这个问题很多人都会遇到,无论是压缩包、镜像文件还是电影,都会有超过4GB的时候。 如果文件超过了4GB,那么就会小伙伴遇到电脑提示:无法粘贴超过4G…

基于Springboot的校园食堂订餐系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园食堂订餐系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

R语言数据探索和分析7-使用随机森林模型对中国GDP及其影响因素分析

一、研究背景和意义 国内生产总值(GDP)是宏观经济领域中最为关注的经济统计数据之一,它反映了一个国家或地区在一定时期内所创造的所有最终商品和服务的总价值。GDP的增长率不仅仅是一个国家经济健康状况的关键指标,还直接关系到…

服务器数据恢复—异常断电导致RAID模块故障的数据恢复案例

服务器数据恢复环境: 某品牌ProLiant DL380系列服务器,服务器中有一组由6块SAS硬盘组建的RAID5阵列,WINDOWS SERVER操作系统,作为企业内部文件服务器使用。 服务器故障: 机房供电几次意外中断,服务器出现故…

AI代理架构的发展:从单一到多代理系统的演进及其影响分析

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

数据结构与算法---线性表

线性表 1.顺序表 需求分析 /*创建顺序表具体功能:初始化顺序表销毁顺序表获取顺序表元素个数输出顺序表中的内容自动扩容增 --- 插入数据(包含了尾部添加功能)删 --- 删除数据(包含了尾部删除功能)改 --- 修改数据查…

LeetCode //C - 7. Reverse Integer

7. Reverse Integer Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [ − 2 31 , 2 31 − 1 ] [-2^{31}, 2^{31} - 1] [−231,231−1], then return 0. Assume the …

Android使用kts上传aar到JitPack仓库

Android使用kts上传aar到JitPack 之前做过sdk开发,需要将仓库上传到maven、JitPack或JCenter,但是JCenter已停止维护,本文是讲解上传到JitPack的方式,使用KTS语法,记录使用过程中遇到的一些坑. 1.创建项目(library方式) 由于之前用鸿神的w…

面试题分享之Java集合篇(三)

注意:文章若有错误的地方,欢迎评论区里面指正 🍭 系列文章目录 面试题分享之Java基础篇(二)面试题分享之Java基础篇(三) 面试题分享之Java集合篇(一)、 面试题分享之Ja…

外网禅道配置

exportfs -avrf 修改代码,避免启动太慢:vi /opt/zbox/bin/zbox.php 启动和停止 /opt/zbox/zbox start /opt/zbox/zbox stop

YOLOv5手势物体识别(附代码)

之前是做的yolov3手势物体识别,最近几天我将该项目进行了重新的整理和升级,实现了yolov5手势物体识别,同时为了方便更多的人直接拿来应用,我生成了支持windows系统的应用小程序,即便你电脑上没有安装pytorch,没有安装c…

4 Spring AOP

目录 AOP 简介 传统开发模式 先来看一个需求 解决方案 AOP 图示 Spring 启用 AspectJ 基于 xml 配置 创建 pom.xml 创建 UserService 借口和 UserServiceImpl实现类 创建 LogAdvice 日志通知 创建 log4j.properties 重点:创建 spring-context-xml.xml 配…

MYSQL从入门到精通(二)

1、MYSQL高级概述 【1】架构概述 【2】索引优化 【3】查询截取 【4】mysql锁机制 【5】主从复制 2、MYSQL概述 【1】mysql内核 【2】sql优化工程师 【3】mysql服务器的优化 【4】各种参数常量设定 【5】查询语句优化 【6】主从复制 【7】软硬件升级 【8】容灾百分 【9】sql编…

使用Neo4j和Langchain创建知识图谱

使用Neo4j和Langchain创建知识图谱 知识图谱是组织和整合信息的强大工具。通过使用实体作为节点和关系作为边缘,它们提供了一种系统的知识表示方法。这种有条理的表示有利于简化查询、分析和推理,使知识图在搜索引擎、推荐系统、自然语言处理和人工智能…

大模型在汽车开发行业中的应用

大模型在汽车开发行业中的应用主要体现在以下几个方面: 自动驾驶技术的推动:大模型技术在自动驾驶领域的应用,不仅加速了自动驾驶算法的训练和优化过程,还直接参与到了决策模型的构建中,使得自动驾驶技术得到了显著的发展。例如,特斯拉通过AI技术实现了车辆的自动驾驶功…

从0开始学习制作一个微信小程序 学习部分(6)组件与事件绑定

系列文章目录 学习篇第一篇我们讲了编译器下载,项目、环境建立、文件说明与简单操作:第一篇链接 第二、三篇分析了几个重要的配置json文件,是用于对小程序进行的切换页面、改变图标、控制是否能被搜索到等的操作第二篇链接、第三篇链接 第四…

Windows设置Redis为开机自启动

前言 Redis作为当前最常用的当前缓存技术,基本上Web应用中都有使用。所以,每次我们在本地启动项目前,都必须将Redis服务端启动,否则项目就会启动失败。但是,每次都要去启动Redis就很麻烦,有没有办法做到开…

Python爬虫--爬取糗事百科段子

爬取糗事百科段子&#xff1a; 段子在 <div class"content"> 里面的 <span> 标签里面 不过这里有个坑&#xff0c;div 标签跟 span 标签 之间有很多空行 普通 .*? 是匹配不了的&#xff0c;需要使用模式修饰符 S S 的意思 让 .(点) 匹配&#xff0c…

7-82 快速排序

给定一个整数序列,请按非递减序输出采用快速排序(递归法)的各趟排序后的结果。注意:每趟排序以排序区间的首元素为枢轴(支点)。 输入格式: 测试数据有多组,处理到文件尾。每组测试数据第一行输入一个整数n(1≤n≤100),第二行输入n个整数。 输出格式: 对于每组测试…

吴恩达2022机器学习专项课程(一)正则化(正则化成本函数正则化线性回归正则化逻辑回归)

目录 一.正则化1.1 正则化的好处1.2 正则化的实现方式 二.正则化改进线性回归的成本函数2.1 正则化后的成本函数的意义2.2 λ参数的作用2.3 不同λ对算法的影响2.4 为什么参数b没有正则化项 三.正则化线性回归的梯度下降3.1 为什么正则化可以在梯度下降迭代中减小w3.2 导数的计…