oracle表结构修改和五大约束

一、表结构

1、创建表

2、增加列

3、删除列

 

4、修改列的类型

 

5、复制表

 相当于新建一张表,只有表名和原有的表不一样

 

 

二、约束

约束的概念:就是对某个字段中的值的控制【constraint约束】

1、非空约束 Not Null 限定表种某些值不能为空的约束

第一种写法:create table stu2(sid number,name varchar2(255) constraint nu not null,age number)

 

第二种写法:create table stu3(sid number,name varchar2(255) not null, age number)

 

删除非空约束

 

 

 用alter添加非空约束

 

 

2、唯一约束UNIQUE(限定某一列的值不能重复)

第一种唯一约束方式:

create table stu5(sid number,name varchar2(255), age number, constraint uq unique(name))

 

第二种唯一约束的方式:

create table stu6(sid number,name varchar2(255) unique,age number)

 

给没有约束的表【现成的表】建立唯一约束

 

3,

3.1主键约束Primary Key  【主键不会重复】  

任何一个表有且仅有一个主键

主键可以包含一列或多列

 

主键约束的第一种写法

create table stu8(sid number,name varchar2(255),age number,

constraint pk_stu8 primary key(sid)

或者

create table stu8(sid number,name varchar2(255),age number,

constraint pk_stu8 primary key(sid,name)

 

主键约束第二种写法

create table stu9(sid number primary key,name varchar2(255),age number)

 

给已有的表添加主键约束

 

3.2外键约束foreign key

create table worker(wid number primary key,name varchar2(255),jobid number,

constraint fk_worker foreign key(jobid) references job(jid) on delete cascade

)

 

 给已有的表添加外键约束

 

4, 检查约束

创建检查约束第一种方式:  (aabb为约束名字,随意赋予)

create table teacher(tid number,name varchar2(255),age number,

constraint aabb check(age>20 and age<90)

);

创建检查约束第二种方式:(没有名字)

create table stu(sid number,name varchar2(255),age number check(age > 20 and age <90))

 

 

5,删除约束

通过约束名称删除约束

alter table teacher drop constraint aabb

 

6,增加约束

 6.1,alter table teacher add constraint abcs check(age > 20 and age < 190)

 

6.2,alter table stu4 modify name not null

 

6.3,alter table stu5 add constraint q2 unique(age)

 

6.4,alter table stu4 add constraint pk_con primary key(sid)

 

5,alter table tb1 add constraint pk_tb2 foreign key(jobid) references job(jid) on delete cascade

 

posted on 2018-10-16 16:01  平平无奇  阅读(1411)  评论(0编辑  收藏  举报