Teradata-データ操作
この章では、Teradataテーブルに格納されているデータを操作するために使用されるSQLコマンドを紹介します。
レコードを挿入
INSERT INTOステートメントは、レコードをテーブルに挿入するために使用されます。
構文
以下は、INSERTINTOの一般的な構文です。
INSERT INTO <tablename>
(column1, column2, column3,…)
VALUES
(value1, value2, value3 …);
例
次の例では、レコードをemployeeテーブルに挿入します。
INSERT INTO Employee (
EmployeeNo,
FirstName,
LastName,
BirthDate,
JoinedDate,
DepartmentNo
)
VALUES (
101,
'Mike',
'James',
'1980-01-05',
'2005-03-27',
01
);
上記のクエリが挿入されると、SELECTステートメントを使用してテーブルのレコードを表示できます。
従業員番号 | ファーストネーム | 苗字 | JoinedDate | 部門番号 | 誕生日 |
---|---|---|---|---|---|
101 | マイク | ジェームズ | 2005年3月27日 | 1 | 1980年1月5日 |
別のテーブルから挿入
INSERT SELECTステートメントは、別のテーブルからレコードを挿入するために使用されます。
構文
以下は、INSERTINTOの一般的な構文です。
INSERT INTO <tablename>
(column1, column2, column3,…)
SELECT
column1, column2, column3…
FROM
<source table>;
例
次の例では、レコードをemployeeテーブルに挿入します。次の挿入クエリを実行する前に、employeeテーブルと同じ列定義を持つEmployee_Bkupというテーブルを作成します。
INSERT INTO Employee_Bkup (
EmployeeNo,
FirstName,
LastName,
BirthDate,
JoinedDate,
DepartmentNo
)
SELECT
EmployeeNo,
FirstName,
LastName,
BirthDate,
JoinedDate,
DepartmentNo
FROM
Employee;
上記のクエリが実行されると、employeeテーブルのすべてのレコードがemployee_bkupテーブルに挿入されます。
ルール
VALUESリストで指定された列の数は、INSERTINTO句で指定された列と一致する必要があります。
NOTNULL列には値が必須です。
値が指定されていない場合、NULL可能フィールドにNULLが挿入されます。
VALUES句で指定された列のデータ型は、INSERT句の列のデータ型と互換性がある必要があります。
レコードの更新
UPDATEステートメントは、テーブルからレコードを更新するために使用されます。
構文
以下は、UPDATEの一般的な構文です。
UPDATE <tablename>
SET <columnnamme> = <new value>
[WHERE condition];
例
次の例では、従業員101の従業員部門を03に更新します。
UPDATE Employee
SET DepartmentNo = 03
WHERE EmployeeNo = 101;
次の出力では、EmployeeNo101のDepartmentNoが1から3に更新されていることがわかります。
SELECT Employeeno, DepartmentNo FROM Employee;
*** Query completed. One row found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo DepartmentNo
----------- -------------
101 3
ルール
テーブルの1つ以上の値を更新できます。
WHERE条件が指定されていない場合、テーブルのすべての行が影響を受けます。
別のテーブルの値でテーブルを更新できます。
レコードを削除する
DELETE FROMステートメントは、テーブルからレコードを更新するために使用されます。
構文
以下は、DELETEFROMの一般的な構文です。
DELETE FROM <tablename>
[WHERE condition];
例
次の例では、従業員101をテーブルemployeeから削除します。
DELETE FROM Employee
WHERE EmployeeNo = 101;
次の出力では、従業員101がテーブルから削除されていることがわかります。
SELECT EmployeeNo FROM Employee;
*** Query completed. No rows found.
*** Total elapsed time was 1 second.
ルール
テーブルの1つ以上のレコードを更新できます。
WHERE条件が指定されていない場合、テーブルのすべての行が削除されます。
別のテーブルの値でテーブルを更新できます。