다음 쿼리문에 대한 설명으로 가장 옳지 않은 것은?DELETE * FR… | [컴퓨터활용능력 1급 필기] 11년 1회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 11년 1회차
다음 쿼리문에 대한 설명으로 가장 옳지 않은 것은?
DELETE * FROM 회원 WHERE 회원번호=300
1
[회원] 테이블에서 회원번호가 300인 레코드를 삭제한다.
2
WHERE절 이하 부분이 없으면 아무 레코드도 삭제하지 않는다.
3
레코드를 삭제한 다음에는 삭제한 내용은 되돌릴 수 없다.
4
질의문을 실행하는 경우 레코드 수에는 변화가 있을 수 있지만 필드 수에는 변화가 없다.
해설
DELETE 문은 테이블에서 레코드(행) 전체를 삭제하는 명령이고, WHERE 절은 그중 어떤 레코드를 지울지 범위를 좁혀 주는 역할을 합니다. 따라서 WHERE 절을 생략하면 삭제 대상이 제한되지 않아 테이블의 모든 레코드가 지워집니다. 'WHERE 절이 없으면 아무 레코드도 삭제하지 않는다'는 설명은 실제 동작과 정반대이므로 옳지 않습니다.
이 쿼리는 [회원] 테이블에서 회원번호가 300인 레코드를 찾아 삭제합니다. DELETE 문의 * 는 특정 필드만 지운다는 뜻이 아니라 레코드 전체를 대상으로 한다는 표기이며, 실제로 삭제되는 단위는 언제나 레코드입니다.
그래서 실행 후에는 레코드 수는 줄어들 수 있어도 필드(열)의 개수와 구성은 그대로이며, 필드 자체를 없애려면 DROP이나 ALTER TABLE 같은 별도의 명령을 써야 합니다. 또한 삭제된 레코드는 실행 취소로 되돌릴 수 없으므로, 실행 전에 조건을 반드시 확인해야 합니다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.