책 내용 질문하기
예제3번
도서
2020 시나공 정보처리기능사 실기 : NCS 기반 전면 개편
페이지
534
조회수
204
작성일
2020-04-01
작성자
탈퇴*원
첨부파일
사원 테이블의 모든 레코드를 삭제하라고 되어있는데 WHERE절 생략할경우엔 모든을 나타내는( * ) 안쓰는게 맞나요? 답변부탁드립니다
답변
2020-04-02 09:52:19

안녕하세요 길벗수험서 운영팀입니다.

 

delete from 절에는 와일드 카드 *가 사용되지 않습니다.

 

where절만 생략해도 그냥 모든 튜플이 싹다 날라갑니다.

(delete가 특정 속성의 값을 삭제하는 것이 아닌 튜플을 날리는 구문이라는 것을 염두에 두세요.)

(select 등에서 사용되는 *는 모든 속성을 가리키는 것입니다.)

 

행복한 하루되세요 :)

  • 관리자
    2020-04-02 09:52:19

    안녕하세요 길벗수험서 운영팀입니다.

     

    delete from 절에는 와일드 카드 *가 사용되지 않습니다.

     

    where절만 생략해도 그냥 모든 튜플이 싹다 날라갑니다.

    (delete가 특정 속성의 값을 삭제하는 것이 아닌 튜플을 날리는 구문이라는 것을 염두에 두세요.)

    (select 등에서 사용되는 *는 모든 속성을 가리키는 것입니다.)

     

    행복한 하루되세요 :)

  • 관리자
    2020-04-02 21:00:50

    안녕하세요 길벗수험서 운영팀입니다.

     

    delete 문에서 *의 사용여부는 결과에 영향을 주지 않습니다.

    *가 있든없든 where 조건이 있다면 조건에 맞는 튜플을 삭제하게 됩니다.

     

    DCL의 commit, rollback, savepoint의 예제에 나온 delete from문은 MS-Access를 기반으로 짜여진 코드들이라 delete * from이 정상적으로 동작하지만, 

    일반적으로 사용되는 Oracle, MySQL, MS-SQL 에서는 delete * from이라고 작성하는 경우 구문 오류가 발생합니다.

     

    (MS-Access에서도 delete from이 작동하니, delete문에서는 '*'는 사용할 수 없다라고 학습해두세요.)

     

    행복한 하루되세요 :)

  • *
    2020-04-02 15:03:56

    p.529에서 SAVEPOINT 관련 예제들 보면

    Sql문이 DELETE * FROM 사원 WHERE 사원번호 = 40; 

    이런식으로 되어있는데

    여기서 * 도 모든걸 지우라는것 아닌가요..?

     

    Delete 문에서

    WHERE는 다 삭제고

    * 는 WHERE에 부합하는 값들을 다 지우라는건가요?

    답변부탁드립니다

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.