我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sql练习题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sql练习题

SQL练习题

学生表(student):id,name,age

科目和分数表(grade):no,id,kemu(科目),score(分数)

1、查询所有学生的数学成绩,显示学生名字name,分数,由高到低
select s.name, g.scorefrom student sinner join grade g on g.id = s.idwhere g.kemu = "数学"  order by g.score desc
2、统计每个学生的总成绩,显示字段:姓名,总成绩
select s.name,sum(g.score) as sum_scorefrom student sinner join grade g on g.id = s.id-- 必须使用聚合函数group by s.nameorder by sum_score desc
3、统计每个学生的总成绩(由于学生可能有重复名字),显示字段:学生id,姓名,总成绩
select s.id ,s.name,sum(g.score) as sum_scorefrom student sinner join grade g on g.id = s.id-- 通过id分组,预防名字重复group by s.idorder by sum_score desc
4、列出各门课程成绩最好的学生,要求显示字段:学号,姓名,科目,成绩
select s.id,s.name,g.kemu,g.scorefrom student s,(-- 各门课程最好的成绩和名称select kemu,max(score) as score from gradegroup by kemu) t, grade gwhere g.id = s.id and g.kemu = t.kemu and g.score = t.score 
5、计算每个人的平均成绩,要求显示字段:学号,姓名,平均成绩
select s.id,s.name,avg(g.score)from student sinner join grade g on g.id =s.idgroup by s.id,s.name
6、计算每个人的成绩,总分数,平均分,要求显示:学号,姓名,语文,数学, 英语,总分,平均分,使用case when … else…分支语句
-- 使用case when...else语句 设置不同科目的 成绩select s.id,s.name,sum(case when g.kemu ="语文" then g.score else 0 end ) as '语文',sum(case when g.kemu ="数学" then g.score else 0 end ) as '数学',sum(case when g.kemu ="英语" then g.score else 0 end ) as '英语',sum(g.score),avg(g.score)from student sinner join grade g on g.id =s.idgroup by s.id,s.name
7、列出各门课程的平均成绩,要求显示字段:课程,平均成绩
select kemu,avg(score)from gradegroup by kemu
8、列出数学成绩的排名, 要求显示字段:学号,姓名,成绩,排名
-- 查询列添加一个新的变量,作为排名select s.id,s.name,g.kemu,g.score,@row_number:=@row_number +1 as 排名-- 这里使用的是多表查询,没有使用连接的方式,使用内连接会出现语法错误from student s,(select @row_number:=0) t, grade g where g.kemu = '数学' and  g.id =s.idORDER BY g.score DESC-- 以上的语句,会出现分数一致,但是名次不一致-- 设置两个变量,一个是排名,一个是用来比较分数大小,设置排名的序号SELECTs.id,s.NAME,g.kemu,g.score ,(CASEWHEN @param = g.score THEN @row_number -- 在when中赋值,那这个条件判断是true还是false?,在实验中发现如果第一个when为false,这个when是必定true的,所以说是赋值的操作会认为是条件为truewhen @param := g.score THEN @row_number := @row_number + 1 -- 基于以上的实验,when的赋值永为true,所以=0的情况就没有必要写了-- WHEN @param = 0 THEN @row_number := @row_number + 1 END ) AS 排名 FROMstudent s,(SELECT @row_number := 0,@param := 0 ) t,-- 重新构建一个新的数学成绩排名临时表( SELECT id, kemu, score FROM grade WHERE kemu = '数学' ORDER BY score DESC ) g WHERE g.id = s.id 
9、列出数学成绩前 3 名的学生(要求显示字段:学号,姓名, 科目,成绩)
select s.id,s.name,g.kemu,g.scorefrom student s,grade gwhere g.kemu = '数学' and s.id = g.idorder by g.score desclimit 3
10、查询数学成绩第 2 和第 3 名的学生
select s.id,s.name,g.kemu,g.scorefrom student s,grade gwhere g.kemu = '数学' and s.id = g.idorder by g.score desc-- 2,3名,就是从索引1开始,向后取2位limit 1,2
11、查询第 3名到后面所有的学生数学成绩
select s.id,s.name,g.kemu,g.scorefrom student s,grade gwhere g.kemu = '数学' and s.id = g.idorder by g.score desc-- 填写一个很大的值,相当于后面全部limit 2,10000
12、统计英语课程少于 80 分的,显示 学号 id, 姓名,科目,分数
select s.id,s.name,g.kemu,g.scorefrom student s,grade gwhere s.id = g.id and g.kemu="英语" and g.score < 80
13、查找每科成绩前 2 名,显示 id, 姓名,科目,分数
SELECT t1.id, a.name, t1.kemu,t1.score FROM grade t1, student aWHERE-- 跟排序号的成绩进行比较统计,如果大于2,就说明改成绩已经是第三名了,然后就过滤(SELECT count(*) FROM grade t2WHERE t1.kemu=t2.kemu AND t2.score>=t1.score)<=2and a.id = t1.idORDER BY t1.kemu,t1.score DESC

