25.1.2. 데이터베이스

25.1.2.1. PostgreSQL로 내보내기

새 관계를 생성하면서 벡터 레이어를 PostgreSQL 데이터베이스로 내보냅니다. 동일한 명칭을 가진 관계가 존재하는 경우, 새 관계를 생성하기 전에 기존 관계를 제거할 수 있습니다. 이 알고리즘을 실행하기 전에 QGIS와 PostgreSQL 데이터베이스 사이의 연결을 생성해야 합니다. (저장된 연결 생성하기 참조)

파라미터

라벨

명칭

유형

설명

Layer to import

INPUT

[vector: any]

데이터베이스에 추가할 벡터 레이어

Database (connection name)

DATABASE

[string]

데이터베이스 연결의 명칭. (데이터베이스명이 아닙니다) 기존 연결은 콤보박스에 표시될 것입니다.

Schema (schema name)

부가적

SCHEMA

[string]

기본값: ‘public’

데이터를 저장할 스키마의 명칭. 새 스키마일 수도 있고 기존 스키마일 수도 있습니다.

Table to import to (leave blank to use layer name)

부가적

TABLENAME

[string]

기본값: ‘’

가져온 벡터 파일을 위한 테이블 명칭을 정의합니다. 아무것도 추가하지 않으면 레이어명을 사용할 것입니다.

Primary key field

부가적

PRIMARY_KEY

[tablefield: any]

벡터 레이어에 있는 기존 필드로부터 기본 키(primary key)를 설정합니다. 유일한(unique) 값을 가진 열을 데이터베이스용 기본 키로 사용할 수 있습니다.

Geometry column

GEOMETRY_COLUMN

[string]

기본값: ‘geom’

새 PostGIS 테이블의 도형 열의 명칭을 정의합니다. 이 열에 객체에 대한 도형 정보를 저장합니다.

Encoding

부가적

ENCODING

[string]

기본값: ‘UTF-8’

산출 레이어의 인코딩을 정의합니다.

Overwrite

OVERWRITE

[boolean]

기본값: True

지정한 테이블이 존재하는 경우, 이 옵션을 True 로 설정하면 피처를 추가하기 전에 기존 테이블을 삭제하고 새 테이블을 생성할 것입니다. 이 옵션의 값이 False 인데 기존 테이블이 존재하는 경우, 알고리즘이 예외를 던질 것입니다. (“relation already exists”)

Create spatial index

CREATEINDEX

[boolean]

기본값: True

공간 인덱스를 생성할지 여부를 지정합니다.

Convert field names to lowercase

LOWERCASE_NAMES

[boolean]

기본값: True

입력 벡터 레이어의 필드명을 소문자로 변환합니다.

Drop length constraint on character fields

DROP_STRING_LENGTH

[boolean]

기본값: False

문자 필드의 길이 제약 조건을 제거할지 여부를 지정합니다.

Create single-part geometries instead of multi-part

FORCE_SINGLEPART

[boolean]

기본값: False

산출 레이어의 피처가 다중 부분 대신 단일 부분이어야 하는지 여부를 지정합니다. 기존 도형 정보를 유지하는 것이 기본값입니다.

산출물

이 알고리즘은 아무것도 산출하지 않습니다.

파이썬 코드

알고리즘 ID: qgis:importintopostgis

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.

25.1.2.2. SpatiaLite로 내보내기

벡터 레이어를 SpatiaLite 데이터베이스로 내보냅니다. 이 알고리즘을 실행하기 전에 QGIS와 SpatiaLite 데이터베이스 사이의 연결을 생성해야 합니다. (SpatiaLite 레이어 참조)

파라미터

라벨

명칭

유형

설명

Layer to import

INPUT

[vector: any]

데이터베이스에 추가할 벡터 레이어

File database

DATABASE

[vector: any]

연결할 SQLite/SpatiaLite 데이터베이스 파일

Table to import to (leave blank to use layer name)

부가적

TABLENAME

[string]

기본값: ‘’

가져온 벡터 파일을 위한 테이블 명칭을 정의합니다. 아무것도 지정하지 않으면 레이어명을 사용할 것입니다.

Primary key field

부가적

PRIMARY_KEY

[tablefield: any]

입력 벡터 레이어의 필드를 기본 키로 사용합니다.

Geometry column

GEOMETRY_COLUMN

[string]

기본값: ‘geom’

새 SpatiaLite 테이블의 도형 열의 명칭을 정의합니다. 이 열에 객체에 대한 도형 정보를 저장합니다.

Encoding

부가적

ENCODING

[string]

기본값: ‘UTF-8’

산출 레이어의 인코딩을 정의합니다.

Overwrite

OVERWRITE

[boolean]

기본값: True

