​数据库原理及应用上机(实验五 SQL的数据更新)

作者:命运之光 
专栏:数据库原理及应用上机实验


🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓 


 ✨一、实验目的和要求

掌握SQL数据插入、修改和删除语句的一般格式和使用方法。

✨二、实验内容及步骤

1.插入数据

例1  将学生陈冬的信息(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。

INSERT
INTO Student(Sno,Sname,Ssex,Sdept,Sage)
VALUES('200215128','陈冬','男','IS',18);

INSERT
INTO Student(Sno,Sname,Ssex,Sage,Sdept)
VALUES('200215129','陈冬','男',18,'IS');

INSERT
INTO Student
VALUES('200215130','陈冬','男',18,'IS');

例2 插入一条选课记录(’200215128’,’1’)

INSERT
INTO SC(Sno,Cno)
VALUES('200215128','1');

例3 设数据库中已有一个关系表History_Student(需先创建表),其关系模式与Student完全一样,试将关系Student中的所有元组插入到关系History_Student中去,其SQL命令为:

INSERT
INTO  History_Student
SELECT  *
FROM  Student;

例4  创建系平均年龄表,并插入数据,Dept_age表插入SQL为:

INSERT
INTO  Dept_age(Sdept,Avg_age)
SELECT  Sdept,AVG(Sage)
FROM  Student
GROUP BY Sdept;

2.修改数据

例5 将学号为“200215121”的学生年龄改为22岁。即要修改满足条件的一个元组的属性值。

UPDATE  Student
SET Sage=22
WHERE  Sno='200215121';

例6 将所有学生的年龄增加1岁。即要修改多个元组的值。

UPDATE  Student
SET  Sage=Sage+1;

例7  将计算机科学系所有学生的成绩置零。

由于学生所在系的信息在Student表中,而学习成绩在SC表中,因此,可以将SELECT子查询作为WHERE子句的条件表达式。故该更新要求的SQL命令为:

UPDATE SC
SET  Grade=0
WHERE  'CS'=
(SELECT Sdept
 FROM  Student
 WHERE  Student.Sno=SC.Sno);

3.删除数据

例8  删除学号为200215128的学生记录。

DELETE
FROM  Student
WHERE  Sno='200215128' ;

(有外键约束时先删除存在约束的数据)

例9  删除计算机科学系所有学生的选课记录。

DELETE
FROM  SC
WHERE  'CS'=
(SELECT  Sdept
 FROM  Student
 WHERE  Student.Sno=SC.Sno);

例10  删除所有学生的选课记录。

DELETE
FROM  SC;

这条DELETE语句将删除SC的所有元组,使SC成为空表。

✨三.实验结果

1.插入数据

例1  将学生陈冬的信息(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。

 例2 插入一条选课记录(’200215128’,’1’)

 例3 设数据库中已有一个关系表History_Student(需先创建表),其关系模式与Student完全一样,试将关系Student中的所有元组插入到关系History_Student中去。

 例4  创建系平均年龄表,并插入数据,Dept_age表。

 2.修改数据

例5 将学号为“200215121”的学生年龄改为22岁。

 例6 将所有学生的年龄增加1岁。

 例7  将计算机科学系所有学生的成绩置零。

 3.删除数据

例8  删除学号为200215128的学生记录。

 例9  删除计算机科学系所有学生的选课记录。

 例10  删除所有学生的选课记录。

✨四.附加练习

1.用一条SQL语句,向课程表Course中插入以下课程:

(1)离散数学,无先修课,学分4分;

(2)C++语言,先修课为数据结构,学分2分;

(3)JAVA语言,无先修课,学分2分;

INSERT INTO Course (CourseName, PreCourse, Credit)
VALUES
    ('离散数学', NULL, 4),
    ('C++语言', '数据结构', 2),
    ('JAVA语言', NULL, 2);

以上 SQL 语句使用 `INSERT INTO` 语句将三个新的课程记录插入到课程表 Course 中。其中,第一个课程记录的先修课为 NULL,表示无先修课;第二个课程记录的先修课为数据结构;第三个课程记录的先修课同样为 NULL。三个课程的学分分别为 4 分、2 分和 2 分。

2.用一条SQL语句,修改课程名‘JAVA语言’为‘JAVA语言上机’,学分为3分。

UPDATE Course
SET CourseName = 'JAVA语言上机', Credit = 3
WHERE CourseName = 'JAVA语言';

以上 SQL 语句使用 `UPDATE` 语句来更新课程表 Course 中的记录。`SET` 子句用于设置需要修改的列及其对应的值。在本例中,需要将 CourseName 列修改为“JAVA语言上机”,Credit 列修改为 3。`WHERE` 子句用于指定需要修改的记录。在本例中,需要修改的记录是 CourseName 为“JAVA语言”的记录。

为课程表Course增加一列:学时Ctime,离散数学为48学时;

ALTER TABLE Course ADD Ctime INT;

以上 SQL 语句使用 `ALTER TABLE` 语句向课程表 Course 中添加一列 Ctime。该语句的 `ADD` 子句用于添加新列,`Ctime INT` 用于指定新列的名称和数据类型。执行该语句后,课程表 Course 将会增加一列名为 Ctime 的整型列。

接下来,可以使用如下的 SQL 语句将离散数学的 Ctime 设置为 48:

UPDATE Course SET Ctime = 48 WHERE CourseName = '离散数学';

以上 SQL 语句使用 `UPDATE` 语句来更新课程表 Course 中的记录。`SET` 子句用于设置需要修改的列及其对应的值。在本例中,需要将 Ctime 列修改为 48。`WHERE` 子句用于指定需要修改的记录。在本例中,需要修改的记录是 CourseName 为“离散数学”的记录。

4.用一条SQL语句,根据课程编号,删除‘离散数学,C++语言,JAVA语言上机’三门课程。

DELETE FROM Course WHERE CourseID IN (1, 2, 4);

以上 SQL 语句使用 `DELETE` 语句来删除课程表 Course 中的记录。`FROM` 子句用于指定需要删除的表。`WHERE` 子句用于指定需要删除的记录,`IN` 关键字用于指定多个需要删除的 CourseID 值。在本例中,需要删除 CourseID 为 1、2 和 4 的三条记录。

5.将计算机系的学生的‘数据库’这门课的考试成绩加1分。

UPDATE Score SET Score = Score + 1
WHERE CourseID = (SELECT CourseID FROM Course WHERE CourseName = '数据库')
AND StudentID IN (SELECT StudentID FROM Student WHERE DeptID = (SELECT DeptID FROM Department WHERE DeptName = '计算机系'));

以上 SQL 语句使用 `UPDATE` 语句来更新成绩表 Score 中的记录。`SET` 子句用于设置需要修改的列及其对应的值。在本例中,需要将 Score 列的值加 1。`WHERE` 子句用于指定需要修改的记录,其中 `CourseID` 子句用于指定需要修改的课程为“数据库”,`StudentID` 子句用于指定需要修改的学生所属系别为“计算机系”。由于需要查询到 Course 表和 Student 表中的信息,因此使用了子查询来获取相应的 CourseID 和 DeptID。

✨五.实验总结

本次实验主要学习了 SQL 数据更新语句的使用方法,包括插入数据、修改数据和删除数据等操作。通过实验的学习,我们深入了解了 SQL 数据更新语句的语法和使用方法,并学会了如何使用这些语句对数据库中的数据进行增删改操作。

在实验过程中,我们先学习了 SQL 的数据插入语句,即 `INSERT INTO` 语句。该语句可以将一条或多条数据记录插入到指定的数据表中,从而实现数据的添加功能。接着,我们学习了 SQL 的数据修改语句,即 `UPDATE` 语句。该语句可以修改数据表中符合指定条件的一条或多条记录,从而实现数据的修改功能。     最后,我们学习了 SQL 的数据删除语句,即 `DELETE` 语句。该语句可以删除数据表中符合指定条件的一条或多条记录,从而实现数据的删除功能。

在实验过程中,我们通过编写 SQL 查询语句和观察执行结果来深入理解了 SQL 数据更新语句的语法和使用方法。同时,我们还注意到了 SQL 数据更新语句的使用要注意一些细节问题,如数据表字段名和数据类型的匹配问题、数据更新操作对数据表的影响等等。

通过本次实验的学习,我们不仅掌握了 SQL 数据更新语句的使用方法,还学会了如何根据具体需求选择不同的更新语句,并在实践操作中深化了对 SQL 数据库操作的理解和掌握。这对今后的工作和学习都有很大的帮助。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值