IBM® Informix® 12.10

選択と射影

リレーショナル データベースでいう選択 とは、1 つの表から特定の条件に合致した行を水平方向 に抽出することを意味します。選択を行う SELECT 文は、表の中のいくつかの行とその行に含まれる列をすべて戻します。選択は、SELECT 文の WHERE 節を使用して実装されます。以下の図にその例を示します。
図 1. 問合せ
SELECT * FROM customer WHERE state = 'NJ'; 
この問合せを行うと、結果に示すような結果になります。表 customer の中の指定条件に合致した一部の行について、その行に属するすべての列が抽出されます。この例では、DB-Access が個別行の各列のデータを表示します。
図 2. 問合せ結果
customer_num  119
fname         Bob
lname         Shorter
company       The Triathletes Club
address1      2405 Kings Highway
address2
city          Cherry Hill
state         NJ
zipcode       08002
phone         609-663-6079

customer_num  122
fname         Cathy
lname         O‘Brian
company       The Sporting Life
address1      543d Nassau
address2
city          Princeton
state         NJ
zipcode       08540
phone         609-342-0054

関係型の用語では、射影 は、一意な行を保持している 1 つの表の列から垂直方向のサブセットを取得することと定義されます。射影を行う、この種の SELECT 文は、表の中のいくつかの列とその列に含まれる行をすべて戻します。

射影は、SELECT 文の Projection 節の射影リストを使用して実装されます。以下の図にその例を示します。
図 3. 問合せ
SELECT city, state, zipcode FROM customer;
結果には、表 customer と同数の行がありますが、その表にある列のサブセットだけが射影 されます。各行から少量のデータのみが選択されるため、DB-Access は行からのすべてのデータを 1 行で表示できます。
図 4. 問合せ結果
city            state zipcode

Sunnyvale       CA    94086
San Francisco   CA    94117
Palo Alto       CA    94303
Redwood City    CA    94026
Los Altos       CA    94022
Mountain View   CA    94063
Palo Alto       CA    94304
Redwood City    CA    94063
Sunnyvale       CA    94086
Redwood City    CA    94062
Sunnyvale       CA    94085
⋮
Oakland         CA    94609
Cherry Hill     NJ    08002
Phoenix         AZ    85016
Wilmington      DE    19898
Princeton       NJ    08540
Jacksonville    FL    32256
Bartlesville    OK    74006
通常使用する SELECT 文のほとんどは、選択と射影の両方を同時に行います。このような問合せでは、以下の図に示すように、表の一部の行と列が戻されます。
図 5. 問合せ
SELECT UNIQUE city, state, zipcode
   FROM customer
   WHERE state = 'NJ';
図 6 では、表 customer の一部の行と列が抽出されています。
図 6. 問合せ結果
city            state zipcode 

Cherry Hill     NJ    08002  
Princeton       NJ    08540  


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月