DQL语句练习(附上自编答案)

数据源:
没法导入脚本文件,下面附上建表语句可以自己把语句粘贴在记事本上 改为.sql后缀名使用

show variables like'character_set_%';
set character_set_server=utf8;
set character_set_database=utf8;create database exp;
use exp;create table 教师 (教师号  char(8) primary key,教师名  char(8) not null,学院代码  char(10)) default char set ='utf8';create table 课程
( 课程号 char(8)  primary key,课程名 char(20) not null,学时   int) default char set ='utf8';create table 学生( 学号 char(8) primary key,姓名 char(10) not null,性别 char(4) not null,学院代码 char(10)) default char set ='utf8';create table 授课
( 教师号 char(8) references 教师(教师号),课程号 char(8) references 课程(课程号),primary key (教师号, 课程号)) default char set ='utf8';create table 学院
( 学院代码 char(10) primary key,学院名称 char(30) not null) default char set ='utf8';create table 学习
( 学号  char(8) references 学生(学号),课程号 char(8) references 课程(课程号),教师号 char(8) references 教师(教师号),成绩 int ,primary key  (学号,课程号,教师号)) default char set ='utf8';insert into 教师 values('1','李梦','100');
insert into 教师 values('2','张亮','101');
insert into 教师 values('3','王刚','102');
insert into 教师 values('4','赵广','103');
insert into 教师 values('5','孙露','104');insert into 课程 values('C1','数据库','40');
insert into 课程 values('C2','软件工程','32');
insert into 课程 values('C3','经济学','32');
insert into 课程 values('C4','古代汉语','64');
insert into 课程 values('C5','信号与系统','72');
insert into 课程 values('C6','材料力学','56');
insert into 课程 values('C7','通信原理','72');insert into 学生 values('T01','王娜','女','100');
insert into 学生 values('T02','李倩','女','100');
insert into 学生 values('T03','张皓','男','100');
insert into 学生 values('T04','李静','女','101');
insert into 学生 values('T05','周小米','女','101');
insert into 学生 values('T06','王石','男','102');
insert into 学生 values('T07','谢楠','女','102');
insert into 学生 values('T08','蒋明','男','102');
insert into 学生 values('T09','陈冲','男','102');
insert into 学生 values('T10','赵琳','女','102');
insert into 学生 values('T11','韩寒','女','103');
insert into 学生 values('T12','吴亮','男','103');
insert into 学生 values('T13','刘波','男','103');
insert into 学生 values('T14','张斌','男','104');
insert into 学生 values('T15','周通','男','104');
insert into 学生 values('T16','张航','男','100');insert into 学习 values('T01','C1','1',88);
insert into 学习 values('T01','C3','3',54);
insert into 学习 values('T01','C4','3',69);
insert into 学习 values('T01','C5','3',85);
insert into 学习 values('T02','C3','3',74);
insert into 学习 values('T02','C4','3',63);
insert into 学习 values('T02','C5','3',66);
insert into 学习 values('T02','C6','4',77);
insert into 学习 values('T03','C1','1',95);
insert into 学习 values('T03','C2','2',92);
insert into 学习 values('T03','C3','3',92);
insert into 学习 values('T03','C4','3',91);
insert into 学习 values('T03','C5','3',87);
insert into 学习 values('T04','C1','1',83);
insert into 学习 values('T04','C3','3',64);
insert into 学习 values('T04','C5','3',62);
insert into 学习 values('T05','C3','3',83);
insert into 学习 values('T05','C4','3',78);
insert into 学习 values('T05','C6','4',78);
insert into 学习 values('T06','C3','3',66);
insert into 学习 values('T06','C5','5',33);
insert into 学习 values('T07','C3','3',69);
insert into 学习 values('T07','C4','3',56);
insert into 学习 values('T08','C3','3',64);
insert into 学习 values('T08','C5','5',65);
insert into 学习 values('T09','C2','2',64);
insert into 学习 values('T09','C3','3',45);
insert into 学习 values('T10','C3','3',46);
insert into 学习 values('T10','C4','3',56);
insert into 学习 values('T11','C3','3',75);
insert into 学习 values('T12','C3','3',86);
insert into 学习 values('T13','C3','3',67);
insert into 学习 values('T14','C3','3',65);
insert into 学习 values('T15','C3','3',68);
insert into 学习 values('T15','C5','3',56);
insert into 学习 values('T16','C1','1',91);
insert into 学习 values('T16','C2','2',89);
insert into 学习 values('T16','C3','3',94);
insert into 学习 values('T16','C4','3',76);
insert into 学习 values('T16','C5','5',81);
insert into 学习 values('T16','C6','4',82);insert into 学院 values('100','计算机');
insert into 学院 values('101','机电');
insert into 学院 values('102','管理');
insert into 学院 values('103','材料');
insert into 学院 values('104','文法');insert into 授课 values('1','C1');
insert into 授课 values('2','C2');
insert into 授课 values('3','C3');
insert into 授课 values('3','C4');
insert into 授课 values('3','C5');
insert into 授课 values('4','C6');
insert into 授课 values('5','C5');
insert into 授课 values('5','C6');
insert into 授课 values('5','C7');

