MariaDB / 연산자 / 논리 연산자

MariaDB의 논리 연산자에 대하여 알아본다. 예제로 사용하는 테이블은 아래의 데이터를 가진 T_2이라는 테이블이다. C_1의 데이터 형식은 정수, C_2의 데이터 형식은 문자이다.

+----+------+------+
| ID | C_1  | C_2  |
+----+------+------+
|  1 |    1 | A    |
|  2 |    2 | B    |
|  3 |    3 | C    |
|  4 |    0 | NULL |
|  5 | NULL | A    |
|  6 |    1 | B    |
|  7 |    2 | C    |
|  8 |    3 | NULL |
|  9 |    1 | C    |
| 10 | NULL | NULL |
+----+------+------+

반환된 값이 1인 데이터를 추출할 때는 WHERE를 사용한다.

AND

여러 조건을 동시에 만족시키는 데이터를 찾을 때 AND 연산자를 사용한다. AND 대신 &&를 사용해도 된다.

  • C_1의 값이 1이고 C_2의 값이 A이면 1을 반환한다.
SELECT
  *,
  C_1 = 1 AND C_2 = 'A' AS R
FROM T_2
;
+----+------+------+------+
| ID | C_1  | C_2  | R    |
+----+------+------+------+
|  1 |    1 | A    |    1 |
|  2 |    2 | B    |    0 |
|  3 |    3 | C    |    0 |
|  4 |    0 | NULL |    0 |
|  5 | NULL | A    | NULL |
|  6 |    1 | B    |    0 |
|  7 |    2 | C    |    0 |
|  8 |    3 | NULL |    0 |
|  9 |    1 | C    |    0 |
| 10 | NULL | NULL | NULL |
+----+------+------+------+

OR

여러 조건 중 적어도 하나를 만족시키는 데이터를 찾을 때 OR 연산자를 사용한다. OR 대신 ||를 사용해도 된다.

  • C_1의 값이 1 또는 C_2의 값이 A이면 1을 반환한다.
SELECT
  *,
  C_1 = 1 OR C_2 = 'A' AS R
FROM T_2
;
+----+------+------+------+
| ID | C_1  | C_2  | R    |
+----+------+------+------+
|  1 |    1 | A    |    1 |
|  2 |    2 | B    |    0 |
|  3 |    3 | C    |    0 |
|  4 |    0 | NULL | NULL |
|  5 | NULL | A    |    1 |
|  6 |    1 | B    |    1 |
|  7 |    2 | C    |    0 |
|  8 |    3 | NULL | NULL |
|  9 |    1 | C    |    1 |
| 10 | NULL | NULL | NULL |
+----+------+------+------+

XOR

XOR은 OR과 비슷하나 조건을 동시에 만족시키는 것을 제외한다.

  • C_1의 값이 1 또는 C_2의 값이 A이면서, C_1의 값이 1이고 C_2의 값이 A가 아니면 1을 반환한다.
SELECT
  *,
  C_1 = 1 XOR C_2 = 'A' AS R
FROM T_2
;
+----+------+------+------+
| ID | C_1  | C_2  | R    |
+----+------+------+------+
|  1 |    1 | A    |    0 |
|  2 |    2 | B    |    0 |
|  3 |    3 | C    |    0 |
|  4 |    0 | NULL | NULL |
|  5 | NULL | A    | NULL |
|  6 |    1 | B    |    1 |
|  7 |    2 | C    |    0 |
|  8 |    3 | NULL | NULL |
|  9 |    1 | C    |    1 |
| 10 | NULL | NULL | NULL |
+----+------+------+------+

NOT

NOT은 주어진 조건을 충족하지 않은 것을 찾을 때 사용한다.

  • C_1의 값이 1이 아니면 1을 반환한다.
SELECT
  *,
  NOT C_1 = 1 AS R
