Home実験室 − No.0020


        No.0020(SQL)
        計算結果をSelectする

■環境
  □OS: Windows XP Professional SP3
  □Oracle: Oracle Database 11g R2 (Standard)
  □OSログインユーザ: ORA_DBAグループ
  □Oracleユーザ: dicdic(実験用ユーザー) → 実験環境構築スクリプト

■実験
  0. 実験ユーザー「dicdic」でコネクトする。

SQL> conn dicdic/Oracle11g 接続されました。 SQL>



  1. 【SQLを使った計算】 Dual表に対して計算結果を問い合わせる。

SQL> SELECT 8*4 FROM DUAL; 8*4 ---------- 32 SQL>



  2. ちょっと見出しを変えてみる。スペースを空けて別列名を定義することもできる。

SQL> SELECT 8*4 かけざん FROM DUAL; かけざん ---------- 32 SQL>



  3. 【Nullを使った計算式】 Nullを計算に入れると、必ず答えはNullになる。
     なるほど、Nullはゼロという扱いでもないんだな。でもエラーにもならないし。0というか、無ってかんじかな。

SQL> SELECT 8+Null かけざん FROM DUAL; かけざん ---------- SQL>



  4. 【文字と計算】 計算式に文字を入れたらエラーになる。こりゃ当然か...。文字列だか数式だかわからんからしょうがないよね。

SQL> SELECT 8*Nul かけざん FROM DUAL; SELECT 8*Nul かけざん FROM DUAL * 行1でエラーが発生しました。: ORA-00904: "NUL": 無効な識別子です。 SQL>



  5. いちおう、四則演算の規則に従うらしい。

SQL> SELECT 8*4+10/2 四則演算 FROM DUAL; 四則演算 ---------- 37 SQL>



  6. カッコにも対応。

SQL> SELECT 8*(4+1) かけざん FROM DUAL; かけざん ---------- 40 SQL>



  7. シングルコーテーションで括ると文字として認識される。

SQL> SELECT '8*4' もじ FROM DUAL; も --- 8*4 SQL>



  8. ダブルコーテーションだとエラーになる。

SQL> SELECT "8*4" もじ FROM DUAL; SELECT "8*4" もじ FROM DUAL * 行1でエラーが発生しました。: ORA-00904: "8*4": 無効な識別子です。 SQL>



  9. 列の別名はダブルコーテーションで括ってもよいのね。ややこしいなぁ。

SQL> SELECT '8*4' "もじ" FROM DUAL; も --- 8*4 SQL>



  10. 【0による除算】 これはエラーになって当然だよね。

SQL> SELECT 100/0 FROM DUAL; SELECT 100/0 FROM DUAL * 行1でエラーが発生しました。: ORA-01476: 除数がゼロです。 SQL>



  11. やはりNullを含む計算の結果はNull。エラーにならないのがなんかへんな感じ...。

SQL> SELECT 100/NULL FROM DUAL; 100/NULL ---------- SQL>





    【PR】    Oracle実験室監修  『Oracleアーキテクチャ鳥瞰図』 PDF  (Oracleのアーキテクチャを一目で俯瞰できるイラスト)  


Home実験室 − No.0020

© 2011-2011   Amateur Laboratory of ORACLE
inserted by FC2 system