MySQLデータベース
データの整合性
- データベースは完全なビジネスユニットであり、複数のテーブルを含めることができ、データはテーブルに格納されます
- データをより正確にテーブルに格納し、データが正しく効果的であることを確認するために、データフィールドのタイプや制約など、テーブルの作成時にいくつかの必須の検証をテーブルに追加できます。
データの種類
-
データ型の使用の原則は次のとおりです。十分です。大きな値ではなく小さな値の範囲を使用してみてください。そうすれば、より多くのストレージスペースを節約できます。
-
一般的なデータ型は次のとおりです。
- 整数:int、bit(
最小的信息单位
) - 10進数:10進数
- 文字列:varchar、char
- 日時:日付、時刻、日時
- 列挙型(列挙型)
- 整数:int、bit(
-
特別な指示の種類は次のとおりです。
- 10進数(5,2)は5桁の共存を表し、小数点以下2桁( '173.45'など)を占めるため、decimalは正確な小数点型(浮動小数点型と呼ばれることもありますが、引数はそれほど厳密ではありません)の
浮動小数点数を表します。 - charは、char(3)などの固定長文字ストリングを表します。「ab」を入力すると、スペースが「ab」として追加されます。
- varcharは、varchar(3)などの可変長文字列を表し、「ab」が埋め込まれると「ab」を格納します。
- 文字列テキストは大きなテキストを格納することを意味します。文字が4000より大きい場合に使用することをお勧めします
- 写真、音声、ビデオなどのファイルの場合、それらはデータベースに保存されず、サーバーにアップロードされてから、ファイルの保存パスがテーブルに保存されます。
- 10進数(5,2)は5桁の共存を表し、小数点以下2桁( '173.45'など)を占めるため、decimalは正確な小数点型(浮動小数点型と呼ばれることもありますが、引数はそれほど厳密ではありません)の
-
より完全なデータ型については、http://blog.csdn.net/anxpp/article/details/51284106を参照してください。
一般的に使用されるデータ型
の種類 | 占有バイトサイズ | 符号付き範囲**(符号付き)** | 符号なし範囲(符号なし) |
---|---|---|---|
TINYINT | 1 | -128〜127 | 0〜255 |
SMALLINT | 2 | -32768〜32767 | 0〜65535 |
MEDIUMINT | 3 | -8388608〜8388607 | 0〜16777215 |
INT / INTEGER | 4 | -2147483648〜2147483647 | 0〜4294967295 |
BIGINT | 8 | -9223372036854775808〜9223372036854775807 | 0〜18446744073709551615 |
ストリング
の種類 | バイトサイズ | 例 |
---|---|---|
CHAR | 0-255 | タイプ:char(3)入力「ab」、実際には「ab」として格納され、入力「abcd」は実際には「abc」として格納されます |
VARCHAR | 0-255 | タイプ:varchar(3)入力「ab」、実際のストレージは「ab」、入力「abcd」、実際のストレージは「abc」 |
テキスト | 0-65535 | 大きなテキスト |
日付と時刻のタイプ
|タイプ|バイトサイズの例
DATE4 '2020-01-01'
TIME 3 '12:29:59 '
DATETIME 8' 2020-01-01 12:29:59 '
YEAR 1' 2017 '
TIMESTAMP 4' 1970-01 -01 00:00:01'UTC〜 '2038-01-01 00:00:01'UTC
制約
- 主キー:物理ストレージの順序
- null以外:このフィールドにnull値を入力することはできません
- 一意:
このフィールドの値を繰り返すことはできません。制約は、データベーステーブル内の各レコードを一意に識別します。 - デフォルトのデフォルト:この値が入力されていない場合はデフォルト値が使用され、入力されている場合はデフォルト値が優先されます
- 外部キー外部キー:関係フィールドの制約。関係フィールドの値を入力すると、関連するテーブルに値が存在するかどうかがチェックされます。存在する場合は正常に入力され、存在しない場合は入力されます。塗りつぶしに失敗し、例外がスローされます。
- 説明:外部キー制約はデータの有効性を保証できますが、データがクラッド(追加、変更、削除、クエリ)の場合、データベースのパフォーマンスが低下するため、使用することはお勧めしません。データ?回答:論理レベルで制御できます