中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL 基礎之管理方案對象(十七)

發布時間:2020-07-23 10:42:42 來源:網絡 閱讀:562 作者:yuri_cto 欄目:數據庫

使用 ALTER TABLE 語句:

  •  增加字段

  •  修改字段

  •  修改字段默認值

  •  刪除字段


1、增加字段,新字段將成為最后一列:

alter table table

add (column datatype [default expr]

[, column datatype]...);


alter table dept80 add (job_id varchar2(9));


2、修改字段的數據類型、大小和默認值(修改后的默認值只影響修改后插入表中的數據

alter table table

modify (column datatype [default expr]

[, column datatype]...);


alter table dept80 modify (last_name varchar2(30));



3、刪除字段

alter table table drop (column [, column]..);


alter table dept80 drop column job_id;


SET UNUSED 選項

  • 您可以使用 SET UNUSED 選項標記一個或多個字段為不可用。

  • 您可以使用 DROP UNUSED COLUMNS 刪除標記為不可用的字段。


alter table <table_name>

set unused(<column_name> [ ,  <column_name>] );

alter table <table_name>

set unused column <column_name>  [ , <column_name>] ;


alter table <table_name> drop unused columns;


管理約束

增加約束語法

使用 ALTER TABLE 語句:

  •  添加或刪除約束,不會修改其結構

  •  啟用和禁用約束

  •  通過使用 MODIFY 子句添加 NOT NULL 約束

語法:

alter table <table_name>

add [constraint <constraint_name>]

type (<column_name>);


添加約束

Add a FOREIGN KEY constraint to the EMP2 table indicating that a manager must already exist as a valid employee in the EMP2 table.修改表 EMP2 添加 FOREIGN KEY 約束,前提是父節點


alter table emp2 modify employee_id primary key;


alter table emp2

add constraint emp_mgr_fk

foreign key(manager_id)

references emp2(employee_id);


ON DELETE 語句

使用 ON DELETE CASCADE 子句級聯刪除:

alter table emp2 add constraint emp_dt_fk

foreign key (department_id)

references departments(department_id) on delete cascade;


使用 ON DELETE SET NULL 當父節點記錄刪除時子節點

記錄置空:

alter table emp2 add constraint emp_dt_fk

foreign key (department_id)

references departments(department_id) on delete set null;


延遲約束

延遲約束有以下屬性:

 deferrable 或 not deferrable

 initially deferred 或 initially immediate


alter table dept2 add constraint dept2_id_pk  primary key (department_id)

deferrable initially deferred

 set constraint dept2_id_pk immediate

 alter session set constraints=immediate


INITIALLY DEFERRED  和INITIALLY IMMEDIATE 的區別

INITIALLY DEFERRED事務結束后驗證
INITIALLY IMMEDIATE語句執行時立即驗證

create table emp_new_sal (salary number

constraint sal_ck

check (salary > 100)

deferrable initially immediate,

bonus number

constraint bonus_ck

check (bonus > 0 )

deferrable initially deferred );


刪除約束

刪除表 EMP2 的 emp_mgr_fk 約束:

 alter table emp2 drop constraint emp_mgr_fk;


刪除DEPT2表的 PRIMARY KEY 約束并刪除相關聯的FOREIGN KEY約束:

 alter table dept2 drop primary key cascade;


禁用約束

  • 使用 ALTER TABLE 語句的 DISABLE 子句禁用完整性約束

  • 應用 CASCADE 選項禁用相關的完整性約束


 alter table emp2 disable constraint emp_dt_fk;


啟用約束

使用 ENABLE 子句激活當前禁用表中定義的完整性約束。

 alter table emp2 enable constraint emp_dt_fk;


如果啟用了唯一鍵或主鍵約束,會自動創建一個唯一索引


級聯約束

  • CASCADE CONSTRAINTS 子句在 DROP COLUMN 子句中使用。

  • 刪除字段 CASCADE CONSTRAINTS 指定子句,同時也將刪除所有定義的多列約束。

  • 刪除列上定義的 PRIMARY 和 UNIQUE 約束時指定CASCADE CONSTRAINTS 子句,則將刪除所有引用它的完整性約束


示例:

alter table emp2 drop column employee_id cascade constraints;


alter table test1 drop (col1_pk, col2_fk, col1) cascade constraints;


Cascade 總結

  •  刪除用戶的時候級聯刪除對象

drop user test cascade;

  •  刪表時級聯刪除約束

drop table test cascade constraints;

  •  刪字段的時候,級聯刪除約束(pk,fk,.c)

alter table test drop column (id) cascade constraints;

alter table test disable constraint pk_test cascade;

  • create table child (c1 number primary key,c2 number references parent(c1) on delete cascade);


重命名表的列和約束

1、使用 RENAME COLUMN子句的ALTER TABLE語句來重新命名表列。

 alter table marketing rename column team_id to id;


2、使用RENAME CONSTRAINT子句的ALTER TABLE語句來重命名表中任意已存在的約束。

 alter table marketing rename constraint mktg_pk to new_mktg_pk;

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栾城县| 金乡县| 五寨县| 大荔县| 石河子市| 青河县| 道孚县| 宁德市| 银川市| 和龙市| 游戏| 泰宁县| 自治县| 石林| 鄂伦春自治旗| 陵水| 凤阳县| 古丈县| 沧州市| 土默特左旗| 黄平县| 合山市| 温泉县| 姚安县| 贵港市| 静宁县| 汤阴县| 宁波市| 徐汇区| 德令哈市| 桃园县| 临夏市| 浠水县| 和硕县| 梧州市| 平谷区| 岗巴县| 光泽县| 防城港市| 卫辉市| 赫章县|