oracle表结构修改和五大约束

本文详细介绍了SQL中表结构的创建与修改方法,包括创建表、增加与删除列、修改列类型及复制表等操作。同时深入解析了各种约束的应用,如非空约束、唯一约束、主键与外键约束、检查约束,并提供了实际的SQL语句示例。

一、表结构

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

 

转载于:https://www.cnblogs.com/edwin309/p/9663342.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值