查询学生表每门课都大于80分的学生姓名

-- 第一种,三门都大于80select s.id,s.namefrom student swhere -- 统计分数都大于80的科数(select count(*) from grade gwhere g.id = s.idand score >80)-- 三门都大于80=3-- 查询的是最小分数科目都大于80,可能会出现的情况是有的同学的成绩只有2门select s.id ,s.namefrom student s,grade g where s.id =g.idgroup by s.idhaving min(g.score) > 80

来源地址:https://blog.csdn.net/zhurigeng/article/details/127272285

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sql练习题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql练习题

SQL练习题 学生表(student):id,name,age 科目和分数表(grade):no,id,kemu(科目),score(分数) 1、查询所有学生的数学成绩,显示学生名字name,分数,由高到低 select s.name, g
2023-08-23

sql小练习

sql小练习原文地址:https://www.cnblogs.com/lxs1030/p/14146204.html

	sql小练习
2019-01-24

SQL练习——2020滴滴面试题 - Lu

目录一、题目二、数据处理三、问题解答一、题目题目信息:“订单信息表”记录了巴西乘客使用打车软件的信息,包括订单呼叫、应答、取消、完单时间。(滴滴2020数据分析面试题)字段信息:order_id:订单ID,呼叫订单识别号passenger_id:乘客ID,乘客
SQL练习——2020滴滴面试题 - Lu
2021-03-16

sql语句练习50题(含解析)

文章目录 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数(偏难)2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数3、查询平均成绩大于等于60分的每个同学的学生编号和学生姓名和平均成绩4、查询平均成绩小于
2023-08-18

python练习题

#############################userername = raw_input("USERNAME:")password = raw_input("PASSWORD:")if username == "user" a
2023-01-31

python习题练习(chapater

#!/usr/bin/env python# coding: utf-8'for practise in chapater five'#定义一个函数,计算并返回两个数的乘机def product(a, b): return(a * b)#根
2023-01-31

2020python练习——SQL查询

@2020.5.8 题目:1、查询所有的课程的名称以及对应的任课老师姓名2、查询学生表中男女生各有多少人3、查询物理成绩等于100的学生的姓名4、查询平均成绩大于八十分的同学的姓名和平均成绩5、查询所有学生的学号,姓名,选课数,总成绩6、 查询姓李老师的个数7
2020python练习——SQL查询
2017-09-07

python3学习之练习题

题目来自老男孩培训:作业1:信用卡程序功能要求(必须):1.额度15000,不可超额透支(用户ID,账号,密码,额度写入文件中)2.可以提现,手续费5%3.每月最后一天出账单(每月30天),写入文件(交易日,交易摘要,人民币金额,手续费)4
2023-01-31

python练习题1

题目:输入某年某月某日,判断这一天是这一年的第几天? 分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 情况,闰年且输入月份大于3时需考虑多加一天。 dateType= input('请输入年月日的格式为:
2023-01-31

Python--小题练习

1、Python列表排序 reverse、sort、sorted 操作方法详解reverse(倒序/反转)>>> >>> x=[1,2,3,4]>>> x.reverse()>>> print x[4, 3, 2, 1]>>> sort(正
2023-01-31

python 练习题2

常用函数考察:  dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))  range(10)     sorted([i for i in range(10)])  { i:i*i for i in ra
2023-01-31

Python练习题(二)

# 1.字符串最后一个单词的长度 题目描述:计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。输出描述: 整数N,最后一个单词的长度。示例1:    输入:hello world    输出:5
2023-01-31

python题目练习

1、随机生成一个大文件(5G以上),查找里面内容最长的N(N>5)行,并打印出来[root@saltstack-ui ~]# cat gen_large_file.pyimport oswith open("a.txt", "w") as 
2023-01-31

MySQL 50题练习

表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号–3.教师表Teacher
MySQL 50题练习
2017-03-13

python练习题(一)

一、用python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径#!/usr/bin/env pythonimport osfor root,dirs,files in os.walk('/tmp'):    for name
2023-01-31

Python练习题(day3)

一、函数练习题:1、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。4
2023-01-31

python基础1习题练习

python基础1习题练习:#encoding:utf-8#1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!name=input('name>>: ').strip()passwor
2023-01-31

编程热搜

目录