SQL - [SELECT | order by, where]

솔비·2024년 1월 15일
0

select 절 작동순서




실습환경구축


  • 테이블 및 정보 생성
CREATE TABLE CELEB
    -> (
    -> ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   		 #AUTO_INCREMENT는 ID가 자동으로 증가하는것
    -> NAME varchar(32) NOT NULL DEFAULT '',
    -> BIRTHDAY date,
    -> AGE int,
    -> SEX char(1),
    -> JOB_TITLE varchar(32),
    -> AGENCY varchar(32)
    -> );
Query OK, 0 rows affected (0.05 sec)

mysql> DESC CELEBT
    -> ;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| ID        | int         | NO   | PRI | NULL    | auto_increment |
| NAME      | varchar(32) | NO   |     |         |                |
| BIRTHDAY  | date        | YES  |     | NULL    |                |
| AGE       | int         | YES  |     | NULL    |                |
| SEX       | char(1)     | YES  |     | NULL    |                |
| JOB_TITLE | varchar(32) | YES  |     | NULL    |                |
| AGENCY    | varchar(32) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
  • 데이터 입력
mysql> INSERT INTO CELEB
    -> VALUES(1, '아이유', '1993-05-16', 29, 'F', '가수, 탤런트', 'EDAM엔터테이먼트');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO CELEB
    -> VALUES(2, '이미주', '1994-09-23', 28, 'F', '가수', '울림엔터테이먼트');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO CELEB
    -> VALUES(3, '송강', '1994-04-23', 28, 'M', '탤런트', '나무엑터스');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO CELEB
    -> VALUES(4, '강동원', '1981-01-18', 41, 'M', '영화배우, 탤런트', 'YG엔터테이먼트');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO CELEB
    -> VALUES(5, '유재석', '1972-08-14', 50, 'M', 'MC, 개그맨', '안테나');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO CELEB
    -> VALUES(6, '차승원', '1970-06-07', 48, 'M', '영화배우, 모델', 'YG엔터테이먼트');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO CELEB
    -> VALUES(7, '이수현', '1999-05-04', 23, 'F', '가수','YG엔터테이먼트');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM CELEB;
+----+--------+------------+------+------+------------------+------------------+
| 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엔터테이먼트   |
+----+--------+------------+------+------+------------------+------------------+
7 rows in set (0.00 sec)



ORDER BY


특정컬럼을 기준으로 오름차순(asc) 또는 내림차순(desc)으로 정렬

🧷 ORDER BY 컬렴명 or 별명 or column순서 ASC or DESC


  • celeb 테이블에서 성별이 여자인 데이터의 id, name을 나이 내림차순으로 조회
    SELECT id, name
        -> FROM celeb
        -> where sex = 'F'
        -> ORDER BY age desc;
    +----+-----------+
    | id | name      |
    +----+-----------+
    |  1 | 아이유    |
    |  2 | 이미주    |
    |  3 | 송강      |
    |  7 | 이수현    |
    +----+-----------+
  • celeb 테이블에서 이름과 나이를 나이의 역순으로 정렬한 뒤 이름순으로 정렬하여 조회
SELECT age, name
    -> FROM celeb
    -> ORDER BY age DESC, name ASC;
+------+-----------+
| age  | name      |
+------+-----------+
|   50 | 유재석    |
|   48 | 차승원    |
|   41 | 강동원    |
|   29 | 아이유    |
|   28 | 송강      |
|   28 | 이미주    |
|   23 | 이수현    |
+------+-----------+
7 rows in set (0.00 sec)



WHERE


- where 조건 연산자

#celeb 테이블에서 소속사가 YG엔터테이먼트가 아닌 데이터의 이름, 직업, 소속사를 소속사 순으로 정렬하여 조회하세요.

select name, job_title, agency
    -> from celeb
    -> where agency != 'YG엔터테인먼트'
    -> order by agency;
