Home実験室 − No.0021


        No.0021(SQL)
        Select文に抽出条件を付する(Where)

■環境
  □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> set linesize 1000



  2. 【Where条件指定の基本】条件を指定して検索ができる

SQL> select * from TT01_学生 where 氏名='鈴木 光子'; 学生番号 氏名 氏名カナ 氏名英字 性別 血液型 学科コード 在 最終学歴コード 単位数 TOEIC 生年月日 --------- ---------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- -- -------------- ---------- ---------- ---------- 2013B0330 鈴木 光子 スズキ ミツコ Suzuki Mitsuko 1 4 2531 72 1 91 19940716 SQL>



  3. 検索条件となる文字列はシングルコーテーションで括らないとダメなんだな。

SQL> select * from TT01_学生 where 氏名=鈴木 光子; select * from TT01_学生 where 氏名=鈴木 光子 * 行1でエラーが発生しました。: ORA-00933: SQLコマンドが正しく終了されていません。 SQL>



  4. ダブルコーテーションでもだめか。やはりシングルコーテーションだけか。

SQL> select * from TT01_学生 where 氏名="鈴木 光子"; select * from TT01_学生 where 氏名="鈴木 光子" * 行1でエラーが発生しました。: ORA-00904: "鈴木 光子": 無効な識別子です。 SQL>



  5. イコールの代わりにLikeがつかえるのか。

SQL> select * from TT01_学生 where 氏名 like '鈴木 光子'; 学生番号 氏名 氏名カナ 氏名英字 性別 血液型 学科コード 在 最終学歴コード 単位数 TOEIC 生年月日 --------- ---------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- -- -------------- ---------- ---------- ---------- 2013B0330 鈴木 光子 スズキ ミツコ Suzuki Mitsuko 1 4 2531 72 1 91 19940716 SQL>



  6. 【あいまい検索の基本(前方一致)】 あいまい検索も可能。あいまいにしたい部分を%にすればよいんだな。この場合は前方一致検索。

SQL> select * from TT01_学生 where 氏名 like '鈴木%'; 学生番号 氏名 氏名カナ 氏名英字 性別 血液型 学科コード 在 最終学歴コード 単位数 TOEIC 生年月日 --------- ---------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- -- -------------- ---------- ---------- ---------- 2011B0503 鈴木 雪菜 スズキ ユキナ Suzuki Yukina 1 4 1578 73 1 131 406 19930520 2011B0520 鈴木 勝次 スズキ カツジ Suzuki Katsuji 2 2 2015 74 1 127 518 19920528 2012B0420 鈴木 禎 スズキ タダシ Suzuki Tadashi 2 1 1293 73 1 115 19932005 2011B0896 鈴木 竹志 スズキ タケシ Suzuki Takeshi 2 3 1521 74 1 120 772 19930120 2013B0330 鈴木 光子 スズキ ミツコ Suzuki Mitsuko 1 4 2531 72 1 91 19940716 2014B0012 鈴木 政一 スズキ マサイチ Suzuki Masaichi 2 1 1521 71 1 53 19960221 2014B0567 鈴木 市郎 スズキ イチロウ Suzuki Ichirou 2 2 2531 71 1 42 19940506 7行が選択されました。 SQL>



  7. 【あいまい検索の基本(後方一致)】 この場合は後方一致検索。

