カラム法から不要なデータを、予防変更または削除制約を挿入します。
Tebiroの制約タイプ
制約 | 説明 |
---|---|
主キー | 一意キーとNOT NULL制約の特徴。 主キーとして列セットは、NULL値を持つことはできません。 |
一意キー | 値がNULLでない限り、表内の行には、列に同じ値を持つことはできません。 |
参照整合性 参照整合性 |
主キーまたはテーブルの一意のキーを指します。 これは、主キーまたは一意キーテーブルを参照します。 |
NOT NULL | テーブルの行は、この列のNULL値を持つことはできません。 表レベルの制約を設定することはできません。 |
小切手 | 値を挿入または変更することができる前に、特定の条件が満たされなければならない制約。 列には、複数の制約を持つことができます。 |
1.宣言制約(制約の宣言)TABLE DEPTをCREATE
( DEPTNO NUMBER PRIMARY KEY、 DEPTNAME VARCHAR(20)、 PDEPTNO NUMBER ) TABLESPACE my_space PCTFREE 5 INITRANS 3。 CREATE TABLE EMP ( EMPNO NUMBER PRIMARY KEY、 ENAME VARCHAR(16)NOT NULL、 ADDR VARCHAR(24)、 SALARY NUMBER、 DEPTNO NUMBER、CONSTRAINT SALARY_MINチェック(SALARY> = 10000)、 CONSTRAINT DEPTNO_REF FOREIGN KEY(DEPTNO)REFERENCES DEPT(DEPTNO ) ) TABLESPACE my_space PCTFREE 5 INITRANS 3。宣言制約-カラム単位は表TEMP_PRODをCREATE (
PROD_ID NUMBER(6)CONSTRAINT PROD_ID_PK主キー、
PROD_NAMEのVARCHAR2(50)制約prod_name_nnないヌル、
prod_cost VARCHAR2(30)制約prod_cost_nn NOT NULL、
prod_pid数(6)、
prod_date日付制約prod_date NOT NULL
)。
制約宣言 - 表単位
表TEMP_PROD CREATE ( PROD_ID NUMBER(6)、 PROD_NAME VARCHAR2(50)制約PROD_NAME_NN NOT NULL、 PROD_COST VARCHAR2(30)制約PROD_COST_NN NOT NULL、 PROD_PID NUMBER(6)、 PROD_DATE日付CONSTRAINT PROD_DATE_NN NOT NULL、CONSTRAINT PROD_ID_PK PRIMARY KEY(PROD_ID、 PROD_NAME));
制約の名前を変更します
ALTER TABLE EMP RENAME CONSTRAINT EMP_PRI_KEY TO EMP_KEY。
新しい制約を追加する
ALTER TABLE EMP ADD制約salary_maxチェック(SALARY> = 5000)。
ALTER TABLE EMP ADD UNIQUE(ENAME、DEPTNO)。
制約の削除
ALTER TABLE EMP DROP PRIMARY KEY ; ...主キー制約セットを削除します。... ALTER TABLE EMP DROP CONSTRAINT SALARY_MAX。 ...その名をSALARY_MAXで制約を削除します。...
约束状态(制約の状態)
変更制約の状態(修正制約状態)
2つの制約の状態があります。
-
ENABLE
宣言された制約は、テーブルに挿入または更新されたすべての行に適用されます。
ENABLEは、2つの追加オプションがあります。
オプション 説明 検証 制約状態がイネーブルである場合、行が挿入または更新されるたびに、テーブルに既に存在するすべての行が制約を満たさなければなりません。
同時に、すべての行をチェックすると、データベースのパフォーマンスを向上させることができます。
NOVALIDATE テーブルのすべての行は、彼らが制約を満たすかどうかを判断するためにチェックされません。行は、どちらかの後にチェックする必要があるか、彼らはすでに制約を満たす必要があります。
これは、テーブルの行を頻繁にチェックする必要がないため、データベースのパフォーマンスを向上させることができます。
しかしながら、それらのインデックスの特性にPRIMARY KEYとUNIQUE KEY制約は、常に彼らはNOVALIDATEオプションを使用する場合であってもVALIDATEを使用していたかのようにチェックされます。
-
DISABLE
宣言制約が行に適用されていません。同時に多数の行を挿入または更新するとき、作業が終了するまでDISABLEを使用すると便利ですし、その後ENABLE使用しています。これは、データベースのパフォーマンスを向上させることができます。
ユーザーはtbLoader、tbImportユーティリティ、またはその他のバッチ・プログラムを使用して、一度に多くの行を挿入または更新することができます。テーブルの行は、彼らが制約を満たすかどうかを判断するためにチェックする必要がないので、これはデータベースのパフォーマンスを向上させることができます。
DISABLEは、以下の追加オプションを使用することができます。
オプション 説明 検証 制約にインデックスを削除し、拘束された列のいずれかの変更を許可していません。 NOVALIDATE 任意のオプションを指定しないと同じです。
制約状態の変更 - ENABLE
ALTER TABLE EMP MODIFY CONSTRAINT EMP_UNIQUE ENABLE;
ALTER TABLE EMP修正制約emp_unique可能。
制約状態の変更 - DISABLE
ALTER TABLE EMP MODIFY PRIMARY KEY DISABLE。
制約状態の変更 - VALIDATE