一、表結構
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