본문 바로가기
정리

PostgreSQL에서다중 속성 값 처리(Array)

by 난파선 2022. 11. 12.

다중 속성 값 저장

소개


  • DB에 값을 저장할 때 하나의 컬럼에 다중속성값을 저장해야 할 때가 있다. (게시판 태그), 이 때 PostgreSQL에서의 처리방법을 알아본다.
  • 기존에 MySQL, MariaDB를 사용하다가 현회사에서 PostgreSQL를 사용하게 되었고 이번에 SQL 안티패턴 책으로 스터디를 진행하다가 PostgreSQL에서는 다른 방법으로 처리할 수 없을 까? 라는 생각으로 검색을 해보다가 Array타입을 보게 되었고 이걸로 처리할 수 있을 것 같다는 생각이 들었다.

사용방법


배열 컬럼 생성

alter table khj_study
    add test varchar(10)[];

추가

insert into postgres.public.khj_study values (1, array['a', 'b']);
insert into postgres.public.khj_study values (2, array['a', 'b', 'c']);
insert into postgres.public.khj_study values (3, array['a']);

조회

  • any: 배열에 조건하는 값이 있는 지 검사
  • all: 배열과 조건이 전부 일치하는 지 검사
select * from postgres.public.khj_study
where 'a' = any(at);

select * from postgres.public.khj_study
where 'a' = all(at);

업데이트

  • array_append: 내장함수로 배열값에 값을 추가한다.
  • array_remove: 배열값에 값을 지운다.
  • 더 많은 함수들
update postgres.public.khj_study
set
    at = array_append(at, 'd')
where
    id = 2;

update postgres.public.khj_study
set
    at = array_remove(at, 'd')
where
        id = 2;
-- 

참고 사항


'정리' 카테고리의 다른 글

개발환경 구축하기 - 쿠버네티스  (0) 2022.11.11

댓글