지정한 테이블이 존재하는 경우, 이 옵션을 True 로 설정하면 레이어의 피처를 추가하기 전에 기존 테이블을 삭제하고 새 테이블을 생성할 것입니다. 이 옵션의 값이 False 인데 기존 테이블이 존재하는 경우, 알고리즘이 예외를 던질 것입니다. (“table already exists”)

Create spatial index

CREATEINDEX

[boolean]

기본값: True

공간 인덱스를 생성할지 여부를 지정합니다.

Convert field names to lowercase

LOWERCASE_NAMES

[boolean]

기본값: True

입력 벡터 레이어의 필드명을 소문자로 변환합니다.

Drop length constraint on character fields

DROP_STRING_LENGTH

[boolean]

기본값: False

문자 필드의 길이 제약 조건을 제거할지 여부를 지정합니다.

Create single-part geometries instead of multi-part

FORCE_SINGLEPART

[boolean]

기본값: False

산출 레이어의 피처가 다중 부분 대신 단일 부분이어야 하는지 여부를 지정합니다. 기존 도형 정보를 유지하는 것이 기본값입니다.

산출물

이 알고리즘은 아무것도 산출하지 않습니다.

파이썬 코드

알고리즘 ID: qgis:importintospatialite

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.

25.1.2.3. 패키지 레이어

GeoPackage에 레이어를 추가합니다.

GeoPackage가 존재하고 Overwrite existing GeoPackage 옵션을 활성화했다면, 기존 GeoPackage를 재작성할 (제거한 다음 새로 생성할) 만약 GeoPackage가 존재하는데 Overwrite existing GeoPackage 옵션이 비활성 상태라면, 레이어를 추가할 것입니다.

파라미터

라벨

명칭

유형

설명

Input layers

LAYERS

[vector: any] [list]

GeoPackage로 가져올 (벡터) 레이어입니다. 래스터 레이어는 지원하지 않습니다. 래스터 레이어를 추가하면, QgsProcessingException 클래스를 던질 것입니다.

Overwrite existing GeoPackage

OVERWRITE

[boolean]

기본값: False

지정한 GeoPackage가 존재하는 경우, 이 옵션을 True 로 설정하면 레이어를 추가하기 전에 기존 GeoPackage를 삭제하고 새 GeoPackage를 생성할 것입니다. 이 옵션의 값을 False 로 설정하면, 레이어를 추가할 것입니다.

Save layer styles into GeoPackage

SAVE_STYLES

[boolean]

기본값: True

레이어 스타일을 저장합니다.

Save only selected features

SELECTED_FEATURES_ONLY

[boolean]

기본값: False

레이어에 선택 집합이 있는 경우, 이 옵션을 True 로 설정하면 선택한 피처들만 저장하게 될 것입니다. 레이어에 선택 집합이 없다면 모든 피처를 저장할 것입니다.

Destination GeoPackage

OUTPUT

[file]

기본값: [Save to temporary file]

GeoPackage 파일을 저장할 위치를 지정합니다. 다음 가운데 하나로 저장할 수 있습니다:

  • 임시 파일로 저장

  • 파일로 저장…

산출물

라벨

명칭

유형

설명

Layers within new package

OUTPUT_LAYERS

[string] [list]

GeoPackage에 추가된 레이어 목록입니다.

파이썬 코드

알고리즘 ID: native:package

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.

25.1.2.4. PostgreSQL에서 SQL 실행 및 불러오기

QGIS와 연결된 PostgreSQL 데이터베이스 상에서 SQL 데이터베이스 쿼리 작업을 허용하고 그 결과를 불러올 수 있습니다. 이 알고리즘은 새 레이어를 생성하지 않을 것입니다. 이 알고리즘은 레이어 자체에 대해 쿼리를 실행하도록 설계되었습니다.

예시

  1. 기존 필드의 모든 값을 고정 값으로 설정하십시오. SQL 쿼리 문자열은 다음과 같습니다:

    UPDATE your_table SET field_to_update=20;
    

    이 예시는 your_table 테이블의 field_to_update 필드의 값을 모두 20 으로 설정할 것입니다.

  2. area 열을 생성하고 ST_AREA PostGIS 함수를 통해 각 피처의 면적을 계산하십시오.

    -- Create the new column "area" on the table your_table"
    ALTER TABLE your_table ADD COLUMN area double precision;
    -- Update the "area" column and calculate the area of each feature:
    UPDATE your_table SET area=ST_AREA(geom);
    

파라미터

라벨

명칭

유형

설명

Database (connection name)

DATABASE

[string]

데이터베이스 연결의 명칭. (데이터베이스명이 아닙니다) 기존 연결은 콤보박스에 표시될 것입니다.

SQL query

SQL

[string]

SQL 쿼리를 정의합니다. 예: 'UPDATE my_table SET field=10'

Unique ID field name

ID_FIELD

[string]

기본값: id

기본 키 필드를 (산출 테이블의 열) 설정합니다.

