テーブル管理
ライブラリ管理
1つは、ライブラリを作成する
データベースの作成[存在しない場合]ライブラリ名[文字セット文字セット名];
2つ目は、ライブラリを変更する
データベースライブラリ名の文字セット文字セット名を変更します。
3、ライブラリを削除します
データベースを削除する【存在する場合】库名;
データの種類
1.数値
1.整数
tinyint、smallint、mediumint、int/integer、bigint
1 2 3 4 8
特徴:
- unsignedとsignedの両方を設定でき、デフォルトはsignedであり、unsignedはunsignedによって設定されます
- 範囲を超えると、範囲外または範囲の例外が報告され、クリティカル値が挿入されます
- 長さは指定できません。デフォルトで長さがありますが、
長さはディスプレイの最大幅を表します。十分でない場合、左側は0で埋められますが、ゼロフィルと一致させる必要があり、デフォルトでは符号なし整数になります。
2.浮動小数点
定点数:decimal(M,D)
浮点数:
float(M,D) 4
double(M,D) 8
特徴:
- Mは整数部+小数部の数を表し、Dは小数部を表します
- 範囲を超えると、範囲外または範囲の例外が報告され、クリティカル値が挿入されます
- MとDの両方を省略できますが、固定小数点数の場合、Mのデフォルトは10、Dのデフォルトは0です。
- 精度要件が高い場合は、固定小数点数が優先されます
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、自己成長列を削除します
テーブルテーブルの変更列フィールド名の変更フィールドタイプの制約