SQL 첫걸음 7강. 조건 조합하기
1. AND로 조합하기
SELECT * FROM 테이블명 WHERE 조건식1 AND 조건식2;
- 복수의 조건을 조합할 경우 AND를 가장 많이 사용합니다. AND는 논리연산자의 하나로 좌우의 항목이 필요한 이항 연산자가 됩니다.
- AND 연산은 조건을 만족하는 행을 집합으로 표현했을 때 이들 집합이 겹치는 부분, 즉 "교집합" 으로 계산할 수 있습니다. AND연산자는 논리곱을 계산하는 논리연산자입니다.
- AND로 조건식을 연결하면 모든 조건을 만족하는 행을 검색할 수 있습니다.
2. OR로 조합하기
SELECT * FROM 테이블명 WHERE 조건식1 OR 조건식2;
- 어느쪽이든 하나만 참이 되면 조건식은 참이 된다라고 할 경우에는 OR로 조건식을 연결합니다.
- OR또한 논리연산자로 좌우 항목이 모두 필요한 이항연산자입니다.
- OR는 조건식 2개 중 1개만 해당에도 결과값이 주어지면 "또는"으로 해당합니다.
- OR연산은 조건을 만족하는 행을 집합으로 표현하면 "합집합"으로 계산할 수 있다.
- OR로 조건식을 연결하면 어느쪽이든 조건을 만족하는 행을 검색할 수 있습니다.
3. AND와 OR를 둘다 사용할 경우 주의할 점
- 상수는 논리연산에서 항상 True이다.
mysql> SELECT * FROM sample24 WHERE no = 1 OR 2;
mysql> SELECT * FROM sample24 WHERE no = 1 OR no = 2;
첫번째 식을 보면 no가 1이거나 2인 행을 얻을 수 있을 것 같지만 그러기 위해서는 두번째 식을 사용해야 하며 첫번째 식에서는 OR 뒤의 2가 항상 참이 되므로 모든 행을 반환하게 된다.
- AND의 우선순위가 OR의 우선순위보다 높다.
mysql> SELECT * FROM sample24 WHERE a <> 0 AND b <> 0;
mysql> SELECT * FROM sample24 WHERE a=1 OR a=2 AND b=1 OR b=2;
mysql> SELECT * FROM sample24 WHERE (a=1 OR a=2) AND (b=1 OR b=2);
‘a<>0 AND b<>0’이라는 식은 ‘a가 1 또는 2이고 b가 1 또는 2이다’와도 같은 뜻이 된다. 두번째 문장을 a=1 OR a=2 AND b=1 OR b=2
로 할 경우 결과는 다르게 나온다. 그 이유는 AND가 OR보다 우선순위가 높아 먼저 계산하게 되기 때문이다. a=2 AND b=1을 먼저 계산한 후, 그 결과를 OR로 a=1, b=2로 연결하여 계산하게 된다.
- NOT 연산자는 조건식의 반대값을 반환한다.
mysql> SELECT * FROM sample24 WHERE NOT(a<>0 OR b<>0);
Author And Source
이 문제에 관하여(SQL 첫걸음 7강. 조건 조합하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@donghoim/SQL-첫걸음-7강.-조건-조합하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)