(1) Logical Operators (논리 연산자)
(2) Logical Operators (논리 연산자 문법
#Logical Operators (논리 연산자)
+---------+---------------------------------------+
| 연산자 | 의미 |
+---------+---------------------------------------+
| AND | 조건을 모두 만족하는 경우 TRUE |
| OR | 하나의 조건이라도 만족하는 경우 TRUE |
| NOT | 조건을 만족하지 않는 경우 TRUE |
| BETWEEN | 조건값이 범위 사이에 있으면 TRUE |
| IN | 조건값이 목록에 있으면 TRUE |
| LIKE | 조건값이 패턴에 맞으면 TRUE |
+---------+---------------------------------------+
- Logical Operators 는 논리 연산자라고도 하며 논리 연산자는 SQL에서 조건을 결합하고 복잡한 검색 조건을 만드는 데 사용된다. 주로 WHERE 절과 조건을 결합하는 데 사용되며 다음과 같은 세 가지가 있다:
BETWEEN: BETWEEN 연산자는 테이블 내에 범위 안에 조건으로 지정한 값이 있는지 확인하는 것이다. 조건으로 지정한 값이 시작 값과 끝 값 사이에 존재한다면 TRUE를 반환하여 TRUE에 해당하는 행들을 출력해준다.
IN: IN 연산자는 값이 목록에 속하는지 확인한다. 목록 중 하나에 값이 포함되어 있으면 TRUE를 반환하여 TRUE에 해당하는 행들을 출력해준다.
LIKE: LIKE 연산자는 패턴을 사용하여 값의 일부 또는 전체를 비교한다. 패턴은 '%'를 사용하여 일치하는 문자열의 일부를 나타내며, ''는 단일 문자를 나타낸다.
여기서 패턴은 'a%'라고 하면 'a'로 시작하는 모든 문자열을, 'a'라고 하면 'a'로 시작하는 두 글자짜리 문자열을 나타내어 출력해준다.
#실습데이터
+----+--------+------------+-----+-----+---------------+-------------------+
| 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엔터테인먼트 |
+----+--------+------------+-----+-----+---------------+-------------------+
🖍️ BETWEEN 연산자 (조건값이 범위 사이에 있으면 TRUE)
#BETWEEN 연산자 (조건값이 범위 사이에 있으면 TRUE)
SELECT columnl, column2
FROM tablename
WHERE columnl BETWEEN value1 AND value2;
#예시, celeb 테이블에서 나이가 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)
SELECT column1, column2: column1, column2 에 해당하는 열을 조회하려고 지정하는 것이다.
WHERE column1 BETWEEN value1 AND value2: column1, column2 열을 조회할 때 데이터를 필터링하는 조건을 지정하는 것이다. WHERE 절에 "BETWEEN" 연산자를 사용해
BETWEEN value1 AND value2 와 같이 "column1"의 값이 "value1"과 "value2" 사이의 주어진 범위 내에 값이 있는지 확인하고 해당하는는 행(row)만 선택되어 출력된다.
즉 데이터베이스 테이블에서 특정 범위에 해당하는 행(row)의 특정 열(column)을 선택하는 것이다.
🖍️ IN 연산자 (조건값이 목록에 있으면 TRUE)
#IN 연산자 (조건값이 목록에 있으면 TRUE)
SELECT columnl, column2
FROM tablename
WHERE column IN (value1, value2 …);
#예시, celeb 테이블에서 나이가 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)
SELECT column1, column2: column1, column2 에 해당하는 열을 조회하려고 지정하는 것이다.
WHERE column IN (value1, value2, ...): column1, column2 열을 조회할 때 데이터를 필터링하는 조건을 지정하는 것이다. WHERE 절에 "IN" 연산자를 사용해 "column1"의 값에 "value1"과 "value2"가 포함되어 있는지 확인하고 값이 포함된 행(row)만 선택하여 출력하는 것이다.
🖍️ LIKE 연산자 (조건값이 패턴에 맞으면 TRUE )
# LIKE 연산자 (조건값이 패턴에 맞으면 TRUE )
SELECT columnl, column2
FROM tablename
WHERE column LIKE pettern;
#예시, celeb 소속사 이름이 ‘YG엔터테이먼트’ 인 데이터를 검색
mysql> SELECT * FROM celeb WHERE agency LIKE '엔터테이먼트';
# 패턴 '%'를 사용하여 나타낸 celeb 소속사 이름이 ‘YG엔터테이먼트’ 인 데이터를 검색
mysql> SELECT * FROM celeb WHERE agency LIKE 'YG%';
mysql> SELECT * FROM celeb WHERE agency LIKE '%엔터테이먼트';
# 패턴 '_'과 '%' 를 사용하여 나타낸 celeb 테이블 내에 소속사 이름의 두번째 글자가 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)
SELECT column1, column2: column1, column2 에 해당하는 열을 조회하려고 지정하는 것이다.WHERE column LIKE pettern;: LIKE 연산자는 패턴을 사용하여 값의 일부 또는 전체를 비교하여 패턴과 일치하는 값을 가진 행(row)을 출력한다.
pettern (패턴)은 '%'를 사용하여 일치하는 문자열의 일부를 나타낸다. 예를들어 패턴은 'a%'라고 하면 'a'로 시작하는 모든 문자열을 나타내는 것이다.
또다른 pettern (패턴)인 '_'는 단일 문자를 나타낸다. 예를 들어 'a_'라고 하면 'a'로 시작하는 두 글자짜리 문자열을 나타내어 출력해준다.