创建学生数据库系统(课程表,学生,sc)的建立

根据给定的信息,本文将详细解释如何创建一个用于管理学生选课信息的数据库系统,包括学生表、课程表以及成绩表(sc)的建立过程。同时也会介绍如何进行数据的插入、更新、删除等操作。 ### 创建学生表 学生表(Student)用于存储学生的相关信息。根据SQL语句,该表包含以下字段: - `SNO`: 学号,类型为CHAR(10),作为主键,并且其前8位必须是`20073210`。 - `SNAME`: 学生姓名,类型为VARCHAR(16),不允许为空。 - `SEX`: 性别,类型为VARCHAR(2),不允许为空。 - `DEPT`: 所在系部,类型为VARCHAR(16),不允许为空。 - `AGE`: 年龄,类型为SMALLINT,不允许为空。 ### 创建课程表 课程表(Course)用于记录课程的相关信息。根据SQL语句,该表包含以下字段: - `CNO`: 课程编号,类型为CHAR(4),作为主键。 - `CNAME`: 课程名称,类型为VARCHAR(32),唯一性约束,表示每门课程的名字都是唯一的。 - `SCORES`: 学分,类型为SMALLINT,默认值为4,并且只允许取1、2、3、4中的一个值。 ### 创建成绩表(sc) 成绩表(sc)用于记录学生的选课情况及其成绩。根据SQL语句,该表包含以下字段: - `SNO`: 学号,类型为CHAR(10),作为外键,引用自学生表的学号(SNO)。 - `CNO`: 课程编号,类型为CHAR(4),作为外键,引用自课程表的课程编号(CNO)。 - `GRADE`: 成绩,类型为INT,取值范围为0到100。 成绩表的主键是由学号和课程编号共同组成,即每个学生对每门课程的成绩记录是唯一的。 ### 删除表 通过`DROP TABLE`命令可以删除之前创建的表。例如: - `DROP TABLE sc;`: 删除成绩表。 - `DROP TABLE course;`: 删除课程表。 - `DROP TABLE student;`: 删除学生表。 ### 插入数据 接下来是对三个表进行数据插入的例子。 #### 课程表插入数据 - `INSERT INTO course (CNO, CNAME) VALUES ('C001', 'ݿԭ');` - `INSERT INTO course VALUES ('C002', 'Զԭ', 3);` - `INSERT INTO course VALUES ('C003', 'רҵӢ', 2);` - `INSERT INTO course VALUES ('C004', 'ֵ·', 3);` 这些命令向课程表中添加了四门课程,其中`C001`课程名为`ݿԭ`,默认学分为4;`C002`课程名为`Զԭ`,学分为3;`C003`课程名为`רҵӢ`,学分为2;`C004`课程名为`ֵ·`,学分为3。 #### 学生表插入数据 - `INSERT INTO student VALUES ('2007321001', '', '', 'CS', 17);` - `INSERT INTO student VALUES ('2007321002', '', '', 'CS', 18);` - `INSERT INTO student VALUES ('2007321003', '', '', 'CS', 18);` - `INSERT INTO student VALUES ('2007321004', '֣', 'Ů', 'CS', 16);` - `INSERT INTO student VALUES ('2007321005', '', 'Ů', 'CS', 18);` 这里添加了五名学生的信息,其中前四位学生的姓名、性别等信息未填写。 #### 成绩表插入数据 成绩表中插入的数据示例: - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321001', 'C001', 80);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321001', 'C002', 79);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321001', 'C003', 69);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321001', 'C004', 88);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321002', 'C001', 68);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321002', 'C002', 73);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321002', 'C003', 99);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321002', 'C004', 82);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321003', 'C001', 70);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321003', 'C002', 72);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321003', 'C003', 87);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321003', 'C004', 45);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321004', 'C001', NULL);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321004', 'C002', NULL);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321004', 'C003', 87);` - `INSERT INTO sc (sno, cno, grade) VALUES ('2007321004', 'C004', 93);` - `INSERT INTO sc (sno, cno) SELECT '2007321005', cno FROM course;` 以上命令为不同的学生选修的课程成绩进行了填充,例如学号为`2007321001`的学生选修了四门课程(`C001`至`C004`),分别取得了80、79、69、88的成绩。对于学号为`2007321004`的学生,部分课程的成绩尚未录入。 ### 更新数据 例如,将成绩表中特定学生的成绩更新为89分: ``` UPDATE sc SET grade = 89 WHERE sno IN (SELECT sno FROM student); ``` 这条命令将所有学生的成绩都更新为了89分,实际应用时可能需要更精确地指定更新条件。 ### 删除数据 通过以下命令可以删除表中的数据: - `DELETE FROM sc;`: 删除成绩表中的所有数据。 - `DELETE FROM student WHERE sno NOT IN (SELECT sno FROM student);`: 这条命令实际上是一个逻辑错误,因为它的WHERE子句中的`NOT IN`会筛选出不在学生表中的学号,但又是在学生表中筛选,因此无法执行。 总结来说,本数据库系统主要由学生表、课程表及成绩表构成,通过创建、插入、更新和删除等操作实现对学生选课信息的有效管理。













- qq_218409052015-06-30很完整的 很好
- oBuNengShuoDeMiMi12013-09-14挺好的 有用的

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (源码)基于C语言的电子项目集.zip
- (源码)基于 C++ 编程语言的激光表演嵌入式系统.zip
- (源码)基于Go语言Singo框架的G站项目.zip
- 编程面试高频算法题详解与系统设计
- 【Multisim14 LM324差分组成减法电路】2024-7-3
- (源码)基于C++的轻量级查询引擎.zip
- (源码)基于Python的InternLM2Chat7B(4bit量化)本地搭建项目.zip
- 【软件开发工具】IntelliJ IDEA开发配置指南
- 无线传感器网络在尾矿安全监控中的应用.docx
- 成本会计课程基于网络考核改革试点方案.doc
- (源码)基于Arduino编程语言的蜂后管理控制系统 ardBeeQueen.zip
- 单片机的频率计研究与设计开发40;研究与设计开发41;.doc
- 项目管理-班组安全会一定要有针对性.docx
- c51单片机控制红外通信接口电路图的方案设计书.doc
- 图书馆管理系统C++代码.doc
- 系统集成施工方案.doc


