記事の内容
- レコードの追加
- レコードの更新
- レコードの削除
- テーブルの削除
INSERT文
新規の行(レコード)を1件追加
列リストとVALUES句の値リストは列数が一致している必要がある
-- 構文
INSERT INTO
テーブル名(例1,列2, ...)
VALUES
(値1,値2, ...);
-- 商品テーブルに「新商品A」を追加
INSERT INTO
products(name, price)
VALUES
('新商品A', 1000);
列リストの省略
VALUES句に列の定義順、カンマ区切りで値を設定
テーブルの全列に対して値を指定する必要がある
-- 構文
INSERT テーブル名 VALUES(値1, 値2, ...);
-- 商品テーブルに「新商品A」を追加(列名:id, name, price)
INSERT products VALUES (1, '新商品A', 1000);
複数行の追加
Oracleデータベースでは使用不可
-- 構文
INSERT INTO
テーブル名(列1,列2,列3, ...)
VALUES
(値1,値2,値3, ...),
(値1,値2,値3, ...);
-- 新商品を2件追加
INSERT INTO
products (name, price)
VALUES
('新商品C', 3000),
('新商品D', 4000);
UPDATE文
データの更新
-- 構文
UPDATE テーブル名 SET 列1 = 値1, [列2 = 値2 ...] [WHERE 条件式];
-- 全商品の価格を10%割引した価格に変更
UPDATE products SET price = price * 0.9;
-- idが「3」の商品の商品名と価格を変更(UPDATE文とWHERE句の併用して特定の条件に合致する行のデータ更新)
UPDATE products SET name = 'SQL入門', price = 1000 WHERE id = 3;
DELETE文
データの削除
削除したデータは基本的には元に戻すことができない
-- 構文
DELETE FROM テーブル名 [WHERE 削除条件];
-- IDが1001の商品データを削除
DELETE FROM products WHERE id = 1001;
TRUNCATE文
-
テーブルのデータを全て削除
- WHERE句で指定できないのでテーブルのデータを全て削除します
- テーブルごと削除してから再作成するのでDELETE文よりも高速
- ただしロールバックができないので注意が必要
-- 構文
TRUNCATE TABLE テーブル名;
-- ユーザーテーブルのデータを削除
TRUNCATE TABLE users;
DROP文
テーブルの削除
-- 構文
DROP TABLE テーブル名;
-- 2つのテーブルを削除
DROP TABLE users, products;
参考教材