MariaDB / 연산자 / AND, OR, IN

예제로 사용한 데이터베이스는 employees입니다.

AND

여러 조건을 동시에 만족시키는 데이터를 추출할 때 AND 연산자를 사용합니다.

  • employees 테이블에서 first_name이 George이고, gender가 M인 데이터를 가져옵니다.
MariaDB [employees]> SELECT first_name, gender
    -> FROM employees
    -> WHERE
    ->   first_name = "George"
    ->   AND
    ->   gender = "M"
    -> LIMIT 5
    -> ;
+------------+--------+
| first_name | gender |
+------------+--------+
| George     | M      |
| George     | M      |
| George     | M      |
| George     | M      |
| George     | M      |
+------------+--------+

OR

여러 조건 중 적어도 하나를 만족시키는 데이터를 추출할 때 OR 연산자를 사용합니다.

  • salaries 테이블에서 salary가 38800 미만 또는 156000 초과인 데이터를 가져옵니다.
MariaDB [employees]> SELECT salary
    -> FROM salaries
    -> WHERE
    ->   salary < 38800
    ->   OR
    ->   salary > 156000
    -> ORDER BY salary
    -> ;
+--------+
| salary |
+--------+
|  38623 |
|  38735 |
|  38786 |
| 156286 |
| 157821 |
| 158220 |
+--------+

IN

여러 값 중에 하나를 만족하는 것을 출력하는 방법은 OR 연산자를 사용하는 것입니다. 예를 들어 first_name이 Georgi 또는 Parto인 사원을 골라내고 싶다면 다음처럼 구문을 만듭니다.

SELECT emp_no, first_name, last_name
FROM employees
WHERE
	first_name = "Georgi"
	OR
	first_name = "Parto"

위의 예는 조건이 Georgi, Parto 두 개여서 짧지만, 만약 수십 개의 조건 중에 하나를 만족하는 구문을 만든다면 아주 길어집니다. 그럴 때 유용한 연산자가 IN입니다.

MariaDB [employees]> SELECT emp_no, first_name, last_name
    -> FROM employees
    -> WHERE first_name IN ( "Georgi", "Parto" )
    -> ORDER BY first_name
    -> ;
+--------+------------+-----------------+
| emp_no | first_name | last_name       |
+--------+------------+-----------------+
| 249969 | Georgi     | Luiz            |
| 235773 | Georgi     | Schonegge       |
| 436727 | Georgi     | Delgrossi       |
...
| 228180 | Parto      | Castellani      |
| 212333 | Parto      | Keirsey         |
+--------+------------+-----------------+

조건이 많아져도 쉽게 확장할 수 있습니다.

SELECT emp_no, first_name, last_name
FROM employees
WHERE first_name IN ( "Georgi", "Parto", "Mary", "Berni" )