1.求选修了老师“王刚”开课课程且成绩在90分以上的学生姓名、课程名称和成绩;(姓名,课程名,成绩)

select e.姓名,e1.课程名,e2.成绩 from 学生 e,课程 e1,学习 e2,教师 e3 where e.学号=e2.学号 and e1.课程号=e2.课程号 and e2.成绩>90 and e3.教师号=e2.教师号 and e3.教师名="王刚";

2.求选修了“王刚”老师所授全部课程的学生姓名和学院名称;(姓名,学院名称)

select e.姓名,e1.学院名 from 学生 e,学院 e1 where e.学院编码=e1.学院编码 and not exists (select *from 授课 e2,教师 e3 where e2.教师号= e3.教师号 and e3.教师名="王刚" and not exists(select *from 学习 where 学习.学号=e.学号 and 学习.课程号=e2.课程号));

3.求没有选修课程“软件工程”的学生学号和姓名;(学生学号,姓名)

select distinct e.学号,e.姓名 from 学生 e,学习 e1,课程 e2 where e.学号=e1.学号 and e1.课程号=e2.课程号 and not exists(select e5.学号 from 课程 e4,学习 e5  where e5.课程号=e4.课程号 and e4.课程名="软件工程"and e5.学号=e.学号);

4.求至少选修了两门课程的学生学号;(学号)

select distinct e1.学号 from 学习  e1 join (select e2.学号,count(e2.学号) p from 学习 e2 group by e2.学号) t on t.学号=e1.学号 where t.p>=2;

5.求课程“经济学”不及格学生姓名和考试成绩;(姓名,成绩)

select e1.姓名,e3.成绩 from 学生 e1,课程 e2,学习 e3 where e1.学号=e3.学号 and e2.课程号=e3.课程号 and e2.课程名="经济学" and e3.成绩<60;

6.求至少选修了与学号“T06” 同学选修的课程相同的学生学号;(学号)

select e.学号 from 学生 e where not exists (select *from 学习 e1 where e1.学号="T06" and not exists(select *from 学习 e2 where e2.学号=e.学号 and e2.课程号=e1.课程号));

7.求至少选修了“C3,C4”两门课程的学生姓名和学院名称;(姓名,学院名称)

select distinct e.姓名,e1.学院名 from 学生 e,学院 e1,学习 e2 where e.学号=e2.学号 and e.学院编码=e1.学院编码 and e2.课程号="C3”  and e.学号 in (select e3.学号 from 学习 e3 where e3.课程号=”C4”);

8.查询“王石”同学没有选修的课程号和课程名; (课程号,课程名)

select distinct e6.课程号,e6.课程名 from 课程 e6 where e6.课程号 not in ( select  e1.课程号 from 学生 x ,课程 e1,学习 e where x.学号=e.学号 and e.课程号=e1.课程号  and  x.姓名="王石");

9.查询没有被任何学生选修的课程的课程号;(课程号)

select distinct e5.课程号 from 课程 e5 where e5.课程号 not in( select distinct e.课程号 from  学习 e);

10.求选修了全部课程的学生姓名;(姓名)

select e.姓名 from 学生 e where not exists(select *from 课程 e1 where not exists(select *from 学习 e2 where e2.课程号=e1.课程号 and e2.学号=e.学号));

11.查询各学院课程“经济学”的平均分,并按照成绩从高到低的顺序排列;(学院名称,平均分)

select e3.学院名 ,avg(e.成绩) 成绩 from 学习 e,课程 e1,学生 e2,学院 e3 where e.学号=e2.学号 and e.课程号=e1.课程号 and e2.学院编码=e3.学院编码 and e1.课程名=”经济学” group by e2.学院编码 order by 成绩 desc;

