MariaDB / Query / UNION, UNION ALL

UNION 또는 UNION ALL을 이용하면 여러 테이블의 데이터를 합하여 출력할 수 있습니다. 예를 들어 다음과 같은 테이블과...

SELECT * FROM test_1;
+-------+-------+-------+
| col_1 | col_2 | col_3 |
+-------+-------+-------+
|     1 | A     | 1     |
|     2 | B     | 1     |
|     3 | C     | 2     |
|     4 | D     | 2     |
+-------+-------+-------+

다음과 같은 테이블이 있을 때...

SELECT * FROM test_2;
+-------+-------+-------+
| col_1 | col_2 | col_3 |
+-------+-------+-------+
|     1 | A     | 1     |
|     2 | X     | 1     |
|     3 | Y     | 2     |
|     4 | Z     | 2     |
+-------+-------+-------+

UNION으로 합한 결과는 다음과 같습니다. 주의할 점은 중복된 데이터는 한 번만 나온다는 것입니다.

SELECT col_1, col_2 FROM test_1 UNION SELECT col_1, col_2 FROM test_2;
+-------+-------+
| col_1 | col_2 |
+-------+-------+
|     1 | A     |
|     2 | B     |
|     3 | C     |
|     4 | D     |
|     2 | X     |
|     3 | Y     |
|     4 | Z     |
+-------+-------+

만약 중복된 것이라 하더라도 출력하고 싶다면 UNION ALL을 사용합니다.

SELECT col_1, col_2 FROM test_1 UNION ALL SELECT col_1, col_2 FROM test_2;
+-------+-------+
| col_1 | col_2 |
+-------+-------+
|     1 | A     |
|     2 | B     |
|     3 | C     |
|     4 | D     |
|     1 | A     |
|     2 | X     |
|     3 | Y     |
|     4 | Z     |
+-------+-------+

합할 데이터의 형식이나 내용이 일치할 필요는 없습니다. 열의 개수만 맞추면 한 번에 출력 가능합니다.

SELECT col_1, col_2 FROM test_1 UNION ALL SELECT col_2, col_3 FROM test_2;
+-------+-------+
| col_1 | col_2 |
+-------+-------+
| 1     | A     |
| 2     | B     |
| 3     | C     |
| 4     | D     |
| A     | 1     |
| X     | 1     |
| Y     | 2     |
| Z     | 2     |
+-------+-------+
같은 카테고리의 다른 글
MariaDB / 함수 / COUNT, SUM, AVG, MAX, MIN

MariaDB / 함수 / COUNT, SUM, AVG, MAX, MIN

예제로 사용한 데이터베이스는 employees입니다. COUNT COUNT는 특정 조건을 만족하는 행의 개수를 세는 함수입니다. employees 테이블의 전체 행 개수를 구합니다. 의미 상 전체 직원 수를 구하는 것입니다. SELECT COUNT( * ) AS Count FROM employees ; +----------+ | Count | +----------+ | 300024 | +----------+ WHERE를 이용하여 조건을 추가할 수 있습니다. 다음은 남자 직원의 수를 구하는 쿼리입니다. SELECT ...

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 / 함수 / ROUND

MariaDB / 함수 / ROUND

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

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

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

테이블 만들기 test 데이터베이스를 만듭니다. MariaDB > CREATE DATABASE test; Query OK, 1 row affected (0.00 sec) test 데이터베이스를 사용합니다. MariaDB > USE test; Database changed table1을 만듭니다. 열이 하나도 없으면 테이블이 만들어지지 않으므로, 적어도 하나 이상의 열을 만듭니다. MariaDB > CREATE TABLE table1 ( column1 VARCHAR(100) ); Query OK, 0 rows affected (0.35 sec) 테이블이 만들어졌는지 확인합니다. MariaDB > SHOW ...

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

MariaDB / 함수 / LIKE

MariaDB / 함수 / LIKE

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

MariaDB / 함수 / REPEAT / 문자열 반복하여 출력하는 함수

MariaDB / 함수 / REPEAT / 문자열 반복하여 출력하는 함수

개요 REPEAT는 문자열을 반복하여 출력하는 함수입니다. REPEAT( string, count ) string : 반복될 문자열 count : 반복 횟수 예제 123을 4번 반복하여 출력합니다. SELECT REPEAT( '123', 4 ); +---------------------+ | REPEAT( '123', 4 ) | +---------------------+ | 123123123123 | +---------------------+ 반복 횟수가 1 미만이면 빈 문자열을 출력합니다. SELECT REPEAT( '123', 0 ); +--------------------+ | REPEAT( '123', 0 ) ...

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

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

데이터베이스를 다루는 공부를 할 때 데이터가 들어있는 데이터베이스가 있으면 좋다. 데이터베이스를 직접 만드는 방법도 있지만, 공개된 샘플 데이터베이스를 이용하면 편하다. MariaDB라면 test_db를 사용하면 된다. 다음은 MariaDB에 test_db를 설치하는 방법이다. GitHub에 있는 test_db 페이지에 접속한다. Clone or download를 클릭한 다음 다운로드한다. 서버에 업로드한 다음 압축을 푼다. employees.sql가 있는 폴더에서 다음과 같이 명령하여 데이터베이스를 설치한다. mysql -u root ...

MariaDB / 사용자 만들기, 수정하기, 삭제하기, 권한 부여하기, 제거하기

MariaDB / 사용자 만들기, 수정하기, 삭제하기, 권한 부여하기, 제거하기

사용자 목록 보기 mysql 데이터베이스의 user 테이블에서 필요한 정보 출력 SELECT User, Host FROM mysql.user; 사용자 만들기 사용자 이름 jb, 내부에서만 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'localhost' IDENTIFIED BY '1234'; 사용자 이름 jb, 어디에서나 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'%' IDENTIFIED BY '1234'; 사용자 이름 jb, 192.168.0.111에서 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'192.168.0.111' IDENTIFIED BY '1234'; 이미 ...

DBeaver / MariaDB / 연결하는 방법

DBeaver / MariaDB / 연결하는 방법

MariaDB를 명령어로만 관리하는 것은 힘듭니다. 적절한 툴을 이용하면 작업 속도를 높일 수 있습니다. MariaDB를 관리하는 툴을 여러 가지가 있는데, 그 중 하나가 DBeaver입니다. Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL ...