現在勉強しているオラクルマスターブロンズ(SQL)についてまとめたものです。
自分のアウトプット用なので見やすさなどは期待しないでください。
SELECT文の基本
SELECT文では、以下の3つの機能を使用してデータを取り出す。
射影・・・特定の列のみを取り出す。
選択・・・特定の行のみを取り出す。
結合・・・複数の表を関連付けて取り出す。
SELECT文の基本構文
| SELECT | 列名 |
| FROM | 表名; |
複数の列からデータを取り出す場合は、列名を**,(カンマ)で区切って**指定する。
その際、指定した順番で列が表示される。
全ての列のデータを取り出したい場合は、アスタリスクを指定する。
その際、表に定義されている列の順番で表示される。
列名などを確認する際にDESCRIBEコマンドを使用すると、表に定義されている列の情報を一覧で確認できる。
SELECT句の色々な指定方法
算術式の使用
取り出す列の値が数値や日付データの場合は、SELECT句に算術式を指定することで計算結果を取り出すことができる。
算術式には列名、定数値(リテラル:SELECT文に含まれる文字、数値または日付)、算術演算子を指定できる。
なお、算術式の中に1つでもNULL値が含まれていると、その算術式の結果もNULL値になる。
列別名の使用
SELECT句に列名や算術式を指定してSQL文を実行すると、その実行結果に表示される列見出しには、指定した列名や算術式が大文字で表示される。
列名が分かりにくい場合や列見出しの大文字・小文字を区別したい場合、複雑な算術式を列見出しとして表示したくない場合などは列別名を指定して列見出しを変更できる。
列別名の設定方法
1. 列名または算術式の後ろに、1つ以上の空白を入れる。
2. 列名または算術式の後ろに、ASキーワードを指定する。
なお、いずれの方法でも、列別名にスペースや特殊文字を使用する場合、また大文字・小文字を区別する必要がある場合は、列別名を**"(二重引用符)で囲む**必要がある。
連結演算子の使用
SELECT句に**||(連結演算子)を指定すると、複数の列値やリテラル、算術式の結果を連結する文字式を記述できる。
なお、文字式の中に文字リテラルや日付リテラルを指定する場合は、それらを'(一重引用符)で囲む**必要がある。
また、文字列リテラルの一部に一重引用符を使用したい場合は、代替引用符(q)演算子を使う。
この演算子を使用すると、SQL文内で以下の文字を独自の引用符デミリタとして指定できる。
- 任意のシングルバイト文字やダブルバイト文字
- []、{}、()、<>の各組合せ
例 []を引用符デミリタとして使用:q'['文字リテラル]'
重複行の削除
実行結果から重複行を削除する場合は、SELECT句のSELECTキーワードの直後にDISTINCTキーワードを指定する(デフォルトではすべての行が表示されるALLキーワードになっている)。
DISTINCTキーワードは、複数の列を取り出す際にも指定できる。
この場合は指定した列の値の組み合わせが一意になる行のみが取り出される。
なお、DISTINCTキーワードはSELECTキーワードの直後に1度だけ記述できる。