✨作者:命运之光
✨专栏:数据库原理及应用上机实验
🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓
✨一、实验目的和要求
掌握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 数据库操作的理解和掌握。这对今后的工作和学习都有很大的帮助。