MENU
👇しうが厳選・おすすめのブログ!
しう
【テニス好きブロガー】 
テニス、読書が好きです。IT企業で学んだこともブログに書いています。高校教諭(テニス部顧問)→IT企業。テニス歴12年。人生をより有意義なものにしたいと思い、ブログを書き始めました。Twitterもしています。
アーカイブ

Oracle DB でのSELECT文の使い方【しうの備忘録】

Oracle DB select文

Oracle Database(以下Oracle DB)は世界でもトップクラスのシェアを誇るDBです。

 

今回は、そのOracle DBでのSELECT文についてご紹介します。

 

SQL文の知識は他のDBでも使えることが多いです。

しっかりと身につけていきましょう!

 

しう

SQL文は プログラミング言語と比べて変化がゆっくりやねん!

しう

一度身につけると長い間役立つから、できるようになっていこな!

 

記事の信頼性:未経験からIT企業の受託企業へ転職に成功。現役プログラマーの「しう」がOracle DBについて書いています。

 

👇SQL文の勉強をするなら、この本がおすすめ!


目次

SELECT文

Oracle DB select文

SELECT文についての基本を見てきましょう!

 

Oracle DBではSELECT文について知っておくべきことがあります。

 

また、他のSQL(MySQLなど)でもSELECT文は似ている場合が多いです。

一度身につけると、他のDBの学習時にも役に立ちます!

 

  1. SELECT文の構文
  2. 特定の列を表示
  3. すべての列の表示
  4. 重複する行を1行だけ表示

の順番にご紹介します。

SELECT文の構文

SELECT文の構文は次のようになります!

 

SELECT <列名1> (、<列名2>、・・・) FROM <表名>

※(、<列名2>、・・・)の部分は省略することが可能です。

 

SELECT文の基本となる形です。

暗記してしまうくらいでちょうどいいです。

 

今回は、次のようなテーブルで具体例を見ていきます。

Oracle DB select文
teamPracticeテーブル

特定の列を表示

先ほどの構文を使って、特定の列名を表示してみましょう!

 

例:SELECT member_name FROM teamPractice;

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

すべての列の表示

Oracle DBですべての列を表示したい場合は、列名の部分を*(アスタリスク)にすることで表示できます!

 

例:SELECT * FROM teamPractice;

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

重複する行を1行だけ表示

Oracle DBで列を表示するときに同じ名前のものは重複をさせずに表示することもできます!

 

SELECTの直後にDISTINCTを利用することで重複を除いて表示することができます。

例:SELECT DISTINCT member_name FROM teamPractice;

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果
PC好きな一郎君

すべての列を表示した場合と比べると「member_name = ‘佐藤’」に当てはまる行が一つ減ってるね。

SELECT文での条件検索【Oracle DB】

Oracle DB select文

ここからは、Oracle DBの条件検索についてご紹介します!

 

SELECT文では、WHERE を使うことである条件を満たす行だけを取り出すことができます。

公式:SELECT <列名> FROM <表名> WHERE <条件式>

 

  1. 等価条件(=)
  2. 非等価条件(!=)
  3. 比較条件
  4. IN条件(複数から検索)
  5. BETWEEN条件
  6. LIKE条件(あいまい検索)
  7. NULL条件

の順にご紹介します。

 

PC好きな一郎君

いっぱいあって覚えるのが難しそうだね。

しう

最初から全部覚える必要はないで!

 

しう

使っていくうちに覚えるけど、LIKEとIN条件の使い方は抑えておくと便利やで!

等価条件(=)

Oracle DBで列値と指定した値が等しい行が表示されます。

 

実際に使うときは次のような方法になります。

例:SELECT * FROM teamPractice WHERE score = 75;

 

今回はscoreが75に当てはまる行が表示されます。

Oracle DB select文
表示結果

 

ちなみに、文字列に対してもWHEREは使えます。

注意点としては、文字列の場合はシングルクォーテーション(「’」)で囲むようにしましょう

 

例:SELECT * FROM teamPractice WHERE member_name = ‘山本’;

Oracle DBのWHERE句では、アルファベットの大文字と小文字は区別される点にも気を付けましょう。

非等価条件(!=)

Oracle DBで列値と指定した値が等しくない行が表示されます。

 

例:SELECT * FROM teamPractice WHERE score != 80;

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

 

「!=」以外にも「^=」、「<>」という書き方もあります。

 

しう

実務では、「!=」を使うことが多いで。

比較条件

