ホームページ >php教程 >php手册 >SQL 言語のクイック スタート (3)

SQL 言語のクイック スタート (3)

WBOY
WBOYオリジナル
2016-06-21 09:09:051288ブラウズ

SQL 言語|クイックスタート

SQL 言語を使用した日常業務で最も一般的に使用される方法は、確立されたデータベースから情報をクエリすることです。次に、SQL 言語を使用してさまざまなデータベース クエリ操作を実装する方法を詳しく紹介します。

SELECT…FROM

説明をわかりやすくするために、データベースにStore_Informationという名前の次のデータテーブルを作成します。

Store_Information

Store_Name
Sales
Date

ロサンゼルス
2000年1月10日

サンディエゴ
0
2000年1月11日

ロサンゼルス
0
2000 年 1 月 12 日

ボストン
0
Jan-12-2000


データベースクエリ用の SQL 言語での最も単純なコマンドは SELECT...FROM で、構文形式は次のとおりです:

SELECT "column_name" FROM "table_name"

たとえば、次のようにしたい場合クエリ Store_Information データ テーブル内のすべてのストア名を選択する場合、次のコマンドを使用できます:

SELECT store_name FROM Store_Information

クエリ結果は次のように表示されます:

Store_Name

Los Angeles

San Diego

Los Angeles

ボストン

ユーザーが一度に複数のフィールドをクエリしたい場合は、クエリするフィールド名を SELECT キーワードの後に​​「,」で区切って順番に追加できます。

DISTINCT

SELECT キーワードを使用すると、ユーザーはデータ テーブル内の指定されたフィールド内のすべてのデータをクエリできますが、重複した情報が必然的に表示される場合があります。ユーザーが異なるレコード値を持つ情報のみをクエリしたい場合は、SQL 言語の DISTINCT キーワードを使用できます。構文形式は次のとおりです。

SELECT DISTINCT "column_name"

FROM "table_name"

たとえば、次のコマンドを使用して、異なるレコード値を持つ Store_Information データ テーブルのすべてのレコードをクエリできます。 store store_informationから個別のstore_nameを選択してください

Queryの結果は次のとおりです。特定の条件に従って、データベース内のデータをクエリします。たとえば、売上が 1,000 ドルを超える店舗について Store_Information データ テーブルをクエリする必要がある場合があります。これを行うには、SQL 言語の WHERE キーワードを使用してクエリ条件を設定します。構文形式は次のとおりです:

SELECT "column_name"

FROM "table_name"

WHERE "condition"

これから、次のコマンドを使用して、売上が 1,000 米ドルを超える店舗情報をクエリできます:

SELECT store_name FROM Store_Information WHERE Sales > 1000

クエリ結果は次のように表示されます:

store_name

Los Angeles

操作関数

これで、SQL 言語を使用してデータベース クエリ操作を実行するときに、柔軟に設定できることがわかりました。数値を判断してクエリ条件を決定します。計算のサポートを強化するために、SQL はユーザーが使用できる実用的な計算関数を多数提供しています。たとえば、合計と平均をそれぞれ計算するために使用される 2 つの関数である SUM または AVG を SQL コマンドで直接呼び出すことができます。構文形式は次のとおりです。

SELECT "function type"("column_name")

FROM "table_name"

Store_Information データ テーブル内のすべての店舗の合計売上高をクエリする場合は、次のコマンドを使用できます。 :

SELECT SUM(Sales) FROM Store_Information

クエリ結果は次のように表示されます:

SUM(Sales)

50

COUNT

SUM関数とAVG関数に加えて、COUNT関数もよく使用される算術関数です。 SQL言語の関数です。 COUNT 関数を使用すると、データ テーブル内の指定したフィールドに含まれるレコードの数をカウントできます。構文形式は次のとおりです:

SELECT COUNT("column_name")

FROM "table_name"

たとえば、Store_Information データ テーブル内の店舗に関するレコード数をクエリする場合は、次のコマンドを使用できます。
SELECT COUNT(store_name)

FROM Store_Information

クエリ結果は次のように表示されます:

Count(store_name)

4

COUNT 関数を DISTINCT キーワードと一緒に使用すると、異なるレコードを持つレコードの数をクエリできますデータテーブルの指定されたフィールドの値。たとえば、Store_Information データ テーブル内のさまざまな店舗の数をクエリする場合は、次のコマンドを使用できます:

SELECT COUNT(DISTINCT store_name)

FROM Store_Information

クエリ結果は次のように表示されます:

Count (DISTINCT ストア名)

3

GROUP BY

SQL 言語の集計関数を詳しく見てみましょう。上記では、SUM 関数を使用して全店舗の売上の合計を計算しました。各店舗の売上の合計を計算したい場合はどうすればよいでしょうか。この目標を達成するには、2 つのことを行う必要があります。まず、店舗名と売上高の 2 つのフィールドをクエリする必要があります。次に、SQL 言語の GROUP BY コマンドを使用して、異なる店舗ごとに売上高をグループ化し、異なる売上高を計算します。店舗の総売上高です。 GROUP BY コマンドの構文形式は次のとおりです:

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

上記のクエリの目的を達成するには、次のコマンドを使用できます。 :

SELECT 店舗名 , SUM(売上)

FROM 店舗情報

GROUP BY 店舗名

クエリ結果は次のように表示されます:

店舗名 SUM(売上)

ロサンゼルス 00

サンディエゴ 0

ボストン 0

小さな注意:

GROUP BY キーワードは通常、複数のフィールドを同時にクエリし、フィールドに対して算術演算を実行する SQL コマンドで使用されます。

