SQL 기초 - 논리 연산자

Jungmin·2022년 11월 2일
1

SQL

목록 보기
4/17
post-custom-banner

논리연산자

✍️ 논리연산자 종류

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

AND

: 조건을 모두 만족하는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE 조건1 AND 조건2 AND...;

  • 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)
  • 성별이 남자이고, 40세 이상인 데이터를 이름의 역순으로 정렬하여 검색
mysql> SELECT * FROM CELEB WHERE SEX='M' AND AGE>40 ORDER BY NAME DESC;
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트 |
|  5 | 유재석 | 1972-08-14 |   50 | M    | MC,개그맨       | 안테나         |
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------------+----------------+
3 rows in set (0.05 sec)
  • 성별이 남자이고 소속사가 YG엔터테이먼트인 데이터를 소속사 순으로 정렬
mysql> SELECT * FROM CELEB WHERE SEX='M' AND AGENCY = 'YG엔터테이먼트' ORDER BY AGENCY;
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트 |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------------+----------------+
2 rows in set (0.00 sec)

OR

: 하나의 조건이라도 만족하는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE 조건1 OR 조건2 OR...;

  • 나이가 25세보다 작거나 30세보다 큰 데이터 검색
mysql> SELECT * FROM CELEB WHERE AGE<25 OR AGE>30 ORDER BY AGE;
+----+--------+------------+------+------+-----------------+----------------+
| 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)
  • 나이가 29세보다 작고 여자이거나, 나이가 30세보다 크고 남자인 데이터를 나이와 성별 순으로 정렬
mysql> SELECT * FROM CELEB WHERE AGE<29 AND SEX='F' OR AGE>30 AND SEX='M' ORDER BY AGE, SEX;
+----+--------+------------+------+------+-----------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY           |
+----+--------+------------+------+------+-----------------+------------------+
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수            | YG엔터테이먼트   |
|  2 | 이미주 | 1994-09-23 |   28 | F    | 가수            | 울림엔터테이먼트 |
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트   |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트   |
|  5 | 유재석 | 1972-08-14 |   50 | M    | MC,개그맨       | 안테나           |
+----+--------+------------+------+------+-----------------+------------------+
5 rows in set (0.00 sec)
  • YG엔터테이먼트 소속이거나 나무엑터스 소속 연예인 중, 나이가 30세보다 작은 데이터
mysql> SELECT * FROM CELEB WHERE(agency='YG엔터테이먼트' OR AGENCY='나무엑터스')AND AGE<30;
+----+--------+------------+------+------+-----------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY         |
+----+--------+------------+------+------+-----------+----------------+
|  3 | 송강   | 1994-04-23 |   28 | M    | 탤런트    | 나무엑터스     |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수      | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------+----------------+
2 rows in set (0.01 sec)
  • ID가 홀수이면서 성별이 남자이거나, ID가 짝수면서 YG 소속인 데이터를 나이순으로 정렬
-mysql> SELECT * FROM CELEB WHERE ID%2=1 AND SEX='M' OR ID%2=0 AND AGENCY='YG엔터테이먼트' ORDER BY AGE;
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  3 | 송강   | 1994-04-23 |   28 | M    | 탤런트          | 나무엑터스     |
|  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)

NOT

: 조건을 만족하지 않는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE NOT 조건...;

  • YG엔터테이먼트 소속이면서 남자가 아니거나 직업이 가수이면서 YG엔터테이먼트 소속이 아닌 데이터 검색
mysql> SELECT * FROM CELEB WHERE AGENCY='YG엔터테이먼트' AND NOT SEX='M' OR JOB_TITLE='가수'AND NOT AGENCY='YG엔터테이먼트';
+----+--------+------------+------+------+-----------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY           |
+----+--------+------------+------+------+-----------+------------------+
|  2 | 이미주 | 1994-09-23 |   28 | F    | 가수      | 울림엔터테이먼트 |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수      | YG엔터테이먼트   |
+----+--------+------------+------+------+-----------+------------------+
2 rows in set (0.00 sec)
  • 생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이며서 소속사가 안테나가 아닌 데이터 검색
mysql> SELECT * FROM CELEB WHERE BIRTHDAY>'1990-01-01' 
AND NOT SEX='F' OR BIRTHDAY<'1979-01-01' AND NOT AGENCY='안테나';
# == WHERE (BIRTHDAY > 19891231 AND NOT SEX='F') OR (BIRTHDAY < 19800101 AND NOT AGENCY='안테나');
+----+--------+------------+------+------+---------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE     | AGENCY         |
+----+--------+------------+------+------+---------------+----------------+
|  3 | 송강   | 1994-04-23 |   28 | M    | 탤런트        | 나무엑터스     |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델 | YG엔터테이먼트 |
+----+--------+------------+------+------+---------------+----------------+
2 rows in set (0.00 sec)

BETWEEN

: 조건 값이 범위 사이에 있으면 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE 조건1 BETWEEN VALUE1 AND VALUE2;

  • 나이가 20~40세 데이터 검색
