Oracle資料庫開發SQL基礎之約束

來源:互聯網
上載者:User

標籤:非空約束   for   har   reference   建立表   輸入   arc   number   建立   

約束的作用:定義規則、確保完整性

一、非空約束

      1.在建立表時設定非空約束

      CREATE TABLE userinfo_1

      (id number(6,0),

      username varchar2(20) not null,

      userpwd varchar2(20) not null

      )

      2.在修改表時設定非空約束

      DELETE FROM userinfo

      ALTER TABLE userinfo

      MODIFY username varchar2(20)not null

      3.去除非空約束

      ALTER TABLE userinfo

      MODIFY username varchar2(20) null

二、主鍵約束:確保表當中每一行資料的唯一性(一張表只能有一個主鍵約束)

  1.在建立表時設定主鍵約束

      CREATE TABLE userinfo_2

      (id number(6,0) PRIMARY KEY,

      username varchar2(20),

      userpwd varchar2(20)

       )

      CREATE TABLE userinfo_2s

      (

      id number(6,0),

  username varchar2(20),

  userpwd varchar2(20),

  CONSTRAINT pk_id_username PRIMARY KEY(id,username))

  2.在修改表時添加主鍵

  ALTER TABLE userinfo

  ADD CONSTRAINT pk_id PRIMARY KEY(id)

  更改約束的名字

  ALTER TABLE userinfo

  RENAME CONSTRAINT pk_id to new_pk_id

  3.刪除主鍵約束

  禁用約束

  ALTER TABLE userinfo

  DISABLE constraint new_pk_id

  刪除約束(DROP PRIMARY KEY)

  ALTER TABLE userinfo

  DROP CONSTRAINT new_pk_id

 

  ALTER TABLE userinfo_2

  DROP PRIMARY KEY

三、外鍵約束

  1.在建立表的時候設定外鍵約束

  建立主表

  CREATE TABLE typeinfo

  (

  type varchar2(10) primary key,

  typename varchar2(20)

  )

  建立從表並添加外鍵約束(列級)

  CREATE TABLE userinfo_f

  (

  id varchar2(10) primary key,

  username varchar2(20),

  typeid_new varchar2(10) references typeinfo(type)

  )

  向主表中輸入一個值

  insert into typeinfo values(1,1)

  向從表中輸入一個值(向外鍵約束輸入的值要麼是主表中的值,要麼是空值)

  insert into userinfo_f(id,typeid_new) values(1,1)

  insert into userinfo_f(id,typeid_new) values(1,null)

  表級

  CREATE TABLE userinfo_f2

  (

  id varchar2(10) primary key,

  username varchar2(20),

  typeid_new varchar2(10),

  CONSTRAINT fk_typeid_new foreign key (typeid_new) references typeinfo(type) on delete cascade 並設定級聯

  )

  2.在修改表的時候添加外鍵約束

  CREATE TABLE userinfo_f4

  (id varchar2(10)primary key,

  username varchar2(20),

  typeid_new varchar2(10)

  )

  ALTER TABLE userinfo_f4

  ADD CONSTRAINT fk_typeid_alter foreign key (typeid_new) references typeinfo (type)

  3.刪除外鍵約束

  禁用

  ALTER TABLE userinfo_f4

  DISABLE CONSTRAINT fk_typeid_alter

  刪除

  ALTER TABLE userinfo_f4

  DROP CONSTRAINT fk_typeid_alter

四、唯一約束:保證欄位值的唯一性

  與主鍵約束的卻別 主鍵欄位必須是非空的(一個表只能有一個) 唯一約束允許有一個空集(一個表可以有多個)

  1.在建立表時設定唯一約束

  列級添加 unique

  CREATE TABLE userinfo_u

  (

  id varchar2(10),

  username varchar2(20) unique,

  userpwd varchar2(20)

  )

  表級設定唯一約束 CONSTRAINT約束的名字 unique

  CREATE TABLE userinfo_u1

  (

  id varchar2(20) primary key,

  username varchar2(20),

  CONSTRAINT un_username unique (username)

  ) 

  2.修改表時添加唯一約束

  CREATE TABLE userinfo_u2

  (

  id varchar2(20) primary key,

  username varchar2(20)

  )

  ALTER TABLE userinfo_u2

  ADD CONSTRAINT un_username_new unique(username)

  3.刪除約束

  禁用唯一約束

  ALTER TABLE userinfo_u2

  DISABLE CONSTRAINT un_username_new

  刪除

  ALTER TABLE userinfo_u2

  DROP CONSTRAINT un_username_new

五、檢查約束

  1.在建立表時設定檢查約束

  列級CHECK(約束條件)

  CREATE TABLE userinfo_c

  (

  id varchar2(10)primary key,

  username varchar2(20),

  salary number(5,0) check(salary>0)

  )

  在表級設定檢查約束

  CREATE TABLE userinfo_d

  (

  id varchar2(10)primary key,

  username varchar2(20),

  salary number(5,0),

  CONSTRAINT ck_salary check (salary>0)

  )

  2.在修改表時添加檢查約束

  CREATE TABLE userinfo_d1

  (

  id varchar2(10)primary key,

  username varchar2(20),

  salary number(5,0)

  )

 

  ALTER TABLE userinfo_d1

  ADD CONSTRAINT ck_salary_new check (salary>0)

  3.刪除檢查約束

  禁用 disable

  alter table userinfo_d1

  disable constraint ck_salary_new

  刪除drop

  alter table userinfo_d1

  drop constraint ck_salary_new

Oracle資料庫開發SQL基礎之約束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.