본문 바로가기
Programming/Database

postgres DATABASE #Export CSV, UUID, JOIN USING

by 하하호호 2021. 10. 24.
반응형

# Export To CSV

데이터 베이스의 결과값을 CSV로 추출할 수 있다.

먼저 결과값을 copy하고

CSV로 추출할 경우 DELIMITER은 ','로 설정한다.

 

\copy (SELECT * FROM person LEFT JOIN car ON car.id=person.car_id) To 'C:\project\temp\java_systax\results.csv' DELIMITER ',' CSV HEADER;

 

 

# BIGINT BIGSERIAL

데이터베이스 스키마에 보통  고유한 id값을

자동적으로 증가를 시켜주는 요소가

BIGSERIAL 키워드를 붙이게 된다.

 

BIGSERIAL을 붙이게 되면 

릴레이션에 새로운 시퀀스가

생기는 것을 확인할 수 있다.

 

id 값의 default 내역을 확인해보면

nextval('person_id_seq'::regclass)를 확인할 수 있다.

이건, 시퀀스에 따라서 자동으로 숫자를 올려준다는

의미를 가진다.

 

 

실제로 시퀀스를 실행하면,

자동으로 nextval값이 증가하는 것을

확인할 수 있다.

만약 새로운 record를 추가하게 되면

연속적인 값이 아닌 nextval를 담고

있게 된다.

 

 

#SEQUENCE 초기화

만약 시퀀스 값을 초기화 하고 싶다면

ALTER 명령어를 사용한다.

 

ALTER SEQUENCE person_id_seq RESTART WITH 27;

 

시퀀스의 nextval가 27로 초기화 된것을

확인할 수 있다.

 

 

# postgres Extensions

 

postgres에서 다양한 extensions기능을

사용할 수 있다. 

 

SELECT * FROM pg_available_extensions;

 

#UUID

UUID는 Univerally Unique Identifiers의 약자다.

기본키로 많이 사용되는 값이다.

 

범용 고유 식별자 - 위키백과, 우리 모두의 백과사전

범용 고유 식별자(汎用固有識別子, 영어: universally unique identifier, UUID)는 소프트웨어 구축에 쓰이는 식별자 표준으로, 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다. U

ko.wikipedia.org

\df를 입력해서 현재 설치된 사용가능 

함수목록을 볼 수 있다. 지금은 UUID-OSSP만

설치했기 때문에 관련 함수만 출력이 된다.

 

\df

 

v4의 UUID를 생성하는 함수를 실행하면 

실제 UUID를 얻을 수 있다. UUID는 어떤

값과도 중복되지 않기 때문에 PRIMARY KERY로

사용가능하다.

SELECT uuid_generate_v4();

 

# postgres EXTENSION 설치하는 방법

 

아래 명령어를 입력해주고, 설치하고자 하는

EXTENSION 이름을 입력해준다.

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

설치된 버전을 바로 확인할 수 있다.

SELECT * FROM pg_available_extensions;

 

 

# UUID를 이용한 CREATE TABLE

 

PRIMARY KEY에 UUID를 이용하기 위해서는

BIGSERIAL 키워드를 지우고, UUID를 사용한다.

기존 person 테이블과 외래키를 사용할 

car 테이블을 CREATE 해준다.

INSERT할 record에는 기존에 설치한

UUID function을 실행해준다.

uuid_generate_v4()

 

테이블을 CREATE 하고 난 후 확인해보면

정상적으로 UUID가 생성되었고, 

PRIMARY KEY로 작동하는 것을 확인할 수 있다.

 

#FOREIGN TABLE UPDATE

보조테이블의 record를 기본 테이블에 입력하는

작업은 UPDATE 키워드를 사용해서 진행한다.

UPDATE person SET car_uid='db695cfd-cc70-4ee8-9a54-a450c3da70d5' WHERE person_uid='b72e4715-b10f-4057-9589-cec1a5c84c97';

 

테이블을 확인해보면 정상적으로 

외래테이블의 record가 입력된 것을

확인할 수 있다.

 

 

# JOIN USING

외래 테이블을 JOIN할 경우 ON 키워드를 사용해서

조건값을 입력해줘야 합쳐진 테이블을 확인할 수 있다.

하지만, 외래키와 외래테이블의 PRIMARY KEY 명이

동일한 경우 ON 키워드 보다는 

USING 키워드가 효율적이다.

 

아래 예시에서는 person 테이블의 외래키인 car_uid와

car 테이블의 PRIMARY KEY인 car_uid 이름을 동일하게

설정하여 USING 키워드를 사용한 예시다.

SELECT * FROM person JOIN car USING(car_uid);

 

반응형

'Programming > Database' 카테고리의 다른 글

postgreSQL DELETE TABLE 데이터베이스 삭제  (0) 2021.11.02
postgreSQL in Django  (0) 2021.10.25
postgres DATABASE URL FORMAT  (0) 2021.10.24
postgres Database # Foreign Key  (0) 2021.10.24
postgres Database # Primary Key  (0) 2021.10.24
postgres Database 명령어  (0) 2021.10.22

댓글