1. 程式人生 > >Oracle 約束的定義

Oracle 約束的定義

約束用於確保資料庫滿足特定的商業邏輯或者企業規劃

-----------------------------------------------------------------------

約束包括:not null 、unique、primarykey、foreign key、check

not null約束  用於確保列不能為空(插入資料必須為該列提供資料 update操作不能將該列值設為null)
例:建立i_top表 並在top_r,name 列上定義not null約束 並且指定name列上的not null約束名為nn_name
create table i_top(i_es not null,
                   name varchar2(10) constraint nn_name not null,
                   i_dd number(6,2)
                    );
/*注如果指定約束名那麼必須指定constraint選項,
如果不指定約束名那麼Oracle會自動生成為sys_Cnnn的約束名*/


unique約束 用於唯一的標識列的資料(唯一列數的列值不能重複可以為空)
當定義唯一約束時,預設情況下Oracle會自動基於唯一約束列建立唯一索引,索引名與約束名完全一致
例:建立i_top表,並在name列上定義unique約束
create table i_top(
                    i_id int,name varchar2(10),i_ee number(6,2),
                    constraint u_name unique(name)           --指定unique約束名為u_name
                   );


primary key 約束用於唯一地標識錶行的資料(主鍵約束列不僅不能重複並且也不能為null)
例:建立i_top表中並在i_id列上定義primary key約束
create table i_top(
                   i_id int primary key,
                   name varcher2(10)
                  );


foreign key約束 用於定義主從表的關係 (外部鍵約束要定義在從表上,但主表必須具有主鍵約束或者唯一約束,
                                        當定義了外來鍵約束之後,要求外部鍵列的資料必須是主表的主鍵列<或唯一列>中存在,或者為null)
<定義外部鍵約束關鍵字:
           foreign key:用於指定在表級定義外部鍵約束
           references:用於指定主表名及其主鍵列
           on delete cascade:用於指定級聯刪除選項
           on delete set null:用於指定轉換相關外部鍵值為null>

例:建立i_top表,並在表i_tops和i_top之間定義主從關係
create table i_top(
                  i_id int,
                  name varchar2(10),
                  edon int constraint fk_edon references i_tops(edon)
                  );


check 約束用於強制錶行資料必須滿足的條件
例:建立i_top表 並在top_s列上定義check約束
 create table i_top(i_id int,name varcher2(10),i_top number(6,2),

                    check(i_top between 1000 and 5000))   --i_top列的值只能在1000到5000之間

---------------------------------------------------------------------------------------------------
定義複合約束:
例:建立ite表並在ite_id和ore_id列定義主鍵約束
create table ite(
                 ore_id number(3),
                 ite_id number(3),
                 name varcher2(20),
                 primary key(ore_id,ite_id)
                 );
--------------------------------------------------------------------------------------------------

相關推薦

Oracle 約束定義

約束用於確保資料庫滿足特定的商業邏輯或者企業規劃 ----------------------------------------------------------------------- 約束包括:not null 、unique、primarykey、foreign

oracle定義函數

lac 數列 exp tab 函數列表 bold ets 可選 microsoft 函數   函數與存儲過程相似,也是數據庫中存儲的已命名PL-SQL程序塊。函數的主要特征是它必須有一個返回值。通過return來指定函數的返回類型。在函數的任何地方可以通過return ex

增加 修改oracle約束條件

log def table oracl title normal style .com nor digg_url = "http://www.cnblogs.com/rhxuza1993/p/7463186.html";digg_title = "增加 修改oracle約束

oracle約束約束狀態和設計習慣

rim drop ora- upd else isa pan keep sda oracle約束狀態有幾個項目,會讓人迷惑,分別是: enable/disable--是否啟用/禁用 validate/invalidate--確認/不確認 deferrable/not de

oracle定義函數

