🛠️ テーブル作成、データ挿入・更新
これまでは「データを取り出す(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文字)
);
📥 第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文で更新対象のデータを確認する癖をつけましょう!
