***리눅스 명령문 입력 방법
ps -ef | grep postgres
서비스 어떤 계정으로 떠 있는지 확인 후
해당 계정으로 체인지하여
plsql 명령문을 입력한다.
plsql 명령문을 사용하려면
..\PostgreSQL\11\data에서 명령문을 실행해야 된다.
(JAVA와 같이 환경변수 등록 시 어디에서든 명령문 사용 가능)
2-2 메타커맨드
마지막에 ;을 붙이지 않는다.
psql 클라이언트 내에서 처리되며, 명령어 자체가 단일 동작이므로 세미콜론이 필요 없다.
예시) \d table
테이블(릴레이션 파티션) 구조 확인

\d+ table
+를 붙이면 테이블의 스토리지 방식 등 더 상세한 내용을 확인 할 수 있다.

3 쿼리
3-1 LIMIT(3개의 데이터만 출력하는 방법)
SELECT * FROM TABLE LIMIT 3; (꼭 띄어줘야 한다. LIMIT 1)
4 파티션 테이블 만들기
파티션 테이블의 경우 RANGE와 LIST로 나뉘며
어떠한 특정값을 기준으로 카테고리를 정리할 때 사용한다.

4-1 RANGE 파티션 생성 방법
*테이블 생성 파티션 RANGE 설정 (sale_date 기준)
CREATE TABLE sales (
id SERIAL,
sale_date DATE NOT NULL,
amount NUMERIC
) PARTITION BY RANGE (sale_date);
파티션 테이블 생성
CREATE TABLE sales_2023 PARTITION OF sales
FOR VALUES FROM ('2023-01-01') TO ('2023-12-31');
파티션 테이블 생성
CREATE TABLE sales_2024 PARTITION OF sales
FOR VALUES FROM ('2024-01-01') TO ('2024-12-31');
*테이블 명이 달라도 다른 파티션 테이블과 레인지가 동일 할 경우 생성 되지 않는다.
CREATE TABLE sales_2025 PARTITION OF sales
FOR VALUES FROM ('2024-01-01') TO ('2024-12-31');
INSERT INTO sales (sale_date, amount) VALUES ('2023-07-31', 1000);
sales 테이블에 데이터 저장 시 sale_date 값에 따라 자동으로
생성된 파티션 range에 따라 데이터가 저장된다
해당 쿼리문에서는 기간이(sale_date)가 2023-07-31이기 때문에
sales_2023에 데이터가 저장된다.
select * from sales를 해도 데이터가 조회된다.
4-1 LIST 파티션
CREATE TABLE members (
id SERIAL,
name TEXT NOT NULL,
membership_status TEXT NOT NULL
) PARTITION BY LIST (membership_status);
CREATE TABLE members_vip PARTITION OF members
FOR VALUES IN ('VIP');
CREATE TABLE members_regular PARTITION OF members
FOR VALUES IN ('Regular');
--members_vip 파티션 테이블에 저장
INSERT INTO members (name, membership_status) VALUES ('VIPUser', 'VIP');
--members_regular 파티션 테이블에 저장
INSERT INTO members (name, membership_status) VALUES ('RegularUser', 'Regular');