: 조건값이 범위 사이에 있으면 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column1 BETWEEN value 1 AND value2;
예제 1:
나이가 20세에서 40세 사이의 데이터 검색
mysql> select from celeb where age between 20 and 40;
OR
mysql> select from celeb where age>= 20 and age<=40; (BETWEEN 과 같은 값)
+----+--------+------------+------+------+--------------+-------------------+
| 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 |
+----+--------+------------+------+------+--------------+-------------------+
예제 2:
생년월일이 1980년-1995년 사이가 아니면서 여자이거나,
mysql> select from celeb where NOT birthday between 19800101 and 19951231 AND sex='F';
소속사가 YG이면서 나이가 20세-45세 사이가 아닌 데이터 검색
mysql> select from celeb where agency='YG and NOT age BETWEEN 20 and 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 |
+----+--------+------------+------+------+----------------+--------+
: 목록 안에 조건이 존재하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column1 IN (value 1, value2,...);
예제 1:
나이가 28세, 48세 중 하나인 (IN) 데이터 검색
mysql> SELECT FROM celeb WHERE age IN (28,48);
mysql> SELECT FROM celeb WHERE 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 |
+----+--------+------------+------+------+----------------+------------------+
예제 2:
소속사가 나무엑터스, 안테나, 울림엔터테이먼트가 아니면서, 성별이 여자거나 나이가 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:
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 |
+----+--------+------------+------+------+------------------+-------------------+
: 조건값이 패턴에 맞으면 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column LIKE pattern;
예제 1:
소속사 이름이 '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 |
+----+--------+------------+------+------+------------------+--------+
예제 2:
'엔터테이먼트'로 끝나는 소속사 이름을 가진 데이터를 검색
mysql> select * from celeb where agency like '%엔터테이먼트';
+----+--------+------------+------+------+-----------+------------------+
| ID | NAME | BIRTHDAY | AGE | SEX | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+-----------+------------------+
| 2 | 이미주 | 1994-09-23 | 28 | F | 가수 | 울림엔터테이먼트 |
+----+--------+------------+------+------+-----------+------------------+
예제 3:
직업명에 '가수가' 포함된 데이터를 검색 (포함된 = 앞 뒤로 %)
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 |
+----+--------+------------+------+------+--------------+-------------------+
예제 4:
소속사 이름의 두번째 글자가 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 |
+----+--------+------------+------+------+------------------+--------+
예제 5:
직업명이 '가'로 시작하고 최소 2글자 이상인 데이터 검색
✅시작은 가로 시작하고 최소 2글자여서 언더바를 사용함.
✅글자수가 늘어남에 따라 언더바도 늘어남
mysql> select * from celeb where jobtitle 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 |
+----+--------+------------+------+------+--------------+-------------------+
예제 6:
직업명이 '영'으로 시작하고 '모델'로 끝나는 데이터 검색
mysql> select * from celeb where job_title like '영%모델';
+----+--------+------------+------+------+----------------+--------+
| ID | NAME | BIRTHDAY | AGE | SEX | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+----------------+--------+
| 6 | 차승원 | 1970-06-07 | 48 | M | 영화배우, 모델 | YG |
+----+--------+------------+------+------+----------------+--------+
예제 7:
영화배우와 탤런트를 병행하는 연예인 검색
✅ 영화배우 와 탤런트 다 포함되어 있어야 함.
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 |
+----+--------+------------+------+------+------------------+--------+
예제 8:
직업이 하나 이상인 연예인 중,
select from celeb where job_title like '%,%';
✅ job_title 안에 , (콤마) 가 포함되어 있으면 직업이 하나 이상.
영화배우 혹은 탤런트가 아닌 연예인 검색;
select from celeb where NOT (job_title LIKE '%영화배우%' OR job_title LIKE '%탤런트%');
통합하면:
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, 개그맨 | 안테나 |
+----+--------+------------+------+------+------------+--------+
예제 9:
직업중 가수가 포함되어 있고, 성이 이씨인 데이터 조회
mysql> select * from celeb where job_title like '%가수%' and name like '이%';
+----+--------+------------+------+------+-----------+------------------+
| ID | NAME | BIRTHDAY | AGE | SEX | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+-----------+------------------+
| 2 | 이미주 | 1994-09-23 | 28 | F | 가수 | 울림엔터테이먼트 |
| 7 | 이수현 | 1999-05-04 | 23 | F | 가수 | YG |
+----+--------+------------+------+------+-----------+------------------+
예제 10:
이름이 두글자인 데이터 조회
mysql> select * from celeb where name like '__';
+----+------+------------+------+------+-----------+------------+
| ID | NAME | BIRTHDAY | AGE | SEX | JOB_TITLE | AGENCY |
+----+------+------------+------+------+-----------+------------+
| 3 | 송강 | 1994-04-23 | 28 | M | 탤런트 | 나무엑터스 |
+----+------+------------+------+------+-----------+------------+