整合性制約 整合性制約はテーブル データの正確性を保つためのものです。データが正しくない場合は、そもそもテーブルに追加できません。 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で連打技術を実現
この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...
この記事では、VMware Workstation 14 Pro (仮想マシン) にシステムをインス...
実行中のコンテナIDを見つける ドッカーps上記のコンテナの物理的な場所を見つける /var/lib...
序文データ型変換とは何ですか?フォームまたはプロンプトを使用して取得されるデフォルトのデータ型は文字...
目次1. 概要1. スカイウォーキング入門2. スカイウォーキング建築3. スカイウォーキングはどの...
目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...
1. モジュールをインポートし、検証状態を定義する PIL から Image、ImageDraw、...
この記事では、Linux システムを起動する方法について説明します。ご参考までに、詳細は以下の通りで...
場合によっては、データ内のデータを再利用する必要がありますが、データ内のデータはさまざまなフォーム、...
目次1. マイクロタスクとは何ですか? 2. マクロタスクとは何ですか? 3. 事例3.1 結論4....
序文このプロジェクトには、衛星測位用のグラフィックスを含むチャートの要件があり、北半球または南半球の...
過去 2 日間、ワークベンチが Alibaba Cloud Server に接続できない問題を解決す...
1. まずhello-world.cppファイルを作成しますプログラムコードは次のとおりです。 #i...
最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...