SQL练习创建数据库数据查询数据更新

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库作业-相关操作练习

班级:计算机1103B 学号:2009080305302 姓名:傅笔贵

1、创建数据库

用SQL语句创建上述三个表,包括完整性约束(实体、参照、用户定义)S表创建:(完整性约束写于编辑表里):

S表插入:

S表:

C表创建:

C表插入:(由于学时书上没给,因此自行编写)

C表:

SC表创建:

SC表插入:

SC表:

2、数据查询

1)查询信息系学生中的最大年龄、最小年龄、平均年龄

2)查询学生“李勇“选修了哪些课程(列出课程名称及成绩)

3)查询选修了数据库类课程的学生学号、姓名

4)查询成绩大于90分的学生学号、姓名、课程名称、成绩

5)统计每个系的学生人数

6)查询“数据库”课程的最高分、最低分和平均分

7)统计每个学生的选课门数,并按选课门数的递增顺序显示结果

8)统计各系修课的学生总数和考试的平均分

9)查询平均成绩80分以上的学生学号、姓名,所在系

10)查询学生的选课情况,要求列出每位学生的选课情况(包括位选课的学生),

包括:学生学号、姓名、课程号、修课成绩

11)列出“数据库”课程成绩前三名的学号、姓名、所在系和成绩

12)查询哪些课程无人选修

13)统计每门课的最高、最低、平均分

14)列出3门以上课程不及格的学生学号、姓名、所在系

(无人3门以上课程不及格,可喜可贺)

15)列出所有课程全部及格的学生学号、姓名、所在系

16)按学号统计每位学生的学分(>60分有学分)

3、数据更新

1)将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到S表中。

插入语句:

插入结果:

2)插入一条选课记录( '95020','C01 ')。

插入语句:

插入结果:

3)将每门课的最高分、最低分、平均分插入数据库

(没明白题的意思)

4)求学生的平均年龄,并把结果存入数据库

(同样没明白这是要干什么)

5)将信息系所有学生的数据库课程的成绩提高10%。

由于分数超过90的学生提高10%成绩会超过100分,违背用户自定义完整性约束,因此加上额外条件Grade<=90。

6)在S表中删除四门以上课程不及格的学生记录。

4、视图操作

1)创建信息系选修了数据库课程的学生视图。

创建视图语句:

创建结果:

2)通过视图检索信息系数据库课程成绩大于80分的学生记录(学号、姓名、性

别、成绩)

3)将所有学生的学号及其平均成绩定义为一个视图

创建视图语句:

创建视图结果:

4)检索平均成绩大于80分的学生学号、姓名,平均分

5)创建视图(修课成绩在平均成绩之上的元组构成)

创建语句:

其中利用到的另一个视图temp1的创建语句如下:

创建结果:

首先是temp1的创建结果:

其次是利用了视图temp1的S4的创建结果:

6)修课成绩在平均成绩之上的同学,该课程成绩加10%。

由于存在用户自定义完整性约束,因此在成绩提高10%之后会超过100分的学生,成绩自动变为100分。

因为(5)中创建的视图中含有聚集函数,因此无法直接更新,采用下述方法完成题目要求:

通过这个方法,存在bug,解法存疑。

相关文档
最新文档