テーブルにデータを追加する
前回に引き続きLeetCodeの問題はお休み。
前回は空のテーブルを作成する方法をまとめたが、今回は作成したテーブルにデータを格納していく方法。
前回同様にdb<>fiddleを使って、テーブルにデータを格納するクエリを書いていきます。
SQL
-- 1行目データ
INSERT INTO テーブル名 (変数名1, 変数名2, 変数名3) VALUES (データ1, データ2, データ3)
-- 2行目データ
INSERT INTO テーブル名 (変数名1, 変数名2, 変数名3) VALUES (データ1, データ2, データ3)
これが基本形。
SQL
INSERT INTO テーブル名 VALUES (データ1, データ2, データ3)
INSERT INTO テーブル名 VALUES (データ1, データ2, データ3)
変数の数全てにデータを格納していく場合には、変数名リストを省略可能。
SQL
INSERT INTO テーブル名 VALUES (データ1, データ2, データ3)
変数の数全てにデータを格納していく場合には、変数名リストを省略可能。
SQL
INSERT INTO テーブル名 (変数名1, 変数名3) VALUES (データ1, データ3)
上記のように特定の変数にのみデータを格納していくことも可能。
データを省略したところにはNULL値やDEFAULT値などが格納されます。
下記が実行例です。
CREATE TABLE tbl1 (id INT IDENTITY(1,1), name NVARCHAR(10), age INT DEFAULT 20) INSERT INTO tbl1 (name) VALUES('TANAKA') INSERT INTO tbl1 (name,age) VALUES('GOTO', 30) SELECT * FROM tbl1 GO
db<>fiddle here
| id | name | age |
|---|---|---|
| 1 | TANAKA | 20 |
| 2 | GOTO | 30 |
idはIDENTITYを指定しているため自分で入力しようとするとエラーになった。
また、
SQL
INSERT INTO テーブル名 (変数名1, 変数名2, 変数名3)
VALUES
(1行目データ1, データ2, データ3),
(2行目データ1, データ2, データ3),
(3行目データ1, データ2, データ3)
と複数行データを一括登録することも可能。
更には今回深入りはしないが、
SQL
INSERT INTO テーブル名 (変数名1, 変数名2, 変数名3)
SELECT var1 var2 var3 FROM tbl2
のようにSELECT文やCASE WHENを使用することも可能。
今日のポイントはINSERT INOTでテーブルにデータを格納するとした。