表关系
表关系有三种:
一对多 多对多 一对一
E-R图
Entry-Realation
实体(可以独立存在的元素个体)-关系(关系型数据库)
数据库设计理念:
实体和实体之间的关系还原数据库中表和表之间的关系
主键列 唯一不会重复
外键列 约束某个值取值范围的列
--一对多
多端的外键列添加一端的主键列,以建立关系
书表bid bname blid
书类表 blid blname
--建表 书
create table book(
bid number(5),
bname varchar2(20),
slid number(5)
)
--建立主键
--主键由oracle数据库的系统表统一管理
--为表 书 添加约束 使bid作为主键列
alter table book
add constraints PK_BOOK
primary key (bid)
--建表 书类
create table booklei(
blid number(5),
blname varchar2(20)
)
--为表 书类 添加约束 使blid作为主键列
alter table booklei
add constraints PK_BOOKLEI
primary key (blid)
--为表书添加约束 使slid作为外键列 并连接booklei的blid
alter table book
add constraints FK_BOOK_BOOKLEI
foreign key (slid)
references booklei (blid)
--可在建表的同时 同时将字段设置主键列和外键列
create table book(
bid number(5) primary key,
bname varchar2(20),
slid number(5) references booklei (blid)
)
create table booklei(
blid number(5) primary key,
blname varchar2(20)
)
--多对多
加个表,表示两表的关系
--创建学生表
create table student(
sid number(5) primary key,
sname varchar2(20)
)
--创建老师表
create table teacher(
tid number(5) primary key,
tname varchar2(20)
)
--创建关系表
create table tea_stu(
sid number(5) references student(sid),
tid number(5) references teacher(tid)
)
--一对一
--创建身份证表
create table idcard(
cid number(5) primary key,
cnumber varchar2(20)
)
--创建人表
(1)
create table person(
pid number(5) primary key,
pname varchar2(20),
cid number(5) unique references idcard(cid)
)
(2)
create table person(
pid number(5) primary key references idcard(cid),
pname varchar2(20),
cid number(5)
)