FROM T_2
;
+----+------+------+------+
| ID | C_1  | C_2  | R    |
+----+------+------+------+
|  1 |    1 | A    |    0 |
|  2 |    2 | B    |    1 |
|  3 |    3 | C    |    1 |
|  4 |    0 | NULL |    1 |
|  5 | NULL | A    | NULL |
|  6 |    1 | B    |    0 |
|  7 |    2 | C    |    1 |
|  8 |    3 | NULL |    1 |
|  9 |    1 | C    |    0 |
| 10 | NULL | NULL | NULL |
+----+------+------+------+

논리 연산자 여러 번 사용

논리 연산자를 여러 번 사용해야 하는 경우, 괄호를 이용하여 조건 묶음을 만든다.

  • C_1의 값이 1 또는 C_2의 값이 A이면서, C_1이 NULL이 아니면 1을 반환한다.
SELECT
  *,
  ( C_1 = 1 OR C_2 = 'A' ) AND ( C_1 IS NOT NULL ) AS R
FROM T_2
;
+----+------+------+------+
| ID | C_1  | C_2  | R    |
+----+------+------+------+
|  1 |    1 | A    |    1 |
|  2 |    2 | B    |    0 |
|  3 |    3 | C    |    0 |
|  4 |    0 | NULL | NULL |
|  5 | NULL | A    |    0 |
|  6 |    1 | B    |    1 |
|  7 |    2 | C    |    0 |
|  8 |    3 | NULL | NULL |
|  9 |    1 | C    |    1 |
| 10 | NULL | NULL |    0 |
+----+------+------+------+

Related Posts

MariaDB / DATA / 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE)

MariaDB / DATA / 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE)

