前言
約束是實施完整性的重要部分,索引可改善資料檢索的效能,觸發器可用來執行執行後的前後處理,安全選項可用來管理資料訪問。
一、約束
1、空(not null)
指示某列不能儲存 null 值。
2、唯一約束(unique)
保證某列的每行必須有唯一的值。請注意,每個表可以有多個 unique 約束,但是每個表只能有乙個 primary key 約束。
3、主鍵(primary key)
not null 和 unique 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的乙個特定的記錄。
4、外來鍵(foreign key)
保證乙個表中的資料匹配另乙個表中的值的參照完整性。
@ 級聯刪除:
1)no action:子表中有匹配的記錄時,則不允許對父表對應候選鍵進行update/delete操作
2)cascade:主資料update/delete時,從資料一併刪除;
3)set null:主資料update/delete時,從資料關聯屬性設定為null;
4)restrict:同no action, 都是立即檢查外來鍵約束
5、檢查約束(check)
保證列中的值符合指定的條件。
6、預設值(default)
規定沒有給列賦值時的預設值。
二、索引
1、pl/sql建立主鍵時,會自動建立一條索引;也可以在indexes資料夾或建表介面上直接建立乙個或多個索引;
2、mysql在見表介面上直接建立乙個或多個索引;
三、觸發器
1、pl/sql在triggers資料夾或建表介面上直接建立乙個或多個觸發器;
2、mysql在見表介面上直接建立乙個或多個觸發器;
注意:觸發器是特殊的儲存過程;約束比觸發器執行速度快。
四、安全選項
1、pl/sql
利用dbms管理機制
基礎:使用者授權和身份確定
grant:vt 授予
revoke:vt 撤回、取消
SQL 觸發器 外來鍵約束
1 構造乙個觸發器audit log,在向employees test表中插入一條資料的時候,觸發插入相關的資料到audit中。create table employees test id int primary key not null,name text not null,age int not...
SQL 約束與觸發器1
表a的外來鍵,一定是其他某個表b的主鍵或有unique宣告的屬性。a的外來鍵的值,一定是對應表b中相應的屬性值。空值除外 方法1 屬性名 型別 references 表名 屬性名 方法2 foreign key 屬性名 reference 表名 屬性名 create table studio nam...
索引和觸發器操作
索引 在基本表上建立乙個或多個索引,可以提供多種訪問路徑,加快查詢速度。sql新標準不主張使用索引,而是以在建立表時直接定義主鍵,一般系統會自動在主鍵上建立索引。在特殊需要時,建立和刪除索引由資料庫管理員 dba 或表的屬主負責完成。sql中索引一般格式為 create unique cluster...