DFU, Query, SQL

57. SELECT文の基本

SQLが初めての方のためのSQLの基本を少しずつ紹介する。
SQLはデータ・ベースの処理(検索、作成、更新など)を目的とする
構造化照会言語と呼ばれている。

その中でもSELECT文が最も基本であるのでSELECT文から
紹介する。
SELECT文の基本構文は

SELECT (フィールド1), (フィールド2), …. FROM (データ・ベース) WHERE (レコードの選択)

ORDER BY (順序)

というような型式である。

ライブラリーQTRFILの商品マスター:SHOHIN の商品コード: NV-CF1 のレコードを
抽出するには

SELECT SHCODE, SHNAME, SHTANK, SHSCOD FROM QTRFIL/SHOHIN WHERE SHCODE=’NV-CF1′

という記述になる。
フィールドの記述 SHCODE, SHNAME, SHTANK, SHSCOD は面倒なので総称を表す文字 * を
使えば

SELECT * FROM QTRFIL/SHOHIN WHERE SHCODE=’NV-CF1′

というSELECT文となってこちらのほうが一般的に多く使用されている。
ところでデータ・ベースの記述は

QTRFIL/SHOHIN

としているがSQLの定義によっては QTRFIL.SHOHIN とピリオドを使って表現する場合も
あるので QTRFIL/SHOHIN の記述がエラーになったときはこの記述も試して欲しい。
SQLの実行は

・対話式SQL

・RUNSQLSTMコマンド

・RUNSQLコマンド(ただしToolsで紹介したRUNSQLに限る)

で実行することができる。
次は ToolsのRUNSQLによる実行の例である。

                              SQL の実行  (RUNSQL)                              
                                                                                
  選択項目を入力して,実行キーを押してください。                                
                                                                                
 SQL  . . . . . . . . . . . . . .   SELECT * FROM QTRFIL/SHOHIN  WHERE SHCODE = 
 'NV-CF1'                                                                       
                                                                                
                                                                                
                                                                                
                                                                                
                                                                     ...        
  コミットメント制御  . . . . . .   *RR           *CHG, *UR, *CS, *ALL, *RS...  
  自動コミット  . . . . . . . . .   *NO           *YES, *NO                     
  命名規則  . . . . . . . . . . .   *SYS          *SYS, *SQL                    
  結果セットの表示  . . . . . . .   *YES          *YES, *NO                     
  活動化グループの保存  . . . . .   *TERM         *TERM, *KEEP  

これを実行すると結果は次のように表示される。


    実行キーを押して端末セッションを終了してください。                
   SHCODE     SHNAME                   SHTANK  SHSCOD                 
   NV-CF1      Cカセット編集ビデオ    58000   0002                   
   RUNSQL[141] SELECT * FROM QTRFIL/SHOHIN  WHERE SHCODE =  'NV-CF1'  
   RUNSQL[142] SQL 文を正常に完了しました。                           
   RUNSQL[143]  レコード・ロックを確認してください。

赤字の部分が結果であるがここではわかりやすく赤字で表現しているが
実際には赤字で表示されるわけではない。