MySQL 制約の超詳細な説明

MySQL 制約の超詳細な説明

MySQL 制約操作

概念:データの正確性、有効性、完全性を確保するために、テーブル内のデータを制限します。

分類:

  • primary key
  • 非 null 制約: not null
  • 一意制約: unique
  • foreign key制約: 外部キー

1. 非ヌル制約

not null 、値は空にできません。

テーブルを作成するときに、NOT NULL 制約を追加します。

テーブルの作成(
 id INT、
 名前 VARCHAR(20) NULLではない
);

テーブルを作成したら、空でない制約を追加します

ALTER TABLE スタ 
名前の変更 VARCHAR(20) NOT NULL;

非NULL制約を削除する

ALTER TABLE スタ 
名前を変更するVARCHAR(20);

2. ユニーク制約

unique,値を繰り返すことはできません。

テーブルを作成するときに一意制約を追加する

作成スタ(
 識別子 INT;
 電話番号 VARCHAR(20) 一意
);

注意: mysqlでは、一意制約によって定義された列の値に複数のnullが含まれる場合があります。

ユニーク制約の削除

ALTER TABLE スタ
DROP INDEX 電話番号を削除します。

テーブルを作成したら、一意制約を追加します

ALTER TABLE スタ 
電話番号をVARCHAR(20) UNIQUEに変更します。

3. 主キー制約

primary key,

  • 空ではなく、一意です。
  • テーブルには主キーとして 1 つのフィールドのみを含めることができます。
  • 主キーは、テーブル内のレコードの一意の識別子です。

テーブルを作成するときに主キー制約を追加する

テーブルの作成( 
 id INT 主キー、
 名前 VARCHAR(20)
);

主キーの削除

ALTER TABLE スタ 
主キーを削除します。

テーブルを作成したら、主キーを追加します

ALTER TABLE スタ 
id INT 主キーを変更します。

ここで重要なポイントは、自動成長です。

概念:列が数値型の場合、 auto_incrementを使用して自動拡張を実現します。

例:

テーブルを作成するときに、主キー制約を追加し、主キーの自動拡張を完了します。

テーブルの作成(
 id INT 主キー AUTO_INCREMENT、
 名前 VARCHAR(20)
);
#現在の列の最後の行に基づいて値を自動的に増加します。

自動拡張を削除

ALTER TABLE スタ
id INTを変更します。
#これにより削除されるのは自動拡張のみで、主キーは削除できません。

テーブルを作成したら、自動拡張を追加します

ALTER TABLE スタ
id INT AUTO_INCREMENTを変更します。

4. 外部キー制約

foreign ley 、データの正確性を確保するためにテーブル間の関係を作成します。

テーブルを作成するときに外部キーを追加することができます

CREATE TABLE テーブル名(
 ...
 外部キー列 CONSTRAINT 外部キー名 FOREIGN KEY (外部キー列名) REFERENCES 主テーブル名 (主テーブル列名)
);

外部キーの削除

ALTER TABLE テーブル名 DROP FOREIGN KEY 外部キー名;

テーブルを作成したら、外部キーを追加します

ALTER TABLE テーブル名 ADD CONSTRAINT 外部キー名 FOREIGN KEY (外部キー フィールド名) REFERENCES プライマリ テーブル名 (プライマリ テーブル列名);

5. カスケード

カスケード操作を追加

ALTER TABLE テーブル名 ADD CONSTRAINT 外部キー名 FOREIGN KEY (外部キーフィールド名) REFERENCES プライマリテーブル名 (プライマリテーブル列名)
ON UPDATE CASCADE ON DELETE CASCADE;

カスケード削除

アップデートカスケード

MySQL制約の超詳細な説明に関するこの記事はこれで終わりです。MySQL制約に関するより関連のあるコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMを応援してください。

以下もご興味があるかもしれません:
  • MySQL で外部キー制約を作成および削除する方法
  • MySQL に外部キー制約を追加する具体的な方法
  • MySQL データベースの制約とデータ テーブルの設計原則
  • MySQLデータベースで外部キー制約を使用する必要があるかどうかの詳細な説明
  • MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します
  • MySQL の 6 つの一般的な制約タイプの詳細な説明
  • MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。
  • MySQL の null 制約のケースの説明
  • MySQLデータベースのテーブルに制約を設定する方法

<<:  CSS フォント、テキスト、リストのプロパティの詳細な紹介

>>:  テキストスクロール後の自動停止効果の例

推薦する

JavaScript配列をツリー構造に変換する方法

1. 需要バックエンドは、フロントエンドがツリー構造(重複データなし)に変換するためのデータを提供し...

きれいなJavaScriptコードの書き方を教える記事

目次1. 変数意味のある名前を使う不必要なコンテキストを追加しないようにするハードコードされた値を避...

Windows 10 で MySQL 8.0.12 の解凍バージョンをインストールして構成する方法 (グラフィック チュートリアル付き)

この記事では、MySQL 8.0.12 の解凍版のインストールと設定方法を記録し、皆様と共有します。...

MySQL 5.7.17 のインストールと設定方法のグラフィック チュートリアル (Windows)

1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカ...

OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する

導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...

Vueはボールのスライディングクロス効果を実現します

この記事の例では、ボールのスライドとクロスの効果を実現するためのVueの具体的なコードを共有していま...

MySQL のインデックス障害の一般的なシナリオと回避方法

序文これまでにも、一部の SQL ステートメントを不適切に使用すると MySQL インデックスが失敗...

Centos6.9 インストール Mysql5.7.18 ステップ記録

インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...

WindowsでcmdからDOSウィンドウに入り、MySQLデータベースにアクセスします。

1. win + R を押して cmd と入力し、DOS ウィンドウに入ります。 2. MySQL...

HTML における画像タグの使用方法の詳細な説明

HTML では、<img> タグはテキスト内の画像タグを定義するために使用されます。その...

vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...

JavaScript の例におけるループの使用法の詳細な説明

退屈だったので、ループに関する簡単な演習をいくつかまとめてみました。JS を学び始めたばかりの方に役...

CentOS7 での mysql 5.7.23 のバイナリ インストール

インターネット上のインストール情報は不均一で、落とし穴だらけです。インストールにはかなりの労力がかか...

Win10でのJDKのインストールと環境変数の設定に関する詳細なチュートリアル

目次序文1. 準備2. インストール3. 環境変数を設定する1. 「新規」をクリックすると、ポップア...