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
SQL - SQLの制約
おすすめ
転載: www.cnblogs.com/it-mh/p/12034623.html
ランキング