기본적으로 DELETE 쿼리 명령 뒤에 아무런 조건이 포함되지 않으면 테이블의 전체 데이 터를 삭제합니다. 테이블의 전체 데이터를 삭제할 때는 꼭 다시 한번 명령을 확인한 후에 실행해야 합니다.

| 쿼리 문법 |

DELETE FROM table_name; 또는 
DELETE * FROM table_name; 

18.1.1 쿼리 실습

테이블의 데이터 모두를 삭제해 보도록 합니다. 임시로 작업한 members2 테이블의 내용을 확인해 봅니다.

| 콘솔 실습 화면 |

mysql> select * from members2;
+----+----------+-----------+-------------+-------+---------+
| Id | LastName | FirstName | Address     | City  | Country |
+----+----------+-----------+-------------+-------+---------+
|  1 | hojin    | lee       | shinchon    | seoul | korea   |
|  2 | jiny     | NULL      | NULL        | NULL  | korea   |
|  3 | james    | kim       | youngdun-po | seoul | korea   |
|  4 | eric     | jung      | seocho-gu   | seoul | korea   |
|  5 | hojin    | NULL      | NULL        | NULL  | NULL    |
|  6 | jiny     | NULL      | NULL        | NULL  | NULL    |
|  7 | james    | NULL      | NULL        | NULL  | NULL    |
|  8 | eric     | NULL      | NULL        | NULL  | NULL    |
+----+----------+-----------+-------------+-------+---------+
8 rows in set (0.00 sec)

여러 개의 데이터가 포함되어 있습니다.

| 예제 쿼리 |

DELETE FROM members2; 

위의 쿼리 명령은 members2 테이블의 데이터 전체를 삭제합니다.

| 콘솔 실습 화면 |

mysql> DELETE FROM members2;
Query OK, 0 rows affected (0.01 sec)

명령이 정상적으로 수행되었습니다. 테이블의 모든 데이터가 삭제되었습니다. 삭제된 데 이터는 복구할 수 없습니다.

또한 데이터를 삭제했다고 해서 프라이머리 키의 Auto_inceament 속성의 번호는 초기 화되지 않습니다. 추가로 데이터를 삽입하게 되면 이전에 프라이머리 Id 값 이후부터 자 동으로 증가되어 데이터가 삽입됩니다.

18.1.2 PHP 실습

PHP 코드를 이용하여 데이터를 삭제해 봅니다.

| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.

// 데이터 전체를 삭제합니다.
public function deleteAll($tbname)
{
            if ($tbname) {
                $queryString = "DELETE FROM $tbname";

                // 쿼리를 전송합니다.
                if (mysqli_query($this->dbcon, $queryString)=== TRUE) {
                    $this->msgEcho("쿼리성공] ".$queryString);
                    $this->msgEcho(" 데이터 전체 삭제!");

                    // 객체 반환, 매서드체인
                    return $this; 

                } else {
                    $this->msgEcho("Error] ".$queryString);
                }

            } else {
                $this->msgEcho("Error] 테이블 이름이 없습니다."); 
            }
}

예제 파일 | delete-01.php

<?php

	include "dbinfo.php";
	include "mysql.class.php";
 
	// ++ Mysqli DB 연결.
	$db = new JinyMysql();

	$tbname = "members2";
	$db->deleteAll($tbname);

?>

화면 출력

mysql connected!
쿼리성공] DELETE FROM members2
데이터 전체 삭제!