연산자 | 의미 |
---|---|
AND | 조건을 모두 만족하는 경우 TRUE |
OR | 하나의 조건이라도 만족하는 경우 TRUE |
NOT | 조건을 만족하지 않는 경우 TRUE |
BETWEEN | 조건 값이 범위사이에 있으면 TRUE |
IN | 조건 값이 목록에 있으면 TRUE |
LIKE | 조건 값이 패턴에 맞으면 TRUE |
: 조건을 모두 만족하는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE 조건1 AND 조건2 AND...;
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)
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)
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)
: 하나의 조건이라도 만족하는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE 조건1 OR 조건2 OR...;
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)
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)
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)
-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)
: 조건을 만족하지 않는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE NOT 조건...;
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)
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)
: 조건 값이 범위 사이에 있으면 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE 조건1 BETWEEN VALUE1 AND VALUE2;
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)
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)
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)
: 목록 안에 조건이 존재하는 경우 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE COLUMN IN (VALUE1, VALUE2,...);
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)
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)
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)
: 조건 값이 패턴에 맞으면 TRUE
SELECT COL1, COL2,.. FROM tablename WHERE COLUMN LIKE pattern;
%
)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)
_
+키워드+%
)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)
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)
_
*갯수)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)
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)
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)