关于建表的补充
来源:互联网 发布:sql server log工具 编辑:程序博客网 时间:2024/05/16 03:54
关于建表的补充
<1对多 1的一方建立集合>
<多对1 多的一方创建 一的一方的对象>
1.联合主键的声明
create table student(
sid number(7) primary key,
sname varchar2(15) not null
);
create table course(
cid number(7) primary key,
cname varchar2(15) not null
);
create table scoretable(
sid number(7) references student(sid) ,
cid number(7) references course(cid) ,
score number(3) ,
primary key(sid,cid) ----> 联合主键
);
2.联合唯一键
create table test1(
last_name varchar2(15) unique,
first_name varchar2(15) unique
);
create table test2(
last_name varchar2(15),
first_name varchar2(15),
unique(last_name,first_name)
);
关联关系数据的表的建立(一对一 一对多 多对多)
1.一对一 (Person --- Computer)
create table person(
id number(7) primary key,
name varchar2(15) not null,
age number(2),
cid number(7) references computer(id) unique
);
create table Computer(
id number(7) primary key,
type varchar2(15) not null
);
fk + uk 表示一对一, fk(体现关系) uk(保证一对一)
2.一对多 (student team )
create table student(
id number(7) primary key,
name varchar2(15) not null,
tid number(7) references team(id)
);
create table team(
id number(7) primary key,
name varchar2(15) not null
);
只需要在多的一方表里建立外键即可.
3.多对多 ( Student Course)
create table student(
sid number(7) primary key,
sname varchar2(15) not null
);
create table course(
cid number(7) primary key,
cname varchar2(15) not null
);
create table scoretable(
sid number(7) references student(sid) ,
cid number(7) references course(cid) ,
score number(3) ,
primary key(sid,cid) ----> 联合主键
);
关系数据库无法直接表示多对多,需要通过中间表,将一个多对多拆成两个一对多
<1对多 1的一方建立集合>
<多对1 多的一方创建 一的一方的对象>
1.联合主键的声明
create table student(
sid number(7) primary key,
sname varchar2(15) not null
);
create table course(
cid number(7) primary key,
cname varchar2(15) not null
);
create table scoretable(
sid number(7) references student(sid) ,
cid number(7) references course(cid) ,
score number(3) ,
primary key(sid,cid) ----> 联合主键
);
2.联合唯一键
create table test1(
last_name varchar2(15) unique,
first_name varchar2(15) unique
);
create table test2(
last_name varchar2(15),
first_name varchar2(15),
unique(last_name,first_name)
);
关联关系数据的表的建立(一对一 一对多 多对多)
1.一对一 (Person --- Computer)
create table person(
id number(7) primary key,
name varchar2(15) not null,
age number(2),
cid number(7) references computer(id) unique
);
create table Computer(
id number(7) primary key,
type varchar2(15) not null
);
fk + uk 表示一对一, fk(体现关系) uk(保证一对一)
2.一对多 (student team )
create table student(
id number(7) primary key,
name varchar2(15) not null,
tid number(7) references team(id)
);
create table team(
id number(7) primary key,
name varchar2(15) not null
);
只需要在多的一方表里建立外键即可.
3.多对多 ( Student Course)
create table student(
sid number(7) primary key,
sname varchar2(15) not null
);
create table course(
cid number(7) primary key,
cname varchar2(15) not null
);
create table scoretable(
sid number(7) references student(sid) ,
cid number(7) references course(cid) ,
score number(3) ,
primary key(sid,cid) ----> 联合主键
);
关系数据库无法直接表示多对多,需要通过中间表,将一个多对多拆成两个一对多
0 0
- 关于建表的补充
- 关于_disable_logging的补充
- 关于接电话的补充
- 关于多线程的补充
- 关于编译的补充
- 关于移植的补充
- 关于耳机的补充
- 关于集合的补充
- 关于webview的补充
- 关于H264的补充
- 关于反射的补充
- 关于修车师傅的补充
- 关于留言簿的补充说明
- 关于#include的补充说明
- 关于Ajaxpro的一点补充
- 关于搜索控件的补充
- 关于SHFileOperation函数的补充
- 关于AD的操作 --补充
- android提供外部资源的规则和注意事项
- Scala if Statements
- iOS 获取通讯录
- ras工具类
- 【转载】《计算机教育》专题报道:从一个教育实例,看信息技术对教育的影响
- 关于建表的补充
- 2017华为面试算法题小结
- 深度学习框架Caffe配置:Ubuntu 16.04+CUDA8.0+cuDNN5.1+OpenCV3.1+Anaconda+Octave4.0.3
- Android 工程签名打包时报错
- Mac Python实用工具开发记录
- CAS与sun.misc.Unsafe
- ThinkPHP如何给网页加公共的header文件和footer文件
- Alamofire网络库基础教程
- java 常用加密解密算法汇总(一)