MySQLサマリー(4)-DDL言語

テーブル管理

ライブラリ管理

1つは、ライブラリを作成する

データベースの作成[存在しない場合]ライブラリ名[文字セット文字セット名];

2つ目は、ライブラリを変更する

データベースライブラリ名の文字セット文字セット名を変更します。

3、ライブラリを削除します

データベースを削除する【存在する場合】库名;

データの種類

1.数値

1.整数
tinyintsmallintmediumintint/integerbigint
	1         2        3          4            8

特徴:

  1. unsignedとsignedの両方を設定でき、デフォルトはsignedであり、unsignedはunsignedによって設定されます
  2. 範囲を超えると、範囲外または範囲の例外が報告され、クリティカル値が挿入されます
  3. 長さは指定できません。デフォルトで長さがありますが、

長さはディスプレイの最大幅を表します。十分でない場合、左側は0で埋められますが、ゼロフィルと一致させる必要があり、デフォルトでは符号なし整数になります。

2.浮動小数点
定点数:decimal(M,D)
浮点数:
	float(M,D)   4
	double(M,D)  8

特徴:

  1. Mは整数部+小数部の数を表し、Dは小数部を表します
  2. 範囲を超えると、範囲外または範囲の例外が報告され、クリティカル値が挿入されます
  3. MとDの両方を省略できますが、固定小数点数の場合、Mのデフォルトは10、Dのデフォルトは0です。
  4. 精度要件が高い場合は、固定小数点数が優先されます

2、文字タイプ

char、varchar、binary、varbinary、enum、set、text、blob

char:char(M)として記述された固定長文字で、最大長はMを超えることはできません。Mは省略でき、デフォルトは1です。

varchar:varchar(M)として記述された可変長文字、最大長はMを超えることはできず、Mは省略できません。

3、日付タイプ


日付日付
時刻
日時日付時刻日付+時刻8
タイムスタンプ日付+時刻4は、タイムゾーン、構文モード、バージョンの影響を受けやすく、現在のタイムゾーンのリアルタイムをより適切に反映できます。

一般的な制約

1.一般的な制約

NOT NULL:空ではない、フィールドの値は必須です
UNIQUE:一意、フィールドの値を繰り返すことはできません
DEFAULT:デフォルト、フィールドの値をデフォルト値で手動で挿入する必要はありません
CHECK:チェック、 mysqlは
PRIMARYKEYをサポートしていません:主キー、このフィールドの値は繰り返し可能ではなく、空ではありませんunique + not null
FOREIGN KEY:外部キー、このフィールドの値は別のテーブルのフィールドを参照します

主キーと一意
1.違い:

①、テーブルには最大で1つの主キーがありますが、複数の一意の
が存在する可能性があります。主キーを空にすることはできません。1つだけを空にすることができます。

2.同じ点

どちらも一意であり、
すべてキーの組み合わせをサポートしていますが、お勧めしません

外部キー:

1. 2つのテーブル間の関係を制限するために使用されます。スレーブテーブルのフィールド値は、メインテーブルのフィールド値を
参照します。2 。メインテーブルの外部キー列と参照列には、同じタイプと同じものが必要です。意味。名前は必須ではありません。3。
メインテーブル引用符で囲まれた列にはキー(通常はプライマリキー)が必要です
。4。データを挿入し、最初にメインテーブルを挿入します。

データを削除するには、最初にスレーブテーブルを削除します。
マスターテーブルのレコードは、次の2つの方法で削除できます。

方法1:カスケード削除
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;
方法2:カスケードブランク
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;

2つ目は、テーブルを作成するときに制約を追加することです。

create table 表名(
	字段名 字段类型 not null,#非空
	字段名 字段类型 primary key,#主键
	字段名 字段类型 unique,#唯一
	字段名 字段类型 default,#默认
	constraint 约束名 foreign key(字段名) references 主表(被引用列)
)

注意:

			支持类型		可以起约束名			
列级约束		除了外键		不可以
表级约束		除了非空和默认	可以,但对主键无效
列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求

3つ目は、テーブルを変更するときに制約を追加または削除することです。

1.空ではない

添加非空

テーブルテーブル名の変更列フィールド名の変更フィールドタイプがnullではありません。

删除非空

テーブルテーブル名の変更列フィールド名のフィールドタイプの変更。

2.デフォルト

添加默认

テーブルテーブル名の変更列フィールド名フィールドタイプのデフォルト値の変更。

删除默认

テーブルテーブル名の変更列フィールド名のフィールドタイプの変更。

3.主キー

添加主键

テーブルテーブル名の変更[制約制約名]主キー(フィールド名)を追加します。

删除主键

表表名を変更する主キーを削除します。

4.ユニーク

添加唯一

テーブルテーブル名の変更add [制約制約名] unique(フィールド名);

删除唯一

テーブルテーブル名の変更インデックスインデックス名の削除;

5.外部キー

添加外键

テーブルテーブル名の変更add [制約制約名]外部キー(フィールド名)はメインテーブル(参照列)を参照します。

删除外键

テーブルテーブル名の変更外部キー制約名の削除。

4つの自己増加列

特点

  • 手動で値を挿入する必要はありません。シーケンス値を自動的に指定できます。デフォルトは1から始まり、ステップサイズは1です
    。auto_increment_increment
    開始値を変更する場合:手動で値を挿入します。
    ステップを変更する場合サイズ:システム変数
    セットを変更しますauto_increment_increment = value;
  • テーブルには、最大で1つの自己増加列があります
  • 自己インクリメント列は数値型のみをサポートできます
  • 自己増加列はキーでなければなりません
4.1、テーブルを作成するときに自己成長列を設定します

テーブルテーブルの作成(
          フィールド名フィールドタイプ制約auto_increment

4.2、テーブルを変更するときに自己成長列を設定します

テーブルテーブルの変更列フィールド名の変更フィールドタイプの制約auto_increment

4.3、自己成長列を削除します

テーブルテーブルの変更列フィールド名の変更フィールドタイプの制約

おすすめ

転載: blog.csdn.net/qq_43518425/article/details/113749046