본문 바로가기

dev/데이터베이스

(17)
Dbeaver import export Dbeaver에 테이블 데이터를 csv로 import/export 기능이 지원됩니다. 먼저 데이터 import(추가)하는 방법입니다. 입력할 테이블을 오른쪽 마우스 클릭한 뒤 "데이터 가져오기"를 선택합니다. "CSV에서 가져오기"를 선택하고 "다음"을 선택합니다. ""을 선택하여 csv 파일을 업로드합니다. csv파일 업로드 된 것을 확인합니다. csv파일에 따라 import settings를 따로 작성해야 하는데 저는 디폴트로 했습니다. "다음"을 선택합니다. 입력할 csv 파일을 확인합니다. csv 파일 업로드 옵션을 확인하고 "다음"을 선택합니다. "다음"을 선택합니다. "Start"를 선택하면 csv파일이 테이블에 추가됩니다. csv파일이 해당 테이블에 추가된 것을 확인할 수 있습니다. 이번에는..
DBeaver query plan DBeaver에서 쿼리를 실행할 때 해당 쿼리가 효율적인지 확인하는 방법이 있습니다. "실행계획 보기"를 이용하면 쉽게 확인할 수 있습니다. 예시 join 쿼리의 실행 계획을 조회하기 위해 오른쪽 마우스를 클릭해서 "실행 -> 실행계획 보기" 를 선택합니다. 팝업 화면이 표출되는데 "확인" 버튼을 클릭합니다. DBeaver 하단에 실행계획을 조회할 수 있습니다. 각 항목에 대해 설명드리면 Node Type: sql을 실행시키는 각각의 단계 Entity: 조회하는 테이블 Cost: sql 실행하는 데 걸린 비용 Time: sql 실행하는 데 걸린 시간 Rows: sql 실행하면서 가져오는 row 수 Condition: sql 실행 조건문 이렇게 생각하시면 될 거 같습니다. 아니면 "EXPLAIN ANALY..
dbeaver ERD 조회 dbeaver에서 간단히 ERD 조회하는 방법이 있습니다. dbeaver에서 조회하려는 데이터베이스의 스키마를 더블클릭하고 엔티티 관계도 탭을 선택하면 해당 스키마의 ERD를 조회할 수 있습니다. starUml로 ERD를 그리는 시간이 부족하면 위와 같은 방법으로 하는 것도 나쁘지 않을 거 같습니다.
ntile 사용법 PostgreSQL에서 특정 데이터를 기준으로 그룹으로 나눠야 할 때 ntile 함수를 사용하면 손쉽게 할 수 있습니다. 예제 테이블에서 col2 컬럼을 기준으로 ntile 함수 예제를 진행하겠습니다. 빨간색 상자를 보면 ntile 함수 파라미터로 "6"이 있는데 이 파라미터는 ntile이 분할하는 그룹 수입니다. 즉 6개의 그룹으로 나누겠다는 뜻입니다. 그리고 뒤에 있는 over는 각 로우를 어떻게 정렬할 건지 나타내고 있습니다. 따라서 col2 컬럼 기준으로 내림차순으로 정렬하겠다는 뜻입니다. 여기서 조금 더 나아가서 각 그룹별 최소값과 최대값을 구하려면 다음과 같이 하면 됩니다. 이전의 쿼리를 with문으로 묶어서 각 그룹별 최소값과 최대값을 구합니다. 빨간색 상자를 보면 lag함수를 사용해서 최대..
dbeaver 스크립트 파일 위치 dbeaver에서 스크립트 파일을 생성해서 쿼리를 작성하면서 종종 내가 생성한 스크립트 파일의 위치는 어디인지 궁금한 적이 있어서 구글링하다가 마침내 그 방법을 찾았습니다. 의외로 간단한데 현재 작성중인 스크립트 탭을 오른쪽 마우스 클릭해서 "Open Folder in Explorer"을 선택하면 해당 스크립트 파일 저장위치를 확인할 수 있습니다.
PostgreSQL DATE_PART 함수 PostgreSQL에서 날짜를 계산해야 하는 경우 DATE_PART 함수를 사용하면 됩니다. 위의 예제를 보면 DATE_PART 함수의 첫 번째 파라미터로 "DAY"를 두 번째 파라미터로 현재 날짜(2021년 3월 17일)와 2021년 3월 1일의 차이를 전달하고 있습니다. 그러면 해당 함수의 결과 값으로 "16"을 정상적으로 반환하고 있습니다. 날짜 계산할 때 서버에서 자바로 하는 것보다 PostgreSQL의 DATE_PART 함수를 사용하는 것이 더 편리한 거 같습니다.
Postgresql 테이블 복원 Postgresql 테이블을 복원하는 방법 2가지를 포스팅하려고 합니다. 첫 번째는 copy를 이용한 방법이고 두 번째는 pg_restore를 이용한 방법입니다. copy는 단순히 데이터를 테이블에 복사하는 명령어입니다. 따라서 데이터를 복사할 대상 테이블이 먼저 있어야 합니다. 그리고 csv 파일을 copy 명령어를 통해 복원하면 됩니다. 하지만 저의 기대와 달리 위 화면처럼 에러 메시지가 표출되었습니다. 그 이유는 copy 명령어는 superuser, 즉 postgres 계정만 사용할 수 있기 때문입니다. 따라서 psql의 \copy 명령어를 사용해야 합니다. psql로 데이터베이스에 접속한 뒤 \copy 명령어를 사용하면 데이터를 복원할 수 있습니다. 데이터가 제대로 복원되었는지 확인하겠습니다. 데..
Windows postgis 설치 앞서 작성한 포스팅에 이어 postgis 설치하는 과정입니다. 먼저 postgis에 대해 간단히 설명하면 postgis는 PostgreSQL의 확장 프로그램이라고 생각하시면 됩니다. 무난히 동의 버튼 클릭합니다. 디폴트로 PostGIS만 설치합니다. (추가로 데이터베이스 설치하실 거면 아래 체크박스 선택합니다.) postgis 설치 경로 화면입니다. PostgreSQL의 설치로 경로를 잡고 next 버튼 클릭합니다. postgis는 PostgreSQL에 비해 설치 과정이 간단합니다. PostgreSQL가 설치된 경로로 설치경로 설정하고 나머지 과정은 디폴트 설정으로 진행하면 됩니다.