• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

질문입니다.

22.03.09 17:42 작성 조회수 173

1

안녕하세요



SQL기본문법 활용예제(1)강의에서
8분 25초경
예제 5번문제 해설해주시는부분이 잘 이해가 안되는데
 
처음에 name이 kimhongsam 인 부분에 name에 들어가서
name이 leegugu부분이 참이 된다고 하셨는데
그 이유가 궁금합니다..

답변 1

답변을 작성해보세요.

0

안녕하세요.

아래의 쿼리를 실행 할때 레코드별로 name 컬럼에 대입되서 조건절 참/거짓 판단이 진행됩니다.

select * from member where name !='leegugu' or name !='kimhongsam'

이때 name 컬럼에 'kimhongsam' 값이 들어왔을 경우,

아래 와 같이 진행이 됩니다.

- 원본 SQL : name !='leegugu' or name !='kimhongsam'

- 대입 후 SQL : 'kimhongsam' !='leegugu' or 'kimhongsam' !='kimhongsam'

그리고 or 연산자 기준으로 왼쪽은 피연산자(1), 오른쪽은 피연산자(2)로 아래와 같이 참 / 거짓 판단이 됩니다.

--> 피연산자(1) : 'kimhongsam' !='leegugu' => True (서로가 같지 않으니 참)

--> 피연산자(2) : 'kimhongsam' !='kimhongsam' => False

 

결과적으로, or 연산자는 피연산자 중 1개만 참이라도 결과를 출력하기 때문에 결과가 출력이 됩니다.