20040229

第1章 基本的なSQL文の作成

1-1 SELECT文の機能
■SELECT文は、データベースからデータを取り出すコマンドで、いくつかの種類がある。
射影 特定の列だけを取り出す。
  例)部署表から部署名と場所だけを取り出す場合など
選択 特定の行だけを取り出す。
  例)部門表から部署Noが20の行だけを取り出す場合など
結合 表と表を横につなげる。
  例)部署Noを照合して、部署表と従業員表から各部署毎の従業員名を取り出す場合など

 
1-2 SELECT文の基本構文
■SELECT文の基本構文
  SELECT 列名リスト
   FROM 表明リスト
    [WHERE 検索条件]
    [ORDER BY 並べ替え条件]
説明
列の表示 ある表の特定の列を表示したい場合、SELECT句で列名を指定します。 SELECT FIRST_NAME 
FROM EMPLOYEES;
全列の選択 ある表の全列を表示したい場合、SELECT句で全ての列名を指定するのは非常に手間がかかる。
  →"*"を指定することで1つの表内の全列を指定するのと同じ効果があります。
SELECT * 
FROM EMPLOYEES;
特定の列の選択 複数の列を指定する場合には列と列の間を","で区切ります。 SELECT DEPARTMENT_ID, LAST_NAME 
FROM EMPLOYEES;
一意な値の選択 重複する行を除いて表示したい場合、SELECT句にてDISTINCTを指定することにより、一意な値だけを表示します。 SELECT DISTINCT MANAGER_ID 
FROM EMPLOYEES;
算術式 数値データはSELECT句において算術演算子を使用して計算することができます。
  優先順位1:乗算(*), 除算(/)
  優先順位2:加算(+), 減算(-)
SELECT FIRST_NAME, LAST_NAME, SALARY*12 
FROM EMPLOYEES;
文字列 連結演算子( || )を使用して、列と列、リテラル文字列と列を連結して表示することができます。 SELECT 'FULL NAME' || FIRST_NAME || LAST_NAME 
FROM EMPLOYEES;
NULL フィールドに値が含まれていない場合をNULL値といいます。
数値のゼロや文字列の空白とは異なり、値が無い、割り当てられない、不明と言った意味を持つ値です。
→NVL関数
 


1-3 SQL*PLUS
■SQL*PLUSとはOracleとのデータのやり取りを行うためのアプリケーションで、SQL文を簡単に編集して送受信するツール

■SQL*Plusバッファ編集コマンド
コマンド 説明
A[PPEND] text 行末にtextを追加できる
C[HANGE] 文字を変更する。区切り文字は英数字以外の記号を使用できる
区切り文字を”/”にした例 C/old/new
CL[EAR] バッファクリアする
DEL 行を削除する
I[NPUT] 行を追加する
L[IST] バッファ内の全行リスト表示する
L[IST] n バッファ内のn行リスト表示する
R[UN] バッファ内のリスト表示後、実行する
/ バッファ内のリスト表示せず、実行する
n n番目の行をを現在行とする
n text n番目の行をtextに上書きする
0 text バッファの先頭に指定したtextで行を挿入する

■SQL*Plusファイル編集コマンド
コマンド 説明
QUIT | EXIT SQL*Plusを終了する。
START | @ ファイル名 ファイルを実行する。
ED[IT] ファイル名 OSのエディタを起動し、バッファ内のSQL、ファイルを編集する
SAVE ファイル名 [REPLACE] バッファ内のSQLをファイルに保存する
GET ファイル名 ファイル内のSQLをバッファにロードする。