前章までで、テーブルを作成し、これにデータを挿入し、さらに挿入したデータを操作する方法について説明しました。 本章では、データベースからデータを取り出す方法について説明します。
データベースからデータを取り出す処理、または、取り出すためのコマンドを問い合わせと言います。 SQLでは、SELECTコマンドを、問い合わせを指定するために使います。 SELECTコマンドの一般的な構文は次の通りです。
SELECT select_list FROM table_expression [sort_specification]
以降の節では、選択リスト、テーブル式、ソートの仕様について詳細に説明します。
単純な問い合わせの形式は、次のようなものです。
SELECT * FROM table1;
table1というテーブルがあるとして、このコマンドはtable1から全ての行の全ての列を取り出します (抽出する手段はクライアントアプリケーションによって異なります。 例えば、psqlプログラムでは、アスキー文字によるテキスト図で画面上にテーブルを表示し、クライアントライブラリでは個々の行と列を取り出す機能を提供します)。 選択リストの指定で*は、テーブル式が持つ全ての列を提供することを意味します。 選択リストでは、選択可能な列の一部を選択することも、選択可能な列を使用して計算することもできます。 例えば、table1に、a、b、cという名前の列がある場合(他の列があっても構いません)、以下のような問い合わせができます。
SELECT a, b + c FROM table1;
(ここでは、bおよびcは数値型のデータであると仮定します。) 詳細については項7.3を参照してください。
FROM table1は、特に単純な形のテーブル式で、読み込むテーブルは1つだけです。 一般に基本テーブルや結合そして副問い合わせなど構成され、テーブル式は複雑になることがあります。 しかし、以下のように、テーブル式を全て省略し、SELECTコマンドを電卓として使用することもできます。
SELECT 3 * 4;
選択リストの式が様々な結果を返す場合、これはさらに有用です。 例えば、関数を次のように呼び出すことができます。
SELECT random();