根据给定的信息,我们可以深入探讨教务管理系统的数据库设计及其SQL语句实现。该系统主要由以下几个表组成:学生表(Student)、教师表(Teacher)、课程表(Course)、管理员表(Admin)以及教师授课表(TC)和学生选课表(SC)。 ### 一、学生表(Student) 学生表用于存储学生的基本信息。该表包含以下字段: - **Sno** (学号): 字符串类型,长度为10个字符,作为主键。 - **Sname** (姓名): 字符串类型,长度为10个字符,不允许为空。 - **Spw** (密码): 字符串类型,长度为10个字符,不允许为空。 - **Ssex** (性别): 字符串类型,长度为10个字符,不允许为空。 - **Class** (班级): 字符串类型,长度为10个字符。 - **Sage** (年龄): 小整型,允许空值。 - **Stel** (电话号码): 字符串类型,长度为10个字符。 - **Sdept** (所属院系): 字符串类型,长度为10个字符。 - **Sadd** (地址): 字符串类型,长度为20个字符。 ### 二、教师表(Teacher) 教师表用于存储教师的基本信息。该表包括以下字段: - **Tno** (教师编号): 字符串类型,长度为10个字符,作为主键。 - **Tname** (姓名): 字符串类型,长度为10个字符,不允许为空。 - **Tpw** (密码): 字符串类型,长度为10个字符,不允许为空。 - **Tsex** (性别): 字符串类型,长度为10个字符,不允许为空。 - **Tage** (年龄): 小整型,不允许为空。 - **Ttel** (电话号码): 字符串类型,长度为10个字符,不允许为空。 - **Tadd** (地址): 字符串类型,长度为20个字符。 ### 三、课程表(Course) 课程表用于存储课程的基本信息。该表包括以下字段: - **Cno** (课程编号): 字符串类型,长度为10个字符,作为主键。 - **Cname** (课程名称): 字符串类型,长度为10个字符,不允许为空。 - **Ccredit** (学分): 浮点数类型,不允许为空。 ### 四、管理员表(Admin) 管理员表用于存储管理员的基本信息。该表包括以下字段: - **Ano** (管理员编号): 字符串类型,长度为10个字符,作为主键。 - **Aname** (姓名): 字符串类型,长度为10个字符,不允许为空。 - **Apw** (密码): 字符串类型,长度为10个字符,不允许为空。 - **Asex** (性别): 字符串类型,长度为10个字符,不允许为空。 - **Aage** (年龄): 小整型,不允许为空。 - **Atel** (电话号码): 字符串类型,长度为10个字符,不允许为空。 - **Aadd** (地址): 字符串类型,长度为20个字符,不允许为空。 ### 五、教师授课表(TC) 教师授课表用于记录每位教师所教授的课程。该表包括以下字段: - **Tno** (教师编号): 字符串类型,长度为10个字符,作为主键。 - **Cno** (课程编号): 字符串类型,长度为10个字符,不允许为空。 ### 六、学生选课表(SC) 学生选课表用于记录学生的选课情况。该表包括以下字段: - **Sno** (学号): 字符串类型,长度为10个字符。 - **Cno** (课程编号): 字符串类型,长度为10个字符。 - **Grade** (成绩): 十进制数类型,不允许为空,作为复合主键的一部分。 - 复合主键: `(Sno, Cno)` 表示每门课程每个学生只有一条记录。 ### 数据库设计的关键点 1. **主键**: 每个表都有一个唯一的标识符作为主键,确保数据的唯一性。 2. **外键**: 在学生选课表(SC)中,`Sno` 和 `Cno` 分别参照学生表(Student)中的 `Sno` 和课程表(Course)中的 `Cno`,确保了数据的一致性和完整性。 3. **数据类型**: 根据字段的需求选择合适的数据类型,如字符串类型适合存储文本信息,小整型适合存储年龄等数值。 4. **非空约束**: 对于必须填写的字段添加 `NOT NULL` 约束,确保数据的完整性和准确性。 通过以上设计,教务管理系统能够有效地存储和管理学校的核心数据,支持日常的教学管理和决策制定工作。
















Create table Student
(
Sno char(10) primary key,
Sname char(10) not null,
Spw char(10) not null,
Ssex char(10) not null,
Class char(10),
Sage smallint,
Stel char(10),
Sdept char(10),
Sadd char(20)
)
/*创建的教师表*/
Create table Teacher
(
Tno char(10) primary key,
Tname char(10) not null,
Tpw char(10) not null,
Tsex char(10) not null,
Tage smallint not null,
Ttel char(10) not null,
Tadd char(20)
)
/*创建的课程表*/

- fruitpoppy2021-06-09只有建表语句
- renhaijia2011-12-13只有sql语句,并不是全部的程序

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


最新资源


