Oracle學習筆記基礎 002 約束

2021-10-05 16:05:05 字數 4498 閱讀 4700

定義規則:對字段的規則,比如必填項,預設值等。

確保完整性:確保資料的完整性,可以限制一些錯誤或無效的資訊的插入。

非空約束

在建立表時設定非空約束

(預設是可以為null的)

create

table table_name (

column_name datatype not

null,.

..);

在修改表時新增非空約束

alter

table table_name

modify column_name datatype not

null

;

在修改表時去除非空約束

alter

table table_name

modify column_name datatype null

;

主鍵約束

作用:確保表中每一行資料的唯一性

非空 唯一

一張表只能設計乙個主鍵約束

主鍵約束可以由多個字段構成(聯合主鍵或復合主鍵)

在建立表時設定主鍵約束

--法一: 列級約束

create

table table_name(

column_name datatype primary

key,..

.)--法

二、表級約束:在所有的字段寫完之後,再設定約束

constraint constraint_name

primary

key(column_name1,..

.)

注:建立完約束之後忘記約束名稱了,可以在資料字典user_constraints中查詢

select constraint_name from user_constraints where table_name=

'table_name'

;

在修改表時新增主鍵約束

--在新增時,最好表中是沒有資料的

alter

table table_name

addconstraint constraint_name

primary

key(column_name1,..

.);

更改約束名稱

--該方法還可以修改其他任何約束的名稱

alter

table table_name

rename

constraint old_name to new_name;

刪除約束

alter

table table_name

--禁用/啟用約束

disable

|enable

constraint constraint_name

--刪除約束

drop

constraint constraint_name

--直接用名稱刪除,[casecade]是級聯約束,可以將關聯的其他約束也一起刪掉,一般在刪除外來鍵的時候有效

drop

primary

key[casecade]

注:檢視主鍵是否禁用

select constraint_name ,

status

from user_constraints where table_name =

'table_name'

;

外來鍵約束

唯一乙個涉及兩個表的字段關係的乙個約束

在建立表時設定外來鍵約束

--法一:列級約束

--1.設定外來鍵約束時,主表的字段必須是主鍵

--2.主從表中相應額欄位必須是同一種資料型別

--3.從表 中外鍵字段的值必須來自 主表 中相應欄位的值,或者為null值

create

table table1(從表)

(column_name datatype references

table2(column_name),.

.. (主表));

--法二:表級約束,表建立時定義完所有字段之後,

--[on delete cascade]級聯刪除:主表中的一條資料被刪除之後,從表中使用這條資料的字段的資料也會被刪除

constraint constraint_name foreign

key(column_name)

references

table_name(column_name)[on

delete

cascade

] (主表)

在修改表時新增外來鍵約束

alter

table table_name

addconstraint constraint_name foreign

ket(column_name)

references

table_name(column_name)[on

delete

cascade

](主表)

刪除外來鍵約束

alter

table table_name

--禁用外來鍵約束

disable

|enable

constraint constraint_name

--徹底刪除外來鍵約束

drop

constraint constraint_name

唯一約束

作用:保證欄位的唯一性

唯一約束和主鍵約束的區別:

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

--列級約束

create

table table_name

(column_name datatype unique,.

..);

--表級約束

--如果乙個表裡要建立多個唯一約束,就要寫多條如下語句,因為每個唯一約束的名稱時不一樣的。

constraint constraint_name

unique

(column_name)

在修改表時新增唯一約束

alter

table table_name

addconstraint constraint_name

unique

(column_name)

;

刪除唯一約束

alter

table table_name

--禁用/啟用唯一約束

disable

|enable constraint_name

--徹底刪除唯一約束

drop

constraint constraint_name

檢查約束

作用:使表中的值具有實際意義

在建立表時設定檢查約束

--列級約束, 約束名是系統自定義的

--expressions表示式, 如工資大於0:salary>0

create

table table_name

(column_name datatype check

(expressions),.

..);

--表級約束

--如果乙個表裡要建立多個唯一約束,就要寫多條如下語句,因為每個唯一約束的名稱時不一樣的。

constraint constraint_name

check

(expressions)

在修改表時新增檢查約束

alter

table table_name

addconstraint constraint_name

check

(expressions)

;

刪除檢查約束

alter

table table_name

--暫時禁用/啟用唯一約束

disable

|enable constraint_name

--徹底刪除唯一約束

drop

constraint constraint_name

小結:

主鍵約束每張表只能有乙個,可以由多個字段構成。

外來鍵約束是唯一乙個涉及兩個表關係的約束。

在建立表時設定約束,非空約束只能在列級設定,不能在表級設定,非空約束是沒有名字的。

資料字典:user_constraints

刪除主鍵約束有一種特殊的寫法,不同於其他,因為主鍵乙個只有唯一乙個:drop primary key

注:慕課網學習筆記

Linux學習筆記0 0 2

刪除目錄或檔案的方法,我學習了兩個乙個是使用rmdir命令另乙個是使用rm命令。下面對這兩個命令進行簡要講解。1.1 rmdir 命令 rmdir 命令的作用就是從乙個目錄中刪除乙個或者多個空的子目錄。簡單粗暴的說,你只能刪除你包含的乙個或者多個空資料夾。看下面例項 1rmdir test 刪除 t...

Python學習筆記002

002講2020 7 7 第乙個遊戲程式 print 我愛魚c工作室 temp input 不妨猜一下小甲魚現在心裡想的是哪個數字 guess int temp if guess 8 print 恭喜你,猜對了 print 猜中了也沒有獎勵哦 else print 猜錯啦,我現在小甲魚現在心裡想的是...

「菜鳥」基礎學習之 002

迴圈語句 for 1.語法 for 迴圈變數 in 可迭代物件 語句塊else 語句塊 當迴圈條件不滿足時,執行 2.range 作用 建立可迭代物件,返回的物件型別為 range 傳參 有三種情況 一.傳遞1個引數時 range int 建立 從0到int的可迭代物件,但取不到int 如 rang...