ORACLE语句学习档

导读:*在altertable语句中,还可使用disableconstraint子句禁,*在altertable语句中,可以使用enableconstraint子句启用,-insertintotestvalues('AAA',20);->(Y)-insertintotestvalues('BBB',170);->(N)-droptabletest;-cre

ORACLE语句学习档

- insert into test values('AAA', 20); -> (Y)

- insert into test values('BBB', 170); -> (N)

- drop table test;

- create table test(

- name varchar2(20) check(length(name) >= 6 and length(name) <= 20), ->也可以 name varchar2(20) check(name is not null),

- age number(3) check(age >=0 and age <= 120)

- );

- insert into test values('AAA', 20); -> (N)

- insert into test values('BBB', 170); -> (N)

- insert into test values('CCCCCCC', 50); -> (Y)

' ;%迗Z抙8HE' ;%

##########[ 约束小结 ]##########

* 上述5种约束分为三类:

* 域完整性约束:

- not null

- check

* 实体完整性约束

- unique

- primary key

* 参照完整性约束

- foreign key

##########[ 查看约束 ]##########

* 查询用户字典视图 user_constrains

- 可得到用户的所有约束

* 查询用户字典视图 user_cons_columns

- 可获知约束建立在哪些字段上

##########[ 建表后添加约束 ]##########

* 基本语法:

- alter table table_name

- add [constraint constraint_name] constraint_type (column);

* 举例:

- create table student(

- sid number(10),

- name varchar(20)

- );

- alter table student

- add constraint student_sid_pk primary key(sid);

* 特例:

- alter table student

- modify(name not null);

##########[ 删除约束 ]##########

* 基本语法

- alter table table_name

- drop constraint constraint_name;

* 举例

- create table student(

- sid number(10),

- name varchar2(20),

- constraint student_sid_pk primary key(sid)

- );

- alter table student drop constraint student_sid_pk;

* 删除主键约束的另一种方式(只有主键才可以这样删,因为主键只有一个):

- alter table table_name drop primary key;

* 举例

- alter table student drop primary key;

##########[ 删除级连约束 ]##########

* 在删除约束时,如果还存在与该当前约束相关联的其它约束,则删除操作会失败,此时可使用 cascade 子句将其它关联约束一并删除

- alter table table_name

- drop constraint constraint_name [cascade];

* 举例

- create table empinfo(

- eid number(3) constraints empinfo_eid_pk primary key,

- ename varchar2(20)

- );

- create table salinfo(

- eid number(3) primary key references empinfo(eid)

- );

- alter table empinfo

- drop constraints empinfo_eid_pk cascade

* 在删除表中字段时,如果该字段处于多字段联合约束条件(联合主键,联合唯一键,存在参照当前字段的外键)中,则删除会失败,此时可

* 使用 cascade constraints 子句将与该字段相关的约束一并删除

* 语法:

- alter table table_name

- drop (column[, column]...) cascade constraints;

* 举例:

- create table stuinfo(

- sid number(3),

- idcard varchar2(18),

- name varchar2(20),

- constraint stuinfo_sid_idcard_pk primary key(sid, idcard)

- );

- alter table stuinfo drop(sid) cascade constraints;

##########[ 禁用约束 ]##########

* 在 alter table 语句中, 还可使用 disable constraint 子句禁用已有约束

* 也可使用 cascade 选项将相关联的约束也一并禁用

* 语法:

- alter table table_name

- disable constraint constraint_name [cascade];

* 举例:

- create table student(

- sid number(10),

- name varchar2(20),

- constraint student_sid_pk primary key(sid)

- );

- alter table student

- disable constraint student_sid_pk;

##########[ 启用约束 ]##########

* 在 alter table 语句中, 可以使用 enable constraint 子句启用先前被禁用的约束

* 语法:

- alter table table_name

- enable constraint constraint_name;

* 举例:

- drop table student;

- create table student(

- sid number(10),

- name varchar2(20),

- constraint student_sid_pk primary key(sid)

- );

- alter table student

- disable constraint student_sid_pk;

- alter table student

- enable constraint student_sid_pk;

* 说明:

- 和关闭约束操作的情形有所不同,此时无法再使用 cascade 选项一并启用相关联的其它约束

##########[ 视图 ]##########

* 什么是视图 ( View ) ?

- 视图由一个或多个表(或视图)中提取数据而成

- 视图是一种虚拟表

- 视图一经创建,可以当作表来使用

五星文库wxphp.com包含总结汇报、考试资料、办公文档、党团工作、工作范文、资格考试、旅游景点、word文档、出国留学以及ORACLE语句学习档等内容。

本文共15页1<<9101112131415