데이터베이스와 테이블 만들기 test 데이터베이스를 만듭니다. MariaDB > create database test; Query OK, 1 row affected (0.00 sec) test 데이터베이스를 사용합니다. MariaDB > use test; Database changed table_1 테이블을 만듭니다. MariaDB > CREATE TABLE table_1 ( -> column_1 varchar(100), -> column_2 varchar(100), -> column_3 varchar(100) -> ...

MariaDB / 함수 / ROUND

MariaDB / 함수 / ROUND

ROUND는 반올림하는 함수이다. 별도 설정을 하지 않으면 소수 첫째 자리에서 반올림한다. SELECT ROUND( 1.4 ); +--------------+ | ROUND( 1.4 ) | +--------------+ | 1 | +--------------+ SELECT ROUND( 1.5 ); +--------------+ | ROUND( 1.5 ) | +--------------+ | 2 ...

MariaDB / 함수 / IF, IFNULL, NULLIF

MariaDB / 함수 / IF, IFNULL, NULLIF

IF 문법 IF( expression1, expression2, expression3 ) expression1가 참이면 expression2를, 거짓이면 expression3을 반환합니다. 예제 SELECT IF( 2>3, 'T', 'F' ); +---------------------+ | IF( 2>3, 'T', 'F' ) | +---------------------+ | F | +---------------------+ 2>3이 거짓이므로 F를 반환합니다. SELECT IF( 2<3, 'T', 'F' ); +---------------------+ | IF( ...

MariaDB / 함수 / YEAR, MONTH, DAY / 날짜 데이터에서 년, 월, 일을 반환하는 함수

MariaDB / 함수 / YEAR, MONTH, DAY / 날짜 데이터에서 년, 월, 일을 반환하는 함수

날짜 형식의 데이터에서 년 또는 월 또는 일을 분리해서 출력하고 싶다면 YEAR, MONTH, DATE 함수를 사용합니다. YEAR 날짜 데이터에서 년을 출력하고 싶다면 YEAR 함수를 사용합니다. MariaDB > SELECT YEAR('2020-11-12') as Year; +------+ | Year | +------+ | 2020 | +------+ MONTH 날짜 데이터에서 월을 출력하고 싶다면 MONTH 함수를 사용합니다. MariaDB > SELECT MONTH('2020-11-12') as Month; +-------+ | Month | +-------+ | 11 ...

MariaDB / 함수 / CONCAT, CONCAT_WS / 문자열 합치는 함수

MariaDB / 함수 / CONCAT, CONCAT_WS / 문자열 합치는 함수

예제로 사용한 데이터베이스는 employees입니다. CONCAT CONCAT은 문자열을 이어주는 함수입니다. 예를 들어 CONCAT( first_name, last_name )는 first_name의 값과 last_name의 값을 이어서 출력합니다. MariaDB > SELECT first_name, last_name, CONCAT( first_name, last_name ) FROM employees LIMIT 5; +------------+-----------+---------------------------------+ | first_name | last_name | CONCAT( first_name, last_name ) | +------------+-----------+---------------------------------+ | Georgi | Facello | GeorgiFacello ...

MariaDB / 함수 / INSERT / 일정 구간 문자열 교체하는 함수

MariaDB / 함수 / INSERT / 일정 구간 문자열 교체하는 함수

INSERT는 일정 구간의 문자열을 다른 문자열로 교체하는 함수입니다. INSERT( string, position, length, new-string ) string : 원본 문자열입니다. position : 구간이 시작하는 위치입니다. length : 구간의 길이입니다. new-string : 교체될 문자열입니다. 예를 들어 다음과 같은 경우, 1234567에서 4번째 문자부터 2개를 지우고 ABC를 넣습니다. 즉, 45를 지우고 ABC를 넣습니다. MariaDB > SELECT INSERT( '1234567', 4, 2, 'ABC' ...

DBeaver / MariaDB / CSV 가져오기

DBeaver / MariaDB / CSV 가져오기

대량의 데이터를 CSV 파일로 만들어서 테이블에 삽입할 수 있다. 명령어로도 가능하지만 툴을 이용하는 게 편하다. DBeaver에서 CSV 데이터를 Import하는 방법을 알아본다. CSV의 열과 테이블의 열이 일치하는 경우 다음과 같은 테이블이 있다고 하자. ID는 PRIMARY KEY로 자동 증가 값이다. 엑셀이나 메모장 등으로 CSV 파일을 만든다. 1행에는 열 이름을 넣는다. 자동 증가 값을 가지는 ID의 경우 ...

DBeaver / MariaDB / 기본 키(PRIMARY KEY) 만들기, 삭제하기

DBeaver / MariaDB / 기본 키(PRIMARY KEY) 만들기, 삭제하기

기본 키 만들기 기본 키를 만들 테이블을 더블 클릭합니다. Properties 탭에서 를 클릭합니다. 마우스 우클릭하여 를 클릭하거나, 아래쪽에 있는 아이콘을 클릭합니다. 기본 키로 만들 열을 선택하고 를 클릭합니다. 를 클릭하고... 를 클릭하면... 기본 키 설정이 완료됩니다. 기본 키 삭제하기 기본 키를 선택하고 마우스 우클릭한 후 를 클릭하거나, 아래쪽에 있는 휴지통 아이콘을 클릭하고... 를 클릭한 후... 를 클릭하면 기본 키가 ...

MariaDB / 연산자 / 비교 연산자

MariaDB / 연산자 / 비교 연산자

MariaDB의 비교 연산자에 대하여 알아본다. 예제로 사용하는 테이블은 아래의 데이터를 가진 T_1이라는 테이블이다. C_1의 데이터 형식은 정수, C_2의 데이터 형식은 문자, C_3의 데이터 형식은 날짜이다. +----+------+------+------------+ | ID | C_1 | C_2 | C_3 | +----+------+------+------------+ | 1 | 1 | A ...

MariaDB / 함수 / FIND_IN_SET / 특정 문자열의 위치를 출력하는 함수

MariaDB / 함수 / FIND_IN_SET / 특정 문자열의 위치를 출력하는 함수

FIND_IN_SET은 특정 문자열의 위치를 출력하는 함수입니다. FIND_IN_SET( pattern, string_list ) A, B, C, D에서 B가 몇 번째 위치하는지를 출력합니다. 두 번째에 있으므로 출력하는 값은 2입니다. SELECT FIND_IN_SET( 'B', 'A,B,C,D' ); +-------------------------------+ | FIND_IN_SET( 'B', 'A,B,C,D' ) | +-------------------------------+ | ...