SELECT文について

Oracle Master Silver

SELECT文はOracleデータベースを操作する上で最も基本的かつ重要なSQL文です。この文を使用することで、テーブルから必要な情報を抽出したり、条件を指定してデータを絞り込むことができます。本記事では、SELECT文の構文、基本例、応用例に加え、ベストプラクティスや注意点も詳しく解説します。


SELECT文の基本構文

以下がSELECT文の基本的な構文です。

SELECT カラム名1, カラム名2, ...
FROM テーブル名
WHERE 条件
ORDER BY カラム名 [ASC|DESC];

各キーワードの詳細

  1. SELECT:取得したいカラムを指定します。*を使用するとすべてのカラムを取得可能ですが、必要最小限のカラムを指定することを推奨します。
  2. FROM:データを抽出する元となるテーブルを指定します。
  3. WHERE:条件を設定することでデータを絞り込みます。効率的なクエリにはインデックスを考慮した条件設定が重要です。
  4. ORDER BY:結果を指定したカラムで並び替えます。デフォルトは昇順(ASC)です。
  5. DISTINCT:重複を排除したデータを取得します。

SELECT文の基本使用例

以下に、SELECT文を使用した具体的な例を示します。

1. テーブルの全データを取得

「EMP」テーブルの全てのデータを取得します。ただし、実際の運用では*を避け、必要なカラムを明示することが推奨されます。

SELECT *
FROM EMP;

2. 必要なカラムのみを取得

「ENAME」と「JOB」カラムのみを取得します。特定のカラムを明示することで、パフォーマンスが向上します。

SELECT ENAME, JOB
FROM EMP;

3. WHERE句を使用したデータの絞り込み

部門番号が「10」の社員を取得します。条件に適したインデックスが存在する場合、クエリ性能が向上します。

SELECT ENAME, JOB, DEPTNO
FROM EMP
WHERE DEPTNO = 10;

4. ORDER BY句を使用した並び替え

部門番号順(昇順)で社員データを並び替えます。

SELECT ENAME, JOB, DEPTNO
FROM EMP
ORDER BY DEPTNO ASC;

5. DISTINCTを使用した重複の排除

部門番号(DEPTNO)の重複を排除して取得します。

SELECT DISTINCT DEPTNO
FROM EMP;

6. 別名(ALIAS)を使用したカラム名の変更

カラム名を分かりやすく変更して表示します。

SELECT ENAME AS “社員名”, JOB AS “職種”
FROM EMP;

SELECT文の応用例

1. 集計関数を使用したデータの要約

「EMP」テーブルの社員数を取得します。

SELECT COUNT(*) AS “社員数”
FROM EMP;

2. GROUP BY句を使用したグループ化

部門ごとの平均給与を計算します。

SELECT DEPTNO, AVG(SAL) AS “平均給与”
FROM EMP
GROUP BY DEPTNO;

3. HAVING句を使用したグループ化条件の設定

平均給与が3000以上の部門を取得します。

SELECT DEPTNO, AVG(SAL) AS “平均給与”
FROM EMP
GROUP BY DEPTNO
HAVING AVG(SAL) >= 3000;

4. サブクエリを使用した条件の設定

最高給与の社員を取得します。

SELECT ENAME, SAL
FROM EMP
WHERE SAL = (SELECT MAX(SAL) FROM EMP);

5. JOINを使用した複数テーブルの結合

「EMP」テーブルと「DEPT」テーブルを結合して、部門名を取得します。

SELECT E.ENAME, E.JOB, D.DNAME
FROM EMP E
JOIN DEPT D ON E.DEPTNO = D.DEPTNO;

ベストプラクティスと注意点

  1. カラムの明示
    • SELECT *を避け、必要なカラムのみを指定することで、クエリの効率を向上させます。
  2. インデックスの活用
    • WHERE句やJOIN条件でインデックスが使用されるように設計すると、性能が向上します。
  3. 実行計画の確認
    • EXPLAIN PLANを使用してクエリの実行計画を確認し、最適化を行いましょう。
  4. 適切な権限設定
    • SELECT文を使用するユーザーには必要最小限の権限を付与することで、セキュリティを確保します。

まとめ

SELECT文は、データベース操作の基本でありながら、さまざまな応用が可能な強力なツールです。本記事では基本構文から応用例、そしてベストプラクティスまでを詳しく解説しました。実践を通じてこれらの技術を習得し、データベース操作スキルを向上させましょう。さらなる学びの一歩として、複雑なクエリの構築やパフォーマンスチューニングにも挑戦してみてください。

[参考]
Oracle Database SQL言語リファレンス 19c

コメント

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