oracle入门笔记五-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、数据库约束

1、主键约束

2、外键约束

3、唯一值约束

4、检查约束

5、默认值约束

6、非空约束

*****数据库约束作用

数据库约束都是作用在字段上保证数据的完整性表中约束越多数据就越完整保证都是有效数据

约束的缺点

数据库表的约束越多增、删、改会变慢

二、主键约束

1、主键约束

主键约束是表中记录的唯一标识表中至少有一个字段代表记录的唯一标识这个字段就是主键

主键不能为空值不能重复表一定要有主键

a、创表时增加主键约束系统名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型

);

b、创表时增加主键约束指定名称

create table 表名(

主键字段  数据类型,

普通字段  数据类型,

constraint 约束名 primary key (主键字段)

);

c、给已有的表增加主键约束系统名称

alter table 表名 add primary key (主键字段);

d、给已有的表增加主键约束指定名称

alter table 表名 add constraint 约束名 primary key (主键字段);

e、删除约束可以删除任何约束

alter table 表名 drop constraint 约束名;

2、复合主键

多个字段作为主键多个字段内容不能重复

a、创表时增加主键约束系统名称

create table 表名(

主键字段1  数据类型,

主键字段2  数据类型,

普通字段  数据类型,

primary key(主键字段1, 主键字段2)

);

b、创表时增加主键约束指定名称

create table 表名(

主键字段1  数据类型,

主键字段2  数据类型,

普通字段  数据类型,

constraint 约束名 primary key (主键字段1, 主键字段2)

);

c、给已有的表增加主键约束系统名称

alter table 表名 add primary key (主键字段1, 主键字段2);

d、给已有的表增加主键约束指定名称

alter table 表名 add constraint 约束名 primary key (主键字段1, 主键字段2);

三、外键约束

1、什么是外键约束

两个表如果有关联关系那么关联字段就是外键外键字段指向主键字段

外键的值来源与主键的值外键可以为空可以重复

a、创表时增加外键约束系统名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型,

外键字段   数据类型,

foreign key (外键字段) references 表名 (主键字段)

);

b、创表时增加外键约束指定名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型,

外键字段   数据类型,

constraint 约束名 foreign key (外键字段) references 表名 (主键字段)

);

c、给已有的表增加外键约束系统名称

alter table 表名 add foreign key (外键字段) references 表名 (主键字段)

d、给已有的表增加外键约束指定名称

alter table 表名 add constraint 约束名 foreign key (外键字段) references 表名 (主键字段)

2、主键与外键的区别

a、含义不同

主键记录的唯一标识不能重复不能为空

外键表与表之间的关联字段外键的值来源与主键的值外键可以为空可以重复

b、作用不同

主键保证数据的完整性防止重复记录产生

外键建立表与表之间的关系

c、个数不同

主键一个表只能有一个主键

外键一个表可以有多个外键

4、表与表之间的关系种类

关系型数据库中的关系指的就是主外键关系主外键关系表示了表与表之间的关系可以分为

以下情况

一对多(在多的那张表中添加外键字段)

多对一

一对一

多对多一定会产生第三张表

*****四、数据库三范式数据库建表的三范式

第一范式字段具有原子性不可再分所有关系型数据库都必须满足第一范式

第二范式在满足第一范式基础上满足第二范式一张表至少有一个字段代表记录的唯一标识

                这个字段称为主键所有的表都应该有主键

    第三范式在满足第二范式基础上满足第三范式如果表与表之间有关系一张表只能包含另一

                    表的主键不能包含其他字段这个字段称为外键

五、唯一值约束

1、什么是唯一值约束

要求表中字段的值不能重复称为唯一值约束

a、创表时增加唯一值约束系统名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型,

唯一值字段   数据类型,

unique (唯一值字段 )

);

b、创表时增加唯一值约束指定名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型,

唯一值字段   数据类型,

constraint 约束名 unique (唯一值字段 )

);

c、给已有的表增加唯一值约束系统名称

alter table 表名 add unique (唯一值字段 )

d、给已有的表增加唯一值约束指定名称

alter table 表名 add constraint 约束名 unique (唯一值字段 )

六、检查约束

1、什么是检查约束

要求表中字段的值在一定的取值范围称为检查约束

a、创表时增加检查约束系统名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型,

check (表达式 )

);

b、创表时增加检查约束指定名称

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型,

constraint 约束名 check (表达式 )

);

c、给已有的表增加检查约束系统名称

alter table 表名 add check (表达式 )

d、给已有的表增加检查约束指定名称

alter table 表名 add constraint 约束名 check (表达式 )

七、默认值约束

1、什么是默认值约束

表中字段值为空时给一个默认值称为默认值约束

a、创表时增加默认值约束

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型 default 默认值

);

b、给已有的表增加默认值约束

alter table 表名 modify 字段名 default 默认值;

八、非空约束

1、什么是非空约束

表中字段的值不能为空称为非空约束

a、创表时增加非空约束

create table 表名(

主键字段  数据类型 primary key,

普通字段  数据类型 not null

);

b、给已有的表增加非空约束

alter table 表名 modify 字段名 not null;

九、序列

1、什么是序列

序列相当于一个数字生成器生成一个唯一的自增整数

2、简单方式创建序列

create sequence 序列名;

3、详细方式创建序列

create sequence seq_person

start with 起始值

increment by 步长

maxvalue 最大值

minvalue 最小值

cache 缓存大小;

4、查询序列的值

select 序列.nextval from dual;              查看序列下一个值

select 序列.currval from dual;               查看序列当前值

5、修改序列

alter sequence 序列名 属性 值;

注起始值不能改步长、最大值、最小值可以改

6、删除序列

drop sequence 序列名;

7、序列的作用

给主键添值

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle