SQLを使用してデータを取得する際、列見出し(列名)を変更するとデータの可読性が大幅に向上します。デフォルトの列名がENAME
やSAL
のような略語だと内容が分かりにくいですが、「社員名」や「給与」といった分かりやすい名前に変更することで、クエリの意図が明確になります。
本記事では、scottスキーマのEMP
表を活用し、初心者から中級者まで役立つ「列見出しの変更方法」を体系的に解説します。基本的な使い方から注意点、応用例、業務での活用方法までを網羅しました。
1. SELECT文で列見出しを変更する基本
SQLで列見出しを変更する際には、以下の形式を使用します。
基本構文
SELECT 列名 AS 新しい列見出し
FROM テーブル名;
または、AS
を省略した形式でも動作します:
SELECT 列名 新しい列見出し
FROM テーブル名;
基本例: ENAMEとSALをわかりやすく変更
以下のクエリでは、ENAME
を「社員名」、SAL
を「給与」に変更しています。
SELECT ENAME AS 社員名, SAL AS 給与
FROM EMP;
実行結果:
社員名 給与
-------- -----
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
補足: 「AS」の省略
次のクエリでも同じ結果を得られます。
SELECT ENAME 社員名, SAL 給与
FROM EMP;
2. ダブルクォート(”)が必要なケース
列見出しに特定の条件が含まれる場合は、**ダブルクォート(” “)**を使う必要があります。
ダブルクォートが必要な条件
- 列見出しにスペースが含まれる場合
- 列見出しが数字で始まる場合
- 列見出しに特殊文字(ハイフン
-
、括弧()
など)が含まれる場合 - Oracleの予約語を列見出しに使用する場合
- 列見出しの大文字・小文字を区別する場合
2.1 スペースを含む列見出し
スペースを含む列見出しはダブルクォートで囲む必要があります。
SELECT ENAME AS "社員 名", SAL AS "月額 給与"
FROM EMP;
実行結果:
社員 名 月額 給与
-------- --------
SMITH 800
ALLEN 1600
WARD 1250
2.2 数字で始まる列見出し
列見出しが数字で始まる場合も、ダブルクォートが必要です。
SELECT ENAME AS "1番目の社員", SAL AS "2024年給与"
FROM EMP;
実行結果:
1番目の社員 2024年給与
-------- --------
SMITH 800
ALLEN 1600
WARD 1250
2.3 特殊文字を含む列見出し
特殊文字(例: ハイフン-
、括弧()
など)が含まれる場合もダブルクォートが必須です。
SELECT ENAME AS "社員-名前", SAL AS "給与(月額)"
FROM EMP;
実行結果:
社員-名前 給与(月額)
-------- ---------
SMITH 800
ALLEN 1600
WARD 1250
2.4 Oracleの予約語を使用する場合
Oracleの予約語(例: SELECT
, FROM
, GROUP
など)を列見出しに使用する場合、ダブルクォートを使わないとエラーになります。
SELECT ENAME AS "SELECT", SAL AS "FROM"
FROM EMP;
実行結果:
SELECT FROM
-------- -----
SMITH 800
ALLEN 1600
2.5 大文字・小文字を区別する場合
デフォルトではOracleは列別名を大文字に変換しますが、小文字や混在させたい場合はダブルクォートを使用します。
SELECT ENAME AS "employeeName", SAL AS "MonthlySalary"
FROM EMP;
実行結果:
employeeName MonthlySalary
------------- -------------
SMITH 800
ALLEN 1600
3. 応用例: 業務で役立つ列見出しの変更
例1: 計算結果を含む列見出し
計算式を用いた列見出しの変更も可能です。
SELECT ENAME AS 社員名, SAL AS 基本給, SAL * 12 AS "年収"
FROM EMP;
実行結果:
社員名 基本給 年収
-------- ----- ------
SMITH 800 9600
ALLEN 1600 19200
WARD 1250 15000
例2: 名前に役職を付加する
名前に役職を付けて分かりやすく表示します。
SELECT ENAME || ' (Manager)' AS "社員と役職", JOB AS 職務内容
FROM EMP
WHERE JOB = 'MANAGER';
実行結果:
社員と役職 職務内容
---------------- ---------
JONES (Manager) MANAGER
BLAKE (Manager) MANAGER
CLARK (Manager) MANAGER
4. よくあるエラーとその解決法
エラー1: ダブルクォートを省略
SELECT ENAME AS 社員 名, SAL AS 月額 給与
FROM EMP;
エラー内容:
ORA-00923: FROMキーワードが指定の位置にありません。
解決策:
スペースや特殊文字を含む列見出しはダブルクォートで囲みます。
SELECT ENAME AS "社員 名", SAL AS "月額 給与"
FROM EMP;
エラー2: Oracleの予約語を使用
SELECT ENAME AS SELECT, SAL AS FROM
FROM EMP;
エラー内容:
ORA-00923: FROMキーワードが指定の位置にありません。
解決策:
予約語をダブルクォートで囲みます。
SELECT ENAME AS "SELECT", SAL AS "FROM"
FROM EMP;
5. まとめ
- 列見出しを変更する利点
データの意味を直感的に理解できるようになり、クエリの意図が明確になります。 - ダブルクォートが必要なケース
スペース、数字で始まる列名、特殊文字、予約語、大文字・小文字を区別する場合に必要です。 - 実務で役立つ応用
計算結果や文字列結合を使ったカスタム列見出しは、レポート作成やデータ分析に非常に便利です。
この記事を活用して、より読みやすく効率的なSQLクエリを作成しましょう!
[参考]
Oracle Database SQL言語リファレンス 19c
コメント