SQL のエイリアスは、クエリの読み書きを容易にするために列またはテーブルに与えられる一時的な名前です。これらはデータベース内の実際の名前を変更せず、クエリの実行中のみ存在します。
- 長い名前や複雑な名前を読みやすくする
- 結合とサブクエリを簡素化する
- 結果セットの明確性の向上
- 複数テーブルのクエリでの名前の競合を回避する
SQL には 2 種類のエイリアスがあります。
- 列の別名: 結果セット内の列の一時的な名前。
- テーブルの別名: クエリ内で使用されるテーブルの一時的な名前。
SQL エイリアスの例
以下を使用しますCustomerすべての SQL エイリアスの概念を示す表。このテーブルには、ID 名、国、年齢、電話番号などの顧客情報が含まれています。
CREATE TABLE Customer (
CustomerID INT PRIMARY KEY
CustomerName VARCHAR(50)
LastName VARCHAR(50)
Country VARCHAR(50)
Age INT
Phone VARCHAR(15)
);
-- Inserting sample data into the Customer table
INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone)
VALUES
(1 'Shubham' 'Thakur' 'India' 23 '9876543210')
(2 'Aman' 'Chopra' 'Australia' 21 '9876543211')
(3 'Naveen' 'Tulasi' 'Sri Lanka' 24 '9876543212')
(4 'Aditya' 'Arpan' 'Austria' 21 '9876543213')
(5 'Nishant' 'Jain' 'Spain' 22 '9876543214');
出力:
| 顧客ID | 顧客名 | 苗字 | 国 | 年 | 電話 |
|---|---|---|---|---|---|
| 1 | 疑い | タークール | インド | 23 | 9876543210 |
| 2 | 安全 | チョプラ | オーストラリア | 21 | 9876543211 |
| 3 | ナヴィーン | トゥラシ | スリランカ | 24 | 9876543212 |
| 4 | アディティア | アルパン | オーストリア | 21 | 9876543213 |
| 5 | ニシャント | ジャイナ教 | スペイン | 22 | 9876543214 |
1. 列のエイリアス
列の別名は、クエリの出力のためだけに列の名前を変更するために使用されます。これらは次の場合に役立ちます。
- 集計データの表示
- 結果を読みやすくする
- 計算の実行
構文:
SELECT column_name AS alias_name
FROM table_name;
次の表では、引数について詳しく説明します。
- 列名: エイリアス名を作成する列。
- 別名: 列またはテーブルに割り当てる一時的な名前。
- として: オプションです。指定しない場合、クエリの実行には影響しません。
例 1: 列の名前を変更するための列エイリアス
CustomerID を取得し、結果セット内の ID として名前を変更するには
SELECT CustomerID AS id
FROM Customer;
出力:
| ID |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
2. テーブルの別名
テーブル エイリアスは、クエリ実行中にテーブルに一時的な名前を付ける場合に使用します。テーブル エイリアスは、特に同じテーブルが複数回参照される場合 (自己結合など)、JOIN 操作でクエリを簡素化するのに特に役立ちます。
例 2: テーブルを結合するためのテーブル エイリアス
Customer テーブルをそれ自体と結合して、国が同じで年齢が 21 歳の顧客を検索したいと考えています。Customer テーブルの各インスタンスにテーブル エイリアスを使用します。
クエリ:
SELECT c1.CustomerName c1.Country
FROM Customer AS c1 Customer AS c2
WHERE c1.Age = c2.Age AND c1.Country = c2.Country;
出力:
| 顧客名 | 国 |
|---|---|
| 疑い | インド |
| 安全 | オーストラリア |
| ナヴィーン | スリランカ |
| アディティア | オーストリア |
| ニシャント | スペイン |
ここで、c1 と c2 は、Customer テーブルの 2 つのインスタンスのエイリアスです。
列とテーブルの別名の結合
21 歳以上の顧客を取得し、わかりやすくするために列の名前を変更したいと考えています。テーブルと列の両方のエイリアスを使用します。
クエリ:
Javaスライス
SELECT c.CustomerName AS Name c.Country AS Location
FROM Customer AS c
WHERE c.Age >= 21;
出力:
| 名前 | 位置 |
|---|---|
| 疑い | インド |
| 安全 | オーストラリア |
| ナヴィーン | スリランカ |
| アディティア | オーストリア |
| ニシャント | スペイン |
SQL エイリアスの実際的な使用法
- 読みやすさの向上: 複雑な名前を短くして理解しやすくします。
- クエリを簡素化します。 特に結合における繰り返しを減らします。
- 出力をクリア: より意味のある結果を得るために列の名前を変更します。
- 競合を回避します: 複数テーブルのクエリでの名前の衝突を防ぎます。