はじめてのOracle SQL:SELECT文の基本とSCOTTスキーマでの実践

SQL

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専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました