[SQL] Logical Operators (논리 연산자) - 2, BETWEEN, IN, LIKE

김대현·2024년 6월 8일

(1) Logical Operators (논리 연산자)
(2) Logical Operators (논리 연산자 문법


(1) 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'로 시작하는 두 글자짜리 문자열을 나타내어 출력해준다.



(2) Comparison Operators (비교 연산자) 문법

#실습데이터
+----+--------+------------+-----+-----+---------------+-------------------+
| 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'로 시작하는 두 글자짜리 문자열을 나타내어 출력해준다.

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글