12.查询选修课程“经济学”的学生姓名和所在院系,结果按各院系排列,同时成绩从高到低排列;(姓名,学院名称,成绩)

select e2.姓名 ,e3.学院名, e.成绩  from 学习 e,课程 e1,学生 e2,学院 e3 where e.学号=e2.学号 and e.课程号=e1.课程号 and e2.学院编码=e3.学院编码 and e1.课程名=”经济学” order by e3.学院名 desc,e.成绩 desc;

13.求学时在30-45之间(含30和45)的课程的课程号和课程名称及授课教师;(课程号,课程名,教师姓名)

select e.课程号,e.课程名,e1.教师名 from 课程 e,教师 e1,授课 e2 where e.课程号=e2.课程号 and e2.教师号=e1.教师号 and e.学时 between 30 and 45;

14.检索选修课程“经济学”的最高分学生的姓名;(姓名)

select e1.姓名 from 学生 e1 ,学习 e2,课程 e3 where e1.学号=e2.学号 and e2.课程号=e3.课程号 and e3.课程名=”经济学” and e2.成绩=(select max(e.成绩)  from 学习 e,课程 e0 where  e.课程号=e0.课程号  and e0.课程名=”经济学”);

15.查询选课人数超过5人的课程的课程号及课程名;(课程号,课程名)

select e.课程号,e.课程名 from 课程 e join(select e1.课程号,count(e1.课程号) number from 学习 e1 group by e1.课程号) t on e.课程号=t.课程号 where  number>5;

有错误/好的建议可以评论回复,谢谢观看.

数据库-DQL练习(附答案)相关推荐

  1. 史上最难oracle数据库练习题(附答案)

    oracle数据库练习题,所有练习数据都来自于安装oracle数据库后,自带的那几张表,EMP,DEPT等. 部分题目答案已给出,若有异议可以私聊一起探讨. 第一题: 统计薪资大于  薪资最高的员工所 ...

  2. mysql高级查询面试_高级MySQL数据库面试问题 附答案

    因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...

  3. 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  4. 【数据库原理及应用】经典题库附答案(14章全)——第十三章:面向对象程数据库系统

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  5. 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  6. 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  7. 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  8. 【数据库原理及应用】经典题库附答案(14章全)——第八章:数据库并发控制

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  9. 【数据库原理及应用】经典题库附答案(14章全)——第七章:数据库恢复技术

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

最新文章

  1. js左侧三级菜单导航代码
  2. String.format()【演示具体的例子来说明】
  3. 产品规划,要考虑哪些方面?
  4. 两个小知识:C#如何设置开机启动时自动执行程序|C# WinForm打开超链接
  5. java面试常考系列四
  6. vision transformer(viT)教学视频【通俗易懂】
  7. 结构设计模式 - 复合设计模式
  8. 《SpringBoot揭秘:快速构建微服务体系》—第1章1.2节微服务因何而生
  9. 小车故障灯亮显示大全_原创案例丨17款迈锐宝XL缺缸故障
  10. 推荐5款实用的PC端软件!!!
  11. 十分钟看懂AlphaGo的核心算法
  12. android studio USB连接华为手机不显示调试信息问题
  13. 鲁大师2022年Q1季度电动车报告:市场不断细分,产品白刃战开启
  14. C++ 类(继承中的构造和析构)
  15. 计算机综合症怎么治,哪些运动可以用来治疗“电脑综合症”
  16. word 输入数学公式(1)
  17. “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )错误
  18. Kettle5.2 Carte.bat 页面中文乱码
  19. 天池比赛notebook
  20. uni-app watch computed API作用语法用法 +案例

热门文章

  1. 给网游写一个挂吧(二) – 启动外挂上
  2. 深入理解缓存系统|单机QPS突破千万优化之路
  3. 阿里二面:你来设计一下 Flink 性能调优?
  4. 华为云网络覆盖全球2500+站点,打造高品质、低成本接入体验
  5. 音视频技术开发周刊(第123期)
  6. 2021博客之星,请帮忙投上宝贵一票
  7. 用lua扩展你的Nginx(整理)
  8. maven使用OracleDB jdbc Driver
  9. mybatis----#与$区别
  10. java基础---多线程之交替打印,等待唤醒机制