0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQL レコードの追加・更新・削除

Last updated at Posted at 2021-11-21

記事の内容

  • レコードの追加
  • レコードの更新
  • レコードの削除
  • テーブルの削除

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;

参考教材

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?