例子:主键约束
--创建学生信息表
create table student(
sid number(8,0),
name varchar2(20),
sex char(2),
birthday date,
address varchar2(50)
);
--修改表结构,为学生信息表添加主键约束
alter table student
add constraint sid_pk primary key(sid);
以上的操作也可以直接在创建表的时候一步到位:
--创建表时添加主键约束的两种方式
1.
create table student(
sid number(8,0) primary key,
name varchar2(20),
sex char(2),
birthday date,
address varchar2(50)
);
2.
create table student(
sid number(8,0),
name varchar2(20),
sex char(2),
birthday date,
address varchar2(50),
constraint sid_pk primary key(sid)
);
例子:非空约束
--修改表结构,添加非空约束
ALTER TABLE student MODIFY (name varchar2(20) NOT NULL);
--创建表时添加非空约束
create table student(
sid number(8,0),
name varchar2(20) not null,
sex char(2) constraint nn_sex not null,
birthday date,
address varchar2(50),
constraint sid_pk primary key(sid)
);
--删除非空约束的方式
ALTER TABLE student MODIFY sex char(2) NULL;
--禁用主键约束(无效化约束)
ALTER TABLE student DISABLE CONSTRAINT sid_pk;
--激活主键约束
ALTER TABLE student ENABLE CONSTRAINT sid_pk;
--删除主键约束
ALTER TABLE student DROP CONSTRAINT sid_pk;
ALTER TABLE student DROP PRIMARY KEY;
例子:唯一性约束
--创建表时添加唯一性约束
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50),
-- email varchar2(50) unique,
-- cardid varchar2(18),
-- constraint uk_cardid unique(cardid)
--);
--创建学生信息表
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50),
-- email varchar2(50) unique,
-- cardid varchar2(18)
--);
--更改表结构,添加唯一性约束
--alter table student add constraint uk_student_cardid unique(cardid);
--禁用约束
alter table student disable constraint uk_student_cardid;
--彻底删除
alter table student drop constraint uk_student_cardid;
例子:检查约束
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50)
--);
--修改表添加检查约束的方式
--alter table student add constraint ck_sex check(sex='男' or sex='女');
--创建表时设置检查约束的方式:列级约束
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2) check(sex='男' or sex='女'),
-- birthday date,
-- address varchar2(50)
--);
--创建表时设置检查约束的方式:表级约束
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50),
-- constraint ck_sex check(sex='男' or sex='女')
--);
--禁用约束
--alter table student disable constraint ck_sex;
--彻底删除
alter table student drop constraint ck_sex;
例子:外检约束(注意:级联删除 : on delete cascade)
--主表
--create table department(
-- depid varchar2(10) primary key,
-- depname varchar2(30)
--);
--从表
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50),
-- depid varchar2(10)
--);
--修改表时添加约束
--alter table student add constraint fk_depid foreign key(depid) references department(depid) on delete cascade;
--创建列级约束
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50),
-- depid varchar2(10) references department(depid)
--);
--创建表级约束
--create table student (
-- sid number(8,0),
-- name varchar2(20),
-- sex char(2),
-- birthday date,
-- address varchar2(50),
-- depid varchar2(10),
-- constraint fk_depid foreign key(depid) references department(depid) on delete cascade
--);
--禁用约束
--alter table student disable constraint fk_depid;
--彻底删除
alter table student drop constraint fk_depid;