数据更新和数据的导入导出是数据库管理中的关键操作,对于理解和操作数据库至关重要。本实验主要涉及使用Transact-SQL(T-SQL)语言和Enterprise Manager工具在Microsoft SQL Server 2005环境下进行数据的增、删、改操作,以及数据的导入和导出。
1. **数据插入**:
- 使用`INSERT INTO`语句向数据库表中添加新记录。例如,向`course`表中插入一条记录,需确保满足数据约束,如课程号唯一,学分有效等。示例:`INSERT INTO course VALUES ('C318', '科技英语', '4')`。
2. **数据修改**:
- 使用`UPDATE`语句修改已存在的数据。例如,更新`course`表中某课程的学分,应确保符合业务规则。如将“软件实习”课程的学分修改为3分:`UPDATE course SET credit = '3' WHERE name = '软件实习'`。
- 复杂的更新操作可能涉及到多表间的关联,如通过子查询来定位并更新特定记录。
3. **数据删除**:
- 使用`DELETE FROM`语句删除指定的记录。例如,删除特定学生的选课信息,需考虑关联表的影响。如删除学号为'021103'的同学选课信息:`DELETE FROM report WHERE sno = '021103'`。若该学生所有选课信息均需删除,还需删除其在`student`表中的记录。
4. **数据导入与导出**:
- 数据备份:可以使用SQL Server的备份功能,创建数据库的完整备份,以便在需要时恢复。
- 导出到Excel:通过SQL Server Management Studio或其他工具,可以将数据表的内容导出为Excel文件,方便在非SQL环境中查看和处理。
- 导入Excel:将Excel文件中的数据导入到数据库中,通常需要用到`OPENROWSET`函数或SQL Server Integration Services (SSIS)。例如,使用Excel文件更新数据库中的`S2`, `C2`, `R2`表。
实验中还提出了几个问题,涉及数据库约束的处理:
1. **主键约束**:当尝试插入主码重复的数据时,系统会报错,因为主键必须是唯一的。解决方法是删除已有的重复记录,或修改要插入的主键值以确保其唯一性。
2. **非空约束**:主键列不允许为空。如果试图插入主键为空的数据,系统同样会报错。解决方法是在插入前确保所有主键值已填充。
3. **外键约束**:在`report`表中输入的学号或课程号必须存在于对应的`student`和`course`表中。如果不存在,系统会报错,解决方法是先检查并确保引用的学号和课程号有效。
4. **数据约束**:若更新的数据违反了表的约束(如成绩范围),系统会拒绝执行,解决方法是确保更新的数据符合所有约束条件。
5. **删除操作的影响**:删除学生或课程表中的记录时,需要考虑关联的`report`表。如果被删除的学号或课程号在`report`表中仍有记录,系统同样会报错。解决方法是先删除或更新`report`表中的关联记录,再删除主表中的记录。
6. **数据转换**:将数据导出为文本文件(如`.txt`),可以使用`bcp`命令或SQL Server的其他导出工具。导出后,可以使用类似的方法将这些文本文件导入到新的数据库中。
本实验旨在帮助学习者熟悉数据库的基本操作,理解数据完整性的重要性和如何维护数据的一致性。通过实际操作,能增强对数据库系统原理的理解,提升在实际工作中处理数据的能力。