データベース - SQL 基本構文 - UPDATE DELETE SELECT

 クラウディア
1. UPDATE
2. UPDATE ~ SELECT
3. DELETE
4. SELECT
5. GRANT

1. UPDATE

 UPDATE の基本形は

UPDATE
    テーブル名
SET
    カラム名1 = 値1,
    カラム名2 = 値2,
    カラム名3 = 値3,
    ...
WHERE
    条件;

2. UPDATE ~ SELECT

 「テーブルA」と似た構成の「テーブルB」が存在していて、双方に同じ型の「カラムC」「カラムD」が存在するとします。  「テーブルA」の「カラムC」に「テーブルA」「テーブルB」の「カラムD」が一致する「テーブルB」の「カラムC」の値で更新したいとき。

UPDATE
	テーブルA
SET
	カラムB =
	(SELECT
		カラムB
	FROM
		テーブルC
	WHERE
    	テーブルC.カラムD = テーブルA.カラムD
	);
 「IBM DB2」以外ではやってみてませんが、とりあえず「IBM DB2」ではうまくいきました。  複数行カラムも設定できます。

UPDATE
	テーブルA
SET
	(カラムB, カラムC =
	(SELECT
		カラムB, カラムC
	 FROM
		テーブルC
	 WHERE
		テーブルC.カラムE = テーブルA.カラムE
	);
 てな感じ。  別に、テーブル同士が関連づいてなくても、一定の条件をつけたり(あるいは、条件をつけなくでも)可能。

UPDATE
	テーブルA
SET
	(カラムB, カラムC =
	(SELECT
		カラムB, カラムC
	 FROM
		テーブルC
	 WHERE
		テーブルC.カラムE = 値E
	)
WHERE
	テーブルA.カラムF = 値F;
 と。  この場合、末尾の「テーブルA.」の修飾は、なくても機能します。

3. DELETE

 DELETE の基本形は

DELETE FROM
    テーブル名
WHERE
    条件;

4. SELECT

 SELECT の基本形は

SELECT
    カラム名1,
    カラム名2,
    カラム名3,
    ...
FROM
    テーブル名
WHERE
    条件;

5. GRANT

 GRANT 文は権限を与えるもので基本形は

GRANT
    権限名
ON
    テーブル名
TO
    スキーマ名;
 権限名はすべてを与える、「ALL」の他、基本の「INSERT」、「UPDATE」、「DELETE」、「SELECT」くらいが使えれば十分かな。
KiPuRuSirusi
 
 
カウンタバックグラウンド