CREATE TABLE student_t(

sno Char(7) PRIMARY KEY,--学号

sname Varchar(20) NOT NULL,--姓名

ssex CHAR(2) NOT NULL, --性别

sage Smallint, --年龄

CLON CHAR(5) --学生所在班级的编号

);

CREATE TABLE course_t(

cno CHAR(1) PRIMARY KEY, --课程编号

cname Varchar(20) NOT NULL, --课程名称

credit SMALLINT -- 学分

);

CREATE TABLE CLASS_t(

clno CHAR(5) PRIMARY KEY, --班级号

speciality VARCHAR(20) NOT NULL, --编辑所在专业

inyear CHAR(4) NOT NULL, --入校年份

cNUM INTEGER, -- 班级人数

MONITOR_no CHAR(7) -- 班长学号

);

CREATE TABLE grade_t(

sno char(7), --学号

cno CHAR(1) NOT NULL, --课程号

gmark NUMERIC(4,1) --成绩

);

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2000101','李勇',  '男', 20,'00311');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2000102','刘诗晨','女', 19,'00311');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2000103','王一鸣','男', 20,'00312');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2000104','张婷婷','女', 21,'00312');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2001101','李勇敏','女', 19,'01311');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2001102','贾向东','男', 22,'01311');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2001103','陈宝玉','男', 20,'01311');

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2001104','张逸凡','男', 21,'01311');

--增加以下这条数据目的是为了12.9查询到数据

INSERT INTO student_t (sno,sname,ssex,sage, CLON) VALUES ('2000105','折挺',  '男', 20,'00311');

INSERT INTO course_t ( cno,cname,credit) VALUES ('1','数据库',      4);

INSERT INTO course_t ( cno,cname,credit) VALUES ('2','离散数学',    3);

INSERT INTO course_t ( cno,cname,credit) VALUES ('3','管理信息系统',2);

INSERT INTO course_t ( cno,cname,credit) VALUES ('4','操作系统',    4);

INSERT INTO course_t ( cno,cname,credit) VALUES ('5','数据结构',    4);

INSERT INTO course_t ( cno,cname,credit) VALUES ('6','数据处理',    2);

INSERT INTO course_t ( cno,cname,credit) VALUES ('7','C语言',       4);

INSERT INTO CLASS_t (clno, speciality,inyear,cNUM,MONITOR_no) VALUES ('00311','计算机软件', '2000',120, '2000101');

INSERT INTO CLASS_t (clno, speciality,inyear,cNUM,MONITOR_no) VALUES ('00312','计算机应用', '2000',140, '2000103');

INSERT INTO CLASS_t (clno, speciality,inyear,cNUM,MONITOR_no) VALUES ('01311','计算机软件', '2001',220, '2001103');

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000101','1', 92);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000101','3', 88);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000101','5', 86);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000102','1', 78);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000102','6', 55);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','3', 65);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','6', 78);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','5', 66);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000104','1', 54);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000104','6', 83);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2001101','2', 70);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2001101','4', 65);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2001102','2', 80);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2001102','4', 90);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','1', 83);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','2', 76);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','4', 56);

INSERT INTO grade_t (sno, cno,gmark) VALUES ('2000103','7', 88);

--12.1 找出所有被学生选修了的课程号

SELECT DISTINCT cno FROM  grade_t gt ORDER BY gt.cno;

--12.2 找出01311班女学生的个人信息

SELECT * FROM student_t stu WHERE stu.clon = '01311' AND stu.ssex = '女';

--12.3 找出01311班和01312班的学生姓名、性别、出生年份

SELECT STU.SNAME,

STU.SSEX,

