2020-04-30 使用DQL命令查询数据(二)

2020-04-30 使用DQL命令查询数据(二)
!!!!重点记忆
SELECT [ALL | DISTINCT]
{ * | table.* | [ table.field1 [ as alias1] [,table.field2 [as alias2]][,…]] }
FROM table_name [ as table_ alias ] [left|out|inner join table_name2] #联合查询[ WHERE … ] #指定结果需满足的条件
[ GROUP BY …] #指定结果按照哪几个字段来分组[HAVING …] #过滤分组的记录必须满足的次要条件
[ ORDER BY… ] #指定查询记录按一个或者多个条件排序
[ LIMIT { [ offset,] row_count | row_count OFFSET offset }] ; #指定查询的记录从哪条至哪条order by 排序:对SELECT语句查询得到的结果,按某些字段进行排序
select 列名from 表名
join 关联的表名on 关联的属性where 条件
order by 排序的依据 列名 默认为asc (升序)排序,降序为desc排序
limit

*限制SELECT返回结果的行数
*m 制定第一个返回记录行的偏移量
*n 制定返回记录行的最大数目#展示前五条数据
SELECT * FROM ac_scroce LIMIT 0,5;
#2 offset 5;代表从下标为5的位置选取2行; SELECT * FROM ac_scroce LIMIT 2 OFFSET 5;
#单参数:代表从首行位置选取5条; SELECT * FROM ac_scroce LIMIT 5; #双参数用,隔开 #代表从下标为2的位置选取3行; SELECT * FROM ac_scroce LIMIT 2,3; 统计函数(常用)

在这里插入图片描述
-统计函数:
–count计数
select count(*) from a;–遍历整表,计数 效率低下,不建议使用
select count(1) from a;–增加一个全部是1的列,然后计数
select count(主键/不为空的字段) from a;–直接对字段进行计数 推荐使用
select count(可能为空的字段) from a;–会得出不为空的记录数
–分组 group by(正常情况下,字段中有相同数值)
–having 必须是在分组基础上进行筛选的时候使用
-where条件中的子查询,in(这里是值的列表) SELECT s.stu_id,s.stu_name FROM student s WHERE s.stu_id IN
(
SELECT stu_no FROM result JOIN SUBJECT ON
result.sub_no=subject.subject_no WHERE exam_rst>=80 AND
subject.subject_name=“mysql”
);
–join中的子查询,子查询当做临时表
SELECT s.stu_id,s.stu_name,r.rst,r.name FROM student s
JOIN
(SELECT stu_no,exam_rst rst,subject_name NAME FROM result r
JOIN SUBJECT s ON r.sub_no=s.subject_no

WHERE s.subject_name=“mysql” AND exam_rst>=80
) r
ON s.stu_id=r.stu_no
-分页的实际事例:当记录数不明确时,要求每一页5 条
–先得到记录数total
–分页的长度count
–页数:total/count*10%10=0(判断是否可整除)
–可以整除的结果:total/count
–不可以整除的结果:total/count+1
–每一页的起始(页数-1)*count
select * from a limit (页数-1)*count,count;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值