データベース整合性の3つの制約-ドメイン整合性制約
3311 ワード
1.2ドメイン整合性制約
ドメイン整合性制約の役割:このセルのデータが正しいことを制限し、他のセルには機能しません.ドメインは現在のセルを表します.
ドメイン整合性制約:データ型、非空制約(not null)、デフォルト制約(default)
check制約(mysqlではサポートされていません)check(sex='男性'or sex='女性)
1.2.1データ型
数値タイプ
を選択します.
サイズ
範囲(記号付き)
範囲(符号なし)
用途
TINYINT
1バイト
(-128,127)
(0,255)
小整数
SMALLINT
2バイト
(-32 768,32 767)
(0,65 535)
大きい整数値
MEDIUMINT
3バイト
(-8 388 608,8 388 607)
(0,16 777 215)
大きい整数値
INTまたはINTEGER
4バイト
(-2 147 483 648,2 147 483 647)
(0,4 294 967 295)
大きい整数値
BIGINT
8バイト
(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
(0,18 446 744 073 709 551 615)
極大整数
FLOAT
4バイト
ヘルプドキュメントの表示
ヘルプドキュメントの表示
単精度浮動小数点数
DOUBLE
8バイト
ヘルプドキュメントの表示
ヘルプドキュメントの表示
デュアル精度浮動小数点数
DOUBLE(M,D)
8バイト、Mは長さ、Dは小数点以下の桁数
同様に、拘束DUBLE(5,2)-99.99-99.99
同様に、MとDの制約を受ける
デュアル精度浮動小数点数
DECIMAL(M,D)
DECIMAL(M,D)に対して、M>DであればM+2であればD+2
MとDの値に依存し、Mの最大値は65です.
MとDの値に依存し、Mの最大値は65です.
小数値
日付タイプ:
時刻の値を表す日付と時刻のタイプは、DATETIME、DATE、TIMESTAMP、TIME、YEARです.
各タイム・タイプには有効な値範囲とゼロ値があり、不正なMySQLで表示できない値を指定した場合はゼロ値が使用されます.
TIMESTAMPタイプには独自の自動更新機能があります
を選択します.
サイズ(バイト)
範囲
書式設定
用途
DATE
3
1000-01-01/9999-12-31
YYYY-MM-DD
日付値
TIME
3
'-838:59:59'/'838:59:59'
HH:MM:SS
時間値または期間
YEAR
1
1901/2155
YYYY
年の値
DATETIME
8
1000-01-01 00:00:00/9999-12-31 23:59:59
YYYY-MM-DD HH:MM:SS
日付と時刻の値の混合
TIMESTAMP
4
1970-01-01 00:00:00/2038終了時間は2147483647秒、北京時間2038-1-19 11:14:07、グリニッジ時間2038年1月19日午前03:14:07
YYYYMMDD HHMMSS
日付と時刻の値、タイムスタンプのブレンド
文字列のタイプ:
文字列タイプとは、CHAR、VARCHAR、BINARY、VARBIINARY、BLOB、TEXT、ENUM、SETを指す
を選択します.
サイズ
用途
CHAR
0~255文字
定長文字列char(10)10文字
VARCHAR
0~65535バイト
長くなる文字列varchar(10)10文字
TINYBLOB
0~255バイト
255文字以下のバイナリ文字列
TINYTEXT
0~255バイト
短いテキスト文字列
BLOB(binary large object)
0~65,535バイト
バイナリ形式の長いテキストデータ
TEXT
0~65,535バイト
ロングテキストデータ
MEDIUMBLOB
0~16 777,215バイト
バイナリ形式の中長テキストデータ
MEDIUMTEXT
0~16 777,215バイト
中長テキストデータ
LONGBLOB
0-4 294 967 295バイト
バイナリ形式の極大テキストデータ
LONGTEXT
0-4 294 967 295バイト
極大テキストデータ
CHARとVARCHARタイプは似ていますが、保存と取得の方法は異なります.最大長さや末尾スペースが保持されているかどうかなども異なります.ストレージまたは取得中に大文字と小文字の変換は行われません.
BINARYクラスとVARBINARYクラスはCHARクラスとVARCHARクラスに類似しており、バイナリ文字列ではなくバイナリ文字列を含むのとは異なります.すなわち、文字文字列ではなくバイト文字列が含まれています.これは、文字セットがなく、カラム値バイトに基づく数値値を並べ替えて比較していることを示します.
BLOBは、可変数のデータを格納できるバイナリオブジェクトです.4種類のBLOBタイプがあります:TINYBLOB、BLOB、MEDIUMBLOBとLONGBLOB.これらは、収容可能な値の最大長が異なるだけです.
4種類のTEXTタイプがあります.TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTです.
1.2.2空でない制約
not null
1.2.3デフォルト制約
default
ドメイン整合性制約の役割:このセルのデータが正しいことを制限し、他のセルには機能しません.ドメインは現在のセルを表します.
ドメイン整合性制約:データ型、非空制約(not null)、デフォルト制約(default)
check制約(mysqlではサポートされていません)check(sex='男性'or sex='女性)
1.2.1データ型
数値タイプ
を選択します.
サイズ
範囲(記号付き)
範囲(符号なし)
用途
TINYINT
1バイト
(-128,127)
(0,255)
小整数
SMALLINT
2バイト
(-32 768,32 767)
(0,65 535)
大きい整数値
MEDIUMINT
3バイト
(-8 388 608,8 388 607)
(0,16 777 215)
大きい整数値
INTまたはINTEGER
4バイト
(-2 147 483 648,2 147 483 647)
(0,4 294 967 295)
大きい整数値
BIGINT
8バイト
(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
(0,18 446 744 073 709 551 615)
極大整数
FLOAT
4バイト
ヘルプドキュメントの表示
ヘルプドキュメントの表示
単精度浮動小数点数
DOUBLE
8バイト
ヘルプドキュメントの表示
ヘルプドキュメントの表示
デュアル精度浮動小数点数
DOUBLE(M,D)
8バイト、Mは長さ、Dは小数点以下の桁数
同様に、拘束DUBLE(5,2)-99.99-99.99
同様に、MとDの制約を受ける
デュアル精度浮動小数点数
DECIMAL(M,D)
DECIMAL(M,D)に対して、M>DであればM+2であればD+2
MとDの値に依存し、Mの最大値は65です.
MとDの値に依存し、Mの最大値は65です.
小数値
日付タイプ:
時刻の値を表す日付と時刻のタイプは、DATETIME、DATE、TIMESTAMP、TIME、YEARです.
各タイム・タイプには有効な値範囲とゼロ値があり、不正なMySQLで表示できない値を指定した場合はゼロ値が使用されます.
TIMESTAMPタイプには独自の自動更新機能があります
を選択します.
サイズ(バイト)
範囲
書式設定
用途
DATE
3
1000-01-01/9999-12-31
YYYY-MM-DD
日付値
TIME
3
'-838:59:59'/'838:59:59'
HH:MM:SS
時間値または期間
YEAR
1
1901/2155
YYYY
年の値
DATETIME
8
1000-01-01 00:00:00/9999-12-31 23:59:59
YYYY-MM-DD HH:MM:SS
日付と時刻の値の混合
TIMESTAMP
4
1970-01-01 00:00:00/2038終了時間は2147483647秒、北京時間2038-1-19 11:14:07、グリニッジ時間2038年1月19日午前03:14:07
YYYYMMDD HHMMSS
日付と時刻の値、タイムスタンプのブレンド
文字列のタイプ:
文字列タイプとは、CHAR、VARCHAR、BINARY、VARBIINARY、BLOB、TEXT、ENUM、SETを指す
を選択します.
サイズ
用途
CHAR
0~255文字
定長文字列char(10)10文字
VARCHAR
0~65535バイト
長くなる文字列varchar(10)10文字
TINYBLOB
0~255バイト
255文字以下のバイナリ文字列
TINYTEXT
0~255バイト
短いテキスト文字列
BLOB(binary large object)
0~65,535バイト
バイナリ形式の長いテキストデータ
TEXT
0~65,535バイト
ロングテキストデータ
MEDIUMBLOB
0~16 777,215バイト
バイナリ形式の中長テキストデータ
MEDIUMTEXT
0~16 777,215バイト
中長テキストデータ
LONGBLOB
0-4 294 967 295バイト
バイナリ形式の極大テキストデータ
LONGTEXT
0-4 294 967 295バイト
極大テキストデータ
CHARとVARCHARタイプは似ていますが、保存と取得の方法は異なります.最大長さや末尾スペースが保持されているかどうかなども異なります.ストレージまたは取得中に大文字と小文字の変換は行われません.
BINARYクラスとVARBINARYクラスはCHARクラスとVARCHARクラスに類似しており、バイナリ文字列ではなくバイナリ文字列を含むのとは異なります.すなわち、文字文字列ではなくバイト文字列が含まれています.これは、文字セットがなく、カラム値バイトに基づく数値値を並べ替えて比較していることを示します.
BLOBは、可変数のデータを格納できるバイナリオブジェクトです.4種類のBLOBタイプがあります:TINYBLOB、BLOB、MEDIUMBLOBとLONGBLOB.これらは、収容可能な値の最大長が異なるだけです.
4種類のTEXTタイプがあります.TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTです.
1.2.2空でない制約
not null
CREATE TABLE student(
Id int primary key,
Name varchar(50) not null,
Sex varchar(10)
);
INSERT INTO student values(1,’tom’,null);
1.2.3デフォルト制約
default
CREATE TABLE student(
Id int primary key,
Name varchar(50) not null,
Sex varchar(10) default ' '
);
insert intostudent1 values(1,'tom',' ');
insert intostudent1 values(2,'jerry',default);