mysql> SELECT * FROM CELEB WHERE AGE BETWEEN 20 AND 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)
  • 생년월일이 1980년에서 1995년 사이가 아니면서 여자이거나, YG엔터테이먼트 소속이면서 나이가 20세에서 45세 사이가 아닌 데이터 검색
mysql> SELECT * FROM CELEB
    -> WHERE (NOT BIRTHDAY BETWEEN 19800101 AND 19951231 AND SEX='F')
    -> OR (AGENCY='YG엔터테이먼트' AND NOT AGE BETWEEN 20 AND 45);
+----+--------+------------+------+------+---------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE     | AGENCY         |
+----+--------+------------+------+------+---------------+----------------+
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델 | YG엔터테이먼트 |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수          | YG엔터테이먼트 |
+----+--------+------------+------+------+---------------+----------------+
2 rows in set (0.00 sec)
  • ID가 1~5사이 값이면서 여자이거나, ID가 홀수이면서 남자이면서 나이가 20~30세 사이인 데이터 검색
mysql> SELECT * FROM CELEB WHERE ID BETWEEN 1 AND 5 AND SEX='F'
    -> OR ID%2=1 AND SEX='M' AND AGE BETWEEN 20 AND 30;
+----+--------+------------+------+------+-------------+------------------+
| 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    | 탤런트      | 나무엑터스       |
+----+--------+------------+------+------+-------------+------------------+
3 rows in set (0.00 sec)

IN

: 목록 안에 조건이 존재하는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE COLUMN IN (VALUE1, VALUE2,...);

  • 나이가 28세, 48세 중 하나인 데이터 검색
mysql> SELECT * FROM CELEB WHERE AGE IN (28,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.00 sec)
  • 소속사가 나무엑터스, 안테나, 울림이 아니면서 성별이 여자이거나, 나이가 45세 이상인 데이터 검색
    < ❗에러 발생 > : 조건 간 우선순위가 있는데 AND가 OR보다 우선순위가 높아 먼저 비교됨.
mysql> SELECT * FROM CELEB WHERE NOT AGENCY IN ('나무엑터스','안테나','울림엔터테이먼트') AND SEX='F'
    -> OR AGE >45;
+----+--------+------------+------+------+---------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE     | AGENCY           |
+----+--------+------------+------+------+---------------+------------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,탤런트   | EDAM엔터테이먼트 |
|  5 | 유재석 | 1972-08-14 |   50 | M    | MC,개그맨     | 안테나           |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델 | YG엔터테이먼트   |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수          | YG엔터테이먼트   |
+----+--------+------------+------+------+---------------+------------------+
4 rows in set (0.00 sec)

< 💡올바른 방식 > : 여자이거나 45세 이상인 데이터 묶어주기.

mysql> SELECT * FROM CELEB
    -> WHERE NOT AGENCY IN('나무엑터스','안테나','울림엔터테이먼트')
    -> AND (SEX='F' OR AGE>=45);
+----+--------+------------+------+------+---------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE     | AGENCY           |
+----+--------+------------+------+------+---------------+------------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,탤런트   | EDAM엔터테이먼트 |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델 | YG엔터테이먼트   |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수          | YG엔터테이먼트   |
+----+--------+------------+------+------+---------------+------------------+
3 rows in set (0.00 sec)
  • 아이유, 이미주, 유재석, 송강 중에 소속사가 '나무엑터스'인 데이터
mysql> SELECT * FROM CELEB WHERE NAME IN('아이유','이미주','유재석','송강') AND AGENCY='나무엑터스';
+----+------+------------+------+------+-----------+------------+
| ID | NAME | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY     |
+----+------+------------+------+------+-----------+------------+
|  3 | 송강 | 1994-04-23 |   28 | M    | 탤런트    | 나무엑터스 |
+----+------+------------+------+------+-----------+------------+
1 row in set (0.00 sec)
  • 아이유,송강,강동원,차승원 중에 YG엔터테이먼스 소속이 아니거나 나이가 40~50세 사이인 데이터 검색
mysql> SELECT * FROM CELEB WHERE NAME IN('아이유','송강','강동원','차승원')
    -> AND (NOT AGENCY='YG엔터테이먼트' OR AGE BETWEEN 40 AND 50);
+----+--------+------------+------+------+-----------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY           |
+----+--------+------------+------+------+-----------------+------------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,탤런트     | EDAM엔터테이먼트 |
|  3 | 송강   | 1994-04-23 |   28 | M    | 탤런트          | 나무엑터스       |
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트   |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트   |
+----+--------+------------+------+------+-----------------+------------------+
4 rows in set (0.00 sec)

LIKE

: 조건 값이 패턴에 맞으면 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE COLUMN LIKE pattern;

  • 소속사 이름이 YG~로 시작하는 데이터 검색 (키워드+%)
mysql> SELECT * FROM CELEB WHERE AGENCY LIKE 'YG%';
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트 |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트 |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수            | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------------+----------------+
3 rows in set (0.00 sec)
  • ~엔터테이먼트 로 끝나는 소속사 명을 가진 데이터 검색 (%+키워드)
