Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 테이블명.컬럼명=값 조건으로 레코드 삭제하는 방법

MySQL에서 특정 조건에 맞는 레코드를 삭제하려면 DELETE 문과 WHERE 절을 함께 사용합니다. 이때 테이블명.컬럼명=값 형식으로 조건을 지정할 수도 있습니다. 기본 문법은 다음과 같습니다.

delete from yourTableName where yourTableName.yourColumnName = yourValue;

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    StudentName varchar(100),
    StudentAge int
);
Query OK, 0 rows affected (0.81 sec)

다음으로 INSERT 명령을 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values('Chris',21);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Robert',20);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('David',22);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Mike',24);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Sam',19);
Query OK, 1 row affected (0.12 sec)

테이블 데이터 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+-------------+------------+
| StudentName | StudentAge |
+-------------+------------+
| Chris       |         21 |
| Robert      |         20 |
| David       |         22 |
| Mike        |         24 |
| Sam         |         19 |
+-------------+------------+
5 rows in set (0.00 sec)

테이블명.컬럼명=값 조건으로 레코드 삭제하기

이제 테이블명.컬럼명=값 형식을 활용해 특정 레코드를 삭제해 보겠습니다. 아래 예시에서는 학생 이름이 'Robert'인 레코드를 삭제합니다.

mysql> delete from DemoTable where DemoTable.StudentName='Robert';
Query OK, 1 row affected (0.12 sec)

삭제가 정상적으로 처리되었는지 다시 한번 테이블 전체를 조회해 확인합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+-------------+------------+
| StudentName | StudentAge |
+-------------+------------+
| Chris       |         21 |
| David       |         22 |
| Mike        |         24 |
| Sam         |         19 |
+-------------+------------+
4 rows in set (0.00 sec)

위 결과를 보면 'Robert'라는 이름의 레코드가 성공적으로 삭제되어 총 4개의 행만 남아 있는 것을 확인할 수 있습니다. 이처럼 MySQL에서는 WHERE 절에 테이블명을 포함한 컬럼 참조 방식(테이블명.컬럼명)을 사용해도 일반적인 컬럼 참조와 동일하게 동작합니다.