본문 바로가기
반응형

DBMS/PostgreSQL19

[PostgreSQL] 날짜/시간 함수 DATE_PART() - 날짜/시간의 부분값 추출하기 PostgreSQL에서 제공하는 DATE_PART 함수에 대해 알아보자. ▷ 구문 DATE_PART ('field', source) - field : year, month, day 와 같은 날짜/시간 형태의 문자열이다. field 부분에서 사용이 가능한 값들은 아래와 같다. century decade year month day hour minute second microseconds milliseconds dow doy epoch isodow isoyear timezone timezone_hour timezone_minute - soucre : 실제 날짜/시간 값이다. ▷ 예제1) DATE_PART() 함수 기본 사용법 select date_part('century', now()); select date.. 2021. 12. 11.
[PostgreSQL] EXISTS 연산자 - 빠르게 특정 조건의 일치 여부 파악 (ft. NOT EXISTS) PostgreSQL에서 제공하는 EXISTS 연산자에 대해 알아보자. ▷ 구문 EXISTS (subquery) NOT EXISTS (subquery) EXISTS 연산자는 영어 의미 그대로 해당 subquery에서 반환하는 값이 존재하는지의 여부를 판단해주는 역할을 한다. 즉, 특정 조건의 일치 여부에 대해 true/false를 반환하는 것이다. 이 EXISTS 연산자를 사용하는 이유는 성능이 좋기 때문이다. 예를 들어 보통 값이 하나라도 존재하는지를 확인하고자 한다면 아래와 같은 쿼리문을 사용하고는 했을것이다. -- count(*) > 0 인지 체크 select count(*) from mine where name = 'record' 데이터가 적을때는 상관 없지만 만약 많은 데이터를 가진 테이블에서 c.. 2021. 12. 6.
[PostgreSQL] 제약조건(CONSTRAINT) 추가, 삭제 하기 (ft. 변경) PostgreSQL 에서 따로 테이블에 ALTER 구문을 사용하여 제약조건을 추가 및 삭제하는 방법에 대해 알아보자. ▷ 구문 ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명 예제를 통해 더 쉽게 접해보자. ▷ 예제1) 제약조건 추가하기 ALTER TABLE mine ADD CONSTRAINT mine_record_pk PRIMARY KEY(record); ALTER TABLE it ADD CONSTRAINT it_record_fk FOREIGN KEY (record) REFERENCES mine (record); PRIMARY KEY 와 FOREIGN KEY 제약조건 뿐만아니라 다른 제약조건도 추가할 수 .. 2021. 12. 4.
[PostgreSQL] format function - 문자열 포맷 출력 및 동적 쿼리 생성 (ft. EXECUTE FORMAT) PostgreSQL에서 제공하는 format 함수에 대해 알아보자. ▷ 구문 FORMAT(format_string [, format_arg [, ...] ]) - format_string format() 함수 결과의 형식을 지정하는 문자열이며, %[position][flags][width]type 의 형식을 가지고 있다. position : 숫자형식으로 표현하며 가져올 인수의 인덱스이다. 생략이 가능하며 생략 시 format_arg에 지정된 순서대로 할당된다. flags : width 표현에 사용된 숫자에 -를 붙일 경우 왼쪽 정렬이고, 생략 시 오른쪽 정렬이다. width : 문자열을 출력할 공간을 지정하며, 결과 문자열을 채우는 데 필요한 공백으로 왼쪽 또는 오른쪽을 채울 수 있다. 다음 함수 인수를.. 2021. 12. 4.
[PostgreSQL] INFORMATION_SCHEMA - 스키마별 각종 정보 조회하기 (ft. 컬럼, 함수, 시퀀스, 테이블 목록 등) PostgreSQL에서 데이터베이스 스키마별 들어있는 컬럼, 함수, 시퀀스, 테이블 스키마 등 여러 정보를 조회할 수 있는데, 이는 INFORMATION_SCHEMA를 통해 조회가 가능하다. 물론 저걸 그대로 사용할수는 없고 뒤에 목적에 따라 하나씩 붙여주며 사용한다. 하나하나 예제를 통해 알아보자. ▷ 예제1) 함수 목록 가져오기 select * from INFORMATION_SCHEMA.ROUTINES; -- select * from INFORMATION_SCHEMA.ROUTINES where routine_type = 'FUNCTION'; 이런식으로 사용을 해보면 데이터들이 조회되며 routine_type 더 확실하게 하기 위해서 function인 녀석들만 조건을 걸어서 조회하면된다. 결과 데이터에.. 2021. 12. 4.
[PostgreSQL] 배열(array) 연산자 (ft. compare, concat) PostgreSQL에서 배열을 다룰때 사용하는 연산자에 대해 알아보자. 특히 배열과 배열의 비교 또는 배열에 추가적인 값을 넣어줄때 많이 사용하게 될 것이다. PostgreSQL Document에 자세한 설명이 나와있으니 표를 가져와 정리해 두고자 한다. ▷ PostgreSQL Document Array Operators 표현식 설명 예시 결과 = equal ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3] t not equal ARRAY[1,2,3] ARRAY[1,2,4] t greater than ARRAY[1,4,3] > ARRAY[1,2,4] t = ARRAY[1,4,3] t @> contains ARRAY[1,4,3] @> ARRAY[3,1,3] t = , = array[.. 2021. 10. 11.
[PostgreSQL] WITH RECURSIVE 구문 - 재귀쿼리, 계층쿼리 PostgreSQL에서 WITH RECURSIVE 구문을 사용하여 반복문처럼 사용이 가능하다. 재귀적 쿼리인데 이는 보통 테이블 데이터가 계층형일때 많이 사용된다. ▷ 구문 WITH RECURSIVE recursive_name [(column1, ...)] AS ( -- initial query (처음 호출하는 쿼리) -- non-recursive query SELECT [(column1, ...)] UNION [ALL] -- recursive query (반복 쿼리) SELECT [(column1, ...)] FROM recursive_name [WHERE] ) -- parent query SELECT * FROM recursive_name WITH RECURSIVE 구문을 통해 쿼리가 반복되며, 반복.. 2021. 10. 9.
[PostgreSQL] UpdateGeometrySRID() - geometry 컬럼 SRID 좌표계 변경하기 PostgreSQL의 특징 중 하나인 공간쿼리를 사용하다보면 당연하게도 좌표계에 영향을 받을수밖에 없는데 geometry 컬럼에 좌표계를 주입 혹은 변경하는 방법에 대해 알아보자. ▷ 구문 UpdateGeometrySRID(varchar table_name, varchar geometry_column_name, integer srid); UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar geometry_column_name, integer srid); UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar geometry_colu.. 2021. 9. 4.
[PostgreSQL] 배열 함수 및 배열을 string(문자열)로 변경하기 (ft. array_agg, array_to_string) PostgreSQL에서 제공하는 Array 관련 집계 함수 array_agg 와 array_to_string에 대해 알아보자. 집계함수이다 보니 max, min, sum 처럼 당연히 group by 와 자주 쓰이며, 마찬가지로 함수안에 배열로 뽑을 컬럼만 지정해주면된다. 실제 코드를 통해 접해보자. 우선 아래와 같은 데이터를 가진 테이블(mine)이 존재한다는 가정하에 진행하도록 하겠다. 1. row를 array로 출력 (array_agg) select dept, array_agg(name) from mine group by dept ▷결과 dept | name code | {han,john,kim,jo,ho,ko} array_agg 함수를 쓰게되면 위 결과처럼 중괄호로 감싸진 배열형식으로 출력된다. 그.. 2021. 7. 24.
반응형
TOP