13. MS SQL Create, Insert & Update

 


🛠️ テーブル作成、データ挿入・更新

これまでは「データを取り出す(SELECT)」ことに集中してきましたが、今回はデータそのものを定義したり、書き換えたりする方法を学びます。これらの操作はDML(データ操作言語)DDL(データ定義言語) と呼ばれます。

⚠️ 注意点: これらの操作(CREATE, INSERT, UPDATE)は、データベースの内容を直接変更します。会社のデータベースなどで試す場合は、必ず適切な権限を持っているか確認し、不安な場合は実行せずに読み進めてください。


🏗️ 第1章:テーブルを作成する(CREATE TABLE)

テーブルを作るには、どの列にどんな種類のデータ(データ型)を入れるかを定義する必要があります。

1-1. 基本構文

| 構文 | CREATE TABLE [テーブル名] ( [列名1] [データ型], [列名2] [データ型], ... ) |

【例題】「テストテーブル」を作成する

CREATE TABLE TestTable (
    ColumnA VARCHAR(100), -- 💡 文字列(最大100文字)
    ColumnB INT,          -- 💡 整数
    ColumnC DATETIME,     -- 💡 日付と時刻
    ColumnD VARCHAR(10)   -- 💡 文字列(最大10文字)
);
項目説明
VARCHAR(100)可変長の文字列データ型。括弧内の数字は最大文字数です。
INT整数(小数点なしの数字)を保存する型です。
DATETIME日付と時刻を保存する型です。

📥 第2章:データをテーブルに入れる(INSERT INTO)

作成したテーブルに、いよいよ実際のデータを挿入します。

2-1. 静的データの挿入(VALUESを使用)

決まった値や関数を使って1行または複数行のデータを挿入する方法です。

| 構文 | INSERT INTO [テーブル名] ([列名1], [列名2], ...) VALUES ([値1], [値2], ...) |

【例題】2行のデータを挿入する

INSERT INTO TestTable (ColumnA, ColumnB, ColumnC, ColumnD)
VALUES
    ('Test Value 1', 10, GETDATE(), 'TestVal1'), -- 1行目
    ('Test Value 2', 7, DATEADD(DAY, -1, GETDATE()), 'TestVal2'); -- 2行目
  • 文字列型 (VARCHAR) の値は、必ずシングルクォーテーション'')で囲みます。

  • GETDATE() などの関数の結果を直接挿入することも可能です。

  • 複数行挿入する場合、VALUESブロックをコンマ(,)で区切って並べます。

2-2. クエリの結果を挿入する(SELECTを使用)

他のテーブルから取得した結果を、そのまま新しいテーブルに流し込むこともできます。

| 構文 | INSERT INTO [テーブル名] (...) SELECT ... FROM [別のテーブル] ... |

⚠️ 注意点: SELECTで取得する列の数とデータ型は、INSERT INTOで指定した列と完全に一致している必要があります。


✏️ 第3章:既存のデータを更新する(UPDATE)

テーブル内の既存のデータを新しい値に書き換えるのがUPDATE文です。

3-1. 基本構文

| 構文 | UPDATE [テーブル名] SET [列名1] = [新しい値], ... WHERE [条件] |

3-2. WHERE句は絶対に忘れない!

UPDATE文で最も重要なのは**WHERE句**です。

【危険な例】WHERE句がない場合

-- 🚨 警告: テーブル内の全行のColumnBが999に書き換わります!
UPDATE TestTable
SET ColumnB = 999;

【正しい例】特定の行だけを更新する

ColumnA'Test Value 1' の行だけを更新したい場合は、必ずWHERE句で絞り込みます。

UPDATE TestTable
SET ColumnB = 1234      -- ColumnBを1234に設定する
WHERE ColumnA = 'Test Value 1'; -- ColumnAが「Test Value 1」である行だけを!
  • この操作により、ColumnA'Test Value 1' の行のColumnBの値だけが 1234 に更新されます。

  • UPDATE文を実行する前は、必ずSELECT文で更新対象のデータを確認する癖をつけましょう!