1. 程式人生 > >數據庫——修改表

數據庫——修改表

數據類型 圖片 mysql -- mod 9.png 技術分享 publisher 命名

二、修改表

1、修改表字段:

a、添加字段

alter table student

add (sex char(2) default ‘1‘ constraint student_sex_type check(sex=‘1‘ or sex=‘2‘))

註意:新添加的字段在表的最後一列,不能指定字段的位置,這與MySQL數據庫不同(MySQL數據庫可以通過after設定添加字段的先後順序)

b、修改字段

alter table student

modify(name varchar2(12))

註意:字段的修改包括修改數據類型(只有對應列為空指才可以修改)、大小和默認值,其中默認值的修改只會影響後來插入表的數據,對之前的數據不會產生影響。

c、刪除字段

alter table student

drop(sex)

註意:

①、一次只能刪除一個字段;

②、一個表至少要保留一個字段;

③、如果所刪除列(publisher表中id)是另一個表的外鍵(bookpublisher_id)則該列(publisher表中id列)無法刪除,如下圖所示:

技術分享圖片

2、修改表字段約束:

a、添加約束

alter table student

add constraint student_id_pk primary key(id);--studentid列設為主鍵

註意:

1、可以一次添加多個約束,如下:

技術分享圖片

2、不能通過添加約束為某個字段添加

not null約束,只能通過修改字段為其指定not null,如下:

技術分享圖片

b、刪除約束

alter table student

drop constraint student_sex_type;--依據約束名刪除約束

alter table student

drop primary key--依據約束類型刪除約束

alter table student

drop unique(id) --依據約束類型刪除約束

註意:drop子句後面可以使用cascade,意為刪除約束的同時與其相依賴的約束也一同刪除,例如:

技術分享圖片

技術分享圖片

c、啟用或禁用約束

禁用約束:

alter table student

disable constraint student_sex_type;--禁用約束

註意:disable子句後面可以使用cascade,意為禁用約束的同時與其相依賴的約束也一同禁用,例如:

技術分享圖片

技術分享圖片

技術分享圖片

啟用約束:

alter table student

enable constraint student_sex_type;--啟用約束,註意:enable後面不能使用cascade關鍵字

註意:約束無法修改,只能通過先刪除再創建的方式間接修改字段約束。

三、表重命名

rename 舊名字 to 新名字

四、截斷表

truncate table 表名——不用執行commit就可以將表數據刪除

delete from 表名——必須執行commit才可以將表數據刪除

delete、drop、truncate的區別

五、刪除表

drop table 表名

六、註釋

表註釋

comment on table 表名 is ‘註釋內容‘;

字段註釋

comment on column 表名.字段名 is ‘註釋內容‘;

數據庫——修改表