数据库的查询操作

数据库的查询是学习数据库的核心:
(1)最基础的查询语句:select * from 表名
----from关键字后面写表名,表明数据来源于这张表
----select后面写表中的列名,如果是 * 表示在结果中显示表中的所有列,后面也可以接部分的列名查询部分的数据,如果需要查询多个列之间使用逗号分隔

(2)消除重复的行
----在select后面列前使用distinct可以消除重复的行:select distinct 某列名 from 表名

(3)条件查找
使用where子句对表中的数据筛选,结果为true的行会出现在结果中,语法如下:
select * from 表名 where 条件;
–比较运算符:
等于=
大于>
。。。。。
eg: select * from 表名 where id > 3;

–逻辑运算符
and
or
not
eg: select * from 表名 where id > 3 and gender=0

–模糊查询
关键字: like
%表示任意多个字符
表示一个任意字符
eg: 查询姓许的学生
select * from 表名 where name like ‘许%’
eg: 查询姓许并且名字中只有一个字的学生
select * from 表名 where name like '许

–范围查找
非连续范围的查询: 关键字in 表示在一个非连续的范围内
eg: select * from 表名 where id in(1,4,8);
这里的操作和python中的语法有些相似
连续性范围的查询:关键字between…and…
eg:查询编号在1到9的学生
select * from 表名 where id between 1 and 9;

–空判断
关键字: null 和 not null 判断用is 也是和Python的语法一样
判别空和非空: is null 和 is not null
查询填写了名字的学生: select * from 表名 where name is not null

–优先级
小括号,not, 比较运算符,逻辑运算符
and比or先运算,可以通过小括号来提升优先级

(4)聚合查找
聚合:为了快速得到统计数据
–count(*)表示计算总行数,或者列名结果是相同的
eg: select count(
) from students

–max(列名):表示求此列的最大值
–min(列名):表示求此列的最小值
–sum(列名):表示求此列的和
–avg(列名):表示求此列的平均值
eg select avg(id) from sudents
均是在select之后添加这些聚合函数

(5)分组
按照字段分组,表示此字段相同的数据会被放到一个组中,分组后,只能查询出相同的数据列(仅仅显示分组的那列),对于有差异的数据列无法出现在结果中。可以对分组后的数据进行统计,做聚合运算
语法: select 列1,列2,聚合…from 表名 group by 列1,列2,列3.。。。。

eg:select gender ,count(*) from 表名 group by gender;
对性别进行分组,最终分成两组,在进行聚合最终得到2

分组后的数据筛选:
select 列1,列2,聚合…from 表名 group by 列1,列2,列3.。having 列1.。。。聚合…
eg: 查询男生总人数
方案一: select count(gender) from 表名 where gender=1
方案二:先分组,在从分组中去选择对应,然后通过对应的数据来进行聚合运算
select gender, count(*) from 表名 group by gender having gender=1

对比where 和having
—where是对from后面指定的表进行数据筛选,属于对原始数据进行筛选
—having是对group by的结果进行筛选

(6)排序查询
为了方便查看数据,可以对数据进行排序
语法: select * from 表名 order by 列 asc | desc
asc | desc表示的是升序以及降序展示,一般order by是放在语句的后面进行写的
eg:按照价格进行升序排序
select * from 表名 order by price asc ; 默认是asc可带可不带的

(7) 分页查询数据:主要用于显示数据用的
当数据量过大时,在一页中查看数据是一件非常麻烦的事情,
固定位置查询数据的方式:select * from 表名 limit start , count;从start开始,获取count条数据,start的索引是从0开始

分页显示数据:每页显示m条数据,当前显示第n页:select * from 表名
limit (n-1)*m,m

对上面的语句总结:

select  *  from  表名
where......
group by ......having......
order  by ......
limit  start, count
执行的顺序 : from  表名
where
group by ...
having.....
order by.....
limit  start, count...

这里就是一些常用的数据库中数据的查询语句,需要的时候可以来查,主要是查询逻辑得想明白

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值