20代プログラマー女が資格取得してみるブログ

ORACLE MASTERの資格取得に向けて勉強内容を記録します。

ORACLE MASTER Bronze 11g SQL基礎I 第2章の勉強記録

さて、第2章はSELECT句。 

上から順番にみていきます。

 

 【SELECT句の機能】

主な3つの機能の説明になります。

  • 投影→列のデータのみ選択し、抽出すること。
  • 選択→行のデータのみ選択し、抽出すること。
  • 結合→複数の表からデータを1つに結合し、抽出すること。

 

SQLに入る前の考え方の話です。

 

【基本的なSQL文(列の選択)】

構文の書き方、キーワード、句、文の違いについての説明。

  • 全項目取得したい場合はSELECT句で「*」を指定する。
  • DISTINCTは同じ内容のデータが複数ある場合、1行のみ表示する。

 

その他ルールとして、

  • 大文字と小文字は区別されない。
  • SQLは改行して書ける。
  • キーワードの省略不可

が挙げられていました。

 

【SELECT文の使い方】

1.算術演算子

  • SELECT句で指定する項目は、算術演算子を利用して計算できる。
  • 「*」「/」は「+」「-」より優先して計算される。
  • 式は左から右へ順番に実行される。

 

普通の計算式のルールにのっとっていますよ、ということです。

 

2.NULL値

NULL値を含む式の計算結果はなにがあってもNULLだよ、というお話。

「NULL+1」も「(3+NULL)/4」も、結果はNULL。

 

3.列別名

列名の直後に指定することができる。ASキーワードは省略可能と書かれていましたが、基本的には付けておいたほうが無難でしょうね。

読みやすいですし。

 

また、列別名を囲う二重引用符は、列ヘッダーをネーミング規則に沿わない形で表示させたい場合につけるもの、とありましたが、これ、わかってなかったです。

今後は用途によって使い分けようと思いました。

 

4.連結演算子

文字列と文字列を連結する「||」について。

ここでポイントなのは、文字列とNULLを結合したらどうなるのか、ということ。

答えは、文字列だけが残ります。

 (「NULL||'あ'」→「'あ'」)

 

5.リテラル文字列

何も考えずに使ってましたが、定数なんですね。

ポイントは、文字リテラル、日付リテラルは一重引用符で囲む必要があるけれど、数字リテラルは囲まないでいいということです。

 

6.代替引用演算子

リテラル内に「'」を入れるときどうすればいいの?というお話。

「''」で表現するのは知ってましたが、代替引用符演算子といって、開始デリミタと終了デリミタを一重引用符で囲ったあと、先頭にqをつける方法は初めて知りました。

(例、Q'<テスト>')

 こんなの、使ってる人いるのかな…。

 

7.DISTINCTキーワードについて

指定した列の重複したデータが削除される。

 

8.UNIQUEキーワードについて 

DISTINCTキーワードと同じ使い方、同じ意味で、重複行を削除する。

 

 【DESCRIBEコマンド】

表やらビューの定義を表示できる。

短縮形の「DESC」も利用可能、とあるけれど、 むしろ短縮形しか知らなかった。 

 

【演習問題】

3問中3問正解。

 

【第2章所感】

たかがSELECT文でも、理解できていないところが結構あり、恥ずかしい思いをしました。

 

 

Bronze Oracle Database 11g SQL基礎I編(試験番号:1Z0-051) (DVD付) (オラクルマスター教科書)

Bronze Oracle Database 11g SQL基礎I編(試験番号:1Z0-051) (DVD付) (オラクルマスター教科書)