Oracleデータベース内のテーブルを作成し、管理する - 制約

データの挿入条件付きのフィルタリング - 制約

テーブルが作成され、そしてあなたは、テーブル内のデータのためにいくつかのフィルタリングを行いたい場合は、テーブルの合法内のデータが、それは制約を介して行うことができるかどうかを確認することはできませんした後、制約が制約に従って、テーブルの正当性を保証するために、データの主な機能であります分類、5つの制約の合計:
null以外の制約
唯一の制約
、主キー制約
、チェック制約
、外部キー制約

非空制約/ NOT NULL / NK

SQL>母(表の作成
2 MID番号、
3名VARCHAR2(20である)NOT NULL);
挿入データ:
SQL> INSERT INTO母(MID、名前)の値(1、 'zhangsan');
SQL> INSERT INTO母(MIDを、名前)の値(1、 'zhangsan');
SQL> INSERT INTO母(MID、名前)の値(3 'ララ');
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
名を挿入すると、空のエラーデータである:
SQL> INSERT INTOは、母(MID)の値( 5)。
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS

唯一の制約/ UNIQUE /英国

ユニーク制約テーブルに作成
SQLを>テーブルHUHU作成(
2 MID番号、
3名VARCHAR2(20は)NOT NULLを、。
メールVARCHAR2(20)が独特で4。)、
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
正しいデータの挿入
SQL>をHUHUへの挿入(中旬、名前、電子メール)の値( 。1、 '西渓'、 '[email protected]');
SQL> INSERT INTO HUHU(MID、名前、電子メール)の値(2 'キキ'、 '[email protected]');
重複データ、電子メールの挿入エラー
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
するために、エラーがより明確にする
:制約を追加する
SQL>(表HUHUを作成
2 MID番号、
3名VARCHAR2(20)と、。
メールVARCHAR2で4(20)、。
5 UNIQUE uk_email制約()電子メールで。);
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
挿入エラー・データ:
SQL> INSERT HUHU(半ば、名前、電子メールへの )値(2、 'キキ'、 '[email protected]')
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS

主キー制約/ PRIMARY KEY / PK

SQL>(表HUHUを作成
2 MID番号主キー、
3名VARCHAR2(20は)NOT NULL);
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
正しいデータを挿入:
(1、 'リージ')SQL> INSERT INTO HUHU(MID、名)の値を、
マスターキーに空であります誤ったデータ:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
主キー重複データを挿入:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
、制約を追加し、エラーが明確になって
SQLは>表HUHU(作成
2 MID番号、
3名VARCHAR2(20)NOT NULL、
; 4制約、主キー(MID)をpk_mid)
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
入力主キー繰り返し誤差データ:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
#は、複合主キーを作成し
た(表HUHU作成> SQLを
、2 MID番号
3名VARCHAR2(20である)NOT NULL、
4制約pk_mid_name主キー(MID、名))、
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
正しいデータを挿入する:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
複合主キー重複インサート-すべてのフィールドが繰り返されるだけ複合主キーリピートを考えます
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS

チェック制約/ CHECK / CK

SQL>は表HUHU(作成
2 MID番号を、
3名VARCHAR2(20)NOT NULL、である
。4セックスVARCHAR2(20、)NOT NULLである
。5年齢番号(3)、
6制約が主キー(MID)を、pk_mid
。7制約ck_sexチェック(セックス(「のNaN 3」、「NV」、「qita」))で、
8制約ck_ageチェック0と100との間(年齢));
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
年齢制限チェック制約データを超えて挿入され、
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
挿入エラーデータ性別
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS

外部キー制約# -

------ 2つのテーブルを作成します。MIDフィールド二つのテーブルに関連付けられた
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
データのINSERT
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
番号#統計それぞれの人が、ブック持っ
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
ている本の名前とユーザー名、一人一人の番号アウト#チェックを
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
内のテーブル場合は、この時点でミッド= 3/4インサート,,,ない親テーブル西渓のミッドレンジ内のデータテーブル内の、直接にまだ与えられていないに、このようにデータの汚染を引き起こすことは
したがって、2つのテーブルを再作成し、外部キー制約を追加:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
挿入データ:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
入力エラーデータ:
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
3,9データに誤りがある場合は、更新処理を行うことができないので、book.midデータを指定していないmember.midので、LETは部材場合、フィールドの値は、member.midによって決定さ実現book.mid .MID本当の存在は、それが通常のデータを更新することができることを示し
ますが、親テーブル内のデータを削除するテーブルのワードデータを削除するには、テーブルを削除すると、外部キー制約で、その結果、1を
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
カスケード削除機能を使用して
作成したデータベースを変更しますスクリプト;
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
;挿入データ
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
、親テーブル内のデータを削除するまでは、
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
サブデータ情報テーブルがすべてなくなっているこの時点で発見
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
によるカスケード削除操作に、2の後に、この時間を、メインテーブル内のデータを削除します 、子テーブルに対応するデータも削除されます。
メインテーブル内のデータを削除する場合、データテーブルではなく削除のヌルに所望のセットに関連するサブアイテムに対応します。:データベースを作成するためのスクリプトを修正し続けることができ
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
、挿入データ
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
#削除操作を再度
、MID = 1メンバーからDELETEを
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
、この時点ではなく、データがないよりも、空のように見える
あなたは、テーブルを削除すると、唯一のWordの表を削除することができます3、その後、親テーブルを削除
ソリューション:
#強制的に制約を懸念もはや、テーブルを削除する
DROP TABLE MEMBER CASCADE CONSTRAINT PURGE;
しかし、サブテーブルの本はまだある
:三つの特徴、アプリケーション層とトランスポート層との間にプラスSSLはTCP上に構築 - ハイパーテキスト転送プロトコルHTTP + SSL証明書--- HTTPS
ので、::より良い慣行
[データテーブルは将来の時間に取り出し、それは子テーブルを削除するのが最善である、と親テーブルを削除

公開された31元の記事 ウォン称賛19 ビュー1450

おすすめ

転載: blog.csdn.net/Alkaid__3/article/details/104309715