SQL> select * from TT01_学生 where 氏名 like '%光'; 学生番号 氏名 氏名カナ 氏名英字 性別 血液型 学科コード 在 最終学歴コード 単位数 TOEIC 生年月日 --------- ---------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- -- -------------- ---------- ---------- ---------- 2011B0053 根岸 光 ネギシ ヒカル Negishi Hikaru 1 1 1407 73 1 132 427 19930707 2009B0151 木村 成光 キムラ ナルミツ Kimura Narumitsu 2 1 1578 74 1 120 892 19900514 2009B0189 大竹 成光 オオタケ ナルミツ Ootake Narumitsu 2 3 2015 74 1 122 935 19910224 2009B0201 西山 宏光 ニシヤマ ヒロミツ Nishiyama Hiromitsu 2 2 2617 74 1 122 771 19901115 2011B0742 亀井 英光 カメイ ヒデミツ Kamei Hidemitsu 2 3 2617 73 1 123 193 19920902 2011B0171 葛西 秀光 カサイ ヒデミツ Kasai Hidemitsu 2 3 2187 73 1 111 19930420 2011B0233 室井 光 ムロイ アキラ Muroi Akira 2 3 1407 73 1 134 533 19920418 2012B0259 橋爪 成光 ハシヅメ ナルミツ Hashizume Narumitsu 2 4 1407 73 1 132 314 19940119 2013B0274 川端 秀光 カワバタ ヒデミツ Kawabata Hidemitsu 2 1 2875 72 1 91 286 19940822 2013B0307 寺沢 成光 テラサワ ナルミツ Terasawa Narumitsu 2 1 2445 72 1 83 888 19941215 2013B0241 福島 光 フクシマ ヒカル Fukushima Hikaru 1 1 2445 72 1 96 227 19940804 2014B0490 野田 成光 ノダ ナルミツ Noda Narumitsu 2 2 2617 71 1 45 19930906 12行が選択されました。 SQL>



  8. 【あいまい検索の基本(部分一致)】 前後をあいまい検索にしてもいいんだな。

