[SQL] : Logical Operators (논리 연산자)- 1 AND, OR, NOT

김대현·2024년 6월 8일

(1) Logical Operators (논리 연산자)
(2) Logical Operators (논리 연산자 문법


(1) Logical Operators (논리 연산자)

#Logical Operators (논리 연산자)
+---------+---------------------------------------+
| 연산자   |                  의미                  |
+---------+---------------------------------------+
| AND     | 조건을 모두 만족하는 경우 TRUE            |
| OR      | 하나의 조건이라도 만족하는 경우 TRUE       |
| NOT     | 조건을 만족하지 않는 경우 TRUE            |
| BETWEEN | 조건값이 범위 사이에 있으면 TRUE          |
| IN      | 조건값이 목록에 있으면 TRUE              |
| LIKE    | 조건값이 패턴에 맞으면 TRUE              |
+---------+---------------------------------------+

- Logical Operators 는 논리 연산자라고도 하며 논리 연산자는 SQL에서 조건을 결합하고 복잡한 검색 조건을 만드는 데 사용된다. 주로 WHERE 절과 조건을 결합하는 데 사용되며 자주 사용되는 논리 연산자는 다음과 같다:

  • AND: AND 연산자는 두 개의 조건이 모두 참일 때만 전체 조건이 참이 된다. 즉, 모든 조건이 TRUE 여야 전체 조건이 TRUE가 되어 TRUE를 반환하여 TRUE에 해당하는 행들을 출력해준다.

  • OR: OR 연산자는 두 개의 조건 중 하나 이상이 참일 때 전체 조건이 참이 된다. 즉, 조건 중 하나라도 TRUE 이면 전체 조건이 TRUE가 되어 TRUE를 반환하여 TRUE에 해당하는 행들을 출력해준다.

  • NOT: NOT 연산자는 주어진 조건이 거짓일 때 TRUE가 되어 TRUE를 반환하여 TRUE에 해당하는 행들을 출력해준다. 주로 주어진 조건을 부정하는 데 사용된다.



(2) Comparison Operators (비교 연산자) 문법

#실습데이터
+----+--------+------------+-----+-----+---------------+-------------------+
| ID | NAME  | BIRTHDAY   | AGE | SEX | JOB_TITLE    | AGENCY            |
+----+--------+------------+-----+-----+---------------+-------------------+
|  1 | 아이유 | 1993-05-16 |  29 | F   | 가수, 탤런트   | EDAM엔터테인먼트    |
|  2 | 이미주 | 1994-09-23 |  28 | F   | 가수          | 울림엔터테인먼트     |
|  3 | 송강   | 1994-04-23 |  28 | M   | 탤런트        | 나무엑터스          |
|  4 | 강동원 | 1981-01-18 |  41 | M   | 영화배우, 탤런트| YG엔터테인먼트      |
|  5 | 유재석 | 1972-08-14 |  50 | M   | MC, 개그맨    | 안테나              |
|  6 | 차승원 | 1970-06-07 |  48 | M   | 영화배우, 모델 | YG엔터테인먼트       |
|  7 | 이수현 | 1999-05-04 |  23 | F   | 가수          | YG엔터테인먼트       |
+----+--------+------------+-----+-----+---------------+-------------------+

🖍️ AND 연산자 (조건을 모두 만족하는 경우 TRUE )

#AND 연산자 (조건을 모두 만족하는 경우 TRUE )
SELECT columnl, column2
FROM tablename
WHERE conditionl AND condition2 AND condition3
#예시, celeb 테이블에서 나이가 29세이고 성별이 여성인 데이터 검색
mysql> SELECT * FROM celeb WHERE age=29 AND sex='F';
+----+--------+------------+-----+-----+---------------+---------------------+
| ID | NAME   | BIRTHDAY   | AGE | SEX | JOB_TITLE     | AGENCY              |
+----+--------+------------+-----+-----+---------------+---------------------+
| 1  | 아이유  | 1993-05-16 | 29  |  F  | 가수, 탤런트    | EDAM엔터테이먼트    |
+----+--------+------------+-----+-----+---------------+---------------------+
1 row in set (0.00 sec)
  • SELECT column1, column2: column1, column2 에 해당하는 열을 조회하려고 지정하는 것이다.

  • WHERE condition1 AND condition2 AND condition3: column1, column2 열을 조회할 때 데이터를 필터링하는 조건을 지정하는 것이다. WHERE 절에 "AND" 연산자를 사용해
    condition1 AND condition2 와 같이 여러 조건을 결합하여 실행한다. "AND" 연산자의 쿠쿼리에서는 모든 조건이 TRUE 여야만 해당 행이 결과로 반환이 된다.


🖍️ OR 연산자 (하나의 조건이라도 만족하는 경우 TRUE )

#OR 연산자 (하나의 조건이라도 만족하는 경우 TRUE)
SELECT columnl, column2
FROM tablename
WHERE conditionl OR condition2 OR condition3
#예시, celeb 테이블에서 나이가 25세보다 작거나 30세보다 큰 데이터 검색
mysql> SELECT * FROM celeb WHERE age=29 OR sex='F';
+----+--------+------------+-----+-----+-------------------+-------------------+
| ID | NAME   | BIRTHDAY   | AGE | SEX | JOB_TITLE         | AGENCY            |
+----+--------+------------+-----+-----+-------------------+-------------------+
| 7  | 이수현  | 1999-05-04 | 23  | F    | 가수               | YG엔터테인먼트     |
| 4  | 강동원  | 1981-01-18 | 41  | M    | 영화배우, 탤런트    | YG엔터테인먼트      |
| 6  | 차승원  | 1970-06-07 | 48  | M    | 영화배우, 모델      | YG엔터테인먼트     |
| 5  | 유재석  | 1972-08-14 | 50  | M    | MC, 개그맨         | 안테나            |
+----+--------+------------+-----+-----+-------------------+-------------------+
4 rows in set (0.00 sec)
  • SELECT column1, column2: column1, column2 에 해당하는 열을 조회하려고 지정하는 것이다.

  • WHERE condition1 OR condition2 OR condition3: column1, column2 열을 조회할 때 데이터를 필터링하는 조건을 지정하는 것이다. WHERE 절에 "OR" 연산자를 사용해
    condition1 OR condition2 와 같이 여러 조건을 결합하여 실행한다. "AND" 연산자의 쿠쿼리에서는 두 개의 조건 중 하나 이상이 참일 때 즉, 두 조건 중 하나라도 TRUE 이면 전체 조건이 TRUE 가 되어 출력된다.


🖍️ NOT 연산자 (조건을 만족하지 않는 경우 TRUE )

#OR 연산자 (하나의 조건이라도 만족하는 경우 TRUE)
SELECT columnl, column2
FROM tablename
WHERE NOT condition;
#예시, celeb 테이블에서 성별이 여자가 아닌 데이터 검색
mysql> SELECT * FROM celeb WHERE NOT sex='F';
+----+--------+------------+-----+-----+-------------------+-------------------+
| ID | NAME   | BIRTHDAY   | AGE | SEX | JOB_TITLE         | AGENCY            |
+----+--------+------------+-----+-----+-------------------+-------------------+
| 3  | 송강    | 1994-04-23 | 28  | M   | 텔런트             | 나무엑터스         |
| 4  | 강동원  | 1981-01-18 | 41  | M   | 영화배우, 텔런트     | YG엔터테인먼트     |
| 5  | 유재석  | 1972-08-14 | 50  | M   | MC, 개그맨         | 안테나             |
| 6  | 차승원  | 1970-06-07 | 48  | M   | 영화배우, 모델      | YG엔터테인먼트      |
+----+--------+------------+-----+-----+-------------------+-------------------+
4 rows in set (0.00 sec)
  • SELECT column1, column2: column1, column2 에 해당하는 열을 조회하려고 지정하는 것이다.

  • WHERE NOT condition;: column1, column2 열을 조회할 때 데이터를 필터링하는 조건을 지정하는 것이다. WHERE 절에 "NOT" 연산자를 사용해 주어진 조건이 FALSE인 경우에 조건을 반대로 실행하는 "NOT" 연산자로 인해 TRUE를 반환한다. 즉, 주어진 조건을 부정하는 데 사용되며 이 쿼리에서는 주어진 조건을 만족하지 않는 행(row)만을 선택하여 출력하게 된다.

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글