技術共有

mysqlをサクッとマスター(2) 制約と戦略

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

実践的なことに重点を置く

この記事は主に、特定の SQL 操作ステートメントのアプリケーション、自己検査について説明します。

1. 主キー制約

主キーはレコードを一意に識別するために使用されます。各テーブルは主キーを 1 つだけ持つことができます (複数のフィールドは結合主キーです)。

主キー列のプロパティ:非空唯一

  1. 存在するNavicat主キーを追加します

新しいテーブルを作成するときに主キーを設定しないと、このゴールデン キーが主キーの識別に失敗します。

ここに画像の説明を挿入します

  1. 主キー自動インクリメント戦略

主キーを選択して追加するだけで、自動インクリメント戦略により、非繰り返しのシリアル番号が順番に自動的に生成されます。

ここに画像の説明を挿入します

  1. テーブルの切り詰め

テーブルの切り詰めtruncateそしてクリアなテーブルdelete的区别🎈
テーブルを切り詰めます。テーブル構造を保持し、それ以外はすべて削除します。自增字段会回到默认值开始
テーブルをクリアします。テーブル構造を保持し、スペースを解放しません。自增字段不会重置

2. 空ではない制約

非NULL制約を追加する

ここに画像の説明を挿入します

3. 唯一の制約

一意の制約を追加する
ここに画像の説明を挿入します

ここに画像の説明を挿入します

4. デフォルト(デフォルト)制約

これがデフォルト値です。入力されていない場合は、この値がデフォルトになります。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

5. 外部キー制約

  1. シングルテーブルのデメリット

データ コンテンツのほとんどは繰り返されるため、変更する場合はすべてのコンテンツを調べる必要があります。たとえば、自分がいるコミュニティでは、コミュニティを別のテーブルに分割し、その ID を元のテーブルに記録するだけで済みます。 。

  1. 外部キーの指定

要求:外部キー列のデータ型と長さは、参照される主キー列のデータ型と長さと一致している必要があります。

  1. 外部キーを追加する方法

関連付けられたキーは主キーであり、その逆は副テーブル (サブテーブル) です。

外键在从表添加

ここでは、カスケード更新の削除を例として取り上げます。もちろん、複数のオプションがあります。

ここに画像の説明を挿入します

  1. 削除ポリシーを更新する

CASCADE: 親テーブルから削除または更新し、子テーブル内の一致する行を自動的に削除または更新します。
SET NULL : 親テーブルから行を削除または更新し、子テーブルの外部キー列を NULL に設定します。このオプションを使用する場合は、サブテーブル列に NOT NULL が指定されていないことを確認する必要があります。
RESTRICT: 親テーブルに対する削除または更新操作を拒否します。
NO ACTION: 標準 SQL キーワード、MySQL の RESTRICT と同じ