mysql> SELECT * FROM CELEB WHERE AGENCY LIKE '%엔터테이먼트';
+----+--------+------------+------+------+-----------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY           |
+----+--------+------------+------+------+-----------------+------------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,탤런트     | EDAM엔터테이먼트 |
|  2 | 이미주 | 1994-09-23 |   28 | F    | 가수            | 울림엔터테이먼트 |
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트   |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트   |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수            | YG엔터테이먼트   |
+----+--------+------------+------+------+-----------------+------------------+
5 rows in set (0.00 sec)
  • 직업에 '가수'가 포함된 데이터 검색(%+키워드+%)
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)
  • 소속사 이름의 두번째 들자가 G인 데이터 검색(_+키워드+%)
mysql> SELECT * FROM CELEB WHERE AGENCY LIKE '_G%';
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트 |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트 |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수            | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------------+----------------+
3 rows in set (0.00 sec)
  • 직업명이 '가'로 시작하고 최소 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)
  • 직업명이 '가'로 시작하고, 최소 5글자 이상인 데이터 검색 (글자수 확보:_ *갯수)
mysql> SELECT * FROM CELEB WHERE JOB_TITLE LIKE '가____%';
+----+--------+------------+------+------+-------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE   | AGENCY           |
+----+--------+------------+------+------+-------------+------------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,탤런트 | EDAM엔터테이먼트 |
+----+--------+------------+------+------+-------------+------------------+
1 row in set (0.00 sec)
  • 직업명이'영'으로 시작하고 '모델'로 끝나는 데이터 검색
mysql> SELECT * FROM CELEB WHERE JOB_TITLE LIKE '영%모텔';
+----+--------+------------+------+------+---------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE     | AGENCY         |
+----+--------+------------+------+------+---------------+----------------+
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델 | YG엔터테이먼트 |
+----+--------+------------+------+------+---------------+----------------+
1 row in set (0.00 sec)
  • 영화배우와 텔런트를 병행하는 데이터 검색
mysql> SELECT * FROM CELEB WHERE JOB_TITLE LIKE '%영화배우%' AND JOB_TITLE LIKE '%탤런트%';
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------------+----------------+
1 row in set (0.00 sec)
  • 직업이 하나 이상인 연예인 중 영화배우 혹은 탤런트가 아닌 데이터 검색
mysql> SELECT * FROM CELEB
    -> WHERE JOB_TITLE LIKE '%,%'
    -> AND NOT (JOB_TITLE LIKE '%영화배우%' OR JOB_TITLE LIKE '%탤런트%');
+----+--------+------------+------+------+-----------+--------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+-----------+--------+
|  5 | 유재석 | 1972-08-14 |   50 | M    | MC,개그맨 | 안테나 |
+----+--------+------------+------+------+-----------+--------+
1 row in set (0.00 sec)
  • 성별이 남자이거나 직업명이 탤런트로 끝나면서 최소 5글자 이상인 데이터 검색
mysql>SELECT * FROM CELEB WHERE SEX='M' OR JOB_TITLE LIKE '%__탤런트';
+----+--------+------------+------+------+-----------------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY           |
+----+--------+------------+------+------+-----------------+------------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,탤런트     | EDAM엔터테이먼트 |
|  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엔터테이먼트   |
+----+--------+------------+------+------+-----------------+------------------+
5 rows in set (0.00 sec)
  • 나이가 30~50세 이면서 개그맨이 아닌 데이터 검색
mysql> SELECT * FROM CELEB WHERE AGE BETWEEN 30 AND 50 AND JOB_TITLE NOT LIKE'%개그맨';
+----+--------+------------+------+------+-----------------+----------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE       | AGENCY         |
+----+--------+------------+------+------+-----------------+----------------+
|  4 | 강동원 | 1981-01-18 |   41 | M    | 영화배우,탤런트 | YG엔터테이먼트 |
|  6 | 차승원 | 1970-06-07 |   48 | M    | 영화배우,모델   | YG엔터테이먼트 |
+----+--------+------------+------+------+-----------------+----------------+
2 rows in set (0.00 sec)
  • 아이유, 이미주, 송강, 이수현 중 가수만 직업으로 가지거나, 가수를 병행하지 않고 탤런트를 하는 데이터 검색
mysql> SELECT * FROM CELEB WHERE NAME IN('아이유','이미주','송강','이수현')
    -> AND (JOB_TITLE='가수' OR (JOB_TITLE NOT LIKE'%가수%' AND JOB_TITLE LIKE'탤런트'));
+----+--------+------------+------+------+-----------+------------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY           |
+----+--------+------------+------+------+-----------+------------------+
|  2 | 이미주 | 1994-09-23 |   28 | F    | 가수      | 울림엔터테이먼트 |
|  3 | 송강   | 1994-04-23 |   28 | M    | 탤런트    | 나무엑터스       |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수      | YG엔터테이먼트   |
+----+--------+------------+------+------+-----------+------------------+
3 rows in set (0.00 sec)
profile
데이터분석 스터디노트🧐✍️
post-custom-banner

0개의 댓글