这样建数据库表关系对吗?
createtablestudent(snovarchar2(10)primarykey,snamevarchar2(20),sagenumber(2),ssexvarc...
create table student(
sno varchar2(10) primary key,
sname varchar2(20),
sage number(2),
ssex varchar2(5)
);
create table teacher(
tno varchar2(10) primary key,
tname varchar2(20)
);
create table course(
cno varchar2(10) primary key,
cname varchar2(20),
tno varchar2(20),
constraint pk_course primary key (cno,tno)
);
create table sc(
sno varchar2(10),
cno varchar2(10),
score number(4,2),
constraint pk_sc primary key (sno,cno)
);
这样建表关系对吗?我怎么看不懂表关系是怎么样的? 展开
sno varchar2(10) primary key,
sname varchar2(20),
sage number(2),
ssex varchar2(5)
);
create table teacher(
tno varchar2(10) primary key,
tname varchar2(20)
);
create table course(
cno varchar2(10) primary key,
cname varchar2(20),
tno varchar2(20),
constraint pk_course primary key (cno,tno)
);
create table sc(
sno varchar2(10),
cno varchar2(10),
score number(4,2),
constraint pk_sc primary key (sno,cno)
);
这样建表关系对吗?我怎么看不懂表关系是怎么样的? 展开
7个回答
展开全部
course表怎么能有2个 primary key ;另外varchar2这个数据类型是自定义的么?
如果不是,以我的理解,以course表为例,应该这么写:
create table course(
cno varchar(10) NOT NULL,
cname varchar(20) NOT NULL,
tno varchar(20) NOT NULL,
constraint pk_course primary key CLUSTERED (cno,tno)
)
这是sybase的写法。 mssql 则多加一行 ON [PRIMARY]。
这应该是学生、教师、课程、成绩4个表。学生表中有学号和姓名2个字段,学号为主键;教师中有教师号和姓名2个字段,教师号为主键;课程表中包含课程号、课程名、教师号,教师和课程可以是多对多的关系,所以主键为课程号+教师号;最后一个成绩表包含学号、课程号、成绩,同样,学号和课程号可以是多对多的关系,所以主键是学号+课程号。表关系非常明确,只是建表脚本不对。
如果不是,以我的理解,以course表为例,应该这么写:
create table course(
cno varchar(10) NOT NULL,
cname varchar(20) NOT NULL,
tno varchar(20) NOT NULL,
constraint pk_course primary key CLUSTERED (cno,tno)
)
这是sybase的写法。 mssql 则多加一行 ON [PRIMARY]。
这应该是学生、教师、课程、成绩4个表。学生表中有学号和姓名2个字段,学号为主键;教师中有教师号和姓名2个字段,教师号为主键;课程表中包含课程号、课程名、教师号,教师和课程可以是多对多的关系,所以主键为课程号+教师号;最后一个成绩表包含学号、课程号、成绩,同样,学号和课程号可以是多对多的关系,所以主键是学号+课程号。表关系非常明确,只是建表脚本不对。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
差不错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create table course(
cno varchar2(10) primary key,
cname varchar2(20),
tno varchar2(20),
constraint pk_course primary key (cno,tno)
);
你执行过了吗?这个是有问题的吧?
cno varchar2(10) primary key,
cname varchar2(20),
tno varchar2(20),
constraint pk_course primary key (cno,tno)
);
你执行过了吗?这个是有问题的吧?
追问
两个主键,我设错了。谢谢啊
追答
两个主键,没听错吧。我孤陋寡闻了。
仔细学习下sql基础。
表里只能有1个主键。你的意思是联合主键吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-31
展开全部
不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询