はじめに
Teradataで既存のテーブルに列を追加するのは簡単です。このガイドでは、列の追加方法と構文を解説し、よくあるユースケースをコード例と期待される出力とともに紹介します。
前提条件
- SQLの基本的な知識
- Teradataデータベースへのアクセス
‘ALTER TABLE’の使用
ALTER TABLEコマンドは、既存のテーブル構造を変更するために使用します。ALTER TABLEで行える基本的な変更は次のとおりです:
- 新しい列の追加
- 既存の列の変更
- 列の削除
- 列名の変更
このチュートリアルでは、列の追加に焦点を当てます。
列の追加 - 基本構文
テーブルに新しい列を追加する基本構文は次のとおりです:
ALTER TABLE table_name
ADD column_name data_type [optional_constraint];
-
table_name:変更するテーブルの名前。 -
column_name:追加する新しい列の名前。 -
data_type:新しい列のデータ型(例:INTEGER、VARCHAR、DATE)。 -
[optional_constraint]:NOT NULL、UNIQUEなどの制約。
実践例:
環境の準備
まず、デモ用のサンプルテーブルを作成しましょう。
CREATE TABLE Employees (
EmployeeID INTEGER,
FirstName VARCHAR(50),
LastName VARCHAR(50),
HireDate DATE
);
初期データ
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate)
VALUES (1, 'John', 'Doe', '2022-01-15'),
(2, 'Jane', 'Smith', '2021-06-30');
期待される出力:
| EmployeeID | FirstName | LastName | HireDate |
|---|---|---|---|
| 1 | John | Doe | 2022-01-15 |
| 2 | Jane | Smith | 2021-06-30 |
データ型を指定して列を追加
まずはEmployeesテーブルにシンプルな列Emailを追加してみましょう。
ALTER TABLE Employees
ADD Email VARCHAR(100);
列の追加を確認する
列が追加されたことを確認するには、HELP TABLEコマンドを使用します。
HELP TABLE Employees;
期待される出力:
| 列名 | 型 | コメント |
|---|---|---|
| EmployeeID | INTEGER | |
| FirstName | VARCHAR(50) | |
| LastName | VARCHAR(50) | |
| HireDate | DATE | |
| VARCHAR(100) |
デフォルト値付きで列を追加
新しい列をデフォルト値で初期化すると便利な場合があります。デフォルト値が‘Active’の列Statusを追加しましょう。
ALTER TABLE Employees
ADD Status VARCHAR(20) DEFAULT 'Active';
追加を検証する
新しい従業員を挿入して、デフォルト値を確認します。
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate)
VALUES (3, 'Alice', 'Johnson', '2022-03-01');
データを取得して検証します:
SELECT * FROM Employees;
期待される出力:
| EmployeeID | FirstName | LastName | HireDate | Status | |
|---|---|---|---|---|---|
| 1 | John | Doe | 2022-01-15 | NULL | NULL |
| 2 | Jane | Smith | 2021-06-30 | NULL | NULL |
| 3 | Alice | Johnson | 2022-03-01 | NULL | Active |
制約付きで列を追加
次に、NULLを許可しないDepartmentID列を追加しましょう。
ALTER TABLE Employees
ADD DepartmentID INTEGER NOT NULL;
これで、DepartmentIDを指定せずに新しいレコードを挿入しようとするとエラーになります:
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate)
VALUES (4, 'Bob', 'Williams', '2022-02-20'); -- This will fail
期待される出力:
ERROR: Column 'DepartmentID' cannot be null
複数の列を追加
複数の列を追加したい場合は、1つのALTER TABLE文でまとめて行えます。
ALTER TABLE Employees
ADD JobTitle VARCHAR(50),
ADD Salary INTEGER;
追加を確認する
HELP TABLE Employees;
期待される出力:
| 列名 | 型 | コメント |
|---|---|---|
| EmployeeID | INTEGER | |
| FirstName | VARCHAR(50) | |
| LastName | VARCHAR(50) | |
| HireDate | DATE | |
| VARCHAR(100) | ||
| Status | VARCHAR(20) | |
| DepartmentID | INTEGER | |
| JobTitle | VARCHAR(50) | |
| Salary | INTEGER |
まとめ
Teradataのテーブルへの列の追加はシンプルな操作で、必要に応じてデータベーススキーマを拡張できます。紹介した手順と例に従い、データ型、制約、デフォルト値を考慮することで、変更を効果的かつ正確に行えます。
楽しいクエリライフを!
Beekeeper Studioは無料のオープンソースのデータベースGUIです
これまで使った中で最高のSQLクエリ&エディタツールです。データベースの管理に必要なものがすべて揃っています。 - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studioは高速で直感的、そして使いやすいツールです。多数のデータベースに対応し、Windows、Mac、Linuxで快適に動作します。
Beekeeper Studio 利用者の声
「Beekeeper Studioは、これまでのSQLワークフローを完全に置き換えてくれました。高速で直感的、データベース作業が再び楽しくなりました。」
「多くのデータベースGUIを試してきましたが、Beekeeperは機能とシンプルさのバランスが完璧です。とにかくちゃんと動きます。」