Oracle DBで比較条件は列値と指定した値の大小関係を比較するための条件です。

 

当てはまる行が表示されます。

 

比較条件には次のようなものがあります。

  • >
  • >=
  • <
  • <=

 

例:SELECT * FROM teamPractice WHERE score > 70;

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

IN条件(複数から検索)

Oracle DBでIN条件は「リストアップした複数の値のいずれかに等しい」行が表示されます。

 

IN条件は次のように利用します。

例:SELECT * FROM teamPractice WHERE score IN (60, 80);

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

 

この場合、scoreが60もしくは80のどちらかに当てはまる行を表示します。

 

IN条件は副問い合わせ(サブクエリ)と一緒に使うと便利です。

必ず押さえておきましょう!

BETWEEN条件

Oracle DBでBETWEEN条件は「列値が上限値と下限値の範囲に含まれる」行が表示されます。

 

BETWEEN条件は次のように利用します。

例:SELECT * FROM teamPractice WHERE score BETWEEN 60 AND 80;

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

 

また、BETWEENを使わずに、AND条件で同じ検索もできます。

例2: SELECT * FROM teamPractice WHERE 60 <= score AND score <= 80;

 

注意:同じ表現にはなりますが、例2より例1の方が負荷が少なくて済みます。
できるだけ例1の方法でBETWEEN条件は利用しましょう!

LIKE条件(あいまい検索)

Oracle DBでLIKE条件は列値が指定したパターン文字列にマッチした行を表示します。

 

LIKE条件では次の2つの特殊文字を使用できます。

特殊文字
% (パーセント) 任意の文字列(空文字を含む)
_ (アンダースコア) 任意の1文字

具体的には次のようにLIKE条件を利用します。

 

前方一致のあいまい検索

例:SELECT member_name,role FROM teamPractice WHERE role LIKE 'c%';

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

 

後方一致のあいまい検索

例:SELECT member_name,role FROM teamPractice WHERE role LIKE '%r';
Oracle DB select文
表示結果

 

文字列の2文字目に「i」があるメンバー

例:SELECT member_name,role FROM teamPractice WHERE role LIKE '_i%';
Oracle DB select文
表示結果

NULL条件

Oracle DBでNULLである条件を検索する場合は、NULL専用の検索条件を利用します。

 

NULL条件は次のように利用します。

例:SELECT * FROM teamPractice WHERE role IS NULL;

 

SELECT文の表示結果は次のようになります。

Oracle DB select文
表示結果

 

一方、NULLでないデータを検索する場合はNOT NULL条件を利用します。

例:SELECT * FROM teamPractice WHERE role IS NOT NULL;

 

👇Oracle DBのSQL文にもっと詳しくなりたい方はこちら!


まとめ

いかがでしたか?

 

今回は、Oracle DBのSELECT文について

  • SELECT文
  • 条件検索【Oracle DB】

の順番でご紹介しました!

 

SELECT文はOracle DB以外でも利用します。

ぜひ、身に付けてみてくださいね!

 

解答・解説に間違いがあれば、お手数ですが下にあるコメントもしくはtwitterよりご連絡ください。

 

☟あわせて読みたい 「しう」のオススメブログ

あわせて読みたい
【独学だけで厳しいと感じたら】無料のプログラミングスクール3選 「しう」はプログラミングの勉強を独学で始めました。 最初はなかなか難しく感じ、配列の利用方法を完ぺきに身につけることさえ、時間がかかりました。   大学のテニス...
あわせて読みたい
プログラミング練習問題集【Java】 まとめ プログラミング(Java)の勉強をしていると、コーディングの練習もしたくなりますよね。   実際に自分で決めた動きをプログラミングで再現できると、技術力が向上しま...
プログラミング(Java・Kotlin)のお...
素数判定プログラムの作り方【元教師がJavaで解説!】 | プログラミング(Java・Kotlin)のお悩み解決ラボ! プログラミング初心者におすすめの課題の1つがJavaでの素数判定のプログラムです。素数を判定するためにどのようなロジックが必要で、そのロジックをJavaで書くにはどのよ...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

【しう】
Java Engineer| 最近はKotlin| 「テニスとJava(プログラミング)のお悩み解決ラボ」運営者| プログラミング・開発現場の学びを主に発信|【経歴】受託系IT企業➪自社開発企業| ∮保有資格∮ : Java Silver,Oracle SQL Silver,基本情報,TOEIC 750,簿記3級

コメント

コメントする

CAPTCHA


目次