五 数据操纵(2)

1、实验目的

理解SQL成熟设计基本规范,熟练运用SQL语言实现对数据进行各种操纵,包括添加新数据、修改数据和删除数据。

2、实验内容及要求

使用SQL对数据库进行各类查询数据操纵操作,掌握单行数据插入、多行数据插入,理解空值的意义及处理方式;掌握数据的修改,包括单行和多行数据修改,单列修改和多列数据修改;掌握数据的删除,包括单行和多行数据删除,了解delete 和truncate的区别。

3、实验步骤

student

五 数据操纵(2)_第1张图片

course

五 数据操纵(2)_第2张图片

sc

五 数据操纵(2)_第3张图片

create table Student (

Sno char(7) primary key,

Sname char(10) not null,

Ssex char(2),

Sage tinyint,

Sdept char(20)

)

create table Course(

Cno char(6) not null,

Cname char(20) not null,

Credit tinyint,

Semester tinyint,

primary key(Cno)

)

create table SC(

Sno char(7) not null,

Cno char(6) not null,

Grade smallint,

primary key(Sno,Cno),

foreign key(Sno) references Student(Sno),

foreign key(Cno) references Course(Cno)

)

利用Student、Course和SC表。用SQL语句完成下面的操作,并调试通过。

1)查询计算机系每个学生的Java考试情况,列出学号、姓名、成绩和成绩情况,其中成绩情况的显示规则为:如果成绩大于等于90,则成绩情况为“好”; 如果成绩在80~89,则成绩情况为“较好”; 如果成绩在70~79,则成绩情况为“一般”; 如果成绩在60~69,则成绩情况为“较差”;如果成绩在小于60,则成绩情况为“差”。

SELECT Student.Sno AS '学号', Student.Sname AS '姓名', SC.Grade AS '成绩',

   CASE

   WHEN SC.Grade >= 90 THEN '好'

   WHEN SC.Grade BETWEEN 80 AND 89 THEN '较好'

   WHEN SC.Grade BETWEEN 70 AND 79 THEN '一般'

   WHEN SC.Grade BETWEEN 60 AND 69  THEN '较差'

   ELSE '差'

   END AS '成绩情况'

FROM SC

JOIN Student ON SC.Sno = Student.Sno

JOIN Course ON SC.Cno = Course.Cno

WHERE Student.Sdept = '计算机系' AND Course.Cname = 'Java'

2)统计每个学生的选课门数(包括没有选课的学生),列出学号、选课门数和

选课情况,其中选课情况显示规则如下:如果选课门数大于等于6门,则选课情况为“多”; 如果选课门数在3~5门,则选课情况为“一般”; 如果选课门数在1~2门,则选课情况为“偏少”; 如果没有选课,则选课情况为“未选课”。

SELECT Student.Sno AS '学号', COUNT(SC.Cno) AS '选课门数',

   CASE

   WHEN COUNT(SC.Cno) >= 6 THEN '多'

   WHEN COUNT(SC.Cno) BETWEEN 3 AND 5 THEN '一般'

   WHEN COUNT(SC.Cno) BETWEEN 1 AND 2 THEN '偏少'

   WHEN COUNT(SC.Cno) =THEN '未选课'

   END AS '选课情况'

FROM Student

LEFT JOIN SC ON SC.Sno = Student.Sno

GROUP BY Student.Sno

五 数据操纵(2)_第4张图片

3)修改全部课程的学分,修改规则如下: 如果是第1~2学期开设的课程,则学分增加5分;如果是第3~4学期开设的课程,则学分增加3分; 如果是第5~6学期开设的课程,则学分增加1分; 对其它学期开设的课程,学分不变。

UPDATE Course SET Credit = Credit +

   CASE

   WHEN Semester BETWEEN 1 AND 2 THEN 5

   WHEN Semester BETWEEN 3 AND 4 THEN  3

   WHEN Semester BETWEEN 5 AND 6 THEN  1

   ELSE 0

   END

SELECT * FROM Course

五 数据操纵(2)_第5张图片

4、实验小结

通过本次实验我理解SQL成熟设计基本规范,熟练运用SQL语言实现对数据进行各种操纵,包括添加新数据、修改数据和删除数据。数据操纵是指对于数据库中的数据进行增删改查的操作。在本次实验中,我们使用MySQL数据库进行数据操纵。增加操作:使用INSERT语句向表格中插入新的数据。删除操作:使用DELETE语句删除表格中的数据。修改操作:使用UPDATE语句修改表格中的数据。查询操作:使用SELECT语句查询表格中的数据。

通过使用SQL对数据库进行各类查询数据操纵操作,我掌握了单行数据插入、多行数据插入,理解空值的意义及处理方式;掌握了数据的修改,包括单行和多行数据修改,单列修改和多列数据修改;掌握了数据的删除,包括单行和多行数据删除,了解了delete 和truncate的区别。

通过本次实验,我深刻地认识到了数据库的重要性。在实际的软件开发和数据处理中,数据库扮演着非常重要的角色。同时,我也学会了如何进行数据操纵,这将对我今后的工作和学习有很大的帮助。

你可能感兴趣的:(数据库原理应用实验,数据库)