晕,一看就知道你是初学者,这是最简单的主外键关联:
1、一个教员可讲授多门课程,一门课程只能被一个教员讲授:课程表中加一个教员ID的外键用来指向教员表中主键ID

2、一个学生选修多门课程,每门课程有多个学生选修,学生学习有成绩:这是多对多的关系,创建一个关联表用来关联学生表和课程表,有两个外键一个是学生ID,一个是课程ID,然后一个成绩的字段即可。
3、一门课只在一个教室上,一个教室可上多门课:课程表中添加一个教室ID的外键指向教室表的主键ID。
因此需要以下表:
教员表:主键ID、职工号、姓名、年龄、职称
学生表:主键ID、学号、姓名、年龄、性别
课程表:主键ID、课程号、课程名、课时数、教员ID(外键ID)、教室ID
学生、教程关联表:主键ID、学生ID、课程ID、成绩
教室表:主键ID、教室编号、地址、容量
关于反映这三张表中数据之间的联系,提供三方面信息以供参考:
1、表关系分析:学生表与课程表是多对多的关系,建立一张关联表也就是选课表来将学生表与程表产生关联。
2、数据库表分析:学生表包括学生相关信息,课程表包括课程相关信息,选课表放其他两张表的各一个字段(可以维护唯一性,比如说主键)。
3、实体分析:包含学生和课程两个实体,在每个实体中加入另外一个实体的集合。
您好,这样的:
首先在SQL中利用企业管理器或向导建立一个数据库,命名为学生管理系统,
启动SQL Sever服务,运行企业管理器,单击要创建数据库的服务器左边的加号图标,展开树形目录,在“数据库”节点上右击鼠标,在弹出的快捷菜单中选则“新建数据库”命令,然后按照提示一步步建立数据库,不再详细叙述。
假设学生管理系统下有三个表,分别为学生表、课程表、修课表,表的结构分别如下:
学生表(student) (
学号(sno) 普通编码定长字符类型,长度7,主码,
姓名(sname) 普通编码定长字符类型,长度8,非空,
性别(ssex) 统一编码定长字符类型,长度1,
年龄(sage) 微整型,
所在系(sdept) 统一编码可变长字符类型,长度20
)
课程表(course) (
课程号(cno) 普通编码定长字符类型,长度6,主码,
课程名(cname) 统一编码定长字符类型,长度10,非空,
学分(credit) 小整型,
学期(semester) 小整型
)
修课表(sc)(
学号(sno) 普通编码定长字符类型,长度7,主码,外码
课程号(cno) 普通编码定长字符类型,长度6,主码,外码
成绩(grade) 小整型,
修课类别(type)普通编码定长字符类型,长度4
)
则创建表的语句分别为:
create table Student(
Sno char
(7) primary key,
Sname char
(8) not null,
Ssex nchar
(1),
Sage tinyint,
Sdept nvarchar(20)
)
create table Course(
Cno char
(6) primary key,
Cname nchar(10) not null,
Credit smallint,
Semester smallint
)
create table SC(
Sno char
(7),
Cno char
(6),
Grade smallint,
Type char
(4),
primary key(Sno,Cno),
Foreign key(Sno)References Student (Sno),
Foreign key(Cno)References Course (Cno)
)
各表的结构大体如此,如有变化可自行修改。 以上数据库和表就基本建立好了,然后就可以通过数据导入或SQL语句等向数据库中添加学生的各项具体数据了。
以上就是关于SQL server 2005数据库如何建表:某教学管理系统涉及教员、学生、课程、教室四个实体全部的内容,如果了解更多相关内容,可以关注,你们的支持是我们更新的动力!
版权声明:我们致力于保护作者版权,注重分享,被刊用文章【教务管理系统的数据库建表】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
