SQL终极基础思想训练+视图+索引

8 篇文章 0 订阅

视图:CREATE VIEW 视图名 AS 查询语句

1.-- 查询前五条学生数据

SELECT * FROM student LIMIT 0,5;
CREATE VIEW stu_5 AS SELECT * FROM student LIMIT 0,5;

– 查询第三十五页(pageSize*(pageIndex-1))
解析:SQL中范围展示是不允许携带运算(SELECT * FROM student LIMIT (35-1)*5,5;)是不行的

SELECT * FROM student LIMIT 170,5;

2.-- 查询每个地区的学校信息

SELECT s.a_id,a.a_name,s.sc_id,s.sc_name FROM area a INNER JOIN school s ON a.a_id = s.a_id ;

– 分页查询 所有学生的 基本信息以及所属院校和所属地区 分页展示 每页10条 展示第1页

SELECT stu.*,sc_name,a_name FROM student stu 
INNER JOIN school s ON stu.sc_id = s.sc_id 
INNER JOIN area a ON s.a_id = a.a_id  LIMIT 0,10;

3.-- 查询语文考试的前十名成绩

SELECT s_name,su_name,r_score FROM `subject` s 
INNER JOIN result st ON s.su_id = st.su_id 
INNER JOIN student stu ON st.s_id = stu.s_id 
WHERE su_name = '语文' ORDER BY r_score ;

– 查询总分前十名的成绩
解析:成绩内连接科目表以su_id为外键,分组,每组相加排序,取前十条

SELECT r.s_id 学生考号,sum(r.r_score) 总分 FROM result r 
INNER JOIN `subject` s ON r.su_id = s.su_id 
GROUP BY r.s_id ORDER BY SUM(r.r_score) DESC LIMIT 0,10 ;

– 显示上面SQL的考生姓名

SELECT stu.s_name 姓名,r.s_id 学生考号,sum(r.r_score) 总分 FROM result r 
INNER JOIN `subject` s ON r.su_id = s.su_id 
INNER JOIN student stu ON r.s_id = stu.s_id 
GROUP BY r.s_id ORDER BY SUM(r.r_score) DESC LIMIT 0,10 ;

– 显示上面SQL的考生所在学校和所属地区(SQL标准写法)

SELECT
stu.s_name 姓名,
r.s_id 学生考号,
sum(r.r_score) 总分,
sc.sc_name 校名,
a.a_name 地区
FROM
result r
INNER JOIN `subject` s ON r.su_id = s.su_id
INNER JOIN student stu ON r.s_id = stu.s_id
INNER JOIN school sc ON stu.sc_id = sc.sc_id
INNER JOIN area a ON sc.a_id = a.a_id
GROUP BY
r.s_id
ORDER BY
SUM(r.r_score) DESC
LIMIT 0,
10;

4.-- 统计一共有多少人参加高考,过一本线(大于等于550分),二本线(大于等于450分),专科线(大于等级250分的)分别有多少人;

SELECT
COUNT(s_id) 总人数,
SUM(
	CASE
	WHEN za >= 550 THEN
		1
	ELSE
		0
	END
) 一本人数,
SUM(
	CASE
	WHEN za < 550
	AND za >= 450 THEN
		1
	ELSE
		0
	END
) 二本人数,
SUM(
	CASE
	WHEN za < 450
	AND za >= 250 THEN
		1
	ELSE
		0
	END
) 专科人数
FROM
(
	SELECT
		s_id,
		SUM(r_score) za
	FROM
		result r
	GROUP BY
		s_id
) a
;

5.-- 每个区参数考试人数

SELECT a_name 区,COUNT(总成绩) 参考人数 FROM zcj 
INNER JOIN student stu ON zcj.s_id = stu.s_id 
INNER JOIN school s ON stu.sc_id = s.sc_id
INNER JOIN area a ON s.a_id = a.a_id
GROUP BY a_name;

– 每个区的录取情况
解析:先求出每个区的参考人数,在求出比率,再求出各个分数线录取情况

 SELECT  FROM (SELECT s_id,sum(r_score) FROM result GROUP BY s_id)

SELECT 区,ROUND(参考人数/39137*100,1) 百分占比 FROM qckrs GROUP BY 百分占比 DESC;

– 索引
创建

CREATE INDEX 索引名 ON 表明(列明)

查看

SHOW INDEX FROM student

删除

DROP INDEX 索引名 on 表明(列明);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值