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の誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...

PXEを使用してCentOS7.6を自動的にインストールする方法の詳細なチュートリアル

1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...

LinuxでHomebrewを使用する正しい方法

多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?仮想マシンについては誰もが知っています。Windows に Li...

Mysqlは日付範囲の抽出方法を指定します

データベースを操作する過程では、いくつかの指標を日付別にまとめたり、一定期間内の合計金額をカウントし...

MySql テーブル、データベース、シャーディング、パーティショニングの知識ポイントの紹介

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

雨滴効果を実現する JavaScript キャンバス

この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...

Linux での sshd サービスとサービス管理コマンドの詳細な説明

sshd SSH は Secure Shell の略で、アプリケーション層のセキュリティ プロトコル...

スネークゲームのウェブ版を実装するためのJavaScript

この記事では、ウェブページのスネークゲームを実装するためのJavaScriptの具体的なコードを参考...

Mysql5.6.36 スクリプトのコンパイル、インストール、初期化のチュートリアル

概要この記事は、centos7.3 上で mysql5.3.6 を自動的にコンパイルしてインストール...

このような大画面のデジタルスクロール効果が必要になる場合があります

大画面のデジタル スクロール効果は、最近の作業における大画面 UI ダイアグラムから生まれました。U...

MySQL の完全なデータベース バックアップ データを使用して単一のテーブル データを復元する方法

序文データベースをバックアップするときは、データベース全体のバックアップを使用します。ただし、何らか...

マウスを傾けた状態でのフリップナビゲーションの問題に関する研究

この記事では、マウス フリップナビゲーションの制作についてまだ疑問を持っている友人の役に立つことを期...

CSS で写真のスタッキング効果を実装するサンプルコード

成果を達成するステップ1. 初期index.html最初の写真、一番上の写真を作成します。写真の i...

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...