SQL : 07. Logical Operators

yeppi1802·2024년 6월 5일
0

❇️ 요약

  • 논리연산자 : AND, OR, NOT, BETWEEN, IN, LIKE

📖 Logical Operators(논리연산자)

🔆 Logical Operators(논리연산자)

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

📖 AND

🔆 AND 문법

  • 조건을 모두 만족하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE condition AND condition2 AND condition3 ...;

🔆 AND 예제

  • 나이가 29세이고 성별이 여성인 데이터 검색
mysql> SELECT *
    -> FROM celeb
    -> WHERE AGE = 29 AND SEX='F';
+----+-----------+------------+------+------+------------------+------------------------+
| ID | NAME      | BRITHDAY   | AGE  | SEX  | JOB_TITLE        | AGENCY                 |
+----+-----------+------------+------+------+------------------+------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수,텔런트      | EDAM엔터테이먼트       |
+----+-----------+------------+------+------+------------------+------------------------+
1 row in set (0.00 sec)

📖 OR

🔆 OR 문법

  • 하나의 조건이라도 만족하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE condition1 OR condition2 OR condition3 ...;

🔆 OR 예제

  • YG엔터테이먼트 소속이거나 나무엑터스 소속인 연예인 중, 나이가 30세보다 작은 데이터를 검색
mysql> SELECT *
    -> FROM celeb
    -> WHERE
    ->     (AGENCY = 'YG엔터테이먼트' OR AGENCY = '나무엑터스')
    ->     AND
    ->     AGE < 30;
+----+-----------+------------+------+------+-----------+----------------------+
| ID | NAME      | BRITHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY               |
+----+-----------+------------+------+------+-----------+----------------------+
|  3 | 송강      | 1994-04-23 |   28 | M    | 텔런트    | 나무엑터스           |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수      | YG엔터테이먼트       |
+----+-----------+------------+------+------+-----------+----------------------+
2 rows in set (0.00 sec)

📖 NOT

🔆 NOT 문법

  • 조건을 만족하지 못하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE NOT condition;

🔆NOT 예제

  • 성별이 여자가 아닌 데이터 검색
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)

📖 BETWEEN

🔆 BETWEEN 문법

  • 조건값이 범위 사이에 있으면 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column1 BETWEEN value1 AND value2;

🔆BETWEEN 예제

  • 나이가 20세에서 40세 사이의 데이터 검색
mysql> SELECT *
    -> FROM celeb
    -> WHERE
    ->    AGE BETWEEN 20 AND 40; -- (다른표현) AGE>=20 AND AGE<=40
+----+-----------+------------+------+------+------------------+--------------------------+
| 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    | 텔런트           | 나무엑터스               |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수             | YG엔터테이먼트           |
+----+-----------+------------+------+------+------------------+--------------------------+
4 rows in set (0.00 sec)

📖 IN

🔆 IN 문법

  • 목록 안에 조건이 존재하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column1 IN (value1, value2, ...);

🔆 IN 예제

  • 나이가 28세, 48세 중 하나인 데이터 검색
mysql> SELECT *
    -> FROM celeb
    -> WHERE
    ->   AGE IN (28,48); -- (다른표현) AGE = 28 OR AGE = 48;
+----+-----------+------------+------+------+----------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE            | AGENCY                   |
+----+-----------+------------+------+------+----------------------+--------------------------+
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수                 | 울림엔터테이먼트         |
|  3 | 송강      | 1994-04-23 |   28 | M    | 텔런트               | 나무엑터스               |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델       | YG엔터테이먼트           |
+----+-----------+------------+------+------+----------------------+--------------------------+
3 rows in set (0.01 sec)

📖 LIKE

🔆 LIKE 문법

  • 조건값이 패턴에 맞으면 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column1 LIKE pettern;
  • 와일드문자
와일드 문자설명예시
%0개 이상의 문자 일치Like ‘%키워드%’ : '키워드' 기준 앞 뒤로 모든 문자들이 있는 값 검색
_특정 위치의 1개의 문자와 일치‘_동%’ : 두번째 위치에 ‘동’이 들어가는 문자열
[ ]1개의 문자와 일치'[0-8]%’ : 0-8 사이 숫자로 시작하는 문자열
[ ^ ]1개의 문자와 불일치'[^0-8]%’ : 0-8 사이 숫자로 시작하지 않는 문자열

🔆 LIKE 예제

  • 직업명이 ‘가’로 시작하고 최소 2글자 이상인 데이터 검색
mysql> SELECT *
    -> FROM celeb
    -> WHERE
    ->   JOB_TITLE LIKE '가_%';
+----+-----------+------------+------+------+------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE        | AGENCY                   |
+----+-----------+------------+------+------+------------------+--------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수,텔런트      | EDAM엔터테이먼트         |
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수             | 울림엔터테이먼트         |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수             | YG엔터테이먼트           |
+----+-----------+------------+------+------+------------------+--------------------------+
3 rows in set (0.00 sec)
profile
제로베이스 DA7 김예빈입니다.

0개의 댓글