+-----------+-------------------------+--------------------------+
| name      | job_title               | agency                   |
+-----------+-------------------------+--------------------------+
| 아이유    | 가수, 탤런트            | EDAM엔터테이먼트         |
| 강동원    | 영화배우, 탤런트        | YG엔터테이먼트           |
| 차승원    | 영화배우, 모델          | YG엔터테이먼트           |
| 이수현    | 가수                    | YG엔터테이먼트           |
| 송강      | 가수                    | 나무엑터스               |
| 유재석    | MC, 개그맨              | 안테나                   |
| 이미주    | 가수                    | 울림엔터테이먼트         |
+-----------+-------------------------+--------------------------+
7 rows in set (0.00 sec)



#celeb 테이블에서 성별이 남자인 데이터의 이름, 성별, 소속사 정보를 나이의 역순으로 정렬한 뒤 
# 소속사 순으로 정렬하여 조회하세요.
mysql> select name, sex, agency
    -> from celeb
    -> where sex = 'M'
    -> order by age DESC, agency;
+-----------+------+----------------------+
| name      | sex  | agency               |
+-----------+------+----------------------+
| 유재석    | M    | 안테나               |
| 차승원    | M    | YG엔터테이먼트       |
| 강동원    | M    | YG엔터테이먼트       |
+-----------+------+----------------------+
3 rows in set (0.00 sec)



#celeb 테이블에서 나이가 50세 미만인 데이터의 성별, 소속사, 이름, 나이를 성별 순으로 정렬한 뒤
#소속사 역순으로 정렬하고 마지막으로 이름 순으로 정렬하여 조회하세요
mysql> select sex, agency, name, age
    -> from celeb
    -> where age < 50
    -> order by agency desc, age;
+------+--------------------------+-----------+------+
| sex  | agency                   | name      | age  |
+------+--------------------------+-----------+------+
| F    | 울림엔터테이먼트         | 이미주    |   28 |
| F    | 나무엑터스               | 송강      |   28 |
| F    | YG엔터테이먼트           | 이수현    |   23 |
| M    | YG엔터테이먼트           | 강동원    |   41 |
| M    | YG엔터테이먼트           | 차승원    |   48 |
| F    | EDAM엔터테이먼트         | 아이유    |   29 |
+------+--------------------------+-----------+------+
6 rows in set (0.00 sec)



- where 논리연산자

🧷 and 와 or가 같이 올 때 and 먼저 처리


🚩 AND

조건을 모두 만족할 경우 TRUE

  • celeb 테이블에서 성별이 남자이고 소속사가 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)
  • celeb 테이블에서 나이가 30세 이상이고 성별이 남자인 데이터를 나이순으로 정렬하여 조회
     select *
        -> from celeb
        -> where age >= 30 and sex = 'M'
        -> order by age ;
    +----+-----------+------------+------+------+-------------------------+----------------------+
    | ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
    +----+-----------+------------+------+------+-------------------------+----------------------+
    |  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 탤런트        | YG엔터테이먼트       |
    |  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
    |  5 | 유재석    | 1972-08-14 |   50 | M    | MC, 개그맨              | 안테나               |
    +----+-----------+------------+------+------+-------------------------+----------------------+
    3 rows in set (0.00 sec)

🚩 OR

하나의 조건이라도 만족하는 경우 TRUE

  • YG엔터테이먼트 소속이거나 나무엑터스 소속인 연예인 중 나이가 30세 보다 작은 데이터를 검색

    select * from celeb
        -> where (agency = 'YG엔터테이먼트' or agency = '나무엑터스') and age < 30;
    +----+-----------+------------+------+------+-----------+----------------------+
    | ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY               |
    +----+-----------+------------+------+------+-----------+----------------------+
    |  3 | 송강      | 1994-04-23 |   28 | F    | 가수      | 나무엑터스           |
    |  7 | 이수현    | 1999-05-04 |   23 | F    | 가수      | YG엔터테이먼트       |
    +----+-----------+------------+------+------+-----------+----------------------+
    2 rows in set (0.00 sec)
  • Celeb 테이블에서 남자이면서 YG엔터테이먼트 소속이거나, 나이가 30세 보다 작은 데이터를 나이, 소속사 순으로 정렬하여 검색

    select * from celeb
        -> where (agency = 'YG엔터테이먼트' and sex = 'M') or age < 30
        -> order by age, agency;
    +----+-----------+------------+------+------+-------------------------+--------------------------+
    | ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY                   |
    +----+-----------+------------+------+------+-------------------------+--------------------------+
    |  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                    | YG엔터테이먼트           |
    |  3 | 송강      | 1994-04-23 |   28 | F    | 가수                    | 나무엑터스               |
    |  2 | 이미주    | 1994-09-23 |   28 | F    | 가수                    | 울림엔터테이먼트         |
    |  1 | 아이유    | 1993-05-16 |   29 | F    | 가수, 탤런트            | EDAM엔터테이먼트         |
    |  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 탤런트        | YG엔터테이먼트           |
    |  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트           |
    +----+-----------+------------+------+------+-------------------------+--------------------------+
    6 rows in set (0.00 sec)
  • Celeb 테이블에서 아이디가 홀수면서 성별이 남자거나, 아이디가 짝수면서 소속사가 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               |
    +----+-----------+------------+------+------+-------------------------+----------------------+
    |  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 탤런트        | YG엔터테이먼트       |
    |  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
    |  5 | 유재석    | 1972-08-14 |   50 | M    | MC, 개그맨              | 안테나               |
    +----+-----------+------------+------+------+-------------------------+----------------------+
    3 rows in set (0.01 sec)

🚩 NOT

조건을 만족하지 않으면 True

  • 소속사가 YG엔터테이먼트이면서 남자가 아니거나, 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

    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년 이전이면서 소속사가 안테나가 아닌 데이터 검색

    select * from celeb
        -> 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

  • 생년월일이 1980년에서 1995년 사이가 아니면서 여자이거나,소속사가 YG엔터테이먼트이면서 나이가 20세에서 45세 사이가 아닌 데이터 검색

    select * from celeb
        -> where (birthday (between 19800101 and 19951231) and sex = 'F')
        -> or (agency = 'YG엔터테이먼트' and not age (between 20 and 45));
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'between 19800101 and 19951231) and sex = 'F')
    or (agency = 'YG엔터테이먼트' at line 2
    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)
  • Celeb 테이블에서 아이디가 1 에서 5사이의 값이면서 성별이 여자이거나,
    아이디가 홀수이면서 성별이 남자이면서 나이가 20세에서 30세 사이인 데이터를 조회

    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.01 sec)

🚩 IN

조건값이 목록에 있으면 True

  • 소속사가 나무엑터스, 안테나, 울림엔터테이먼트가 아니면서, 성별이 여자거나 나이가 45세 이상인 데이터 검색

    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)
  • celeb 테이블에서 아이유, 송강, 강동원, 차승원 중에 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 * 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)
  • 직업명에 ‘가수’가 포함된 데이터를 검색
    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)

🧷 % (포함, 시작, 끝)
A로 시작하는 단어 : A%
A로 끝나는 단어 : %A
A가 들어가는 단어 : %A%

  • 소속사 이름의 두번째 글자가 G인 데이터를 검색

    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)
  • 직업명이 '가' 로 시작하고 최소 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)

    🧷 _ (글자수)

  • ❗ 직업이 하나 이상인 연예인 중 영화배우 혹은 텔런트가 아닌 연예인 검색

    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.01 sec)
  • celeb 테이블에서 이름이 두글자인 데이터를 조회하세요

    select * from celeb
      -> where name like '__';
    +----+--------+------------+------+------+-----------+-----------------+
    | ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY          |
    +----+--------+------------+------+------+-----------+-----------------+
    |  3 | 송강   | 1994-04-23 |   28 | M    | 탤런트    | 나무엑터스      |
    +----+--------+------------+------+------+-----------+-----------------+
    1 row in set (0.00 sec)
  • ❗ celeb 테이블에서 아이유, 이미주, 송강, 이수현 중에 가수만 직업으로 가졌거나,가수를 병행하지 않고 텔런트를 하는 사람을 찾으세요.

    mysql> select * from celeb
        -> where name in ('아이유','이미주','송강','이수현')
        -> and ( job_title like '가수' or ( not job_title 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)



연산자 우선순위



Daily Study Note
profile
Study Log

0개의 댓글