上一篇介绍了数据表的插入、修改和删除等操作,今天来介绍一下数据表的详细查询。
如果你不知道在哪里下载数据库连接工具的话,请点击这里下载,并查看教程数据库的登录以及数据库和数据表的常用命令。
查询是一项经常要用到的技能,所以特意用一篇文章来详细介绍。
查询语句
简单查询
直接查询
select * from tb_name;
字段别名
select 字段名 as 别名 from tb_name;
去重查询
select distinct 字段名 from student;
查询有哪些不同的班级,distinct还可以跟多个字段,如下图
这里根据两个字段去重
条件查询
select * from tb_name where
范围查询
select * from tb_name where 字段 between 下限 and 上限;
这里的范围是包含的关系,即都是闭区间[]
in查询
select * from tb_name where 字段 in (‘’);
这里查询班级含有120803,120804的数据
逻辑运算符
and 并
or 或
not 非
select * from tb_name where 字段 not in (‘’);
算术运算符
<, <=, >, >=, !=
模糊查询
select * from tb_name where 字段 like ‘’;
子查询
子查询概述
子查询指一个查询语句嵌套在另一个查询语句内部的查询,内部的查询是外部查询的条件,子查询(内查询)在主查询之前执行完成,子查询的结果被主查询(外查询)使用。
单行子查询
子查询的结果返回一行
以上查询年龄大于平均年龄的学生。
多行子查询
子查询的结果返回多行
以上查询成绩大于60的学生。
连接查询
增加一张学生成绩表
内连接
inner join 表名 on 连接条件
把学生表和成绩表连接了起来,并查询两张表的信息,两张表都能匹配的数据才会返回结果
左连接
left join 表名 on 连接条件
右连接
right join 表名 on 连接条件
union
不包括重复数据
union all
包括重复数据
分组
select 字段A from tb_name group by 字段A;
这里再补充说明一下,根据字段A分组,意思是字段A同样的值会分到同一组里,count意思是这一组里的这个值,数量有多少个。
group by 后可以跟having条件,即分组后再根据条件过滤一下结果
也可以根据多个字段分组,这样的话,多个字段的值都相同才会分到同一个组里
排序
order by 字段 asc/desc;
还可以根据多个字段排序
分页
limit 数字 offset 数字,limit代表限制返回多少条,offset偏移量代表从第几条开始计算,0代表第一条(类似数组下标从0开始)
分组、排序、分页连接起来使用,顺序如下:
group by->order by->limit
聚合函数
- count() :统计记录的条数;
- sum():计算字段的值的总和;
- avg():可以求出表中某个字段取值的平均值;
- max():可以求出表中某个字段取值的最大值;
- min():可以求出表中某个字段取值的最小值。
常用函数
- concat,连接字符串
- replace,替换字符串
- substring,截取字符串
- cast,将字符串数字转换成数字类型
- date_format,时间转字符串
- str_to_date,字符串转时间
- from_unixtime,时间戳转时间
写这篇文章花费了我三个多小时的时间,基础很重要,温故而知新,如果对你有用,请用发财小手点点赞吧~
如果你对我的创作感兴趣并且你能学到有用的技术,请点关注,点关注不迷路,你要是觉得文章写得可以的话,请点赞、分享加收藏,谢谢~