(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM/DD'), 'YYYY/MM/DD') - STU.SAGE) AS 出生年份

FROM STUDENT_T STU

WHERE STU.CLON IN ('01311', '01312');

--12.4 找出所有姓李的学生的个人信息

SELECT * FROM student_t stu WHERE stu.sname LIKE '李%';

--12.5 找出学生李勇所在班级的学生人数

SELECT ct.cnum FROM student_t stu JOIN class_t ct ON stu.clon = ct.clno WHERE stu.sname = '李勇';

--或者是子查询(首先查询出李勇所在的班级号,注意要用distinct,防止有多个李勇报错)

SELECT  ct.cnum FROM class_t ct WHERE ct.clno = (SELECT DISTINCT stu.clon FROM student_t stu WHERE stu.sname = '李勇');

--12.6 找出课程名为操作系统的平均成绩、最高分、最低分

SELECT to_char(AVG(GT.GMARK),'99999999999999.99') AS 平均成绩,

MAX(GT.GMARK) AS 最高分,

MIN(GT.GMARK) AS 最低分

FROM COURSE_T COU JOIN GRADE_T GT ON COU.CNO = GT.CNO

WHERE COU.CNAME = '操作系统';

--12.7 找出选修了课程的学生人数

SELECT COUNT(1) FROM (SELECT DISTINCT gt.sno FROM grade_t gt);

--或者

SELECT count(1) FROM (SELECT gt.sno, COUNT(gt.sno) FROM grade_t gt GROUP BY gt.sno);

--12.8 找出选修了课程为操作系统的学生人数

SELECT COUNT(1) FROM course_t ct JOIN grade_t gt ON ct.cno = gt.cno WHERE ct.cname = '操作系统';

--12.9 找出2000级计算机软件班的成绩为空的学生姓名

SELECT STU.SNAME

FROM STUDENT_T STU

LEFT JOIN CLASS_T CT ON STU.CLON = CT.CLNO

LEFT JOIN grade_t gt ON gt.sno = stu.sno

WHERE CT.INYEAR = '2000'

AND CT.SPECIALITY = '计算机软件'

AND gt.gmark IS NULL;

--13.1 找出与李勇在同一个班级的学生信息

SELECT * FROM student_t stu WHERE stu.clon = (SELECT clon  FROM student_t WHERE sname = '李勇');

--13.2 找出所有与学生李勇有相同选修课程的学生信息

SELECT DISTINCT stu.*

FROM STUDENT_T STU

JOIN GRADE_T GT

ON STU.SNO = GT.SNO

WHERE GT.CNO IN

(SELECT GT.CNO

FROM GRADE_T

WHERE SNO =

(SELECT SNO FROM STUDENT_T WHERE SNAME = '李勇'));

--13.3 找出年龄介于学生李勇和25岁之间的学生的信息

SELECT * FROM student_t stu WHERE stu.sage BETWEEN (SELECT sage FROM student_t WHERE sname = '李勇') AND 25;

--13.4 找出选修了课程操作系统的学生的学号和姓名

SELECT stu.sno,stu.sname

FROM STUDENT_T STU

JOIN GRADE_T GT

ON STU.SNO = GT.SNO

JOIN COURSE_T COU

ON COU.CNO = GT.CNO

WHERE COU.CNAME = '操作系统';

--13.5 找出没有选修1号课程的所有学生姓名

SELECT stu.sname FROM student_t stu WHERE stu.sno NOT IN(SELECT gt.sno FROM grade_t gt WHERE gt.cno = 1);

--13.6 找出选修了全部课程的学生的姓名

SELECT stu.sname

FROM STUDENT_T STU

JOIN GRADE_T GT

ON STU.SNO = GT.SNO

GROUP BY STU.SNO,STU.SNAME

HAVING COUNT(1) = (SELECT COUNT(1) FROM COURSE_T);

--14.1 查询选修了3号课程的学生学号及其成绩,并按照成绩的降序排列

SELECT stu.sno,gt.gmark FROM STUDENT_T STU JOIN GRADE_T GT ON STU.SNO = GT.SNO WHERE gt.cno = 3 ORDER BY gt.gmark;

--14.2 查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列

SELECT * FROM student_t stu ORDER BY stu.clon,stu.sage DESC;

--14.3 求每个课程号及相应的选课人数

SELECT cou.cno,COUNT(1) FROM course_t cou LEFT JOIN grade_t gt ON cou.cno = gt.cno GROUP BY cou.cno ORDER BY cou.cno;

--14.4 找出选修了3门以上课程的学生学号

SELECT gt.sno FROM grade_t gt GROUP BY gt.sno HAVING count(1)>3;

西安科技大学高新学院 计科1001班 折挺

转载于:https://blog.51cto.com/sheting/1597021

数据库原理 西安电子科技大学(第三版) 付婷婷 第三章 课后习题答案相关推荐

  1. C语言程序设计教程(第三版)李凤霞 第一章课后习题答案

    第一章:程序设计基础知识 一. 单项选择题 1.面向过程的程序设计语言是________. A)机器语言 B)汇编语言 C)高级语言 D)第四代语言 2.程序设计一般包含以下四个步骤,其中其中首先应该 ...

  2. 《计算机组成原理(微课版)》第2章课后习题答案

    2.1解释下列名词 真值:正号和负号分别用"+"和"-"表示,数据位保持二进制值不变的数据表示方法. 机器码:又称机器数,数据在机器中的表示形式,是正负符号数码 ...

  3. 《计算机组成原理(微课版)》第4章课后习题答案

    4.1解释下列名词 存取时间:又称为存储器的访问时间,是指启动一次存储器的操作(读或写分别对应存与取)到该操作完成所经历的时间. 存取周期:连续启动两次访问操作之间的最短时间间隔. 存储器带宽:单位时 ...

  4. Java面向对象程序设计(第二版)袁绍欣 第九章课后习题答案

    线程和进程的联系和区别是什么? 区别: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分配的基本单位. ...

  5. 计算机系统结构答案汤志忠,计算机系统结构(第2版)郑伟明汤志忠课后习题答案以及例题收录.doc...

    计算机系统结构(第2版)郑伟明汤志忠课后习题答案以及例题收录.doc 1计算机系统结构第2版郑伟明汤志忠编著清华大学出版社习题解答21目录11第一章P331719(透明性概念),112118(AMDA ...

  6. C语言程序设计第五版 谭浩强 第四章 课后习题 答案

    谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...

  7. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

  8. 《计算机网络技术》第三章课后习题答案(全)

    <计算机网络技术>第三章课后习题答案(全) 1.网络协议包括的三要素是什么? 答: 语法.语义和时序关系. 2.在计算机网络中使用分层的思想有哪些好处? 答: (1)各层次之间可相互独立: ...

  9. 郑莉java课后答案,Java语言程序设计(郑莉)第三章课后习题答案

    <Java语言程序设计(郑莉)第三章课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计(郑莉)第三章课后习题答案(10页珍藏版)>请在人人文库网上搜索. 1. ...

最新文章

  1. 模块化开发seajs 配置和简单调用
  2. 乱乱乱!那些惨不忍睹的机房布线
  3. java多级目录文件是否存在_Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析)...
  4. python全栈测试开发_实践docker化的Python全栈自动化测试开源解决方案
  5. NHibernate中Example类使用注意事项
  6. cicso+RHEL7实践——小型校园网的搭建
  7. 串级调节系统参数整定方法(串级调节器参数整定)
  8. openssl_verify(): supplied key param cannot be coerced into a public key错误解决的一种办法
  9. 手机自带计算机在线汇率,中美汇率换算计算器(汇率换算器在线 查询)
  10. 机房收费系统心得总结
  11. 开关灯效果HTML,JS实现灯泡开关特效
  12. 小班运用计算机教学活动,小班《小蚂蚁》活动教案精选
  13. 金蝶KIS软件操作小技巧
  14. 运用R语言绘制小提琴图
  15. Carrey的第一篇博客
  16. fMRI数据分析处理原理及方法fMRI数据分析处理原理及方法
  17. Queuing HDU2604
  18. c oracle udt,Oracle OCI操作UDT相关学习
  19. 密切值法解简单评价问题附matlab代码
  20. 找到不到libcrypto-3.dll

热门文章

  1. mt4交易品种代码_mt4交易品种代码是怎样的?
  2. 学习opencv3 pdf_如何提取PDF页面?实用方法就在这里了!
  3. 在PDF-XChange Editor中摘要注释功能如何确定注释的顺序?
  4. ArmControl的资料整理
  5. 利用Python 识别车牌
  6. 【C#入门练习及答案】
  7. 【Exception】 javax.xml.bind.annotation.adapters 不可见 已在模块 java.xml.bind 中声明, 但该模块不在模块图中
  8. Python随机数种子
  9. 汇佳学校学子艺术作品荣誉入选北京冬奥优秀奖!
  10. 2021区域经济白皮书