前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​数据库原理及应用上机(实验五 SQL的数据更新)

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

作者头像
命运之光
发布2024-03-20 10:39:34
2840
发布2024-03-20 10:39:34
举报
文章被收录于专栏:我在本科期间写的文章

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

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

✨一、实验目的和要求

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

✨二、实验内容及步骤

1.插入数据

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

代码语言:javascript
复制
INSERT
INTO Student(Sno,Sname,Ssex,Sdept,Sage)
VALUES('200215128','陈冬','男','IS',18);

代码语言:javascript
复制
INSERT
INTO Student(Sno,Sname,Ssex,Sage,Sdept)
VALUES('200215129','陈冬','男',18,'IS');

代码语言:javascript
复制
INSERT
INTO Student
VALUES('200215130','陈冬','男',18,'IS');

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

代码语言:javascript
复制
INSERT
INTO SC(Sno,Cno)
VALUES('200215128','1');

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

代码语言:javascript
复制
INSERT
INTO  History_Student
SELECT  *
FROM  Student;

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

代码语言:javascript
复制
INSERT
INTO  Dept_age(Sdept,Avg_age)
SELECT  Sdept,AVG(Sage)
FROM  Student
GROUP BY Sdept;

2.修改数据

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

代码语言:javascript
复制
UPDATE  Student
SET Sage=22
WHERE  Sno='200215121';

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

代码语言:javascript
复制
UPDATE  Student
SET  Sage=Sage+1;

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

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

代码语言:javascript
复制
UPDATE SC
SET  Grade=0
WHERE  'CS'=
(SELECT Sdept
 FROM  Student
 WHERE  Student.Sno=SC.Sno);

3.删除数据

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

代码语言:javascript
复制
DELETE
FROM  Student
WHERE  Sno='200215128' ;

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

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

代码语言:javascript
复制
DELETE
FROM  SC
WHERE  'CS'=
(SELECT  Sdept
 FROM  Student
 WHERE  Student.Sno=SC.Sno);

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

代码语言:javascript
复制
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分;

代码语言:javascript
复制
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分。

代码语言:javascript
复制
UPDATE Course
SET CourseName = 'JAVA语言上机', Credit = 3
WHERE CourseName = 'JAVA语言';

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

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

代码语言:javascript
复制
ALTER TABLE Course ADD Ctime INT;

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

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

代码语言:javascript
复制
UPDATE Course SET Ctime = 48 WHERE CourseName = '离散数学';

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

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

代码语言:javascript
复制
DELETE FROM Course WHERE CourseID IN (1, 2, 4);

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

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

代码语言:javascript
复制
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 数据库操作的理解和掌握。这对今后的工作和学习都有很大的帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ✨一、实验目的和要求
  • ✨二、实验内容及步骤
  • ✨三.实验结果
  • ✨四.附加练习
  • ✨五.实验总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档