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     |
+-------+-------+

Related Posts

MariaDB / DATA / CSV 파일 데이터 가져오는 방법

MariaDB / DATA / CSV 파일 데이터 가져오는 방법

LOAD DATA INFILE MariaDB의 LOAD DATA INFILE로 텍스트 파일의 데이터를 가져올 수 있습니다. 문법은 다음과 같습니다. LOAD DATA INFILE 'file_name' INTO TABLE tbl_name [{FIELDS | COLUMNS} ...

MariaDB / Query / EVENT / 만들기, 수정하기, 삭제하기

MariaDB / Query / EVENT / 만들기, 수정하기, 삭제하기

EVENT를 사용하기 위한 설정 방법 1 50-server.cnf에 다음 코드를 추가하고 MariaDB를 다시 시작한다. 영구적으로 적용된다. event_scheduler = ON 방법 2 다음과 같이 설정한다. 단, MariaDB를 다시 시작하면 OFF로 변경된다. SET GLOBAL event_scheduler = ON; 설정 상태 확인 SHOW variables LIKE 'event%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | ON | +-----------------+-------+ EVENT 만들기 이벤트 이름 : EVENT_TEST 이벤트 ...

MariaDB / 피벗 테이블 만들기

MariaDB / 피벗 테이블 만들기

피벗 테이블은 엑셀의 유용한 기능 중의 하나이다. 예를 들어 아래의 왼쪽 데이터를 오른쪽 표처럼 만드는 것이 피벗 테이블이다. 조건에 따라 그룹화시켜서 보기 좋게 데이터를 정리하는 것이라 보면 된다. MariaDB에서도 몇 가지 함수를 이용하여 피벗 테이블을 만들 수 있다. 테이블의 이름이 pivot이라 가정하면, 아래처럼 쿼리를 짜면 된다. SELECT company , ...

MariaDB / Query / 주석

MariaDB / Query / 주석

MariaDB의 쿼리문에서 주석을 만드는 방법은 세 가지가 있습니다. 한 줄 주석 한 줄 주석을 만들고 싶다면 # 또는 --를 사용합니다. 기호가 있는 다음부터 줄 끝까지가 주석이 됩니다. # Comment -- Comment 여러 줄 주석 여러 줄의 주석을 만들고 싶다면 /* */를 사용합니다. /* Comment Comment */

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

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

REPLACE는 특정 문자열을 찾아 다른 문자열로 바꾸는 함수입니다. 특정 위치의 문자열을 다른 문자열로 바꾸고 싶다면 INSERT 함수를 사용합니다. 문법 REPLACE( string, from_string, to_string ) string : 찾아서 바꾸는 대상이 되는 문자열 from_string : 찾을 문자열 to_string : 교체될 문자열 예제 1 ababab에서 b를 찾아 c로 바꿉니다. SELECT REPLACE( 'ababab', 'b', 'c' ); +-------------------------------+ | REPLACE( 'ababab', 'b', 'c' ) | +-------------------------------+ | acacac ...

MariaDB / HeidiSQL / 쿼리 실행하는 방법

MariaDB / HeidiSQL / 쿼리 실행하는 방법

HeidiSQL을 실행하고 데이터베이스 서버에 연결합니다. 쿼리를 실행할 데이터베이스를 선택합니다. 탭을 클릭합니다. 쿼리를 입력하고 삼각형 모양의 아이콘을 클릭하면 쿼리가 실행됩니다. 단축키는 F9입니다. 쿼리 결과는 하단에 표시됩니다. 여러 개의 쿼리를 입력하고 실행하면, 각 결과가 별도의 탭으로 표시됩니다. 쿼리를 선택하고 을 클릭하면 선택한 쿼리만 실행됩니다. 단축키는 Shift+Ctrl+F9입니다.

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 / HeidiSQL / MariaDB에 연결하는 방법

MariaDB / HeidiSQL / MariaDB에 연결하는 방법

HeidiSQL로 MariaDB에 접속해보겠습니다. 만약 다른 기기에 있는 MariaDB라면 통신이 가능하도록 포트가 열려 있어야 합니다. MariaDB의 기본 포트는 3306입니다. HeidiSQL을 실행하면 세션 관리자가 열립니다. 를 클릭합니다. 다음과 같은 화면이 나오는데, 네트워크 유형이 MariaDB or MySQL인 것을 확인하고... 서버 정보를 입력합니다. 세션 이름은 적절히 정하고 합니다. 이제 세션 이름을 더블 클릭하거나, 를 클릭하여 접속할 수 있습니다. 아래는 MariaDB에 접속한 ...

MariaDB / Query / GROUP BY

MariaDB / Query / GROUP BY

예제로 사용한 데이터베이스는 employees입니다. GROUP BY를 사용하면 공통 데이터를 갖고 있는 행들을 집계할 수 있습니다. 예를 들어 사번이 10001인 사원의 급여 지급 내역을 알고 싶다면 다음과 같이 쿼리합니다. SELECT emp_no, salary FROM salaries WHERE emp_no = 10001; +--------+--------+ | emp_no | salary | +--------+--------+ | 10001 | 60117 | | 10001 | 62102 | | ...

MariaDB / Procedure

MariaDB / Procedure

예제로 사용한 데이터베이스는 employees이다. Procedure Procedure를 이용하면 여러 쿼리를 한 번에 실행할 수 있다. 기본 예제 Procedure 만들기 delimiter를 다른 것으로 변경한다. MariaDB > delimiter ## create procedure로 procedure를 만든다. procedure 이름 뒤에 괄호에는 매개변수가 들어간다. p_departments라는 이름의 매개변수가 없는 Procedure이다. departments 테이블의 모든 데이터를 출력한다. MariaDB > create procedure p_departments() -> begin -> select ...