Oracleデータベースを学ぶ上で最初に触れることになるのが SELECT文です。
このSELECT文を正しく理解することは、今後のSQLスキル向上において重要な土台となります。
本記事では、以下の構成で解説します。
- SELECT文の基本構文と実行例
- WHERE句やORDER BY句の使い方
- テキスト図による理解補助
- Oracleの学習用「SCOTTスキーマ」の導入手順
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
📘 1. SELECT文とは?
SELECT文とは、Oracleデータベースから必要な情報(データ)を取り出すSQL文です。最も基本的なSQL文であり、日々の業務でも頻繁に使用されます。
【図解】SELECT文の役割
┌──────────────┐
│ テーブル:EMP │
├────┬──────┬────────┤
│EMPNO│ENAME │JOB │
├────┼──────┼────────┤
│7369 │SMITH │CLERK │
│7499 │ALLEN │SALESMAN│
└────┴──────┴────────┘
SELECT empno, ename FROM emp;
↓
+--------+--------+
| EMPNO | ENAME |
+--------+--------+
| 7369 | SMITH |
| 7499 | ALLEN |
+--------+--------+
🧱 2. SELECT文の基本構文
SELECT 列名1, 列名2, ...
FROM テーブル名;
✅ 使用例
SELECT empno, ename, job
FROM emp;
これは emp テーブルから社員番号・名前・職種を取得するSQLです。
✅ すべての列を取得したい場合(SELECT *)
SELECT *
FROM emp;
実務ではパフォーマンスや保守性の観点から、
*よりも必要な列のみ指定することが推奨されます。
🎯 3. WHERE句で条件を指定する
SELECT 列名
FROM テーブル名
WHERE 条件;
✅ 例:職種が”CLERK”の社員だけ抽出
SELECT empno, ename, job
FROM emp
WHERE job = 'CLERK';
✅ 数値の比較
SELECT empno, ename
FROM emp
WHERE empno >= 7500;
✅ NULLの判定は「IS NULL」を使用
SELECT empno, ename
FROM emp
WHERE comm IS NULL;
= NULLや!= NULLはOracleでは使えません。
🔃 4. ORDER BY句で並び替え
検索結果を並び替える場合には ORDER BY 句を使用します。
SELECT empno, ename
FROM emp
ORDER BY empno DESC;
ASC(昇順):デフォルトDESC(降順):大きい順
【図解】ORDER BYの前後
Before:
EMPNO
-----
7369
7900
7499
ORDER BY empno DESC:
EMPNO
-----
7900
7499
7369
🧪 5. SELECT文 練習問題
-- 給与が3000以上の社員を昇順表示
SELECT empno, ename, sal
FROM emp
WHERE sal >= 3000
ORDER BY sal;
-- 職種がSALESMANで、コミッションがNULLの社員
SELECT empno, ename
FROM emp
WHERE job = 'SALESMAN'
AND comm IS NULL;
🧰 6. 実習用サンプルスキーマ「SCOTT」のインストール方法
本記事では emp テーブルなどを例にしていますが、これらは Oracle に付属する学習用スキーマ「SCOTT」に含まれています。
SCOTTスキーマを使用するには、以下のスクリプトを実行して導入する必要があります。
✅ インストール手順(CDB構成でなくてもOK)
-- SYSDBAでログイン後に実行
@?/rdbms/admin/utlsampl.sql
?は$ORACLE_HOMEを意味し、自動展開されます。
✅ PDB環境で実行する場合の補足
CDB構成の環境では、PDBに接続してから実行してください。
-- CDBに接続している場合
ALTER SESSION SET CONTAINER = PDB1;
-- または直接PDBに接続
CONNECT sys/password@PDB1 AS SYSDBA
-- その後にスクリプトを実行
@?/rdbms/admin/utlsampl.sql
✅ 作成される内容
- ユーザー:
SCOTT - パスワード:
TIGER - テーブル:
EMP,DEPT,BONUS,SALGRADE
🔚 7. まとめ
| 要素 | 解説 |
|---|---|
| SELECT | データを取得 |
| FROM | データを取得するテーブルを指定 |
| WHERE | 条件指定で絞り込み |
| ORDER BY | 結果を並び替え |
| SCOTTスキーマ | Oracle学習用のテーブル。utlsampl.sqlで導入可能 |
Oracle SQLの世界に入るための最初の一歩がSELECT文です。
まずは SCOTT スキーマを使ってたくさんクエリを実行し、データベースの感覚を身につけていきましょう!
[参考]
Oracle Database SQL言語リファレンス 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?




コメント