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

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

推薦する

DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

簡単に言えば、ウェブサイト構築とは、「この人はどんな外見をしているのか」と「この人はどんな内面を持っ...

Redo ログと Undo ログに基づく MySQL クラッシュ回復の分析

目次MySQLクラッシュ回復プロセス1. ブラックボックス下のデータフローを更新する2. やり直しロ...

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

この記事は、参考のためにMySQL 8.0.16のインストールグラフィックチュートリアルを記録してい...

HTML/CSSにおける記号論の詳細な説明

この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

MySQL マスター スレーブ データが矛盾しています。プロンプト: Slave_SQL_Running: 解決策はありません

この記事では、MySQL マスターとスレーブ データ間の不一致の解決方法と、プロンプト「Slave_...

ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します。

ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します...

ul リスト タグ デザイン ウェブ ページ 複数列レイアウト

数日前、CSS で 3 列レイアウトを書いていたときに、突然この方法を思いつきました。このアイデアは...

MySQL 5.7.17 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

mysql5.7.17無料インストールバージョンのインストールに関する最近の経験1.ダウンロードして...

WMLタグの概要

構造関連タグ--------------------------------------------...

シンプルなタブバー切り替えケースを実現するJavaScript

この記事では、タブバーの切り替え効果を簡単に実現するためのJavaScriptの具体的なコードを参考...

Vue.js $refs 使用例の説明

プロパティやイベントがあるにもかかわらず、JavaScript で子コンポーネントに直接アクセスする...

JavaScript の new 演算子を自分で実装する方法

目次コンストラクタ新しいオペレーター自分で新しいものを実装するコンストラクタnew を導入する前に、...

MySQLの文字セットを変更する方法

1. MySQLの文字セットを確認する '%char%' のような変数を表示します。...