# 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의 약자다.
기본키로 많이 사용되는 값이다.
\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 |
댓글