SQL - SQLの制約

SQL制約-データテーブルは、タイプを制限するために追加される
    テーブルが作成されるとき(CREATE TABLE文によって)制約、または(ALTER TABLEステートメントを介して)次の表に作成することができることを提供することができます。
    NULLはありません -必須制約列は、NULL値を受け付けません。
    UNIQUEは -制約は、一意のデータベース・テーブル内の各レコードを識別する。各テーブルには複数のUNIQUE制約を持つことができますが、各テーブルには一つだけPRIMARY KEY制約を持つことができます。
        MySQLの:
            CREATE TABLE tableNameの
            (
                IdはNOT NULL、int型
                UNIQUE(ID)
            )
        のSQLServer /オラクル:
            CREATE TABLE tableNameの
            (
                IdはNOT NULL UNIQUEをint型
            )
        :UNIQUE制約と命名する:MySQLの/のSQLServer / Oracleの
            CREATE TABLE tableNameのを
            (
                IdはNOT NULLをint型、
                VARCHAR(255)NOT NULL、PWD
                CONSTRAINT固有名UNIQUE(ID、PWD)
            )
        ALTER TABLEのTableName ADD UNIQUE(同上:表が作成されている )
        と命名される:ALTER TABLEのTableName ADD CONSTRAINT固有名UNIQUE (ID、PWD)
        失効UNIQUE制約
            のMySQL:
                ALTER tableNameのINDEX固有名DROPテーブル
            のSQLServer /オラクル:
                ALTERテーブルtableNameのDROP制約固有名
    主キーは -主キー制約制約は、一意のデータベーステーブル内の各レコードを識別する。主キーは、一意の値が含まれている必要があります。主キー列がNULL値を含めることはできません。各テーブルには主キーを持っている必要があり、各テーブルには1つのプライマリキーを持つことができます。
        MySQLの:
            CREATE TABLE tableNameの
            (
                IdはNOT NULL、int型
                PRIMARY KEY(ID)を
            )
        のSQLServer /オラクル:
            CREATE TABLE tableNameの
            (
                IdはNOT NULL PRIMARY KEYをint型
            )
        のカラムPRIMARY KEY制約を複数定義するPRIMARY KEY制約の名前、および:
        MySQLの/のSQLServer:
            CREATE TABLE tableNameの
            (
                Idは、NOT NULLをint型
                VARCHAR(255 PWD)NOT NULL、
                制約pkName PRIMARY KEY(ID、PWD)
            )
       
        テーブルが作成されています:ALTER TABLE tableNameのは、PRIMARY KEY(ADD同上)
        PRIMARY KEY制約の名前を、そして複数の列に対してPRIMARY KEY制約を定義します。
            ALTER TABLE tableNameのpkName ADD CONSTRAINT PRIMARY KEY(同上、PWD)
            注:主キーを追加するには、ALTER TABLE文を使用している場合は、主キー列がNULL値が含まれていないとして、(あなたが最初のテーブルを作成するときに)宣言する必要があります。
        元に戻すPRIMARY KEY制約は
        、次のSQLを使用して、PRIMARY KEY制約をドロップするには、次
        のMySQL:
            ALTER TABLE tableNameのDROP PRIMARY KEY
        SQL Serverの/ Oracleの:
            ALTER TABLE tableNameのpkName DROP CONSTRAINT
    FOREIGN KEY -別のテーブルに1つのテーブルの点でFOREIGN KEY PRIMARY KEY。接続テーブル間の損傷を防止するための操作。これは、テーブル・ポイントの値のいずれかでなければなりません。
        MySQLの:
            表tablename1をCREATE
            (
                ID1がNOT NULL、int型
                、Id2はint型を
                、PRIMARY KEY(ID1)
                REFERENCES TableName2(Id2が)FOREIGN KEY(Id2は)
            )
        :SQL Serverの/ Oracleの
            CREATE tablename1 TABLE
            (
            ID1はNOT NULLにPRIMARY KEY、int型の
            REFERENCESのId2のTableName2 int型FOREIGN KEYは、()のId2の
            )
        FOREIGN KEY制約の名前、および複数のカラムには、FOREIGN KEY制約を定義している:
            表tablename1をCREATE
            (
                ID1がNOT NULL、int型の
                Id2はintの、
                PRIMARY KEY (ID1)、
                TableName2(Id2が)制約fkName FOREIGN KEY(Id2を)を参照
            )
        テーブルが作成された:
            ALTER TABLEはADD FOREIGN KEY(Id2が)REFERENCES TableName2(Id2が)tablename1
        名FOREIGN KEY制約、および複数列の外部キー制約を定義しました。
            ALTER TABLE tableName1のADD CONSTRAINT fkName FOREIGN KEY (ID2が)tableName2(Id2を)を参照
        失効FOREIGN KEY制約
            MySQLを:ALTER TABLEは、DROP FOREIGN KEY fkName tablename1
            ALTER TABLEがDROP CONSTRAINT fkName tablename1:のSQLServer /オラクルを
   CHECK -制約列の限界値をそれは範囲です。CHECK制約は、単一の列の列の特定の値を定義しました。表に定義CHECK制約は、この制約は、特定の列の値を制限することができます。
        以下「COL1」の列を指定したCHECK制約は、ゼロよりも唯一の整数大きいが含まれている必要があります。
        SQLマイ:
            CREATE TABLE tableNameの
            (
                COL1 INT NOT NULL、
                CHECK(COL1> 0)
            )
        SQL Serverの/ Oracleの:
            CREATE TABLE tableNameの
            (
                INT NOT NULLチェックCOL1(COL1> 0)
            )、
        CHECK制約の名前だけでなく、複数のカラムは、CHECK制約を定義されています。
            CREATE TABLE tableNameの
            (
                COL1 INT NOT NULL、
                COL2 VARCHAR(255)、
                CONSTRAINT chkNameチェック(COL1> COL2 = 0 AND 'サンネス)
            )
        テーブルが既に存在する:ALTERテーブルのTableName ADDチェック(COL1 > 0)
        という名前のチェック制約、ならびに列の複数のチェック制約が定義される:
            ALTERテーブルtableNameのchkNameを追加制約CHECK(COL1> 0とcol2 = 'サンネス')
        失効CHECK制約
        のSQLServer /オラクル:ALTER TABLE DROP CONSTRAINT chkName tableNameの
        MySQLの:ALTER TABLE tableNameのDROPチェックchkName
   DEFAULT-列にデフォルト値を挿入するための手段。他の値が指定されていない場合、デフォルト値は、すべての新しいレコードに追加されます。
        表tableNameのCREATE
        (
            COL VARCHAR(255)DEFAULT 'サンネス'
        )
        類似GETDATE()この関数は、デフォルトの制約システムはまた、値を挿入するために使用することができる使用して:
        CREATE TABLEのを注文
        (
        DEFAULTのGETDATE()受注日DATE
        )
        テーブルが既に存在している:
        のMySQL :ALTER TABLE tableNameのALTER COLのSET DEFAULT 'SANDNES'
        SQL Serverの/ Oracleの:ALTER TABLE tableNameのALTER COLUMNをCOLのSET DEFAULT 'SANDNES'
        禁断DEFAULT制約:
        MySQLの:ALTER TABLE tableNameのALTER COL DROPのDEFAULT
        SQL Serverの/ Oracleの:ALTER TABLE tableNameのALTER COLUMN COLのDROP DEFAULT

おすすめ

転載: www.cnblogs.com/it-mh/p/12034623.html