主キー: キーワード: 主キー 機能: null にすることはできず、一意である必要があります。 主キーの分類:
主キーの使用法: 方法1: テーブルt1を作成します( Id int 主キー、 名前varchar(100) ); t1に値(1,'zs')を挿入します。 t1に値(2,'ls')を挿入します。 主キーの自動増分: キーワード: auto_increment テーブルt4を作成します( id int 主キー auto_increment, 名前varchar(100) ); t4(name) に values('zs') を挿入します。 t4 に値 (null、'ls') を挿入します。 ドメイン整合性: 特定のデータ型または制約に準拠する必要があるデータベーステーブルの列(フィールド)を参照します。 データ型 長さ NULL ではない制約: NOT NULL 一意制約: UNIQUE テーブルt5を作成します( ユーザー名varchar(100) NOT NULL UNIQUE、 性別 varchar(100) NOT NULL, phonenum varchar(100) ユニーク ); データ テーブル間の接続: 1. 1 対多 (1*N): 顧客と注文。1 人の顧客は複数の注文を持つことができ、各注文は 1 人の顧客にのみ属します。 顧客テーブルを作成します。 テーブルcustomers(を作成) id int、 名前varchar(100)、 アドレスvarchar(255)、 主キー(id) ); 注文テーブルを作成します。 テーブル注文の作成( order_num int 主キー、 価格 float(8,2)、 ステータス int、 顧客ID int, 制約 customer_id_fk 外部キー(customer_id) 参照 customers(id) ); データを挿入: 2. 多対多: 3 番目のテーブルの外部キーを使用して、2 つのテーブルの主キーを接続します。 教師と生徒の間には多対多の関係があります。1 人の教師は複数の生徒に対応し、1 人の生徒は複数の教師によって指導されます。 教師テーブルを作成します。 テーブル教師を作成する( id int、 名前varchar(100) 給与フロート(8,2) 主キー(ID) ); 学生テーブルを作成します。 学生テーブルを作成する( id int、 名前varchar(100)、 グレードvarchar(100)、 主キー(ID) ); 3番目の表: テーブルteacher_student(を作成する t_id 整数、 s_id 整数、 主キー(t_id,s_id) 制約 teacher_id_fk 外部キー(t_id) 参照 teachers(id), 制約 student_id_fk 外部キー(s_id) 参照 students(id) ); データを挿入: 3. 1 対 1: 1 つのテーブルの外部キーが 2 番目のテーブルの主キーに接続します。これは実際の開発では必要ありません。テーブルを設計するだけで済みます。 複数テーブルクエリ: クロス結合 (直積): 最初のテーブルのすべての行が 2 番目のテーブルのすべての行で乗算されます。最終結果は不正確であるため、通常は使用されません。 内部結合: クロス結合によって取得された結果セットが間違っているためです。したがって、内部接続はクロス接続に基づいています 接続条件に一致する接続テーブル内のデータ行のみがリストされ、一致しないレコードはリストされません。 文法: 暗黙の構文:
明示的な構文:
外部結合: 外部結合は、1 つのテーブルをベース テーブルとして使用し、他のテーブルからの情報を連結します。情報が存在する場合は連結されます。存在しない場合は、null が表示されます。外部結合は、左外部結合と右外部結合に分けられます。 左外部結合: キーワードの左側のテーブルをベーステーブルとして結合します
右外部結合: キーワードの右側のテーブルがベーステーブルです
注: テーブル a の左外部結合テーブル b とテーブル b の右外部結合テーブル a の結果は同じです。 サブクエリ: クエリを実行する際に、別の選択ステートメントの結果が条件として必要な場合があります。このとき、サブクエリが使用されます。メインクエリ (外部クエリ) にデータを提供するために最初に実行されるクエリ (内部クエリ) をサブクエリと呼びます。サブクエリは、ネストされたサブクエリと相関サブクエリに分けられます。 ネストされたサブクエリ: 内部クエリの実行は外部クエリとは独立しています。内部クエリは 1 回だけ実行され、実行完了後にその結果が外部クエリの条件として使用されます (ネストされたサブクエリ内のサブクエリ ステートメントを取り出して個別に実行できます)。 文法と演習: ID 1 の教師が指導するすべての生徒を照会します。
相関サブクエリ: 内部クエリの実行は外部クエリのデータに依存します。外部クエリが実行されるたびに、内部クエリも実行されます。毎回、最初に外部クエリが実行され、外部クエリ テーブル内のタプルが取り出され、現在のタプル内のデータが内部クエリに渡され、次に内部クエリが実行されます。内部クエリの実行結果に基づいて、現在のタプルが外部クエリの where 条件を満たしているかどうかを判断します。満たしている場合、現在のタプルは要件を満たすレコードであり、満たしていない場合は要件を満たしていません。その後、外部クエリは次のタプル データの取得を継続し、すべてのタプルが処理されるまで上記の操作を実行します。 文法と演習: 各科目のテストの点数が平均点を上回る生徒の数を調べます。
上記は、エディターによって導入されたMySqlデータテーブル間の接続とクエリの詳細の統合です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
>>: Linux exa コマンド (ls よりも優れたファイル表示エクスペリエンス)
MySQL 5.7.8 以降では、JSON テキストでデータを効率的に取得できるネイティブ JSON...
目次例1例2例3例4例1 <html> <ヘッド> <title>...
この記事の例では、フロントエンドのページング効果を実現するためのJSの具体的なコードを参考までに共有...
この記事では、例を使用して、MySQL の日付と時刻の間隔計算について説明します。ご参考までに、詳細...
原因: java.sql.SQLException: 列の文字列値が正しくありません: '\...
目次実生活からの例クエリが遅い最適化する方法カウント制限最大値と最小値 min&max実生活...
この記事では、フロントエンドのカウントダウン効果を実現するためのJavaScriptの具体的なコード...
時々、素敵なスクロールバー効果を見るのは楽しいものです。ここでは、CSSを使用してそれを実現する方法...
現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...
<canvas> 要素は、クライアント側のベクター グラフィックス用に設計されています。...
この記事では、25 の有名な Web サイト (Google、Yahoo、Twitter、Digg ...
環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...
この記事では、MySQL 8.0.20 winx64 のインストールと設定方法を次のように説明します...
JavaScript でポインターの位置を取得する方法は、イベント オブジェクトの pageX と ...
目次1. ルーティングとページジャンプ2. インターフェース要約する1. ルーティングとページジャン...