MySQL データの挿入・更新・確認・削除

行の挿入

値を入れる列を指定


INSERT INTO テーブル名(列名1, 列名2,...)
VALUES(値1, 値2,...);

値を入れる列を省略


INSERT INTO テーブル名
VALUES(値1, 値2,...);
  • 値の数が足りないとエラーになる
  • 値を入れない場所はNULLで対応

複数の行を挿入


INSERT INTO テーブル名
VALUES(値1,...), (値2,...);

日付のデータ

  • 日付はシングルクォート「'」で囲む
  • 「'YYYY-MM-DD'」「'YY-MM-DD'」どちらでも入力は可能
  • 「'YY'」の場合は「1970~2069」の間となる
  • 「'YYYY/MM/DD'」のように「-」を「/」でもOK

データのコピー

全てのデータをコピー


INSERT INTO コピー先テーブル名
SELECT * FROM コピー元テーブル名 ;

列名を指定してコピー


INSERT INTO コピー先テーブル名 (列名1, 列名2,...)
SELECT 列名1, 列名2,...
FROM コピー元テーブル名 
WHERE 検索条件;

データの更新

全ての行のデータを書き換える


UPDATE テーブル名
SET 列名 = 新しい値;

検索条件を満たす行のみ更新


UPDATE テーブル名
SET 列名 = 新しい値
WHERE 検索条件;
  • NULLを判定する場合は「=」ではなく「IS」を使う
  • SET句で 「=」 以降に列名を指定することで、更新前の値を取得できる(数式にも使用可能)

レコードの作成・更新日時を自動で設定

テーブル作成時に記述

列名 DATETIME DEFAULT NOW(), //作成時
列名 DATETIME DEFAULT NOW() ON UPDATE NOW() //更新時

データの確認

SELECT * FROM テーブル名;

データの削除

DELETE FROM テーブル名
WHERE 列名 = 削除したい行の値;
  • PRIMARY KEYはリセットされない

PRIMARY KEYをリセットしたい場合

テーブルを削除して作り直す

TRUNCATE TABLE テーブル名;

PRIMARY KEYが1からになる