mysql数据库怎么查表数据差5行_mysql基础-数据库表简单查询-记录(五)

本文介绍了MySQL数据库的基础查询操作,包括单表查询和多表查询,涉及选择、投影、布尔条件表达式、排序、聚合函数、分组和LIMIT等。重点讲解了如何使用SELECT语句进行数据筛选、去重、分组过滤,并通过实例展示了不同查询场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x01

MySQL的查询操作

单表查询:简单查询                 多表查询:连续查询                联合查询

选择和投影

投影:挑选要符合的字段     select 字段 .........

选择:挑选符合条件的行  select 字段 from 表  ....... where .......

投影:select 字段1,字段2,... from tb_name

selcet * from tb_name

选择:select 字段1,字段2,.... from tb_name where 子句

布尔条件表达式操作符

= 等值比较

<=>:跟空值比较不会产生额外信息

<>:不等值

<     小于

<=   小于等于

>     大于

>=   大于等于

IS NULL:是否为空

IS NOT NULL:是否不为空

LIKE:支持的通配符%(任意长度的任意字符)       (下划线) _(任意单个字符)

RLIKE,REGEXP:支持使用正则表达式作为条件

IN:判断某行的某一字段的值是否在给定的列表中  in(2.3.4.5.6.67.7.8.8 .......) 符合里面的条件即可

BETWEEN...AND....:判断指定的值是否位于指定的范围之间  在两者之间的范围

组合条件测试

NOT !    ----- 非

AND && ------ 和

OR ||    ------  或

排序

order by ‘排序字段’

默认为升序:ASC   默认不添加,  升序 ---- 即 从小到大 一次排序

降序:DESC         降序   ----- 即 从大到小

内置的聚合函数

sum():求和

AVG():平均值

MAX():最大值

MIN():最小值

COUNT():个数统计    count(*)  效率不高,推荐在使用过程随便选个表中的字段进行查询--效率略高

分组

group by     ----- 可以理解为对某一类进行分类,例如  性别 男 女  , 班级等....

对分组的条件过滤

having        ----- 只能和group by 配合使用,不能单独使用 对分组后的数据进行过滤

只返回有用的行

LIMIT         limit 5   ------ 理解为表示从第一行显示到第五行   limit 3,8 ---理解为表示从第三行开始显示到第八行

一个数为显示的行数

两个数字为偏移第一个数字行,显示第二个数字

select语句的执行流程

from clause --> where clause --> group by --> having clause -->order by --> select -->limit

先找表---> 条件过滤筛选  ----> 对左边筛选的数据进行分组 ----->  对分组后的数据进行过滤  ----> 对分组后过滤的数据进行排序  --->  将获取的最终结果进行查询  ---> 对获取的结果进行确认该显示哪条数据

select语句

distinct 重复的只显示一次    ---- 去重

SQL_CACHE 缓存查询结果

SQL_NO_CACHE 不缓存查询结果

实例

select ClassID,count(Name) from students where ClassID is not null group by ClassID;

select Gender,sum(Age) from students group by Gender;

select avg(Age) from students group by ClassID having sum(Age) > 25;

select ClassID from students where ClassID is not null group by ClassID having sum(Age) > 25;

select Name,Gender,sum(Age) from students where Age > 25 group by Gender;

复制一张表:

第一种方法:

create table tab2 like tab1; //复制结构了

insert into tab2 select * from tab1; //复制数据

这种方法可以比较完整       ----- 推荐使用这种方法

第二种方法:

create table tab2 select * from tab1; //同时复制结构和数据

这种方法可能会丢一些结构信息,比如:索引,约束,自增长属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值