Search

条件に一致したレコードのみ削除

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文の方が、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)

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women