简简单单 My SQL 学习笔记(2)——分组和简单数据的查询

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 简简单单 My SQL 学习笔记(2)——分组和简单数据的查询

初始数据

创建表(要记得先选择好我们的数据库 use+数据库名)

create table student(
studentno int(4) primary key not null auto_increment comment'学生编号',
loginpwd varchar(20) not null comment'密码',
studentname varchar(20) not null comment'学生姓名',
sex varchar(10) not null comment'性别',
gradeid int(10) not null comment'年级编号',
phone varchar(20) not null comment'电话号码',
address varchar(50)  comment'地址',
borndate datetime not null comment'生日',
Email varchar(50)  comment'邮箱',
indentiyucard varchar(50) not null comment'身份证号'
)

添加数据

insert into student values(1001,'1234','小唐','男',1,'13112312345','长沙市','2002-7-11','xaiotang@qq.com','320303198712031010');
insert into student values(1002,'1234','小喜','男',2,'13112312346','天津市','2021-2-3','xiaoxi@qq.com','320303198712031011');
insert into student values(1003,'1234','小欢','男',3,'13112312347','重庆市',now(),'xaiohuan@qq.com','320303198712031012');
insert into student values(1004,'1234','小黄','女',1,'13112312348','广州市','2002-2-14','xaiohuang@qq.com','320303198712031013');

添加好了之后,我们来看看吧

select *
from
student;


基本结构介绍

刚刚其实我们就已经出现过了【手动狗头】,只要你这个逻辑搞清楚,查询语句对你来说,just so so

由于刚刚我们是要查看所有表的信息,所以我们没有筛选条件,所以我们就没有写上去了


小实验

我们要去查找小唐的所有信息???

思路:

1.输出的话就一个*解决了

2.数据来源于我们的学生表

3.条件是名字等于小唐???(在这里有可能会有两个小唐,一般来说我们都是用主键(唯一确定的编号)也就是学号来查询,在这里为了方便理解就用的学生姓名)

select *
from student
where studentname='小唐';

如果只要小唐的姓名和小唐的住址???

select studentname 姓名,address 地址
from student
where studentname='小唐';

在这里,为了让统计更加的直观,小唐用了别名,也就是我们在select 选择要显示的列的时候 空格来加上一个名字,这样就会显示我们的别名了!


升序和降序排列 order by

就是在我们的最后加上一句order by 列名 +desc(降序)/asc(升序)

我们让我们的学号单独降序输出试试看吧

select studentno
from student
order by studentno desc;

是不是很简单!


模糊搜索 like

有时候我们想要去查找,姓唐的人,但是我们又不知道他的具体信息,这个时候就引出我们的模糊搜索了!!!

  • %

这个是我们模糊搜索的第一种用法,比如说我要查找姓黄的所有人

where studentname like '黄%'

也就是说,无论黄后面是什么字,只要你的第一个字是黄,那么我都会选择你

  • _
    这个是我们模糊搜索的第二种用法,比如说我要查找姓黄的所有人
where studentname like '黄_'

他的意思就相对简单多了,限定了,你加上黄只可以有两个字(是不是有点少,我们再来一个_就是三个字),还有这种写法的

where studentname like '_黄_'

就是说,你的倒数第二个字是黄就可以啦


分组 group by

我们一个需要统计一个列的种数,或者符合这个条件的行的种数,就比我们的年级分为1,2,3…,先在我需要查看有多少个年级,就需要用到我们的group by

select gradeid
from student
group by gradeid;


聚合函数 count(统计),max(),avg(),min(),sum()

MY SQL 为了更好的方便我们查找,很分析,就推出了我们的聚合函数,使用这些命令,我们可以更加方便的分析,举个例子,比如我现在需要统计我们刚刚分组,每一个对应年级的人数,直接在分组的基础上加上一个另外一个count就可以啦

select gradeid,count(gradeid)
 from student
 group by gradeid;

同时这些聚合函数也可也用于where,比如说我要输出我高于平均成绩的成绩,那么在where应该这样写,where 成绩>avg(成绩)

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
34 9
|
7天前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
26 3
|
9天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
12天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
13天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
32 1
|
11天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
53 0
|
12天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
42 0
|
SQL 存储 索引

推荐镜像

更多