SQL: INSERT/UPDATE/DELETE 文

2016/12/30

[もどる]


INSERT 文

INSERT 文のサンプルを下に示す。既定値が決まっているフィールドの値は省略できる。ID, CHANGE, MANNED, LEVEL は省略している。

    INSERT INTO dbo.STATIONS(OPERATOR, LINE, STATION) VALUES('JR 東日本', '山手線', '新大久保駅');
  

STATIONS テーブルの定義を下に示す。

CREATE TABLE STATIONS (
  ID int not null IDENTITY,       -- 駅コード(連続番号)
  OPERATOR nvarchar(10),          -- 経営
  LINE nvarchar(20),              -- 線
  STATION nvarchar(20),           -- 駅名
  CHANGE bit DEFAULT 0,           -- 乗換駅
  MANNED bit DEFAULT 1,           -- 有人駅
  LEVEL char(1) DEFAULT '0',      -- 優等列車停車レベル
  PRIMARY KEY(ID)
);
  

あるテーブルの内容を別のテーブルへコピーするのにも INSERT 文を使用できる。コピー先のテーブルは既存でなければならない。主キーが IDENTITY だとエラーになる。

    INSERT INTO dbo.ColorSet_BK SELECT * FROM dbo.ColorSet;
  

 

UPDATE 文

代々木駅は乗換駅なので、後から CHANGE=1 としている。

UPDATE dbo.STATIONS SET CHANGE='1' WHERE STATION='代々木駅';
  

 

DELETE 文

新大久保駅を二重登録したので、主キーを使って削除する例を示す。

    DELETE FROM dbo.STATIONS WHERE ID = 3;
  

 

BULK INSERT 文

CSV ファイルなどをテーブルにインポートするとき、BULK INSERT 文を使用できる。

BULK INSERT dbo.STATIONS
FROM 'C:\CSV\stations.csv'
WITH
(
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n'
);
  

 

トランザクション

一連の操作がすべて正常終了したとき、結果をデータベースに反映させたい場合は、トランザクション処理を指定する。

    BEGIN TRANSACTION;
      ....
      ....
    COMMIT; (失敗したときは ROLLBACK;)