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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM