일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- @AspectJ
- JdbcTemplate
- java spring
- @test
- SpringJDBC
- unix
- spring framework
- Dependency Injection
- Spring Boot
- Linux
- spring
- myBatis
- pointcut
- AOP
- JDBC TEMPLATE
- Di
- @Spring-Test
- POJO
- 컨테이너
- java
- STS
- 마이바티스
- spring aop
- @JUnit
- Spring JDBC
- XML
- Framework
- 리눅스
- Ubunt
- 프로퍼티
Archives
- Today
- Total
개키우는개발자 : )
PostgreSQL CREATE TABLE AS SELECT (CTAS) 본문
반응형
CTAS 란
CREATE TABLE AS SELECT 의 약어로써 SELECT 문을 기반으로 CREATE TABLE을 할 수 있는 CREATE문이다.
기본문법
- 새로운 테이블명의 이름을 작성 후 SELECT 문을 작성합니다.
CREATE TABLE NEW_TABLE AS SELECT
- 새로운 테이블명의 이름과 컬럼명을 작성 후 SELECT 문을 작성합니다.
CREATE TABLE NEW_TABLE(NEW_COLUMN_1, NEW_COLUMN_2) AS SELECT
- 기존의 테이블이 존재하지 않는 경우만 생성되며 생성된 후 SELECT 문을 작성합니다.
CREATE TABLE IF NOT EXISTS NEW_TABLE AS SELECT
실습
- FILM 테이블과 FILM_CATEGORY 테이블을 조인하고 FILM_CATEGORY 의 CATEGORY_ID 값이 1인 정보를 조회합니다.
SELECT
A.FILM_ID,
A.TITLE,
A.RELEASE_YEAR,
A.LENGTH,
A.RATING
FROM
FILM A,
FILM_CATEGORY B
WHERE
A.FILM_ID = B.FILM_ID
AND B.CATEGORY_ID = 1;
- CREATE AS를 활용하여 ACTION_FILM 테이블을 생성 하면서 조회된 CATEGORY_ID 1번의 데이터를 동시에 저장합니다.
CREATE TABLE ACTION_FILM AS
SELECT
A.FILM_ID,
A.TITLE,
A.RELEASE_YEAR,
A.LENGTH,
A.RATING
FROM
FILM A,
FILM_CATEGORY B
WHERE
A.FILM_ID = B.FILM_ID
AND B.CATEGORY_ID = 1;
- 생성된 ACTION_FILM 테이블을 조회합니다.
SELECT * FROM ACTION_FILM;
- IF NOT EXISTS를 작성하지 않고 중복되는 테이블을 생성하면 ERROR가 발생합니다.
IF NOT EXISTS를 활용하여 ACTION_FILM 테이블 다시 생성을 하게 되면 실제 테이블은 생성되지 않고 에러도 발생하지 않습니다.
CREATE TABLE IF NOT EXISTS ACTION_FILM AS
SELECT
A.FILM_ID,
A.TITLE,
A.RELEASE_YEAR,
A.LENGTH,
A.RATING
FROM
FILM A,
FILM_CATEGORY B
WHERE
A.FILM_ID = B.FILM_ID
AND B.CATEGORY_ID = 1;
반응형
'PostgreSQL > 데이터 조작 및 테이블 관리' 카테고리의 다른 글
PostgreSQL 테이블 구조 및 이름 변경 (0) | 2019.11.19 |
---|---|
PostgreSQL 테이블 생성 (2) | 2019.11.17 |
PostgreSQL 데이터 타입 (0) | 2019.11.17 |
PostgreSQL IMPORT 작업 (0) | 2019.11.17 |
PostgreSQL EXPORT 작업 (0) | 2019.11.16 |
Comments