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からになる