どのような種類の MYSQL 接続クエリを知っていますか?

どのような種類の MYSQL 接続クエリを知っていますか?

序文

クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があります。結合は、異なるテーブルのレコードを接続する最も一般的な方法です。結合クエリを使用すると、複数のテーブルを 1 つのテーブルとして処理できます。結合クエリは、内部結合と外部結合に分けられます。

1. クロスコネクト

クロス結合は、「カルテシアン結合」または「クロス積」とも呼ばれ、すべてのタイプの内部結合の基礎となります。

例: ルート テーブルと車両テーブルを実装するには、次のステートメントを使用します。

`select * from line CROSS JOIN automobileはselect * from line, automobileと同等です。

2番目は、内部結合

内部結合は、アプリケーションで非常に一般的な結合操作であり、通常はデフォルトの結合タイプです。

構文は次のとおりです。

SELECT フィールドリスト FROM テーブル1 【INNER】JOIN テーブル2 ON 
table1.column1=table2.column2 【where条件】

3. 自然なつながり

自然結合は、接続された 2 つのテーブルの基本列が同じフィールド (同じフィールド名と同じフィールド属性を持つ) である必要がある特殊な内部結合です。
構文は次のとおりです。

select fieldlist FROM table1 NATURAL JOIN table2 【where条件】

4. 複数テーブル結合クエリ

クエリする情報が複数のテーブルから取得される場合、2 つのテーブルを逆の順序で接続することにより、複数テーブル結合クエリを確立できます。

3 つのテーブルを結合するクエリの構文は次のとおりです。

SELECT フィールドリスト FROM テーブル1 JOIN テーブル2 ON 
tabke1.column1=table.column2_1 テーブル3を結合
 table2.column2_2=table.column3【where条件】

FROM 句で接続するすべてのテーブルを直接リストし、WHERE 句で接続条件を指定すると、これは単純なマルチテーブルクエリとなり、内部結合と同じ機能を持ちます。

2 つのテーブルを結合するためのクエリ構文は次のとおりです。

テーブル1、テーブル2からフィールドリストを選択
HERE table1.column1=table2.column2 [およびその他の条件]

5、外側の接続

内部結合クエリでは、結合条件を満たすレコードのみがクエリ結果に表示されます。ただし、実際の使用では、接続条件を満たさないレコードもクエリ結果に表示される場合は、外部結合クエリが必要になります。外部結合は、左外部結合と右外部結合に分けられます。

構文は次のとおりです。

`SELECT フィールド名 FROM テーブル名 1 LEFT|RIGHT|FULL [OUTER] JOIN テーブル名 2 ON テーブル名 1. フィールド名 1 = テーブル名 2. フィールド名 2`

1. 左外部結合

外部結合の結果セットには、左側のテーブルのすべてのレコードと、結合条件を満たす右側のテーブルのレコードが含まれます。結果セット内の結合条件を満たさないテーブルの列値は null になります。

2. 右外部結合

右外部結合は左外部結合の逆です。右外部結合の結果セットには、右テーブルのすべてのレコードと、結合条件を満たす左テーブルのレコードが含まれます。結合条件を満たさない左テーブルの列値は null になります。

手術:

すべての非エアコン車両のナンバープレート番号、モデル、運転手名、所属する路線の路線番号、出発駅、終着駅の情報を取得します。

選択
	v.plateNO ナンバープレート番号、
	v.モデルモデル、
	d. NAME ドライバーの名前、
	l.line行番号なし、
	l.from_station 出発駅、
	l.end_station ターミナル駅 FROM
	ライン l、
	車両v、
	ドライバ
どこ
	v.type = 'エアコンなし車'
かつ、l.lineID = v.lineID
かつ、d.driverID = v.driverID;

バス会社2のすべての運転手情報を取得します。運転手の名前、身分証明書、性別、電話番号の出力が必要です。

選択
	NAME ドライバーの名前、
	免許証IDカードなし、
	d.性別、
	電話番号
	車両v、
	ドライバーd、
	行 l
どこ
	v.ドライバーID = d.ドライバーID
かつ、v.lineID = l.lineID
AND 会社 = 'バス会社 2'
グループ化 

すべての非エアコン車両のナンバープレート番号、モデル、路線番号、出発駅および終着駅を確認します。

選択
v.plateNO ナンバープレート番号、
	v.モデルモデル、
	l.line行番号なし、
	l.from_station 出発駅、
	l.end_station ターミナル駅 FROM
	ライン l、
	車両v
どこ
	v.type = 'エアコンなし車'
かつ、l.lineID = v.lineID;

すべての路線と割り当てられた車両の基本情報を表示し、車両に割り当てられた運転手の関連情報を照会します。運転手の名前、性別、電話番号、ナンバープレート番号、モデル、路線番号、出発駅、終点駅の出力が必要です。

	選択
	d.NAME ドライバーの名前、
	免許証IDカードなし、
	d.性別、
	電話、
	v.plateNO ナンバープレート番号、
	v.モデルモデル、
	l.line行番号なし、
	l.from_station 出発駅、
	l.end_station ターミナル駅 FROM
	車両v、
	ドライバーd、
	行 l
どこ
	v.ドライバーID = d.ドライバーID
かつ、v.lineID = l.lineID
GROUP BY ドライバー名;

6. 注文ID4の注文詳細を取得し、商品名、単価、数量を出力します。

選択
	c.cName 顧客名、
	o.ordersDate 注文日、
	g.goodsName 商品名、
	g.unitPrice 単価、
	od.quantity 個数 から
	注文詳細 od、
	商品 g、
	注文o、
	顧客c
どこ
	c.cName = '王川花'
かつ c.customerID = o.customerID
かつ o.ordersID = od.ordersID
かつ、od.goodsID = g.goodsID;

顧客「Wang Chuanhua」の注文詳細を取得し、顧客名、注文 ID、注文日、製品名、単価、個数を表示する必要があります。

選択
	c.cName 顧客名、
	o.ordersDate 注文日、
	g.goodsName 商品名、
	g.unitPrice 単価、
	od.quantity 個数 から
	注文詳細 od、
	商品 g、
	注文o、
	顧客c
どこ
	c.cName = '王川花'
かつ c.customerID = o.customerID
かつ o.ordersID = od.ordersID
かつ、od.goodsID = g.goodsID;

左の接続を使用して、すべての顧客の基本情報と注文情報を取得します。顧客名、電話番号、注文 ID、注文時間を出力する必要があります。

選択
	c.cName 顧客名、
	c.電話、
	o.ordersID 注文ID、
	o.ordersDate 注文時間 開始
	 顧客c
LEFT JOIN は c.customerID=o.customerID に対して o を注文します。

8. 右側のリンクを使用して、すべての顧客の基本情報と注文情報を取得します。顧客名、電話番号、注文 ID、注文時間を出力する必要があります。

選択
	c.cName 顧客名、
	c.電話、
	o.ordersID 注文ID、
	o.ordersDate 注文時間 開始
	注文
顧客 c を c.customerID=o.customerID で右結合します。

要約する

MYSQL 接続クエリに関するこの記事はこれで終わりです。MYSQL 接続クエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL の結合クエリとサブクエリの問題
  • MySQL マルチテーブル結合クエリの詳細な説明
  • MySQL接続クエリの原理と応用
  • MySQL 結合クエリ構文と例
  • MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明
  • Mysql 自己結合クエリ例の詳細な説明
  • MySQL マルチテーブル結合クエリ例の説明
  • MySQL接続クエリの詳細な説明

<<:  Vueライフサイクルの詳細な説明

>>:  チェックボックスの不確定プロパティの使用の紹介

推薦する

DockerにMySQLをインストールする方法

最近 Django を導入しましたが、MySQL を手動でインストールしたくなかったので、Docke...

jsはショッピングウェブサイトの商品の拡大鏡効果を実現します

この記事では、ショッピングサイトの商品の拡大鏡効果を実現するためのjsの具体的なコードを紹介します。...

MySQL データベースの 1045 エラーの解決方法

ローカル データベースがサーバー データベースに接続されているときに発生する 1045 の問題を解決...

HTML テーブルタグチュートリアル (8): 背景画像属性 BACKGROUND

テーブルの背景画像を設定します。任意の GIF または JPEG 画像ファイルを使用できます。基本的...

JS を使用して要素が配列であるかどうかを判断する例

検証できるデータの種類は次のとおりです a = [1,2,3,4,5,6]とします。 b = [とし...

ローカル フォルダー内の画像を読み込んで表示するための HTML サンプル コード

一つの目的Html ページでローカル フォルダーを選択すると、フォルダーとそのサブフォルダー内のすべ...

CSSがページのレンダリングをブロックするかどうかについての簡単な説明

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...

MySQLからHiveにさらにデータをインポートするためのソリューション

元の派生コマンド: bin/sqoop インポート -connect jdbc:mysql://19...

Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。

mysqldump コマンドはじめに: データベースバックアッププログラム形式: mysqldum...

パズル効果を実現するネイティブ js

この記事では、パズル効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的...

mysql 5.7.17 winx64.zip インストールと設定方法のグラフィックチュートリアル

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

Linux (Centos7) での redis5 クラスターの構築と使用方法の詳細な説明

目次1. 簡単な説明2. クラスターを作成する手順2.1. ディレクトリを作成する2.2. ソースコ...

MySQL パラメータ関連の概念とクエリ変更方法

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

Vue はチャット ボックスで絵文字を送信する機能を実装します

vueチャットボックスで絵文字を送信し、vueインターフェースで絵文字を送信するための具体的なコード...