MySQL에서 AND 연산자는 WHERE 절과 함께 사용되어 여러 조건을 모두 만족하는 레코드만 필터링할 때 활용됩니다. 이번 글에서는 DELETE 문에 AND 조건을 적용하여 테이블에서 원하는 레코드를 정확하게 삭제하는 방법을 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table DemoTable
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.70 sec)
2. 레코드 삽입
INSERT 명령어를 사용하여 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(101,'Chris'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(102,'David'); Query OK, 1 row affected (0.51 sec) mysql> insert into DemoTable values(103,'Bob'); Query OK, 1 row affected (0.14 sec)
3. 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select * from DemoTable;
실행 결과는 다음과 같습니다.
+------+-------+ | Id | Name | +------+-------+ | 101 | Chris | | 102 | David | | 103 | Bob | +------+-------+ 3 rows in set (0.00 sec)
4. AND 조건으로 레코드 삭제
다음은 Id가 102이고 이름이 'David'인 레코드를 삭제하는 쿼리입니다. 두 조건이 모두 일치하는 행만 삭제된다는 점에 유의하세요.
mysql> delete from DemoTable where Id=102 and Name='David'; Query OK, 1 row affected (0.20 sec)
5. 삭제 결과 확인
테이블을 다시 조회하여 레코드가 정상적으로 삭제되었는지 확인합니다.
mysql> select * from DemoTable;
실행 결과는 다음과 같습니다.
+------+-------+ | Id | Name | +------+-------+ | 101 | Chris | | 103 | Bob | +------+-------+ 2 rows in set (0.00 sec)
위 결과에서 확인할 수 있듯이, Id=102이면서 Name='David'라는 두 조건을 모두 충족하는 레코드만 삭제되고 나머지 데이터는 그대로 유지됩니다. 이처럼 AND 연산자를 활용하면 여러 조건을 결합하여 삭제 대상을 더욱 정밀하게 지정할 수 있으며, 실수로 의도하지 않은 데이터를 삭제하는 위험도 줄일 수 있습니다.