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 フォント、テキスト、リストのプロパティの詳細な紹介

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

推薦する

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

IDEA Maven プロジェクトで Tomcat をデバッグ モードで実行する詳細なチュートリアル

1. pom.xmlに次の依存関係を追加します。 <依存関係> <groupId&...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

初心者のためのMySQL外部キーの設定方法

目次外部キーの役割mysql 外部キー設定方法要約する外部キーの役割データの一貫性、整合性を維持し、...

MySQL レプリケーションの原理と実際のアプリケーションの詳細な説明

この記事では、例を使用して、MySQL レプリケーションの原理と実際のアプリケーションについて説明し...

JSはストップウォッチタイマーを実装します

この記事の例では、ストップウォッチタイマーを実装するためのJSの具体的なコードを参考までに共有してい...

MYSQLパターンマッチングREGEXPの使用に関する一般的な話など

のようにLIKE ではデータ全体が一致する必要がありますが、REGEXP では部分的な一致のみが必要...

MySQL複合クエリの詳細な説明

UNIONの使用ほとんどの SQL クエリは、1 つ以上のテーブルからデータを返す単一の SELEC...

MySQLのテーブル構造を変更する際に知っておきたいメタデータロックの詳しい解説

序文MySQL を扱ったことがある人なら、テーブル メタデータ ロックの待機についてよく知っているは...

虫眼鏡ケースのJavaScriptオブジェクト指向実装

この記事では、参考までに、虫眼鏡のJavaScriptオブジェクト指向実装の具体的なコードを紹介しま...

この記事では、VUE の複数の DIV とボタン バインディングの Enter イベントを実装する方法を説明します。

現在、OK ボタンをクリックしたときやキーボードの Enter キーを押したときに操作を実行するとい...

CSS でマウスの位置をマッピングし、マウスを動かしてページ要素を制御する (サンプル コード)

マウスの位置をマッピングしたり、ドラッグ効果を実装したりすることは、 JavaScriptで行うこと...

基本的な HTML ディレクトリの問題 (相対パスと絶対パスの違い)

相対パス - ファイルを参照する Web ページの場所に基づいて確立されたディレクトリ パス。そのた...

HTML ブロックレベルタグとインラインタグの違い

1. ブロックレベル要素: 独立して存在できる能力を指します。通常、ブロックレベル要素は改行によって...

LinuxカーネルマクロContainer_Ofの詳細な説明

目次1. 構造体はメモリにどのように保存されますか? 2. container_ofマクロ3. 型4...