Home実験室 − No.0066


        No.0066(SQL)
        二表からデータを拾い、コードを解決する

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

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

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



  1. 学生一覧テーブル(TT01_学生)には、血液型は数値で登録されている。
数値が1ならA型、1ならB型のように、それぞれ血液型に対応しているが、ぱっと見で見辛い。

SQL> select 氏名,血液型 血液型コード from TT01_学生 where rownum < 20 Order by 学生番号; 氏名 血液型コード ---------------------------------------- ------------ 窪田 信玄 3 須藤 貞次 3 黒田 比呂美 3 望月 淳三 1 岩田 昌信 3 菅沼 和奏 1 岩谷 彦太郎 1 島津 昌孝 3 下川 里沙 1 島本 史織 3 中澤 鉄太郎 3 向井 寿男 4 蛭田 香奈 3 水口 勝昭 3 星野 祐介 2 小山 有美 2 井沢 忠雄 1 松村 英之 2 森本 正昭 1 19行が選択されました。 SQL>



  2. 血液型コードと血液型はテーブル「TM06_血液型」に対応関係が記されている。

SQL> Select * from TM06_血液型; 血液型コード 血液型 ------------ ---------- 1 A 2 B 3 O 4 AB SQL>



  3. 上の2つの結果から、2つのテーブルを結合させると、1の結果を見やすくすることが可能になる。

SQL> Select TT01_学生.氏名,TM06_血液型.血液型 from TT01_学生 JOIN TM06_血液型 2 ON TT01_学生.血液型 = TM06_血液型.血液型コード where rownum < 20 Order by 学生番号; 氏名 血液型 ---------------------------------------- ---------- 窪田 信玄 O 須藤 貞次 O 黒田 比呂美 O 望月 淳三 A 岩田 昌信 O 菅沼 和奏 A 岩谷 彦太郎 A 島津 昌孝 O 下川 里沙 A 島本 史織 O 中澤 鉄太郎 O 向井 寿男 AB 蛭田 香奈 O 水口 勝昭 O 星野 祐介 B 小山 有美 B 井沢 忠雄 A 松村 英之 B 森本 正昭 A 19行が選択されました。 SQL>


Accessユーザーだった人には、下のような絵を見せると分かり易いかな?



  4. 血液型なら、数値でもなんとか分かりそうなもんだけど、学部コードなどは数が多すぎるので、
ここはぜひとも日本語の表示にしたい。その場合も、血液型と同じように、関連させたい列をON句に
明示すれば可能になる。ON句をしっかり書かないと直積になってしまうので注意!
(直積については別の実験で解説の予定)

SQL> Select TT01_学生.氏名,TM03_学科.学科名 from TT01_学生 JOIN TM03_学科 2 ON TT01_学生.学科コード = TM03_学科.学科コード where rownum < 20 Order by 学生番号; 氏名 学科名 ---------------------------------------- ---------------------------------------- 窪田 信玄 環境エネルギー化学科 須藤 貞次 情報数理学科 黒田 比呂美 宇宙工学科 望月 淳三 電気システム工学科 岩田 昌信 宇宙工学科 菅沼 和奏 天文学科 岩谷 彦太郎 化学科 島津 昌孝 コンピュータ工学科 下川 里沙 化学科 島本 史織 数学科 中澤 鉄太郎 生物学科 向井 寿男 応用化学科 蛭田 香奈 電気システム工学科 水口 勝昭 情報通信メディア工学科 星野 祐介 物理学科 小山 有美 地球科学科 井沢 忠雄 天文学科 松村 英之 情報通信メディア工学科 森本 正昭 天文学科 19行が選択されました。 SQL>





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


Home実験室 − No.0066

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