永远要相信美好的事情即将发生
oracle学习
约束
约束其实就是一个规则
为了使数据库数据能够符合商业逻辑或者企业规则,需要采用约束,触发器,甚至可以直接使用代码逻辑来进行甄别判断,得到一个正常的值。在实际开发中,我们一般选择直接在 SQL 语句中使用约束,最直观最快最便捷。
主要是用于保证数据安全和数据完整性
数据安全:指的是存储的内容(数值)应该是正确的状态。如果数据不完整了,或者不正确了,那么就丧失了数据的完整性创建的两种方式:
(1)在创建表的时候,直接指定。(建议:基本的约束)
(2)建表后再去创建,通过修改动作。(建议:外键约束)
创建表,添加约束
create table tb_user (
id int primary key,
name varchar(50) not null,
age int check (age > 0 and age < 65),
sex char(4) check (sex = '男' or sex = '女'),
phone varchar(20) unique,
address varchar(50) default '广州天河'
);
-
约束的种类
(1)检查约束:check 特殊的检查约束:not null 不为空
(2)唯一约束:unique
(3)主键约束:primary key
(4)外键约束:foreign key 一般用于多张表之间的关联
(5)默认值:default
主键:primary key
作用:用来唯一区别确定的一行数据。不能重复的。
注意:
(1)从功能上来看,相当于你同时用了非空和唯一两个约束。
(2)一个表中,只允许一个主键。
(3)主键可以是单字段的,也可以是多字段的。
(4)当我们创建了主键之后,Oracle 默认会为主键创建对应的索引。
(5)现在数据库建模,建议一张表一定要有主键,并且主键应该和业务数据无关。
在Oracle中我们需要使用序列的方式来实现自动增长,自动增长是 mysql 中才能设置的。