HAVING

SQL 言語を使用するときにユーザーが解決したいもう 1 つの問題は、合計またはその他の集計関数の演算結果の出力を制限することです。たとえば、Store_Information データ テーブルで総売上高が 1,500 ドルを超える店舗に関する情報のみを確認したい場合は、HAVING 句を使用する必要があります。構文形式は次のとおりです:

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

HAVING (算術関数条件)

(GROUP BY 句はオプション)

によってしたがって、次のコマンドを使用して、上記のクエリの目的を達成できます:

SELECT 店舗名, SUM(売上)

FROM 店舗情報

GROUP BY 店舗名

HAVING SUM(売上) > 1500

クエリ結果が表示されます。 as:

store_name SUM(Sales)

Los Angeles 00

マイナーノート:

SQL 言語では、集計関数のクエリ条件を設定するときに WHERE 句の代わりに HAVING 句を使用します。通常、HAVING 句は SQL コマンドの最後に置かれます。

エイリアス

ここでは、SQL コマンドでエイリアスを設定する方法に焦点を当てます。 SQL 言語で使用される別名には通常、フィールド 別名とデータ テーブル 別名の 2 種類があります。

簡単に言うと、フィールド エイリアスを使用すると、クエリの出力結果を効果的に整理するのに役立ちます。たとえば、上記の複数の例で、店舗の合計売上を計算すると、表示結果には SUM(売上) が表示されます。 SUM(sales) はクエリ結果を理解するのに不都合はありませんが、クエリ内で複数の複雑な操作を使用する必要がある場合、表示される結果はそれほど直感的ではありません。この時点でフィールド エイリアスを使用すると、クエリ結果の可読性が大幅に向上します。

データ テーブルのエイリアスについては、FROM 句のデータ テーブル名の直後にエイリアスを配置することで設定できます。データ テーブルのエイリアスは、以下で説明するクエリのために複数のデータ テーブルを接続する操作で非常に役立ちます。

フィールドおよびデータテーブルのエイリアスの構文形式は次のとおりです:

SELECT "table_alias"."column_name1" "column_alias"

FROM "table_name" "table_alias"

つまり、エイリアスは対応するエイリアスの直後に配置されます。名前。中央はスペースで区切られます。

Store_Information データ テーブルを例として、GROUP BY セクションで使用される SQL コマンドで次のフィールドとデータ テーブルのエイリアスを設定できます:

SELECT A1.store_name Store, SUM(Sales) "Total Sales"

FROM Store_Information A1

GROUP BY A1.store_name

クエリ結果は次のように表示されます:

Store Total Sales

Los Angeles 00

San Diego 0

Boston 0

複数のデータテーブルを接続します

最後に、のテイクSQL 言語を使用して複数のデータ テーブルを接続すると、複数のデータ テーブルをクエリできます。説明の便宜上、データベース内に Store_Information と Regional という名前の 2 つのデータ テーブルを作成しました。

Store_Information

Store_Name
Sales
Date

ロサンゼルス
2000年1月10日

サンディエゴ
0
2000年1月11日

ロサンゼルス
0
2000 年 1 月 12 日

ボストン
0
2000年1月12日


地域

地域名
店舗名

東部
ボストン

東部
ニューヨーク

西部
ロサンゼルス

西部
サンディエゴ


それでは、 pass データテーブルを接続すると、さまざまな地域ごとの売上をクエリできます。

「Region」という名前のデータ テーブルには地域と店舗という 2 つのフィールド情報が含まれており、「Store_Information」という名前のデータ テーブルには各店舗の売上情報が含まれていることがわかりました。したがって、地域ごとの売上情報を取得するには、2 つの異なるデータ テーブルの情報を組み合わせてクエリする必要があります。上記の 2 つのデータ テーブルの分析により、各データ テーブルに Store_Name という名前のフィールドが含まれていることがわかりました。そのため、次のコマンドを使用してクエリの目的を達成できます:

SELECT A1.region_name REGION, SUM(A2.Sales ) SALES。

FROM Geography A1, Store_Information A2

WHERE A1.store_name = A2.store_name

GROUP BY A1.region_name

クエリ結果は次のように表示されます:

REGION SALES

East 0

West 5 0

説明:

上記のクエリ コマンドの最初の 2 行は、クエリ対象のターゲット フィールドを指定するために使用されます。これは、Region データ テーブルの [Region_Name] フィールドと、Store_Information データの [Sales] フィールドのレコード値の総数です。テーブル。ここでは、2 つのフィールドの別名をそれぞれ REGION と SALES に設定し、2 つのデータ テーブルの別名をそれぞれ A1 と A2 に設定します。データ テーブルのエイリアスを設定せずにフィールド エイリアスのみを使用する場合、上記の SQL コマンドの最初の行は次の形式になります:

SELECT Regional.Region_Name REGION, SUM(Store_Information.Sales) SALES

これから、データ テーブルのエイリアスを使用すると、複数のデータ テーブルを操作する SQL コマンドを大幅に簡素化できます。

上記のクエリ コマンドの 3 行目は WHERE 句で、2 つのデータ テーブルの接続条件を設定します。地域データ テーブルの Store_Name フィールドが Store_Information データ テーブルの同じ名前のフィールドに対応できるようにする必要があるため、2 つのフィールドのレコード値が等しい必要があると規定します。複数のデータテーブルを接続する場合は、データテーブルの接続条件を正確に設定してください。WHERE 句が正しく設定されていないと、クエリ結果に無関係なデータが大量に表示される可能性があります



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。