1005.oracle表中的约束

① 主键 primary key(字段值域内的取值 唯一非空)
② 非空 not null
③ 默认 default    
④ 检查 check
⑤ 唯一 unique  唯一性约束,录入数据时要查表,所以Oracle会自动建立默认索引(因为要查表来比较唯一性),避免大表。
⑥ 外键 foreign key
 
alter table emp add constraint pk_emp primary key(empno);
 
1. 主键(primary key,一个字段或多个字段,不能含为空即为NOT NULL,主键是唯一的,把表的对象区别开)

住键(primary key)用来唯一的标示一行
可以是一个字段,也可以是多个字段,一般是一个字段
主键不能允许有nu11,否则无法标示一行
OLTP系统的表才有主键,OLAP系统的表一般没有主键
OLTP 联机交易系统(ATM取款,淘宝,京东)insert,/update.../select
OLAP联机分析系统(大数据系统)把OLTP系统的数据抽取到OLAP里面去生成表的时候生成主键:

drop table test;
create table test(id number primary key,name varchar2(200));
desc test;
select dbms_metadata.get_ddl('TABLE','TEST','SCOTT')from dual;
insert into test values(1,'oracle');
insert into test values(1,'oracle');

添加主键:
  定义主键:创建表时,直接在列的后面跟primary key
  追加主键:alter table emp add constraint pk_emp primary key(empno);
 
 
2. 必填项 not null

drop table test;
create table test(id number primary key,name varchar2(200)not null,address varchar2(200));
insert into test values(1,'oracle',null);
insert into test(id,address)values(2,'北京');

为啥有not nul1选项呢?
网上注册信息,比填项,不填写就不允许注册。
这种就是在表里面的 not null

3. 默认插入 default
default 默认值
drop table test;
create table test(id number,name varchar2(200)default 'oracle');
insert into test(id)values(1);
select*from test;
insert into test values(1,'db2');
 
4. 外键
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
被引用的表称为父表,而带有外键的表称为子表。子表中的外键通常会引用父表中的主键。
使用CREATE TABLE语句创建外键的语法是:
CREATE TABLE table_name
(
  column1 datatype null/not null,
  column2 datatype null/not null,
  ...
 
  CONSTRAINT fk_column
    FOREIGN KEY (column1, column2, ... column_n)
    REFERENCES parent_table (column1, column2, ... column_n)
);
示例:
CREATE TABLE supplier
( supplier_id numeric(10) not null,
  supplier_name varchar2(50) not null,
  contact_name varchar2(50),
  CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
);
 
CREATE TABLE products
( product_id numeric(10) not null,
  supplier_id numeric(10) not null,
  CONSTRAINT fk_supplier
    FOREIGN KEY (supplier_id)
    REFERENCES supplier(supplier_id)
);
 
在这个例子中,我们在supplier表上创建了一个名为supplier_pk的主键。 它只包含一个字段 - supplier_id字段。 然后,在products表上创建了一个名为fk_supplier的外键,该表根据supplier_id字段引用supplier表。
 
原文地址:https://www.cnblogs.com/bufuzhou/p/14257277.html