这样建数据库表关系对吗?
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个字段,教师号为主键;课程表中包含课程号、课程名、教师号,教师和课程可以是多对多的关系,所以主键为课程号+教师号;最后一个成绩表包含学号、课程号、成绩,同样,学号和课程号可以是多对多的关系,所以主键是学号+课程号。表关系非常明确,只是建表脚本不对。
美林数据技术股份有限公司
2020-10-29 广告
2020-10-29 广告
Tempo大数据分析平台,是一款面向企业用户的数据分析与应用工具,为用户提供报表设计、可视化分析、机器学习、文本分析等自助式数据分析与探索。平台基于大数据架构,集数据接入、数据分析探索、成果管理与应用为一体,面向企业全民用户提供从数据到业务...
点击进入详情页
本回答由美林数据技术股份有限公司提供
展开全部
差不错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
展开全部
不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询