データ操作(SQL文)データ削除・全データ削除(DELETE文/TRUNCATE文)
条件に一致したレコードのみ削除
unknown
DELETE FROM テーブル名 [WHERE 条件式];
条件に一致するレコードのみ削除
# tbl_Customerテーブルの内容 mysql> SELECT * FROM tbl_Customer; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | 1 | 花子 | 鈴木 | f | 21 | | 2 | 太郎 | 田中 | m | 30 | | 3 | 一郎 | 鈴木 | m | 45 | | 4 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) # Sex='f'のレコードをテーブルから削除 mysql> DELETE FROM tbl_Customer WHERE Sex='f'; Enter Query OK, 2 rows affected (0.06 sec) mysql> SELECT * FROM tbl_Customer; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | 2 | 太郎 | 田中 | m | 30 | | 3 | 一郎 | 鈴木 | m | 45 | +--------+-----------+----------+------+------+ 2 rows in set (0.00 sec)
LIMITで削除件数指定
unknown
DELETE FROM テーブル名 [WHERE 条件式] [LIMIT 数値];
テーブルの先頭から2件のレコードを削除
# tbl_Customerテーブルの内容 mysql> SELECT * FROM tbl_Customer; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | 1 | 花子 | 鈴木 | f | 21 | | 2 | 太郎 | 田中 | m | 30 | | 3 | 一郎 | 鈴木 | m | 45 | | 4 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) # テーブルの先頭から、2件のレコードを削除 mysql> DELETE FROM tbl_Customer LIMIT 2; Enter Query OK, 2 rows affected (0.00 sec) # 削除されているか確認 mysql> SELECT * FROM tbl_Customer; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | 3 | 一郎 | 鈴木 | m | 45 | | 4 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 2 rows in set (0.00 sec)
全レコード削除
unknown
DELETE FROM テーブル名;
または
TRUNCATE [TABLE] テーブル名;
または
TRUNCATE [TABLE] テーブル名;
TRUNCATE文の方が、DELETE文よりテーブル削除処理が高速です。
全レコード削除
# tbl_Customerテーブルの内容 mysql> SELECT * FROM tbl_Customer; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | 1 | 花子 | 鈴木 | f | 21 | | 2 | 太郎 | 田中 | m | 30 | | 3 | 一郎 | 鈴木 | m | 45 | | 4 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) # 例1: 全レコード削除(DELETE文使用) mysql> DELETE FROM tbl_Customer; Enter Query OK, 4 rows affected (0.00 sec) # 例2: 全レコード削除(TRUNCATE文使用) mysql> TRUNCATE table tbl_Customer; Enter Query OK, 0 rows affected (0.61 sec) # レコードが削除されているか確認 mysql> SELECT * FROM tbl_Customer; Enter Empty set (0.00 sec)