oracle之完整性條件約束

來源:互聯網
上載者:User

標籤:

oracle之完整性條件約束

 資料庫中的完整性條件約束有:

  1.主鍵約束(Primary)
  2.唯一約束(unique)
  3.檢查約束(check)
  4.非空約束(not null)   --屬於檢查約束
  5.外鍵約束(foreign key)

首先先建一個學生表:

create table t_student_con(    f_id int,    f_name varchar2(30),    f_sex char(2),    f_age int,    f_birth date default sysdate);
--添加一個欄位alter table t_student_conadd f_email varchar2(30);

 1、主鍵約束:添加了主鍵約束的欄位不能為null,且會自動添加唯一約束。

--添加一個主鍵約束alter table t_student_conadd constraint pk_std_id primary key (f_id);

 2、唯一約束:添加了唯一約束的欄位的值是唯一的,不能有重複。

--添加一個唯一約束alter table t_student_con add constraint uq_std_name unique(f_name);

3、檢查約束:可以自訂資料的完整性,保證欄位的資料不存在約束條件之外的資料。

--添加檢查約束alter table t_student_con add constraint ck_std_sex check(f_sex=‘M‘ or f_sex=‘F‘)

4、非空約束:有非空約束的欄位,值不可為空或者插入null值。

--非空約束是檢查約束的一種,這種添加方法不是很常用alter table t_student_conadd constraint nnull_std_email check( f_email is not null);
--我們一般會以修改表欄位的方法來添加非空約束alter table t_student_con modify(f_email varchar2(30) not null);

5、外鍵約束:若表之間存在聯絡,則建立外鍵約束可保證資料的完整性和規範性。

首先建立一個考試資訊表:

create table t_student_exam(       e_id int,--主鍵       e_subject varchar2(30),--科目       e_score number(5,2),--分數       f_id int--學員資訊的外鍵);

下面為該表添加主鍵和外鍵:

--添加主鍵alter table t_student_exam add constraint pk_exam_id primary key(e_id);--添加外鍵alter table t_student_exam add constraint fk_exam_student_id foreign key (f_id)references t_student_con(f_id)on delete cascade; --在刪除學生資訊的時候,串聯刪除從表的成績資訊

注意:添加了外鍵約束的表,若主表有對應的從表記錄,需在添加外鍵約束時加上 on delete cascade 關鍵字,才可直接刪除,此關鍵字表示串聯刪除。否則不能直接刪除。

6、約束的刪除
  文法:alter table t_student_exam drop constraint 約束名;

--刪除約束alter table t_student_exam drop constraint fk_exam_student_id;

  注意!我們可以用以上方法建立表的完整性條件約束,同時,我們也可以在建表時就建立約束。如下

create or replace table t_student_con(    f_id int primary key,    f_name varchar2(30),    f_sex char(2) check(f_sex=‘M‘ OR f_sex=‘F‘),--1、檢查性約束    f_age int,    f_birth date default sysdate,    constraint ck_std_age check(f_age>=1 and f_age<=60)--2、檢查性約束);
create table t_student_exam(       e_id int,--主鍵       e_subject varchar2(30),--科目       e_score number(5,2),--分數       f_id int REFERENCES T_STUDENT_CON(F_ID) ON DELETE CASCADE--學員資訊的外鍵約束);

 

oracle之完整性條件約束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.