




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合练习(二)一、用SQL语句创建如下三张表:学生表(Student)、课程表(Course)和学生选课表(SC),三张表结构如下:注:一、二两题需要将命令放入*.sql脚本中,然后使用脚本进行创建表及数据的录入Student表结构列 名说 明数据类型约 束sno 学号字符串,长度为7主键sname姓名字符串,长度为10非空ssex性别字符串,长度为2取男或女 sage年龄整数取值1545sdept所在系字符串,长度为20默认为计算机系 Course表结构列 名说 明数据类型约 束cno课程号字符串,长度为10主键cname课程名字符串,长度为20非空ccredit学分整数取值大于0semster学期整数取值大于0period学时整数取值大于0SC表结构列 名说 明数据类型约 束sno学号字符串,长度为7主键,引用Student的外键cno课程号字符串,长度为10主键,引用Course的外键grade成绩整数取值0100答案:1、Student表CREATE TABLE Student ( sno VARCHAR2(7) PRIMARY KEY, sname VARCHAR2 (10) NOT NULL, ssex VARCHAR2 (2) CHECK(ssex=男 OR ssex=女), sage NUMBER(2) CHECK(sage=15 AND sage0), semester NUMBER(2) CHECK(semester0), period NUMBER(3) CHECK(period0), CONTRAINT course_cno_pk PRIMARY KEY(cno) )3、SC表CREATE TABLE SC(sno char(7) NOT NULL, cno char(10) NOT NULL,grade tinyint CHECK(grade=0 AND grade=100),CONTRAINT sc_sno_cno_pk PRIMARY KEY(sno,cno),CONTRAINT student_sno_fk FOREIGN KEY(sno) REFERENCE Student(sno),CONTRAINT course_cno_fk FOREIGN KEY(cno) REFERENCE Course (cno)二、使用SQL语句分别向Student、Course、SC表中加入如下数据:Student表数据snoSnamessexsagesdept9512101李勇男19计算机系9512102刘晨男20计算机系9512103王敏女20计算机系9512104张立男22信息系9512105钱小平女21信息系9512106吴宾女20数学系9512107王大力男19数学系Course表数据cnocnameccreditsemesterc01计算机文化学31c02Java85c03计算机网络43c04数据库基础56c05高等数学62c06数据结构74C07VB34SC 表数据snocnograde9512101c01909512101c029512102c01789512102c03669512103c04829512104c0675三、完成如下查询1、查询全体学生的学号和姓名 SELECT sno, sname from Student 2、查询全体学生的姓名、学号和所在系 SELECT sname, sno, sdept from Student3、查询全体学生的姓名及其出生年份l 分析:由于Student表中只记录了学生的年龄,而没有记录学生的出生年份,所以需要经过计算得到学生的出生年份,即用当前年减去年龄,得到出生年份。 SELECT sname, 2011 sage FROM Student 或SELECT sname, to_number(to_char(sysdate,yyyy) sage FROM Student4、查询全体学生的姓名和出生年份,并在出生年份列前加入一个列,此列的每行数据均为“Year of Birth”常量值 SELECT snamem, Year of Birth, to_number(to_char(sysdate,yyyy) sage FROM Student5、在选课表(SC)中查询有哪些学生选修了课程,并列出学生的学号 SELECT sno FROM SC 在结果集中会有许多重复的行(实际上一个学生选修了多少门课程,其学号就会在结果集中重复出现多少次)。 使用DISTINCT关键字就可以去掉结果集中的重复行。去掉结果集中的重复行 SELECT DISTINCT sno FROM SC6、查询计算机系全体学生的姓名 SELECT sname FROM Student WHEER sdept=计算机系 7、查询所有年龄在20岁以下的学生的姓名及年龄 SELECT sname, sage FROM Student WHEER sage208、查询考试成绩不及格的学生的学号l 当一个学生有多门不极格课程时,只列出一个学号。 SELECT DISTINCT sno FROM SC WHERE grade60 and grade is not null9、查询年龄在2023岁之间的学生的姓名、所在系和年龄 SELECT sname, sdept, sage FROM Student WHERE sage BETWEEN 20 AND 2310、查询年龄不在2023之间的学生的姓名、所在系和年龄 SELECT sname, sdept, sage FROM Student WHERE sage NOT BETWEEN 20 AND 2311、查询信息系、数学系、和计算机系学生的姓名和性别 SELECT sname, ssex, FROM Student WHERE sdept IN (信息系,数学系,计算机系)12、查询既不属于信息系、数学系、也不属于计算机系学生的姓名和性别 SELECT sname, ssex, FROM Student WHERE sdept NOT IN (信息系,数学系,计算机系)13、查询姓“张”的学生的详细信息 SELECT * FROM Student WHERE sname LIKE 张% 14、查询学生表中姓“张”、姓“李”、姓“刘”的学生的情况SELECT * FROM Student WHERE sname LIKE 张% OR sname LIKE 李% OR sname LIKE 刘%15、查询名字中第2个字为“小”或“大”字的学生姓名和学号 SELECT sname,sno FROM Student WHERE sname LIKE _小% OR sname LIKE _大%16、查询所有不姓“刘”的学生 SELECT sname,sno FROM Student WHERE sname NOT LIKE 刘% 17、从学生表中查询学号的最后一位不是2、3、5的学生的情况 SELECT * FROM Student WHERE sno NOT LIKE %2 AND NOT LIKE %3 AND NOT LIKE %518、查询无考试成绩的学生的学号和相应的课程号 SELECT sno, cno FROM SC WHERE grade IS NULL19、查询所有有考试成绩的学生的学号和课程号 SELECT sno, cno FROM SC WHERE grade IS NOT NULL20、查询计算机系年龄在20岁以下的学生的姓名 SELECT sname FROM Student WHERE sdept =计算机系 AND sage 332、查询选课门数等于或大于4门的学生的平均成绩和选课门数 SELECT sno, AVG(grade) 平均成绩, COUNT(cno) 修课门数 FROM SC GROUP BY sno HAVING COUNT(cno) = 433、查询每个学生的情况及其选课的情况l 当不给表指定别名时,需要使用原表名SELECT Student.sno, sname, ssex, sge, sdept, cno, grade FROM Student ,SCWHERE Student.sno=SC.sno34、查询计算机系学生的选课情况,要求列出学生的名字、所修课的课程号和成绩。 SELECT sname, cno, grade FROM Student s , SC a WHERE s.sno=a.sno AND s.sdept = 计算机系35、查询信息系选修Java课程的学生的成绩,要求列出学生姓名、课程名和成绩l 此查询涉及了三张表,每连接一张表,就需要加入一个连接条件用于去掉产生的笛卡尔积。l 在该查询中,虽然所要查询的列和记录的选择条件均与SC表无关,但还是用了三张表,原因是Student和Course表没有可以进行连接的列(语义相同的列),因此,这两张表的连接需要借助于第三张表SC表。 SELECT sname, cname, grade FROM Student s , SC a, Course c WHERE s.sno=a.sno AND o=o AND s.sdept=信息系 AND ame=Java 36、查询学生的选课情况,包括选修课程的学生和没有选修课程的学生 l 如果Student表中有没有选课的学生时,也同样输出Student表中的数据,但是最后输出列的cno和grade的值均为NULL,因为在SC表中没有与之对应的记录,即对于不满足连接条件的结果在相应的列上放置NULL值。 SELECT s.sno, sname, cno, grade FROM Student s, SC a WHERE s.sno = a.sno(+)37、查询与“刘晨”在同一个系的学生l 分析:实际的查询过程如下:a. 确定“刘晨”所在的系,即执行子查询: SELECT sdept FROM Student WHERE sname=刘晨 b. 在子查询的结果中查找所有在此系学习的学生:SELECT sno, sname, sdept FROM Student WHERE sdept IN (计算机系)l 通过结果可以看到,查询结果中也有“刘晨”。如果不希望“刘晨”出现在查询结果中,如何实现? SELECT sno, sname, sdept FROM Student WHERE sdept IN(SELECT sdept FROM Student WHERE sname=刘晨) AND sname !=刘晨注意:这里的外层sname !=刘晨不需要使用表名前缀,因为对于外层查询来说,其表名没有二义性。38、查询成绩大于90分的学生的学号和姓名 SELECT sno, sname FROM Student WHERE sno IN (SELECT sno FROM SC WHERE grade 90)n 使用多表连接的方式实现: SELECT sno, sname FROM Student s , SC a WHERE s.sno=a.sno AND a.grade 9039、查询选修了“数据库基础”课程的学生的学号和姓名 SELECT sno, sname FROM Student WHERE sno IN ( SELECT sno FROM SC WHERE cno IN (SELECT cno FROM Course WHERE cname=数据库基础)n 使用多表连接方式实现: SELECT s.sno, sname FROM Student s, SC a, Course c WHERE s.sno=a.sno AND o=o AND ame=数据库基础 40、查询选修了课程“c02”且成绩高于此课程的平均成绩的学生的学号和成绩 SELECT sno, grade FROM SC WHERE cno=c02 AND grade ( SELECT AVG(grade) FROM SC WHERE cno=c02) 41、查询选修了课程“c01”的学生的姓名和所在系SELECT sname, sdept FROM Student WHERE sno IN ( SELECT sno FROM SC WHERE cno=c01)42、查询数学系成绩在80分以上的学生的学号、姓名SELECT sno, sname FROM StudentWHERE sno IN (SEL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶叶品牌文旅景区虚拟世界VR元宇宙整合营销方案【旅游】【文旅虚拟营销】
- 2025年中国湖北省房地产行业市场深度分析及投资策略研究报告
- 书法培训项目商业计划书
- 2024西藏公务员考试行测真题(省直)
- 2024年百色市“三支一扶”招募考试真题
- 中国鞋用无纺布行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 中国电子存包柜市场全面调研及行业投资潜力预测报告
- 税务师税法二课件
- 2024-2025学年陕西省咸阳市礼泉县高一上学期中期学科素养调研物理试卷 (解析版)
- 2025年中国鸭苗养殖行业市场深度分析及投资战略研究报告
- 部编版七年级历史(下)材料论述题专项训练
- 年产1000吨乳酸的生产工艺设计
- 博克服装CAD制版说明操作手册(共95页)
- 南开中学小卷数学模拟试卷(共3页)
- 光电效应测普朗克常数-实验报告
- (完整word版)数据模型与决策课程案例分析
- 自制桁架移动式操作平台施工方案
- 物业服务参与校园文化建设及举办大型活动配合措施
- 太阳能LED路灯项目实施方案
- 调岗调薪实操指引PPT课件
- 福清核电厂辐射防护生产准备实践
评论
0/150
提交评论