您的位置:首页 > 博客中心 > 数据库 >

Oracle--约束

时间:2022-03-15 19:02

为什么要有约束

  约束可以限制数据不超出范围,可以更好的保证数据库中数据的完整性。

分类:

  1.主键约束

  2.唯一约束

  3.检查约束

  4.非空约束

  5.外键约束

  6.默认约束

1-主键约束:primary key

  主键表示是一个唯一的标识,本身不能为空。

CREATE TABLE person
(
              ---主键约束
pid VARCHAR2(18) primary key,
name VARCHAR2(200) ,
age NUMBER(3) ,
birthday DATE ,
sex VARCHAR2(3)  DEFAULT  ‘男‘
) ;
CREATE TABLE person
(
              ---主键约束
pid VARCHAR2(18) ,
name VARCHAR2(200) ,
age NUMBER(3) ,
birthday DATE ,
sex VARCHAR2(3)  DEFAULT  ‘男‘,
--CONSTRAINT 约束名  约束类型 [值]    
constraint pid_key primary key (pid)
);
--修改表结构添加约束
alter table person add constraint pid_key primary key (pid);

2-唯一约束:unique

  在一个表中只允许建立一个主键约束,而其他列不希望出现重复值的话,则就可以使用唯一约束。一张表中的唯一约束可以有多个, 并且允许有空值,空值只能有一个。

--唯一约束
/*UNIQUE
    表示一个字段中的内容是唯一的,其他列不允许重复。*/
    create table person
(
  pid varchar2(18),
  name varchar2(200) unique not null,
  age number not null,
  birthday date,
  sex varchar2(3) default ‘男‘,
 constraint person_pid_pk  primary key (pid),
 constraint person_pid_uk  unique(name)
)

3-检查约束:check

  检查一个列的内容是否合法

    例如:年龄,只能在0~150 ?

    例如:性别,只能是男、女

-- check 检查约束
/*使用检查约束来判断一个列中插入的内容是否合法,例如:年龄的取值范围、性别的取值范围。*/
create table person
(
  pid varchar2(18),
  name varchar2(200) not null,
  age number not null check (age between 0 and 120) ,
  birthday date,
  sex varchar2(6) default ‘男‘ check (sex in (‘男‘,‘女‘,‘不详‘)) , 
 constraint person_pid_pk  primary key (pid),
 constraint person_pid_uk  unique(name)
)

4-非空约束:not null

  字段里面的内容就不能为空。

create table person
(
  pid varchar2(18),
  name varchar2(200) not null,
  age number not null,
  birthday date,
  sex varchar2(3) default ‘男‘,
 constraint person_pid_pk  primary key (pid)
)

 

--查询数据字典视图

--查询数据字典视图user_constraints 1
select constraint_name,constraint_type
from user_cons_columns where table_name = ‘test2‘;

 

 

create table person(  pid varchar2(18),  name varchar2(200) not null,  age number not null,  birthday date,  sex varchar2(3) default ‘男‘, constraint person_pid_pk  primary key (pid))

热门排行

今日推荐

热门手游