Geometry field name

부가적

GEOMETRY_FIELD

[string]

기본값: ‘geom’

도형 열의 명칭을 (산출 테이블의 열) 설정합니다.

산출물

라벨

명칭

유형

설명

SQL layer

OUTPUT

[vector: any]

QGIS로 불러올 산출 벡터 레이어입니다.

파이썬 코드

알고리즘 ID: qgis:postgisexecuteandloadsql

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.

25.1.2.5. PostgreSQL에서 SQL 실행

QGIS와 연결된 PostgreSQL 데이터베이스 상에서 SQL 데이터베이스 쿼리 작업을 허용합니다. 이 알고리즘은 새 레이어를 생성하지 않을 것입니다. 이 알고리즘은 레이어 자체에 대해 쿼리를 실행하도록 설계되었습니다.

예시

  1. 기존 필드의 모든 값을 고정 값으로 설정하십시오. SQL 쿼리 문자열은 다음과 같습니다:

    UPDATE your_table SET field_to_update=20;
    

    이 예시는 your_table 테이블의 field_to_update 필드의 값을 모두 20 으로 설정할 것입니다.

  2. area 열을 생성하고 ST_AREA PostGIS 함수를 통해 각 피처의 면적을 계산하십시오.

    -- Create the new column "area" on the table your_table"
    ALTER TABLE your_table ADD COLUMN area double precision;
    -- Update the "area" column and calculate the area of each feature:
    UPDATE your_table SET area=ST_AREA(geom);
    

파라미터

라벨

명칭

유형

설명

Database (connection name)

DATABASE

[string]

데이터베이스 연결의 명칭. (데이터베이스명이 아닙니다) 기존 연결은 콤보박스에 표시될 것입니다.

SQL query

SQL

[string]

SQL 쿼리를 정의합니다. 예: 'UPDATE my_table SET field=10'

산출물

아무것도 산출하지 않습니다. SQL 쿼리는 제자리에서(in-place) 실행됩니다.

파이썬 코드

알고리즘 ID: native:postgisexecutesql

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.

25.1.2.6. SpatiaLite에서 SQL 실행

SpatiaLite 데이터베이스 상에서 SQL 데이터베이스 쿼리 작업을 허용합니다. 이 알고리즘은 새 레이어를 생성하지 않을 것입니다. 이 알고리즘은 레이어 자체에 대해 쿼리를 실행하도록 설계되었습니다.

더 보기

PostgreSQL에서 SQL 실행, SQL 실행하기

SQL 쿼리의 몇몇 예시를 보고 싶다면 PostGIS SQL 쿼리 예시 를 참조하세요.

파라미터

라벨

명칭

유형

설명

File Database

DATABASE

[vector]

연결할 SQLite/SpatiaLite 데이터베이스 파일

SQL query

SQL

[string]

기본값: ‘’

SQL 쿼리를 정의합니다. 예: 'UPDATE my_table SET field=10'

산출물

아무것도 산출하지 않습니다. SQL 쿼리는 제자리에서(in-place) 실행됩니다.

파이썬 코드

알고리즘 ID: native:spatialiteexecutesql

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.

25.1.2.7. SpatialLite에서 SQL 실행 (등록된 DB)

QGIS와 연결된 SpatiaLite 데이터베이스 상에서 SQL 데이터베이스 쿼리 작업을 허용합니다. 이 알고리즘은 새 레이어를 생성하지 않을 것입니다. 이 알고리즘은 레이어 자체에 대해 쿼리를 실행하도록 설계되었습니다.

더 보기

PostgreSQL에서 SQL 실행, SQL 실행하기

SQL 쿼리의 몇몇 예시를 보고 싶다면 PostGIS SQL 쿼리 예시 를 참조하세요.

파라미터

라벨

명칭

유형

설명

Database

DATABASE

[enumeration]

기본값: 설정하지 않음

현재 세션에 연결된 SQLite/SpatiaLite 데이터베이스를 선택하십시오.

SQL query

SQL

[string]

기본값: ‘’

SQL 쿼리를 정의합니다. 예: 'UPDATE my_table SET field=10'

산출물

아무것도 산출하지 않습니다. SQL 쿼리는 제자리에서(in-place) 실행됩니다.

파이썬 코드

알고리즘 ID: native:spatialiteexecutesqlregistered

import processing
processing.run("algorithm_id", {parameter_dictionary})

공간 처리 툴박스에 있는 알고리즘 위에 마우스를 가져가면 알고리즘 ID 를 표시합니다. 파라미터 목록(dictionary) 은 파라미터 명칭 및 값을 제공합니다. 파이썬 콘솔에서 공간 처리 알고리즘을 어떻게 실행하는지 자세히 알고 싶다면 콘솔에서 공간 처리 알고리즘 사용 을 참조하세요.