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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 简简单单 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(成绩)

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
SQL 缓存 监控
MySQL缓存机制:查询缓存与缓冲池优化
MySQL缓存机制是提升数据库性能的关键。本文深入解析了MySQL的缓存体系,包括已弃用的查询缓存和核心的InnoDB缓冲池,帮助理解缓存优化原理。通过合理配置,可显著提升数据库性能,甚至达到10倍以上的效果。
|
7月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
7月前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
储存过程(Stored Procedures) 和 函数(Functions) : 储存过程和函数允许用户编写 SQL 脚本执行复杂任务.
289 14
|
7月前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
以上概述了MySQL 中常见且重要 的几种 SQL 查询及其相关概念 这些知识点对任何希望有效利用 MySQL 进行数据库管理工作者都至关重要
188 15
|
7月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
7月前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
7月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
7月前
|
SQL 监控 关系型数据库
MySQL高级查询技巧:子查询、联接与集合操作
本文深入解析了MySQL高级查询的核心技术,包括子查询、联接和集合操作,通过实际业务场景展示了其语法、性能差异和适用场景,并提供大量可复用的代码示例,助你从SQL新手进阶为数据操作高手。
|
SQL 存储 索引

推荐镜像

更多