構造化問合せ言語は、データベース・ユーザーに、強力で柔軟なデータ検索メカニズム(SELECT文)を提供します。 この記事では、SELECT文の一般的な形式を見て、いくつかのサンプルのデータベースクエリを一緒に作成します。 これが構造化照会言語の世界への最初の挑戦である場合は、続行する前に、SQL 基礎の記事を参照してください。
新しいデータベースを最初から設計する場合は、「 SQLでのデータベースとテーブルの作成」の記事が優れた点を明らかにする必要があります 。
これで基本的なことを説明しましたので、SELECTステートメントの探索を始めましょう。 これまでのSQLレッスンと同様に、ANSI SQL標準に準拠したステートメントを引き続き使用します。 使用しているDBMSのドキュメントを参照して、SQLコードの効率性および/または有効性を向上させる可能性がある高度なオプションがサポートされているかどうかを調べることをお勧めします。
SELECTステートメントの一般形式
SELECT文の一般的な形式は次のとおりです。
SELECT select_list
FROM ソース
WHERE 条件は、
GROUP BY 式
保有状態
ORDER BY 式
ステートメントの最初の行は、このコマンドがSELECTステートメントであり、データベースから情報を取得することをSQLプロセッサーに指示します。 select_listを使用すると、取得する情報の種類を指定できます。
2行目のFROM句は、関連する特定のデータベーステーブルを指定し、 WHERE句は、指定した条件を満たすレコードに結果を制限する機能を提供します。 最後の3つの節は、この記事の範囲外の高度な機能を表しています。将来のSQL記事でそれらを探求します。
SQLを学ぶ最も簡単な方法は例です。 そこで、いくつかのデータベースクエリを見てみましょう。 この記事では、架空のXYZ Corporation人事データベースの従業員のテーブルを使用して、すべての質問を説明します。 ここに表全体があります:
従業員ID | 苗字 | ファーストネーム | 給料 | ReportsTo |
1 | スミス | ジョン | 32000 | 2 |
2 | Scampi | 訴える | 45000 | ヌル |
3 | ケンドール | トム | 29500 | 2 |
4 | ジョーンズ | アブラハム | 35000 | 2 |
5 | アレン | ビル | 17250 | 4 |
6 | レイノルズ | アリソン | 19500 | 4 |
7 | ジョンソン | ケイティ | 21000 | 3 |
全体テーブルの取得
XYZ Corporationの人事部長は、各従業員の給与と報告情報を提供する月次レポートを受け取ります。 このレポートの生成は、SELECT文の最も単純な形式の例です。 データベーステーブルに含まれるすべての情報(すべての列とすべての行)を取得するだけです。 この結果を達成するためのクエリは次のとおりです。
SELECT *
従業員から
かなり簡単ですね。 select_listに表示されるアスタリスク(*)は、FROM句で識別される従業員のテーブル内のすべての列から情報を取得することをデータベースに通知するために使用されるワイルドカードです。 データベース内のすべての情報を取得するため、WHERE句を使用してテーブルから選択した行を制限する必要はありませんでした。
クエリの結果は次のようになります。
従業員ID | 苗字 | ファーストネーム | 給料 | ReportsTo |
---------- | -------- | --------- | ------ | --------- |
1 | スミス | ジョン | 32000 | 2 |
2 | Scampi | 訴える | 45000 | ヌル |
3 | ケンドール | トム | 29500 | 2 |
4 | ジョーンズ | アブラハム | 35000 | 2 |
5 | アレン | ビル | 17250 | 4 |
6 | レイノルズ | アリソン | 19500 | 4 |
7 | ジョンソン | ケイティ | 21000 | 3 |