oracle 新增 修改 刪除字段

2022-06-15 21:27:24 字數 2296 閱讀 2212

新增欄位的語法:alter table tablename add (column datatype [default value][null/not null],….);

修改欄位的語法:alter table tablename modify (column datatype [default value][null/not null],….);

刪除欄位的語法:alter table tablename drop (column);

新增、修改、刪除多列的話,用逗號隔開。

使用alter table 來增加、刪除和修改乙個列的例子。

建立表結構:

create table test1

(id varchar2(20) not null);

增加乙個字段:

alter table test1

add (name varchar2(30) default 『無名氏』 not null);

使用乙個sql語句同時新增三個字段:

alter table test1

add (name varchar2(30) default 『無名氏』 not null,

age integer default 22 not null,

has_money number(9,2)

修改乙個字段

alter table test1

modify (name varchar2(16) default 『unknown』);

另:比較正規的寫法是:

-- add/modify columns 

alter table table_name rename column field_name to new_field_name;

刪除乙個字段

alter table test1

drop column name;

需要注意的是如果某一列中已經存在值,如果你要修改的為比這些值還要小的列寬這樣將會出現乙個錯誤。

例如前面如果我們插入乙個值

insert into test1

values (』1′,』我們很愛你』);

然後曾修改列: alter table test1

modify (name varchar2(8));

將會得到以下錯誤:

error 位於第 2 行:

ora-01441: 無法減小列長度, 因為一些值過大

高階用法:

重新命名表

alter tabletable_namerename tonew_table_name;

修改列的名稱

語法:alter table table_name rename column supplier_name to sname;

範例:alter table s_dept rename column age to age1;

附:建立帶主鍵的表》

create table student (

studentid int primary key not null,

studentname varchar(8),

age int);

1、建立表的同時建立主鍵約束

(1)無命名

create table student (

studentid int primary key not null,

studentname varchar(8),

age int);

(2)有命名

create table students (

studentid int ,

studentname varchar(8),

age int,

constraint yy primary key(studentid));

2、刪除表中已有的主鍵約束

(1)無命名

可用 select * from user_cons_columns;

查詢表中主鍵名稱得student表中的主鍵名為sys_c002715

alter table student drop constraint sys_c002715;

(2)有命名

alter table students drop constraint yy;

3、向表中新增主鍵約束

alter table student add constraint pk_student primary key(studentid);

Orcale新增 修改 刪除字段

一 新增字段 alert tableuser add username varchar2 255 char 設定欄位不為空,給出預設值 alert tableuser add username varchar2 255 char default 這是預設值 not null 二 修改字段 alter...

Oracle 增加修改刪除字段

新增欄位的語法 alter table tablename add column datatype default value null not null 修改欄位的語法 alter table tablename modify column datatype default value null ...

新增 修改 刪除欄位sql語句

新增 在test table 表的 valid status 字段之後,新增乙個字段,設定對應的型別,長度,是否為null,預設值,注釋 alter table test table add column is staff tinyint 2 not null default 0 comment 是...