개발Story
[POSTGRESQL] 시퀀스값 컬럼값 order by로 update하기.
DB/postgresql 2023. 6. 8. 16:22

PostgreSQL에서 기존 테이블의 시퀀스 값을 정렬하여 업데이트하는 방법 정렬 기준을 설정합니다. 기본적으로 테이블의 기본 키 또는 고유한 식별자 컬럼을 기준으로 정렬하는 것이 일반적입니다. 예를 들어, 테이블에 "id"라는 고유한 식별자 컬럼이 있다고 가정해보겠습니다. 정렬된 시퀀스 값을 가지는 임시 테이블을 생성합니다. 이를 위해 다음 쿼리를 실행합니다. CREATE TEMPORARY TABLE temp_sequence AS SELECT id, ROW_NUMBER() OVER (ORDER BY id) AS new_sequence FROM your_table ORDER BY id; 위의 쿼리는 "your_table"이라는 테이블의 "id" 컬럼을 기준으로 정렬된 순서로 각 행에 새로운 시퀀스 값을 ..

[PostgreSQL] 배열 함수(array_agg, array_to_string)
DB/postgresql 2022. 2. 27. 16:09

프로젝트를 진행하면서 db의 row들을 string으로 받아올 필요가 있었다. PostgreSQL에서 배열함수(집계)를 제공한다. array_agg, array_to_string [table array] name group 효정 오마이걸 모모 트와이스 보나 우주소녀 row를 array로 출력을 하면 [ row들을 배열로 출력 array_agg() ] select group,array_agg(name) from array group by group; 결과 -> {효정,모모,사나} 결과는 {} 배열로 감싸진 형태로 나오게 된다. java에서 string으로 처리를 하려면 array_to_string 함수를 더해서 사용하면 된다. [ 배열을 string으로 출력 array_to_string() ] select..

[PostgreSQL] EXITS 연산자
DB/postgresql 2022. 2. 13. 18:46

query를 사용하다보면 존재여부를 판단할 일이 많다. 보통 select count(*) 를 쓰는 경우를 많이 봤는데 기능은 동작하지만 성능면에서 fullsacn을하여 좋지 않다. 존재여부를 알 수 있는 EXITS연산자를 알아보자. 단어의 의미를 파악하면 EXITS : 동사로 존재하다.(v) =>단어 그대로 받아 들이면 될 것 같다. 조건으로 주어 존재여부를 판단하는 연산식이다. 존재 여부만 판단하고 break를 하여 연산 시 부하가 줄어든다고 한다. [문법] EXITS(subquery) NOT EXITS (subquery) [사용법] SELECT * FROM zzang9iu m WHERE EXISTS ( SELECT 1 FROM zzang9iu r WHERE r.z_id = m.z_id AND z.re..

article thumbnail
[POSTGRESQL] 계층형 쿼리, RECURSIVE
DB/postgresql 2022. 1. 22. 18:03

PostgreSQL에서는 데이터의 트리구조를 표현하기 위해서는 RECURSIVE 키워드를 사용하여 재귀적인 쿼리를 사용할 수있다고 한다. 일단 RECURSIVE 의 사전적인 의미를 알아보면 재귀라는 의미이다. 재귀란 어떠한 것을 정의할 떄 자기 자신을 참조한다는 뜻이다. 즉 자기자신을 참조하여 데이터 트리구조를 표현한다고 보면 된다. 샘플 데이터를 통해 예제를 알아보겠다. 예제 블로그 : http://happy1week.blogspot.com/2012/07/postgresql_19.html SQL> CREATE TABLE BOM( ITEM_ID INTEGER NOT NULL, PARENT_ID INTEGER, ITEM_NAME CHARACTER VARYING(20) NOT NULL, ITEM_QTY IN..

article thumbnail
2.elasticsearch( Kibana)
DB/엘라스틱서치 2021. 4. 20. 14:27

앞장에서는 엘라스틱서치를 설치 및 기본 검색을 진행하였다. 이제는 Kibana라는 시각화 툴을 통해 데이터를 확인해보겠다. Kibana 란: Kibana는 Elasticsearch 용 데이터 시각화 대시 보드입니다. Elasticsearch 클러스터에 인덱싱 된 콘텐츠 위에 시각화 기능을 제공합니다. 라고 한다. 즉 : 엘라스틱 서치를 통해 만든 json파일을 시각적으로 볼 수 있는 툴인것 같다. zip 파일을 다운로드 받고 bin 안에있는 bat프로그램을 실행하면 5601포트가 열린다. .zip 패키지 다운로드 및 설치 Kibana v5.4.0용 .zip Windows 아카이브를 https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-windows-x8..

article thumbnail
1. elasticsearch(개념, 설치 및 테스트검색)
DB/엘라스틱서치 2021. 4. 20. 14:01

엘라스틱 서치 : 엘라스틱서치는 루씬 기반의 검색 엔진이다. HTTP 웹 인터페이스와 스키마에서 자유로운 JSON 문서와 함께 분산 멀티테넌트 지원 전문 검색 엔진을 제공한다. 내가 이해한 엘라스틱 서치 : 1. 엘라스틱 서치를 실행 -> 포트가 9200번으로 열리고 9200 안에 json 구조로 index를 만든다. 2. json으로 만들어진 index안에서 REST방식을 통해 다양한 검색을 진행한다.(JAVA로 구현 가능) ps. 엘라스틱 서치에 json 구조로된 index에 DB값을 넣어야 되는데. java 스케쥴링을 통해 데이터를 집어 넣을 수 있고, 또는 logstash라는 플러그인을 통해 DB값을 집어 넣을 수 있다. 설치법 : https://www.elastic.co/downloads/ela..

postgresql function만들기. (feat. for문)
DB/postgresql 2021. 2. 7. 16:46

Dbeaver라는 db툴을 이용해 postgresql function을 만들 수 있다. function을 만드는 이유는 긴 sql문을 간편하게 실행할 수 있는 장점이 있다. CREATE OR REPLACE FUNCTION 함수명 () RETURNS integer LANGUAGE plpgsql AS $function$ declare r record; --> 1.함수명과 파라미트. 리턴값을 정의해준다. BEGIN for r in select 컬럼명 from 테이블 loop --> 2. for문을 돌릴 테이블을 정의한다. INSERT INTO VALUES ON CONFLICT (충돌id) DO UPDATE SET 컬럼명 = r.컬럼명 end loop; return 1; --> 3. 원하는 sql문을 작성한다...

article thumbnail
Exerd - DB테이블 import 하기
DB/Exerd 2020. 9. 6. 15:10

Exerd는 테이블 관계를 보기쉽게 나타내주는 편리한 툴이다. Exerd를 이용하여 내가 가지고 있는 DB의 테이블의 관계를 시각적으로 나타낼 수 있다. DB테이블을 보고 직접 그릴 수도 있지만 DB를 import하여 테이블을 불러와보겠다. 1. 리버스 엔지니어링 클릭. 2. 파일 생성 3. DB 커넥션을 맺어줘야 한다. (설정 관리를 클릭하여 DB커넥션을 맺는다) 4.새연결을 한다. 5.DB 환경정보를 입력 후 연결테스트를 한다. 본인은 Postgresql 환경을 사용했다. jdbc 드라이버는 각 db에 맞는 jdbc드라이버 jar파일을 다운받으면 된다. 6.연결을 불러온다음 완료버튼을 클릭하면 지정된 project에 table정보가 연결이된다! 7.테이블이 생성되고있다. 끝!