晕,一看就知道你是初学者,这是最简单的主外键关联:
1、一个教员可讲授多门课程,一门课程只能被一个教员讲授:课程表中加一个教员ID的外键用来指向教员表中主键ID
2、一个学生选修多门课程,每门课程有多个学生选修,学生学习有成绩:这是多对多的关系,创建一个关联表用来关联学生表和课程表,有两个外键一个是学生ID,一个是课程ID,然后一个成绩的字段即可。
3、一门课只在一个教室上,一个教室可上多门课:课程表中添加一个教室ID的外键指向教室表的主键ID。
因此需要以下表:
教员表:主键ID、职工号、姓名、年龄、职称
学生表:主键ID、学号、姓名、年龄、性别
课程表:主键ID、课程号、课程名、课时数、教员ID(外键ID)、教室ID
学生、教程关联表:主键ID、学生ID、课程ID、成绩
教室表:主键ID、教室编号、地址、容量
建立的具体步骤如下:
第一条语句在Student表根据学号升序建立索引Stusno;第二条语句在Course表根据课程号升序建立索引Coucno;第三条语句在SC表先根据学号升序排列,(选课表一个学生可能选了多个课程)在学号相同的情况下,课程号降序排列,建立索引。
这时一个完整的数据表就建立好了,可以在数据表离输入和查询,筛选数据。
学生表:学生ID(主键) 学生姓名 性别 。。。。
课程表:课程ID(主键) 课程名称 。。。
选课表:学生ID(外键关联学生表的学生ID)选课ID(关联课程表课程ID)。。。
假如已有学生表和课程表的话,再加一个选课表就可以了。选课表与学生表,课程表都是1对N的关系,这样学生表和课程表就可以是N对N的关系了。\x0d\学生表-----studentid-----选课表-----courseid-----课程表\x0d\Create table StudentCourse (\x0d\id int Indentity(1,1) not null,\x0d\StudentId varchar(10) not null,\x0d\CourseId varchar(10) not null,\x0d\Score int\x0d\)\x0d\然后依次用insert to 插入数据\x0d\至于楼主的那些要求都是数据上的问题,自行控制吧
进入mysql的命令窗口,敲命令:
create
database
数据库名;
use
数据库名;
create
table
表名(id
int(4)
not
null
primary
key
auot_increment;
字段名
数据类型;)
1,从学生SELECT DISTINCT Sdept;
2,SELECT COUNT(DISTINCT Cpno)
课程
WHERE CNAME ='英语';
3,CREATE TABLE Student2
(SNO CHAR(9)PRIMARY KEY,
SNAME CHAR(20)UNIQUE,
Ssex CHAR(2),
Sbirthday SMALLINT,
Sdept CHAR(20)
);
以上就是关于SQL server 2005数据库如何建表:某教学管理系统涉及教员、学生、课程、教室四个实体全部的内容,包括:SQL server 2005数据库如何建表:某教学管理系统涉及教员、学生、课程、教室四个实体、数据库创建selectcourse、数据库中建立学生表课程表选课表及其联系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)