您的位置:首页 > 其它

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

2020-07-12 16:58 106 查看

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;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: