Oracle-表的创建与设计

本文介绍了在Oracle数据库中创建表时如何确保数据完整性,包括主键约束、非空约束、唯一约束、检查约束和外键约束的使用方法。同时,探讨了数据库设计的三大范式,强调原子性、依赖主键和避免传递依赖的重要性,以减少数据冗余。

一、创建的表要保证数据库的完整性

完整性=唯一性+正确性


要保证数据库的完整性是使用五种约束来完成的:

1.主键约束(primary key):

用来保证表中的每一个实体都是唯一的,每张表都应该有主键的约束

特点:唯一,非空

如果一个实体能够找到明确的属性作为主键字段则直接使用它作为主键,如果一个实体找不到合适的属性作为主键,则我们给它添加一个id(唯一标识)。

主键不能手动添加,因为不知道现在的id写什么。

主键生成策略:sql server          identify(1,1)

                         mysql                increment          uuid

                         oracle                sequence(序列)


***序列:一张特别的table,这个table中只有一个字段一行数据,名字叫val,默认值为1.

序列完整公式:

create sequence <序列名>

[(maxvalue n|nomaxvalue)]

[(minvalue n|nominvalue)]

[increment by n]       --步长

[start with n]             

[(cycle|nocycle)]       --循环

[(cache n|nocache)]


删除序列:drop sequence <序列名>;

约束可以在建表的时候直接添加,也可以在创建表之后修改表的结构添加。(例:alter table  stedent add constraint PK_STUDENT_STUDENT_NO primary key(student_no));


2.非空约束(not  null)

加上非空约束的字段不允许为空。


3.唯一约束(unique)

约束的是这一列数据不能重复。

唯一约束和主键约束区别在于唯一约束允许插入null,而主键约束不允许。

*注:oracle空值可以插入多次。


4.检查约束(check)

用于检查每个字段插入的值是否符合规则。


5.外键约束

foreign key(字段名) references <表名>(<字段名>);

1)用来约束两张表中的数据是否正确

2)指定两个实体间的关系


*注:先创建主表,在创建从表

        先插入主表数据,再插入从表数据

        先删除从表,再删除主表


数据库是面向关系的,实体与实体之间的关系一共有四种:一对多、一对一、多对一、多对多。这四种关系都是用主外键实现的。




二、数据库设计的三大范式(确保数据没有冗余)

1.确保每一个字段都具有原子性(不可再分)。

2.表中的字段都必须依赖于该表主键(每张表只能描述一个实体)

表中的每一个字段都应该是当前实体的属性

3.表中的字段都不能传递依赖于该表主键


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值