본문 바로가기

프로그래밍 언어/SQL

[SQL] 두 개 이상의 조건 조합하기(AND, OR, NOT)

2023-02-26 TIL 7강 조건 조합하기

 

AND : 모두 참일 경우 true

  • 예제) a열과 b열이 모두 0이 아닌 행을 검색
select * from sample24 where a <> 0 and b <> 0;

 

OR : 하나만 참이어도 true

  • 예제) a열이 0이 아니거나 b열이 0이 아닌 행을 검색
select * from sample24 where a <> 0 or b <> 0;

 

AND와 OR를 조합해 사용하기

  • 예제) a열이 1 또는 2이고, b열이 1 또는 2인 행을 검색 - 괄호 삭제
select * from sample24 where a=1 or a=2 and b=1 or b=2;

 

<연산자의 우선순위>

AND의 우선순위가 높으므로 a=2 and b=1 이 먼저 계산된다

즉, 3개의 조건식이 OR로 연결된 것과 같다

  • a=1
  • a=2 AND b=1
  • b=2 
  • 예제) a열이 1 또는 2이고, b열이 1 또는 2인 행을 검색 - 괄호로 우선순위 변경하기
select * from sample24 where (a=1 or a=2) and (b=1 or b=2);

 

  • 예제) a열이 0이 아니고(1 또는 2이고), b열이 0이 아닌(1 또는 2인) 행을 검색 - <> 연산자 사용
select * from sample24 where a <> 0 and b <> 0;

 

NOT 연산자

  • 예제) a열이 0이 아니거나 b열이 0이 아닌 행을 제외한 나머지 행을 검색
select * from sample24 where not (a<>0 or b<>0);