SQL高階特性 約束 索引 觸發器和安全選項(一)

2021-09-16 20:42:18 字數 1218 閱讀 9211

前言

約束是實施完整性的重要部分,索引可改善資料檢索的效能,觸發器可用來執行執行後的前後處理,安全選項可用來管理資料訪問。

一、約束

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...