




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库大作业11.针对习题10的四个表,用SQL语言完成以下各项操作:(1)给学生表增加一属性Nation(民族),数据类型为Varchar(20);ALTER TABLE dbo.Student ADD Nation VarChar(20);SElECT *FROM dbo.Student;(2)删除学生表中新增的属性Nation;ALTER TABLE dbo.Student DROP COLUMN Nation;SElECT *FROM dbo.Student; (3)向成绩表中插入记录(“”,“3”,80);INSERT INTO dbo.Grade VALUES (,3,80);SElECT *FROM dbo.Grade; (4)将学号为“”的学生的成绩修改为70分;UPDATE dbo.Grade SET Gmark = 70 WHERE Sno = ;SElECT *FROM dbo.Grade;(5)删除学号为“”的学生的成绩记录;DELETE FROM dbo.Grade WHERE Sno = ;SElECT *FROM dbo.Grade;(6)在学生表的Clno属性上创建一个名为IX_Class的索引,以班级号的升序排序;CREATE INDEX IX_CLASS ON dbo.Student(Clno);SELECT *FROM dbo.Student;(7)删除IX_Class索引。 DROP INDEX Student.IX_CLASS; SELECT *FROM dbo.Student;12. 针对习题10的四个表,用SQL语言完成以下各项查询:(1)找出所有被学生选修了的课程号; SELECT DISTINCT Cno FROM Grade,Student WHERE Grade.Sno = Student.Sno;(2)找出01311班女学生的个人信息;SELECT * FROM StudentWHERE Ssex = 女 AND Clno = 01311;(3)找出0311班和01312班的学生姓名、性别、出生年份;SELECT Sname,Ssex,(2014-Sage) AS 出生年份 FROM StudentWHERE Clno IN(01311,01312);(4)找出所有姓李的学生的个人信息;SELECT * FROM StudentWHERE Sname LIKE 李%;(5)找出学生李勇所在班级的学生人数;SELECT COUNT(*) AS 李勇班级人数FROM StudentWHERE Clno IN( SELECT Clno FROM Student WHERE Sname = 李勇); (6)找出课程名为操作系统的平均成绩、最高分、最低分;SELECT MAX(Gmark) AS 最高分 ,MIN(Gmark) AS 最低分 ,AVG(Gmark) AS 平均成绩FROM Grade g,Course cWHERE g.Cno IN(SELECT c.Cno FROM Course WHERE c.Cname = 操作系统); (7)找出选修了课程的学生人数;SELECT COUNT(DISTINCT Sno) AS 选修了课程的学生人数FROM Grade;(8)找出选修了课程操作系统的学生学号和姓名;SELECT S.Sno,S.SnameFROM Student S,Grade GWHERE S.Sno IN( SELECT G.Sno FROM Grade WHERE G.Cno = ( SELECT Cno FROM Course WHERE Cname = 操作系统); (9)找出2000级计算机软件班的成绩为空的学生姓名。SELECT S.SnameFROM Student SWHERE S.Sno NOT IN( SELECT Sno FROM Grade) AND S.Clno = (SELECT Clno FROM Class WHERE Inyear = 2000 AND Speciality = 计算机软件); 13. 针对习题10的四个表,用SELECT的嵌套查询完成以下各项查询:(1)找出与李勇在同一个班级的学生信息;SELECT *FROM StudentWHERE Clno = (SELECT Clno FROM Student WHERE Sname = 李勇) AND Sname NOT IN(李勇); (2)找出所有与李勇有相同选修课程的学生信息;SELECT *FROM StudentWHERE Sno IN( SELECT Sno FROM Grade WHERE Grade.Cno IN( SELECT Cno FROM Grade WHERE Sno = ( SELECT Sno FROM Student WHERE Sname = 李勇) AND Sname NOT IN(李勇); (3)找出年龄介于学生李勇与25岁之间的学生信息(已知李勇的年龄小于25岁);SELECT *FROM StudentWHERE Sage (SELECT Sage FROM Student WHERE Sname = 李勇); (4)找出选修了课程操作系统的学生学号与姓名;SELECT Sno,SnameFROM StudentWHERE Sno IN(SELECT Sno FROM Grade WHERE Cno = (SELECT Cno FROM Course WHERE Cname = 操作系统); (5)找出没有选修1号课程的所有学生姓名;SELECT Sname FROM Student WHERE Sno NOT IN(SELECT Sno FROM Grade WHERE Cno = 1); (6)找出选修了全部课程的学生姓名。SELECT Sname FROM Student WHERE NOT EXISTS(SELECT * FROM Course WHERE NOT EXISTS(SELECT * FROM Grade WHERE Sno= Student.Sno AND Cno= Course.Cno);14. 针对习题10的四个表,用SQL语言完成以下各项查询:(1)查询选修了3门以上的课程的学生学号及其成绩,并按成绩的降序排列;SELECT Sno,GmarkFROM GradeWHERE Cno = 3ORDER BY Gmark DESC;(2)查询全体学生信息,要求查询结果按班级号升序排列同一班级按年龄降序排列;SELECT *FROM StudentORDER BY Clno,Sage DESC;(3)求每个课程号及相应的选课人数;SELECT Cno,COUNT(Cno) AS 选修人数FROM GradeGROUP BY Cno;(4)查询选修了3门以上课程的学生学号。SELECT Sno,COUNT(Sno) AS 选修课程数FROM GradeGROUP BY Sno HAVING(COUNT(Sno)3); 15. 针对习题10的四个表,用SQL语言完成以下各项操作:(1)将01311班的全体学生的成绩置零; UPDATE GradeSET Gmark = 0WHERE Sno IN(SELECT Sno FROM Student WHERE Clno = 01311); (2)删除2001级计算机软件的全体学生的选课记录; DELETE FROM GradeWHERE Sno IN (SELECT Sno FROM Student WHERE Clno = (SELECT Clno FROM Class WHERE Inyear = 2001 AND Speciality = 计算机软件); (3)学生李勇已退学,从数据库中删除有关他的记录;UPDATE ClassSET Monitor = NULLWHERE Clno = (SELECT Clno FROM Student WHERE Sname = 李勇)DELETE FROM GradeWHERE Sno = (SELECT Sno FROM Student WHERE Sname = 李勇) DELETE FROM StudentWHERE Sname = 李勇;(4)对每个班,求学生的平均年龄,并把结果存入数据库。CREATE VIEW V_SagAS SELECT Clno,AVG(Sage) AS Sag FROM Student GROUP BY Clno; 16.视图操作:(1)建立01311班选修了1号课程的学生视图Stu_01311_1; CREATE VIEW Stu_01311_1 AS SELECT * FROM Student WHERE Sno IN(SELECT Sno FROM Grade WHERE Cno = 1) AND Clno = 01311;(2)建立01311班选修了1号课程并且不及格的学生视图Stu_01311_2;CREATE VIEW Stu_01311_2AS SELECT * FROM Student WHERE Sno IN(SELECT Sno FROM Grade WHERE Cno = 1 AND Gmark 1990; (5)查询01311班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份。SELECT *FROM Stu_yearWHERE Sno IN (SELECT Sno FROM Stu_01311_2); 第四章 触发器11.对于成绩管理数据库,为成绩管理数据库中的Student表创建一触发器:当向表中插入或删除记录时,修改Class表中相应的班级人数 CREATE TRIGGER fri_stu ON Student AFTER INSERT,DELETE AS IF UPDATE(Sno) UPDATE Class SET Number = Number + 1 WHERE Clno = (SELECT Clno FROM INSERTED)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零售商店商品采购计划书范文
- 待产孕妇的护理
- 环保项目各方协调配合措施
- 房地产开发项目融资商业计划书范文
- 学校防疫知识普及主题计划
- 金融行业计算机应用培训计划
- 2024届江苏省南京市二十九中致远校区重点名校中考数学适应性模拟试题含解析
- 山东省泰安市肥城市2024-2025学年高一下学期期中考试语文试题(含答案)
- 膀胱造瘘术后护理规范
- 2025年养老院疫情防控工作组及职责
- 夜场水烟合作协议书
- 河南省青桐鸣大联考普通高中2024-2025学年高三考前适应性考试地理试题及答案
- 管道劳务分包协议书
- 2025-2030中国锂电子电池行业市场深度调研及前景趋势与投资研究报告
- 江苏省南京市建邺区2023-2024学年八年级下学期期末考试物理试题【含答案解析】
- 公立医院与民营医院医联体合作协议书(2篇)
- 25《慢性子裁缝和急性子顾客》核心素养公开课一等奖创新教学设计
- 《溺水急救方法》课件
- T/CEC 164-2018 火力发电厂智能化技术导则_(高清-最新版)
- 抹机水MSDS 安全资料表
- 医院感染管理组织框架
评论
0/150
提交评论