MySQL が AS をどのように実装するかを調べる

PHPz
リリース: 2023-04-17 17:00:37
オリジナル
1054 人が閲覧しました

MySQL は、サブクエリや共通テーブル式などの多くの機能をサポートする、人気のあるオープン ソースのリレーショナル データベース管理システムです。その中でも、Common Table Expressions (CTE) は、他のリレーショナル データベースでの WITH AS ステートメントの使用法と同様に、クエリ内で非永続的な名前付き結果セットを作成できるようにする比較的新しい機能です。この記事では、MySQL が AS を使用して実装する方法について説明します。

  1. With AS とは何ですか?

With AS ステートメントは、他のリレーショナル データベース管理システムで非常に一般的な、共通テーブル式を作成する方法です。通常、WITH AS ステートメントは、列名と列値をリストする一連のコンマ区切りの句 (SELECT ステートメントと同様) とメイン クエリで構成されます。メインクエリでは、一般テーブル式の結果セットをクエリ対象のテーブルとして参照できます。

たとえば、次は WITH AS ステートメントを使用した例です:

WITH salary AS (
  SELECT employee_id, salary FROM employees
)
SELECT employee_id FROM salary WHERE salary > 50000;
ログイン後にコピー

この例では、最初に WITH 句を使用して という名前のオブジェクトを定義します。 employees テーブルの employee_id 列と salary 列を含む、salary の一般的なテーブル式。次に、メイン クエリで salary テーブルを参照し、給与が 50000 を超えるすべての従業員 ID を返しました。

  1. MySQL は AS をどのように実装しますか?

MySQL の実装は他のリレーショナル データベース管理システムとは異なり、WITH AS ステートメントをサポートしません。ただし、MySQL にはサブクエリと呼ばれる同様の機能があり、WITH AS と同様の結果を得ることができます。

たとえば、次のクエリを使用して上記の例をシミュレートできます:

SELECT employee_id FROM (
  SELECT employee_id, salary FROM employees
) AS salary WHERE salary > 50000;
ログイン後にコピー

このクエリでは、サブクエリを使用して WITH AS ステートメントを置き換えます。サブクエリは、メイン クエリで参照できる結果セットをその中に定義するという点で、一般的なテーブル式に似ています。 PostgreSQL などの他のリレーショナル データベース管理システムとは異なり、MySQL ではサブクエリ名の前に WITH 句を必要としません。

MySQL でサブクエリを使用する場合、サブクエリをテーブルとして扱い、AS 句を使用して名前を付ける必要があることに注意してください。メイン クエリでは、このテーブル名を使用してサブクエリの結果セットを参照します。この例では、サブクエリに salary という名前を付け、テーブル名として salary を使用して、給与が 50,000 を超えるすべての従業員 ID を選択します。

  1. 結論

MySQL は With AS ステートメントをサポートしていませんが、サブクエリを使用して同様の効果を実現できます。サブクエリ アプローチを使用した実装は、一般的なテーブル式とは若干異なりますが、同じ結果を簡単に得ることができます。

最後に、条件や複雑さが異なると、異なるクエリ方法が必要になる場合があることに注意してください。実際の状況では、クエリのパフォーマンスと効果を確保するには、クエリの特定の要件に従って適切な方法を選択する必要があります。

以上がMySQL が AS をどのように実装するかを調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!