表关系

表关系有三种:

一对多   多对多  一对一


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)  
       )



全部评论

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
10-11 15:42
皖西学院 Java
青鱼LINK:我硕士,也是java0面试,吾道不孤
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务