第 7章問い合わせ

目次
7.1. 概要
7.2. テーブル式
7.2.1. FROM
7.2.2. WHERE
7.2.3. GROUP BYHAVING
7.3. 選択リスト
7.3.1. 選択リスト項目
7.3.2. 列ラベル
7.3.3. DISTINCT
7.4. 問い合わせの結合
7.5. 行のソート
7.6. LIMITOFFSET

前章までで、テーブルを作成し、これにデータを挿入し、さらに挿入したデータを操作する方法について説明しました。 この章では、データベースからデータを取り出す方法について説明します。

7.1. 概要

データベースからデータを取り出す処理、または、取り出すためのコマンドを問い合わせと言います。 SQLでは、SELECTコマンドを、問い合わせを指定するために使います。 SELECTコマンドの一般的な構文は次のとおりです。

SELECT select_list FROM table_expression [sort_specification]

以降の節では、選択リスト、テーブル式、ソートの仕様について詳細に説明します。

最も単純な問い合わせの形式は、次のようなものです。

SELECT * FROM table1;

table1というテーブルがあるとして、このコマンドはtable1からすべての行のすべての列を取り出します。 (抽出する手段はクライアントアプリケーションによって異なります。 たとえば、psqlプログラムでは、アスキー文字によるテキスト図で画面上にテーブルを表示し、クライアントライブラリでは個々の行と列を取り出す機能を提供します。) 選択リストの指定で*は、テーブル式が持つすべての列を提供することを意味します。 選択リストでは、選択可能な列の一部を選択することも、選択可能な列を使用して計算することもできます。 たとえば、table1に、abcという名前の列がある場合(他の列もあってかまいません)、以下のような問い合わせができます。

SELECT a, b + c FROM table1;

(ここでは、bおよびcは数値型のデータであると仮定します。) 詳細については 項7.3 を参照してください。

FROM table1は、特に単純な形のテーブル式で、読み込むテーブルは1つだけです。 一般に基本テーブルや結合そして副問い合わせなど構成され、テーブル式は複雑になることがあります。 しかし、以下のように、テーブル式をすべて省略し、SELECTコマンドを電卓として使用することもできます。

SELECT 3 * 4;

選択リストの式が様々な結果を返す場合、これはさらに有用です。 たとえば、関数を次のように呼び出すことができます。

SELECT random();