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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 简简单单 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(成绩)

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
SQL 缓存 关系型数据库
|
2天前
|
存储 关系型数据库 MySQL
关系型数据库mysql数据文件存储
【6月更文挑战第15天】
9 4
|
2天前
|
canal 关系型数据库 MySQL
蓝易云 - 详解canal同步MySQL增量数据到ES
以上就是使用Canal同步MySQL增量数据到Elasticsearch的基本步骤。在实际操作中,可能还需要根据具体的业务需求和环境进行一些额外的配置和优化。
19 2
|
1天前
|
SQL 数据库
零基础学习数据库SQL语句之操作表中数据的DML语句
零基础学习数据库SQL语句之操作表中数据的DML语句
4 0
零基础学习数据库SQL语句之操作表中数据的DML语句
|
1天前
|
SQL 前端开发 关系型数据库
零基础学习数据库SQL语句之查询表中数据的DQL语句
零基础学习数据库SQL语句之查询表中数据的DQL语句
4 0
|
3天前
|
监控 关系型数据库 MySQL
MySQL 查询数据库响应时长详解
- 启用慢查询日志(`slow_query_log`)分析超时查询,调整`long_query_time`阈值。 - 使用`EXPLAIN`检查查询执行计划,优化索引和查询结构。 - `SHOW PROFILE`揭示查询各阶段耗时,辅助性能调优。 - 开启Performance Schema监控服务器,通过`events_statements_summary_by_digest`等表分析性能。 - MySQL Workbench和Percona Toolkit等工具提供额外的性能分析和管理功能。 - 优化技巧:创建合适索引,精简查询,调整数据库配置以提升响应速度。
38 0
|
14天前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之DataWorks是否支持通过SQL方式在MaxCompute中查询数据,并通过数据集成服务将查询结果同步至MySQL数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
数据库
mysql-SQL从一个表查询数据插入/更新到另一个表
mysql-SQL从一个表查询数据插入/更新到另一个表
26 0
|
9月前
|
SQL
Sql去重查询数据
Sql去重查询数据
69 0
|
1月前
|
SQL 关系型数据库 MySQL
mysql 中sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月数据
mysql 中sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月数据