eat 內置 是否 名稱 語句 scala blog lar type 一、自定義函數創建 語法格式:   create [or replace] function function_name/*函數名稱*/   (/*參數定義部分*/ paramete

Oracle定義函數記錄

function Oracle自定義函數 函數主要是用來操作各種數據,並返回相應的操作結果。用戶自定義函數是存儲在數據庫中的代碼塊,可以把值返回到調用程序。函數的語法:Create [or replace] function function_name [in datatype,out datatyp

ORACLE約束總結

pos 代碼 relation 業務規則 類型比較 define eating 掌握 11g https://www.cnblogs.com/kerrycode/archive/2012/05/13/2454614.html 你對ORACLE約束的了解如何?比較模糊還是

oracle約束

rain 條件 vat ref 唯一標識 key) 相同 關鍵字 一個 oracle中提供了5種約束,目的:防止無效的或有問題的數據輸入到表中,維護表的完整性 (1)非空(NOT NULL)約束,,定義的列不能為空 (2)唯一(UNIQUE)約束,表中每一行中所定義的列,列

除錯經驗——如何檢視Oracle定義函式 (How to view definition of user defined functions in Oracle

問題描述: 現有的Query中似乎使用了一個自定義函式String_to_list,為了排查問題,需要檢視這個函式的定義。 方法:   --新建的function,並未儲存在All_ojbects表中,而是儲存在user_objects表中 SELECT * FRO

分享知識-快樂自己:Oracle定義及使用同義詞

Oracle 同義詞概念:   Oracle的同義詞(synonyms)從字面上理解就是別名的意思,和檢視的功能類似,就是一種對映關係。   它可以節省大量的資料庫空間,對不同使用者的操作同一張表沒有多少差別;它擴充套件了資料庫的使用範圍,能夠在不同的資料庫使用者之間實現無縫交互;Oracle資料庫中提供

ORACLE定義順序排序

ORACLE可以藉助DECODE函式,自定義順序排序: select * from ( select 'Nick' as item from dual union all select 'Viki' as item from dual union all

Oracle定義聚合函數

end acl ember ins .com iter icons rate nbsp create or replace type str_concat_type as object ( cat_string varchar2(4000), sta

Oracle定義異常

/*自定義異常:如果你想在某個特定時間發生時間嚮應用程式的使用者發出一些警告資訊。 而事件本身不會丟擲Oracle內部異常,這個異常是屬於應用程式的特定異常,那麼就需要自定義異常 使用者定義的異常錯誤是通過顯式使用raise語句來觸發,當引發一個異常錯誤時,控制就轉向到exception塊 異

Oracle約束的關鍵字Enable/Disable/Validate/Novalidate

enable/disable對未來的資料有約束/無約束。 validate/novalidate對已有的資料有約束/無約束。  約束有如下四種狀態  (1)ENABLEVALIDATE:約束在建立時,預設就是此狀態。此狀態會“檢查表中原有行和新插入的行”。  (

Oracle約束詳解

一 約束的定義 約束是強加在表上的規則或條件。確保資料庫滿足業務規則。保證資料的完整性。當對錶進行DML或DDL操作時,如果此操作會造成表中的資料違反約束條件或規則的話,系統就會拒絕執行這個操作。約束可以是列一級別的 也可以是表級別的。定義約束時沒有給出約束的名字,OR

oracle定義儲存過程

語法 建立 TYPE 型別 atrr_type CREATE OR REPLACE TYPE atrr_type AS OBJECT ( attrId varchar2(40),

Python連線Oracle/Oracle定義函式及函式的呼叫

# Python 連線 Oracle Python自帶的模組中有很多操縱檔案的。我們可以把檔案的資料讀出來,經過處理還可以將資料寫入檔案中。但是對於資料的管理和分析來說,資料庫還是專業一些。如果Python能和資料庫結合在一起,那麼就能結合兩種的優勢,提高效率。

Oracle定義結構(Record)

1、概念及使用 類似於C中的自定義型別,可用於定義某表的欄位集合。 定義格式 type recordName is Record( 欄位名稱 欄位

oracle 約束

一. 約束 檢查約束 check 特殊檢查約束 not null 唯一約束 unique 主鍵約束 primary key 外來鍵約束 foreign key(副表名)  references 主表名(列名)

Oracle定義的簡單使用

第一步,建立一個自定義的型別: CREATE OR REPLACE TYPE my_type1 AS OBJECT( ID NUMBER, FIRST VARCHAR2(30), LAST VARCHAR2(30) ); 第二步,建立表: CREATE TABLE TYPE_