MariaDB / Query / IN, NOT IN

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

IN

예를 들어 first_name이 Georgi 또는 Parto인 직원의 목록을 추출하고 싶다면 다음과 같이 쿼리할 수 있습니다.

SELECT first_name, last_name FROM employees WHERE first_name = 'Georgi' OR first_name = 'Parto' LIMIT 10;

하지만, 골라내야 하는 first_name이 더 많아진다면 쿼리가 길어집니다. 그런 경우 IN을 사용하면 쿼리를 단순하게 만들 수 있습니다.

SELECT first_name, last_name FROM employees WHERE first_name IN ( 'Georgi', 'Parto' ) LIMIT 10;
+------------+-----------+
| first_name | last_name |
+------------+-----------+
| Georgi     | Facello   |
| Parto      | Bamford   |
| Parto      | Wrigley   |
| Georgi     | Atchley   |
| Georgi     | Itzfeldt  |
| Parto      | Hitomi    |
| Georgi     | Klassen   |
| Georgi     | Barinka   |
| Parto      | Heinisuo  |
| Parto      | Mandell   |
+------------+-----------+

NOT IN

예를 들어 first_name이 Georgi나 Parto가 아닌 직원의 목록을 추출하고 싶다면 다음과 같이 쿼리할 수 있습니다.

SELECT first_name, last_name FROM employees WHERE first_name != 'Georgi' AND first_name != 'Parto' LIMIT 10;

하지만, 대상이 되는 이름이 더 많아진다면 쿼리가 길어집니다. 그런 경우 NOT IN을 사용하면 쿼리를 단순하게 만들 수 있습니다.

SELECT first_name, last_name FROM employees WHERE first_name NOT IN ( 'Georgi', 'Parto' ) LIMIT 10;
+------------+-----------+
| first_name | last_name |
+------------+-----------+
| Bezalel    | Simmel    |
| Chirstian  | Koblick   |
| Kyoichi    | Maliniak  |
| Anneke     | Preusig   |
| Tzvetan    | Zielinski |
| Saniya     | Kalloufi  |
| Sumant     | Peac      |
| Duangkaew  | Piveteau  |
| Mary       | Sluis     |
| Patricio   | Bridgland |
+------------+-----------+

Related Posts

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

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

ELT는 특정 위치의 문자열을 출력하는 함수입니다. ELT( N, string1, string2, string3, ... ) A, B, C, D에서 2번째의 문자열인 B를 출력합니다. SELECT ELT( 2, 'A', 'B', 'C', 'D' ); +------------------------------+ | ELT( 2, 'A', 'B', 'C', 'D' ) | +------------------------------+ | B ...

MariaDB / 함수 / REPLACE / 문자열 찾아서 바꾸는 함수

MariaDB / 함수 / REPLACE / 문자열 찾아서 바꾸는 함수

REPLACE는 특정 문자열을 찾아 다른 문자열로 바꾸는 함수입니다. REPLACE( string, from_string, to_string ) string : 찾아서 바꾸는 대상이 되는 문자열 from_string : 찾을 문자열 to_string : 교체될 문자열 아래는 ababab에서 b를 찾아 c로 바꾸는 예제입니다. SELECT REPLACE( 'ababab', 'b', 'c' ); +-------------------------------+ | REPLACE( 'ababab', 'b', 'c' ) | +-------------------------------+ | acacac ...

MariaDB / TABLE / 열 추가하기, 열 삭제하기, 열 순서 변경하기, 열 데이터 타입 변경하기

MariaDB / TABLE / 열 추가하기, 열 삭제하기, 열 순서 변경하기, 열 데이터 타입 변경하기

데이터베이스 만들기 열(Column) 추가, 삭제 등을 해볼 테스트용 데이터베이스 jbTest를 만듭니다. CREATE DATABASE jbTest; 데이터베이스로 들어갑니다. USE jbTest; jbColumn1, jbColumn2, jbColumn3 세 개의 열을 가진 테이블 jbTable1을 만듭니다. CREATE TABLE jbTable1 ( jbColumn1 INT, jbColumn2 INT, jbColumn3 INT ) ; 다음은 현재 테이블 구조입니다. MariaDB > DESC jbTable1; +-----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | ...

MariaDB / 샘플 데이터베이스 employees 설치하기

MariaDB / 샘플 데이터베이스 employees 설치하기

데이터베이스를 다루는 공부를 할 때 데이터가 들어있는 데이터베이스가 있으면 좋습니다. 직접 만드는 방법도 있지만, 공개된 샘플 데이터베이스를 이용해도 됩니다. 제가 주로 사용하는 것은 test_db입니다. 앞으로의 강좌에서 데이터가 필요한 경우 test_db를 사용할 것입니다. 다음은 MariaDB에 설치하는 방법입니다. GitHub에 있는 test_db 페이지에 접속합니다. Clone or download를 클릭한 다음 다운로드합니다. 서버에 업로드한 다음 압축을 풉니다. employees.sql가 있는 폴더에서 ...

MariaDB / DATABASE / 만들기, 삭제하기, 이름 변경하기

MariaDB / DATABASE / 만들기, 삭제하기, 이름 변경하기

로그인 MariaDB에 로그인합니다. root 계정으로 로그인 한다면 mysql -u root -p 데이터베이스 목록을 조회합니다. MariaDB > SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) 데이터베이스 ...

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' ) | +-------------------------------+ | ...

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 / 함수 / LTRIM, RTRIM, TRIM / 양끝 문자열 제거 함수

MariaDB / 함수 / LTRIM, RTRIM, TRIM / 양끝 문자열 제거 함수

LTRIM LTRIM은 문자열 왼쪽에 있는 공백을 제거합니다. LTRIM( string ) SELECT QUOTE( LTRIM( ' 12 34 ' ) ); +------------------------------+ | QUOTE(LTRIM( ' 12 34 ' )) | +------------------------------+ | '12 34 ' ...

MariaDB / Query / UNION, UNION ALL

MariaDB / Query / UNION, UNION ALL

UNION 또는 UNION ALL을 이용하면 여러 테이블의 데이터를 합하여 출력할 수 있습니다. 예를 들어 다음과 같은 테이블과... SELECT * FROM test_1; +-------+-------+-------+ | col_1 | col_2 | col_3 | +-------+-------+-------+ | 1 | A | 1 | | 2 | ...

MariaDB / 함수 / LIKE

MariaDB / 함수 / LIKE

다음과 같은 테이블이 있습니다. 열의 이름은 column1, 데이터는 12345, 23456 두 개가 있습니다. MariaDB > SELECT * FROM table1; +---------+ | column1 | +---------+ | 12345 | | 23456 | +---------+ WHERE를 이용하면 특정 값을 갖는 행을 출력할 수 있습니다. 예를 들어 다음은 column1의 값이 12345인 데이터를 출력합니다. MariaDB > SELECT * FROM table1 WHERE ...