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付) (オラクルマスター教科書)
- 作者: 株式会社システム・テクノロジー・アイ林優子
- 出版社/メーカー: 翔泳社
- 発売日: 2008/12/03
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 124回
- この商品を含むブログ (14件) を見る