1、数据库是按照原文制作的,表格结构一样具体存储的数据有些差异

原文地址:MySQL练习题

原答案地址:MySQL练习题参考答案

2、查询“生物”课程比“物理”课程成绩高的所有学生的学号;

select wl.sid from (select sc.student_id as sid,sc.number as grade from score sc,course c
where c.cid=sc.course_id and c.cname='物理') as wl,(select sc.student_id as sid,sc.number as

grade from score sc,course c where c.cid=sc.course_id and c.cname='生物') as sw where

wl.sid=sw.sid and sw.grade>wl.grade;

3、查询平均成绩大于60分的同学的学号和平均成绩;

select student_id,avg(number) as avg from score group by student_id having avg(number)>60;

4、查询所有同学的学号、姓名、选课数、总成绩;

select s.sid,s.sname,w.total,w.sum from student s,(select student_id,count(course_id) as

total,sum(number) as sum from score group by student_id) as w where s.sid=w.student_id;

5、查询姓“李”的老师的个数;

select count(*) from teacher where tname like '钱%';

6、查询没学过“叶平”老师课的同学的学号、姓名;

select s.sid,s.sname from student as s where s.sid not in (select distinct sc.student_id from

score as sc,teacher as t,course as c where t.tid=c.teacher_id and c.cid=sc.course_id and

t.tname='赵');

7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

select student.sid,student.sname from student,(select * from score where course_id=1) as w,

(select * from score where course_id=2) as e where w.student_id=e.student_id and

student.sid=w.student_id;

8、查询学过“叶平”老师所教的所有课的同学的学号、姓名;

select s.sid,s.sname from student as s where s.sid in (select distinct sc.student_id from

score as sc,teacher as t,course as c where t.tid=c.teacher_id and c.cid=sc.course_id and

t.tname='赵');

9、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;

select student.sid as id,student.sname as name from student,(select w.student_id as wid from

(select * from score where course_id=1) as w,(select * from score where course_id=2) as e

where w.student_id=e.student_id and w.number>e.number) as m where m.wid=student.sid;

10、查询有课程成绩小于60分的同学的学号、姓名;

select s.sid as id,s.sname as name from student as s,score as sc where s.sid=sc.student_id

and sc.number<60 group by s.sid;

11、查询没有学全所有课的同学的学号、姓名;

select sid,sname from student where sid in (select distinct student_id from score group by

student_id having count(course_id)=(select count(*) from course));

12、查询至少有一门课与学号为“001”的同学所学相同的同学的学号和姓名;

select sid,sname from (select distinct student_id from score left join (select course_id from

score left join student on score.student_id = student.sid where student.sid=1) as c on

score.course_id = c.course_id where student_id != 1) s left join student on

s.student_id=student.sid;

13、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;

select student.sid,student.sname from student right join score on

student.sid=score.student_id where student_id!=1 and course_id in (select course_id from

score where student_id=1) group by student_id having count(course_id)=(select count

(course_id) from score where student_id=1);

14、查询和“002”号的同学学习的课程完全相同的其他同学学号和姓名;

select sid,sname from student where sid in (select student_id from score right join (select

course_id from score where student_id=1) w on score.course_id=w.course_id where student_id!=1

group by student_id having count(student_id)=(select count(*) from score where

student_id=1));

15、删除学习“叶平”老师课的SC表记录;

delete from score where course_id in (select cid from teacher,course where

teacher.tid=course.teacher_id and teacher.tname='周');

16、向SC表中插入一些记录,这些记录要求符合以下条件:①没有上过编号“002”课程的同学学号;②插入“002”号课程的平均成绩;

insert into score(student_id,course_id,number) select sid,1,(select avg(number) from score

where course_id=1) from student where sid not in (select student_id from score where

course_id=1);

未完待续

mysql练习题练习的更多相关文章

  1. MySQL练习题

    MySQL练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号和平均成 ...

  2. MySQL练习题参考答案

    MySQL练习题参考答案 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 思路: 获取所有有生物课程的人(学号,成绩) - 临时表 获取所有有物理课程的人(学号,成绩) - 临时表 根据[ ...

  3. s15day12作业:MySQL练习题参考答案

    MySQL练习题参考答案   导出现有数据库数据: mysqldump -u用户名 -p密码 数据库名称 >导出文件路径           # 结构+数据 mysqldump -u用户名 -p ...

  4. Python/ MySQL练习题(一)

    Python/ MySQL练习题(一) 查询“生物”课程比“物理”课程成绩高的所有学生的学号 SELECT * FROM ( SELECT * FROM course LEFT JOIN score ...

  5. python/MySQL练习题(二)

    python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...

  6. python 全栈开发,Day65(MySQL练习题,参考答案)

    一.MySQL练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号.ps:针对的是自己的生物成绩比物理成绩高,再 ...

  7. mysql 练习题答案

    一 题目 1.查询所有的课程的名称以及对应的任课老师姓名 2.查询学生表中男女生各有多少人 3.查询物理成绩等于100的学生的姓名 4.查询平均成绩大于八十分的同学的姓名和平均成绩 5.查询所有学生的 ...

  8. MySQL练习题及答案(复习)

    新建一个叫做 review 的数据库,将测试数据脚本导进去.(可以使用Navicat查询功能) /* Navicat MySQL Data Transfer Source Server : DB So ...

  9. mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

    (-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-- ...

随机推荐

  1. Mysql数据库操作语句总结(一)

    下面的内容来源于链接 https://www.cnblogs.com/bchjazh/p/5997728.html,  个人在此基础上进一步添加了一点东西. 个人操作数据库:  mysql 5.5.2 ...

  2. android获取https证书

    最近碰到一个问题, 有朋友问android这边能不能拿到服务器下发的证书,意思就是   自签名证书的https接口,在请求的时候,也没有添加自签名证书进信任列表,直接去发https请求,按照正常htt ...

  3. 【extjs6学习笔记】1.12 初始: Working with DOM

    http://www.extjs-tutorial.com/extjs/working-with-dom Ext JS是一个DHTML库. 它通过使用JavaScript创建或操作DOM元素来创建UI ...

  4. Python之自定义封装一个简单的Log类

    参考:http://www.jb51.net/article/42626.htm 参考:http://blog.csdn.net/u011541946/article/details/70198676 ...

  5. C# ,通用内存集合对象分页、筛选(lambda那点事)

    通常呢我们需要翻页的数据大多都是从数据库中取,翻页.筛选.排序啥的都是通过SQL语句由数据库帮我搞定,那么有些需求没有数据库呢?或者有些数据只存在于内存中不存到数据库呢?怎么实现内存里面的对象集合的通 ...

  6. linux 命令——21 find(转)

    在 使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命 令长度有限制,这样在find命令运行几分钟之后,就 ...

  7. php之基础深入---类与对象篇

    1.类的自动加载: spl_autoload_register()函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载,这样可以避免includ ...

  8. Ubuntu中文乱码问题

    版本 Ubuntu 14.1 系统安装完成后,中文都显示成了乱码 终端或者命令行里输入 sudo apt-get install zhcon 等安装完即可~ 运行的时候记得要加载vgz驱动和utf8支 ...

  9. 2018.6.9 MyEclipse连接Oracle数据库方法及步骤

    在windows栏找到showXXX 然后选择最后一个others 找到Database 然后选择oracle 接着就是jar包的问题了 这个不同于mysql oracle如果装在了本机上面可以在文件 ...

  10. perl 输出当前时间

    #!/bin/perluse POSIX;print strftime("%Y-%m-%d %H:%M:%S", localtime);