三、在新建的数据库下,创建如下数据表 创建学生信息表student -- stuNo char(8) 学生学号, -- stuName varchar(20) 学生姓名, -- stuSclass char(10) 学生所在班级 -- ---------------------------------------------- -- 创建教师信息表teacher -- tchNo char(10) 教师职工号 -- tchName varchar(10) 教师姓名 -- tchRank varchar(10) 教师职称 -- tchDepat varchar(20)教师所在分院 -- ---------------------------------------------- -- 创建课程信息表course -- corNo char(10) 课程号 -- corName varchar(40) 课程名 -- corTime tinyint 课时 -- corCredit decimal(4,1) 课程学分 -- corDepart varchar(20) 开课分院 -- ---------------------------------------------- -- 创建学生成绩表grade -- stuNo char(8) 学生学号, -- corNo varchar(10) 课程号, -- score tinyint 学生成绩 --remark text 备注 -- ---------------------------------------------- -- 创建教师授课信息表teachcourse -- corNo varchar(10) 课程号, -- tchNo char(10) 教师职工号 -- teachTime varchar(40) 教师授课时间 -- teachAddress varchar(20) 教师授课地点 -- teachsScore decimal(4,1) 学评教分数 -- ---------------------------------------------- -- 创建系统用户密码表userinfo -- userName char(10) 用户名, -- userPsd char(10) 密
时间: 2025-05-20 11:26:15 浏览: 38
### 学生信息表
以下是创建学生信息表的SQL语句,其中包含了学生的唯一编号 (`SNo`)、姓名 (`SName`)、年龄 (`SAge`) 和性别 (`SSex`):
```sql
CREATE TABLE Student (
SNo VARCHAR2(10) PRIMARY KEY,
SName VARCHAR2(20),
SAge NUMBER(2),
SSex VARCHAR2(5)
);
```
此部分基于已有描述进行了调整以适应标准语法[^1]。
---
### 教师信息表
用于存储教师基本信息的表格结构如下所示。它包括教师唯一的工号 (`TNo`) 及其对应的姓名 (`TName`):
```sql
CREATE TABLE Teacher (
TNo VARCHAR2(10) PRIMARY KEY,
TName VARCHAR2(20)
);
```
上述设计遵循了先前文档中的基本框架,并扩展至更通用的形式[^3]。
---
### 课程信息表
为了记录每门课程及其负责讲授的教师,可以构建如下的`Course` 表格。这里引入了一个复合主键来确保同一课程不会被重复分配给同一位讲师:
```sql
CREATE TABLE Course (
CNo VARCHAR2(10),
CName VARCHAR2(20),
TNo VARCHAR2(10),
CONSTRAINT PK_Course PRIMARY KEY (CNo, TNo),
FOREIGN KEY (TNo) REFERENCES Teacher(TNo)
);
```
这段脚本不仅定义了必要的字段还设置了外键约束以便维持参照完整性[^1]。
---
### 学生成绩表
用来保存每位学员针对不同科目的得分情况的数据模型如下。通过设置联合主键 `(SNo,CNo)` 来防止单一学生产生于相同科目上的多次评分现象发生:
```sql
CREATE TABLE SC (
SNo VARCHAR2(10),
CNo VARCHAR2(10),
Score NUMBER(4,2),
CONSTRAINT PK_SC PRIMARY KEY (SNo, CNo),
FOREIGN KEY (SNo) REFERENCES Student(SNo),
FOREIGN KEY (CNo) REFERENCES Course(CNo)
);
```
这是综合考虑之前给出的例子之后形成的解决方案之一[^1]。
---
### 教师授课信息表
如果需要进一步细化关于哪位老师教授哪些班级或者具体时间段的信息,则可增加额外的一张关联型表格——即所谓的“教师授课安排”。下面展示了一种可能的设计方案:
```sql
CREATE TABLE TeachingSchedule (
TScheduleID INT AUTO_INCREMENT PRIMARY KEY,
TNo VARCHAR2(10),
ClassSection VARCHAR2(10),
TimeSlot DATETIME,
RoomNumber VARCHAR2(10),
FOREIGN KEY (TNo) REFERENCES Teacher(TNo)
);
```
注意这里的 `AUTO_INCREMENT` 属性仅适用于某些特定类型的数据库管理系统比如 MySQL 或者 PostgreSQL 中实现自动生成递增数值的功能[^3]。
---
### 系统用户密码表
最后考虑到整个系统的安全性需求,我们还需要建立一张专门管理合法登录凭证(用户名与加密后的口令组合)的关系型数据集:
```sql
CREATE TABLE SystemUser (
UserID VARCHAR2(20) PRIMARY KEY,
PasswordHash CHAR(64), -- Assuming SHA-256 hash length.
RoleType ENUM('Admin','Teacher','Student') NOT NULL
);
```
在此处采用了固定长度字符类型储存经过散列处理过的密码串以及枚举类型限定角色类别选项范围[^2]。
---
####
阅读全文
相关推荐

















