1. 制約の概念と分類1.1 制約の概念: データの正確性、有効性、整合性を確保するために、テーブル内のデータを制限します。 1.2 制約の分類
2. 5つの制約の追加と削除2.1 制約を追加する6つの方法1. テーブルを作成するときに空でない制約を追加します(列レベルの制約として追加されました)
2. テーブルを作成するときに非NULL制約を追加します(テーブルレベルの制約として追加されました)
3. 列名を変更する場合
4. 列のデータ型を変更する場合
5. 新しい列を追加するときに制約を追加できます
6. 外部キー固有
2.2 制約を削除する3つの方法1. 列名を変更する際の制約はありません
2. 列のデータ型を変更する際の制約はありません
3. 特定の制約を削除するにはdropを使用します
注: 表内の制約の名前を確認します。
2.3 5つの主要な制約に対応するメソッドを追加および削除します(シリアル番号は2.1と2.2に対応します)1. 非ヌル制約( NULLではない)
2. ユニーク制約(個性的)
3. デフォルトの制約(デフォルト)
4. 主キー(主キー
5. 外部キー(外部キー)
従業員テーブルを見てみましょう (フィールドは従業員番号、名前、年齢、部門、部門所在地です)。 冗長な部分があることがわかります。つまり、R&D 部門は広州に対応し、営業部門は深センに対応しています。それらを何度も記述する必要はありません。実際には、冗長性を防ぐために 2 つのテーブルに分割できます。最初のテーブルには従業員情報が保存され、他のテーブルには部門情報テーブル 1 (従業員テーブル従業員) が格納されます。 表2(部門表): ここでは両方のテーブルのIDが主キーです しかし、ここで問題があります。つまり、id=1 の行など、部門テーブル内の任意の行を削除できるということです。削除されると、テーブル 1 の dep_id=1 の従業員は自分の部門情報を見つけることができなくなります。そのため、外部キーを使用してこの問題を解決できます。 テーブルを作成するときにdep_idを外部キーとして指定し、それを部門の主キーidに関連付けることができます。 ステートメントの形式 (これは 2 番目の方法、つまりテーブル レベルの制約を持つ外部キーを追加する方法ですが、構文は異なります)。
この例では、次のように記述できます。
外部キーを追加した後は、部門テーブルの行を削除することはできません。また、従業員に新しい従業員情報を追加するときに、dep_id に 1 または 2 以外の番号を入力することはできません。 2.4 制約作成のまとめテーブルを作成するときに、列レベルの制約を追加すると、デフォルト、空でない、主キー、一意のみがサポートされます。テーブルレベルの制約を追加すると、主キー、一意、外部キーのみがサポートされます。 2.5 主キーとユニークキーの違い最大で 1 つの主キーと複数の一意のキーが存在できます。 2 つの列で主キーと一意のキーを形成できます。 3. 列の自動増加3.1 コンセプト列が数値型の場合、auto_increment を使用して自動値増加を実現します (通常は主キーとともに使用されます) 3.2 テーブル作成時に主キー制約を追加し、主キーの自己増分の例を完了する形式:
例えば:
この時点でテーブルにデータがある場合; データを再度挿入するときに、学生番号は付与されません。
テーブルを再度確認すると、自動増分値に基づいて学生番号がテーブルに自動的に追加されていました。 3.3 自己成長の追加と削除1.追加(上記作成時の追加は一種類です)
2. 削除
3.4 自動増分ステップサイズの設定自動増分の開始値は1で、ステップ長の開始値は1です。 以上が、初心者向けのMySQLデータベーステーブルの5大制約の学習の詳細な内容です。MySQLの5大制約の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: Layui は複数条件クエリのサンプルコードを実装します
目次vue2の場合vue3ではセットアップに関する注意事項セットアップライフサイクルは、before...
JavaScript でポインターの位置を取得する方法は、イベント オブジェクトの pageX と ...
プリミティブ値 -> プリミティブ型Number String Boolean undefin...
目次古典的なアプローチ質問その他の質問注意が必要な問題古典的なアプローチご存知のとおり、アカウントの...
2048ミニゲーム、参考までに具体的な内容は以下のとおりですまず、2048ゲームは16のグリッドか...
XHTML は現在国際的に推奨されている標準的な Web サイト設計言語です。Webjx.com も...
DockerデーモンソケットDocker デーモンは、 unix 、 tcp 、 fdの 3 種類の...
httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...
ブログを書くのは初めてです。開発に携わって2年になります。仕事の後に何か有意義なことを見つけたいと思...
ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...
実際のプロジェクト開発では、多数のクエリや挿入、特にマルチスレッド挿入など、データベースに大きな負荷...
目次1. メニューをクリックしてジャンプ1. ページ名の統一2. 管理ページを追加3. ルートを追加...
背景数日前、MySql でページングを行っていたときに、ページングに制限 0,10 を使用するとデー...
JDK とは何ですか?まあ、この質問がわからないのであれば、なぜこれをインストールするのか本当にわか...
最近、空港や駅でフライト情報を表示するものと似た大型スクリーンディスプレイのプロジェクトに取り組んで...