SQL> select * from TT01_学生 where 氏名 like '%光%'; 学生番号 氏名 氏名カナ 氏名英字 性別 血液型 学科コード 在 最終学歴コード 単位数 TOEIC 生年月日 --------- ---------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- -- -------------- ---------- ---------- ---------- 2008B0116 小高 光夫 オダカ ミツオ Odaka Mitsuo 2 2 1407 74 1 122 701 19891017 2011B0053 根岸 光 ネギシ ヒカル Negishi Hikaru 1 1 1407 73 1 132 427 19930707 2009B0151 木村 成光 キムラ ナルミツ Kimura Narumitsu 2 1 1578 74 1 120 892 19900514 2009B0189 大竹 成光 オオタケ ナルミツ Ootake Narumitsu 2 3 2015 74 1 122 935 19910224 2009B0201 西山 宏光 ニシヤマ ヒロミツ Nishiyama Hiromitsu 2 2 2617 74 1 122 771 19901115 2011B0716 寺岡 光昭 テラオカ ミツアキ Teraoka Mitsuaki 2 1 2789 74 1 133 863 19920505 2011B0742 亀井 英光 カメイ ヒデミツ Kamei Hidemitsu 2 3 2617 73 1 123 193 19920902 2011B0171 葛西 秀光 カサイ ヒデミツ Kasai Hidemitsu 2 3 2187 73 1 111 19930420 2011B0226 山田 光正 ヤマダ ミツマサ Yamada Mitsumasa 2 2 2445 74 1 138 887 19921219 2011B0232 今村 光政 イマムラ ミツマサ Imamura Mitsumasa 2 2 2531 74 1 138 526 19930310 2011B0233 室井 光 ムロイ アキラ Muroi Akira 2 3 1407 73 1 134 533 19920418 2011B0292 三井 光一 ミツイ コウイチ Mitsui Kouichi 2 4 2531 74 1 140 540 19920731 2011B0388 加藤 光政 カトウ ミツマサ Katou Mitsumasa 2 2 2273 74 1 128 912 19920517 2011B0553 唐沢 光昭 カラサワ ミツアキ Karasawa Mitsuaki 2 2 2531 74 1 123 672 19930222 2011B0877 米沢 光雄 ヨネサワ ミツオ Yonesawa Mitsuo 2 1 2531 74 1 122 573 19921106 2012B0067 千田 光一郎 センダ コウイチロウ Senda Kouichirou 2 1 1350 73 1 208 482 19930919 2012B0147 日下部 光一 クサカベ コウイチ Kusakabe Kouichi 2 3 2273 73 1 134 776 19930830 2012B0259 橋爪 成光 ハシヅメ ナルミツ Hashizume Narumitsu 2 4 1407 73 1 132 314 19940119 2011B0894 矢野 光夫 ヤノ ミツオ Yano Mitsuo 2 3 1350 74 1 137 619 19920512 2013B0274 川端 秀光 カワバタ ヒデミツ Kawabata Hidemitsu 2 1 2875 72 1 91 286 19940822 2013B0307 寺沢 成光 テラサワ ナルミツ Terasawa Narumitsu 2 1 2445 72 1 83 888 19941215 2013B0330 鈴木 光子 スズキ ミツコ Suzuki Mitsuko 1 4 2531 72 1 91 19940716 2012B0532 柴田 光正 シバタ ミツマサ Shibata Mitsumasa 2 4 2703 73 1 112 421 19930906 2013B0042 小山 光枝 オヤマ ミツエ Oyama Mitsue 1 3 1350 72 1 85 382 19940911 2013B0086 服部 光成 ハットリ ミツナリ Hattori Mitsunari 2 3 2531 72 1 100 706 19930618 2013B0087 北田 光枝 キタダ ミツエ Kitada Mitsue 1 1 2187 71 1 42 19950523 2013B0222 板橋 光子 イタバシ ミツコ Itabashi Mitsuko 1 2 2273 72 1 89 345 19950107 2013B0241 福島 光 フクシマ ヒカル Fukushima Hikaru 1 1 2445 72 1 96 227 19940804 2013B0848 本間 光男 ホンマ ミツオ Honma Mitsuo 2 1 1350 72 1 94 19940517 2014B0055 杉村 光男 スギムラ ミツオ Sugimura Mitsuo 2 2 2187 71 1 50 19951125 2013B0598 村井 光信 ムライ ミツノブ Murai Mitsunobu 2 3 2789 72 1 91 19940719 2013B0642 石倉 光男 イシクラ ミツオ Ishikura Mitsuo 2 3 2445 72 1 97 19940415 2013B0646 山元 光政 ヤマモト ミツマサ Yamamoto Mitsumasa 2 2 1521 72 1 85 19950312 2014B0580 高崎 光代 タカサキ ミツヨ Takasaki Mitsuyo 2 3 1350 71 1 61 19950828 2014B0639 細谷 光子 ホソヤ ミツコ Hosoya Mitsuko 1 3 2015 71 1 60 19960129 2014B0250 熊田 光成 クマダ ミツナリ Kumada Mitsunari 2 3 1464 71 1 56 19950721 2014B0463 岩崎 光一 イワサキ コウイチ Iwasaki Kouichi 2 1 1464 71 1 40 19960330 2014B0490 野田 成光 ノダ ナルミツ Noda Narumitsu 2 2 2617 71 1 45 19930906 38行が選択されました。 SQL>



  9. 【あいまい検索の基本(複部分一致)】 これはちょっと無理があるけど、こんなあいまい検索もアリか。

SQL> select * from TT01_学生 where 氏名 like '%木%子%'; 学生番号 氏名 氏名カナ 氏名英字 性別 血液型 学科コード 在 最終学歴コード 単位数 TOEIC 生年月日 --------- ---------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- -- -------------- ---------- ---------- ---------- 2011B0725 青木 麻子 アオキ マコ Aoki Mako 1 3 2789 74 1 129 787 19921213 2013B0330 鈴木 光子 スズキ ミツコ Suzuki Mitsuko 1 4 2531 72 1 91 19940716 2014B0168 梅木 啓子 ウメキ ケイコ Umeki Keiko 1 3 1350 71 1 55 19960323 SQL>



  10. あいまい検索の場合はイコール(=)は使わないらしい。でもエラーにはなってないな。これまたややこしいな。

SQL> select * from TT01_学生 where 氏名 = '鈴木%'; レコードが選択されませんでした。 SQL>



  11. 結果件数が0件の場合にはエラーじゃなくて「レコードが選択されませんでした。」となる。

SQL> select * from TT01_学生 where 氏名 like '%悪魔%'; レコードが選択されませんでした。 SQL>





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


Home実験室 − No.0021

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