整合性制約 整合性制約はテーブル データの正確性を保つためのものです。データが正しくない場合は、そもそもテーブルに追加できません。 1 主キー 列に主キー制約を追加すると、この列のデータは繰り返すことができなくなります。このように、各レコード行の主キー列の値は、その行の一意の識別子になります。たとえば、学生の ID 番号は一意の識別子として使用できますが、学生の名前は複数の学生が同じ名前を持つ可能性があるため、一意の識別子として使用できません。 主キー制約を指定するには、PRIMARY KEY キーワードを使用します。 テーブルを作成します。列を定義するときに主キーを指定します。 テーブルの作成( sid CHAR(6) 主キー、 sname VARCHAR(20)、 年齢 INT、 性別 VARCHAR(10) ); テーブルを作成します。列を定義してから、主キーを個別に指定します。 テーブルの作成( sid CHAR(6)、 sname VARCHAR(20)、 年齢 INT、 性別 VARCHAR(10)、 主キー(sid) ); テーブルを変更するときに主キーを指定します。 ALTER TABLE スタ 主キーを追加します(sid); 主キーを削除するには (主キー列ではなく、主キー制約のみを削除します)、次の手順を実行します。 ALTER TABLE stu DROP PRIMARY KEY; 2. 主キーの自動増分 MySQL は主キーの自動増加機能を提供します。主キーを自動増分に設定すると、主キー値が指定されていない場合、主キー値が自動的に生成され、最大の主キー値 + 1 になるため、主キーが重複する可能性がなくなります。 テーブルを作成するときに主キーを自動拡張するように設定します (自動拡張するには主キーが整数である必要があります)。 テーブルの作成( sid INT 主キー AUTO_INCREMENT、 sname VARCHAR(20)、 年齢 INT、 性別 VARCHAR(10) ); テーブルを変更するときに主キーの自動増分を設定します。 ALTER TABLE stu CHANGE sid sid INT AUTO_INCREMENT; テーブルを変更するときに主キーの自動増分を削除します。 ALTER TABLE stu を変更し、sid sid INT を変更します。 3 空ではない 空でない制約を指定する列には、値がないことはできません。つまり、レコードを挿入するときには、空でない制約が追加された列に値を指定する必要があります。レコードを変更するときは、空でない列の値を NULL に設定することはできません。 非 null 制約を指定します。 テーブルの作成( sid INT 主キー AUTO_INCREMENT、 sname VARCHAR(10) NOT NULL、 年齢 INT、 性別 VARCHAR(10) ); sname フィールドを空でない値として指定した後、レコードを stu テーブルに挿入するときに sname フィールドの値を指定する必要があります。そうしないと、エラーが報告されます。 stu(sid) VALUES(1)に挿入します。 挿入されたレコードには sname に指定された値がないため、エラーが報告されます。 4 ユニーク フィールドに一意の制約を指定することもできます。列に一意制約が指定されている場合、列内の値は一意である必要があります。これは主キーに似ています。たとえば、stu テーブルの sname フィールドに一意制約を指定するには、次のようにします。 テーブル tab_ab を作成します ( sid INT 主キー AUTO_INCREMENT、 sname VARCHAR(10) 一意 ); sname(sid, sname) に VALUES(1001, 'zs') を挿入します。 sname(sid, sname) に VALUES(1002, 'zs') を挿入します。 同じ名前を 2 回挿入すると、MySQL がエラーを出します。 5 外部キー 主キーと外部キーはテーブルを関連付ける唯一の方法です。 外部キーは別のテーブルの主キーです。たとえば、従業員テーブルと部門テーブルの間には関連関係があり、従業員テーブルの部門番号フィールドは外部キーであり、部門テーブルに対する外部キーです。 たとえば、t_section テーブルでは、sid 1 のレコードは、java というカテゴリがあることを示しており、モデレーターは t_user テーブルで uid 1 を持つユーザー、つまり zs です。 たとえば、t_topic テーブルでは、tid 2 のレコードは「Java is coffee」という名前の投稿で、これは Java セクションの投稿であり、その作成者は ww です。 外部キーは、この列の値を別のテーブルの主キー値に制限するために使用されます。 ! ! t_user テーブルを作成し、主キー列として uid を指定します。 テーブルt_userを作成します( uid INT 主キー AUTO_INCREMENT、 uname VARCHAR(20) 一意 NOT NULL ); t_section テーブルを作成し、 sid を主キー列として指定し、 u_id を t_user テーブルの uid 列の外部キーとして指定します。 テーブルt_sectionを作成します( sid INT 主キー AUTO_INCREMENT、 sname VARCHAR(30)、 u_id INT、 制約 fk_t_user 外部キー(u_id) 参照 t_user(uid) ); t_section テーブルを変更し、t_user テーブルの uid 列への外部キーとして u_id を指定します。 ALTER TABLE t_section 制約 fk_t_user を追加する 外部キー(u_id) 参照 t_user(uid); t_section テーブルを変更し、u_id の外部キー制約を削除します。 ALTER TABLE t_section 外部キー fk_t_user を削除します。 6 テーブル間の関係
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux ソフトウェアのインストール場所を確認する簡単な方法
>>: jsで七夕告白連打の効果を実現、jQueryで連打技術を実現
最近、element-ui を統合したプロジェクトで vuethink を使用しました。以前は bo...
この記事の例では、ログインページを実装するためのlayuiの具体的なコードを参考までに共有しています...
この記事の例では、スライディングブロック効果を実現するための小さなプログラムの具体的なコードを参考ま...
目次1. 元のドライバーをアンインストールする2. 新しいグラフィックカードドライバーをダウンロード...
目次背景技術的ソリューション具体的な実装要約する背景Element UI は、PC で人気の Vue...
この記事では、MacでのMySQLインストールチュートリアルを参考までに紹介します。具体的な内容は次...
目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...
目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...
XHTML の img タグはいわゆる自己終了タグであり、XML では完全に合法です。 XHTMLの...
Ubuntu 1804 への MySQL 5.7 のインストールについて詳しく紹介します。 MySQ...
目次 <テンプレート> <ul class="コンテナ">...
通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...
目次概要リバースプロキシの役割Nginx リバース プロキシ イントラネット侵入 8081 ポートの...
目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...
序文lvm (論理ボリューム マネージャー) 論理ボリューム管理は、Linux システムのニーズを満...