某学生信息管理系统的部分数据库关系模式如下: 学生:Student ( stuno, stuname, stuage, stusex, schno),各属性分别表示学生的学号、姓名、年龄、性别,以及学生所属学院的编号; 学院:School ( schno, schname, schstunum ),各属性分别表示学院的编号、名称及学生人数; 俱乐部:Club (clubno, clubname, clubyear, clubloc ),各属性分别表示俱乐部的编号、名称、成立年份和活动地点; 参加:JoinClub ( stuno, clubno, joinyear ),各属性分别表示学号、俱乐部编号,以及学生加入俱乐部的年份。 有关关系模式的说明如下: (1) 学生的性别取值为'F'和'M' (F表示女性,M表示男性)。 (2) 删除一个学院的记录时,通过外键约束级联删除该学院的所有学生记录。 (3) 学院表中的学生人数值与学生表中的实际人数要完全保持一致。也就是说,当学生表中增减记录时,就要自动修改相应学院的人数。 根据以上描述,完成表结构的创建语句编写
时间: 2024-03-30 21:37:23 浏览: 68
学生宿舍管理系统数据库设计
4星 · 用户满意度95%
可以根据以上描述,编写如下的表结构创建语句:
学生表(Student):
CREATE TABLE Student(
stuno VARCHAR(10) PRIMARY KEY,
stuname VARCHAR(20) NOT NULL,
stuage INT NOT NULL,
stusex CHAR(1) NOT NULL,
schno VARCHAR(10) REFERENCES School(schno) ON DELETE CASCADE
);
学院表(School):
CREATE TABLE School(
schno VARCHAR(10) PRIMARY KEY,
schname VARCHAR(20) NOT NULL,
schstunum INT NOT NULL
);
俱乐部表(Club):
CREATE TABLE Club(
clubno VARCHAR(10) PRIMARY KEY,
clubname VARCHAR(20) NOT NULL,
clubyear INT NOT NULL,
clubloc VARCHAR(50) NOT NULL
);
参加表(JoinClub):
CREATE TABLE JoinClub(
stuno VARCHAR(10) REFERENCES Student(stuno),
clubno VARCHAR(10) REFERENCES Club(clubno),
joinyear INT NOT NULL,
PRIMARY KEY (stuno, clubno)
);
其中,学生表和学院表之间建立了一对多的关系,学生表的schno属性是学院表的外键;参加表和学生表、俱乐部表之间均建立了多对多的关系,参加表的stuno属性和clubno属性均是对应表的外键。另外,学院表的schstunum属性需要通过触发器等方式实现自动更新。
阅读全文