数据库表结构设计与操作
需积分: 0 182 浏览量
更新于2024-08-04
收藏 19KB DOCX 举报
本次作业涉及的是SQL数据库设计和操作,主要包含了创建表、删除约束、添加新约束以及数据插入和删除等操作。
在SQL中,`CREATE TABLE`语句用于创建新的数据库表。题目中创建了三个表:Stu_Union(学生),Course(课程)和SC(学生选课)。在Stu_Union表中,sno(学生编号)是主键且唯一,其他字段如sname(学生姓名)、ssex(性别)、SAGE(年龄)和sdept(系别)也定义了。Course表中,cno(课程编号)为主键且唯一,cname(课程名称)和cpoints(学分)是课程的基本信息。SC表用来表示学生选课关系,sno和cno分别引用Stu_Union和Course的主键,并定义了一个复合主键(sno, cno),表示一个学生可以选择多门课程,一门课程可以被多个学生选择。
接下来,对SC表的操作涉及到外键约束的管理。`ALTER TABLE SC DROP [FK__SC__sno__05D8E0BE]` 和 `ALTER TABLE SC DROP [FK__SC__cno__06CD04F7]` 是删除两个外键约束,这两个约束分别对应了sno和cno到Stu_Union和Course的引用。然后,使用`ALTER TABLE`和`FOREIGN KEY`重新添加了外键约束,但这次在删除关联记录时设置为`NO ACTION`,这意味着如果尝试删除一个在SC表中有引用的Stu_Union或Course记录,系统将不会执行删除操作,而是抛出错误。
接着,通过`INSERT INTO`语句向Stu_Union和Course表中插入了数据,创建了一个学生李敏和一门名为“Computer Networks”的课程。最后,尝试使用`DELETE FROM`语句删除学生李敏的记录,但遇到了错误。这是因为删除Stu_Union中的记录会违反SC表中的外键约束,因为李敏已选修了'0001'号课程。
错误消息547表明,尝试执行的删除操作与存在的外键约束冲突。在SQL中,当一个记录被删除而这个记录在其他表中被引用时,如果不允许级联删除(在新建外键约束时使用了`ON DELETE CASCADE`),那么这个操作就会失败。在这个例子中,由于设置了`ON DELETE NO ACTION`,因此删除Stu_Union中的记录会导致错误,因为SC表中仍然有引用该记录的数据。
总结来说,这个作业主要涵盖了以下几个知识点:
1. SQL基本语法:创建表、插入数据、删除数据。
2. 数据库表的设计:主键、唯一性约束、外键约束。
3. 外键约束的管理:创建、删除及外键的行为配置(如级联删除和禁止删除)。
4. 数据库操作的错误处理:理解并解决外键约束冲突。
2021-02-06 上传
2022-08-03 上传
2023-11-19 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-04 上传
ShenPlanck
- 粉丝: 545
- 资源: 343
最新资源
- 天池大数据比赛:伪造人脸图像检测技术
- ADS1118数据手册中英文版合集
- Laravel 4/5包增强Eloquent模型本地化功能
- UCOSII 2.91版成功移植至STM8L平台
- 蓝色细线风格的PPT鱼骨图设计
- 基于Python的抖音舆情数据可视化分析系统
- C语言双人版游戏设计:别踩白块儿
- 创新色彩搭配的PPT鱼骨图设计展示
- SPICE公共代码库:综合资源管理
- 大气蓝灰配色PPT鱼骨图设计技巧
- 绿色风格四原因分析PPT鱼骨图设计
- 恺撒密码:古老而经典的替换加密技术解析
- C语言超市管理系统课程设计详细解析
- 深入分析:黑色因素的PPT鱼骨图应用
- 创新彩色圆点PPT鱼骨图制作与分析
- C语言课程设计:吃逗游戏源码分享