27.1.2. データベース
27.1.2.1. PostgreSQLへエクスポート
ベクタレイヤをPostgreSQLデータベースにインポートし、テーブルを作成します。同じ名前のテーブルがある場合には、新たなテーブルを作成する前に、このテーブルは削除されます。これを使用する前に、QGISとPostgreSQLデータベース間の接続を作成( 保存された接続の作成 参照)しておく必要があります。
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
エクスポートするレイヤ  | 
  | 
[ベクタ:任意]  | 
データベースに追加したいベクタレイヤ  | 
データベース(接続名)  | 
  | 
[文字列]  | 
データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。  | 
スキーマ(スキーマ名) オプション  | 
  | 
[文字列] デフォルト: 'public'  | 
データを保存するスキーマの名前。新しいスキーマ、既存のスキーマのいずれも可能です。  | 
インポートするテーブル(空白の場合、レイヤ名が使われます) オプション  | 
  | 
[文字列] デフォルト: ''  | 
インポートするベクタファイルのテーブル名を定義します。何も指定しない場合は、レイヤ名が使用されます。  | 
主キーの属性(フィールド) オプション  | 
  | 
[テーブルのフィールド:任意]  | 
ベクタレイヤの既存のフィールドから主キーフィールドを設定します。一意な 値を持つカラムを主キーとして使うことができます。  | 
ジオメトリのカラム  | 
  | 
[文字列] デフォルト: 'geom'  | 
新しいPostGISのテーブルのジオメトリカラムの名前を定義します。地物のジオメトリ情報は、このカラムに格納されます。  | 
文字コード オプション  | 
  | 
[文字列] デフォルト: 'UTF-8'  | 
出力レイヤの文字コードを定義します  | 
上書き  | 
  | 
[ブール値] デフォルト: True  | 
指定されたテーブルが存在する場合、このオプションを   | 
空間インデックスを作成  | 
  | 
[ブール値] デフォルト: True  | 
空間インデックスを作成するかどうかを指定します  | 
フィールド名を小文字に変換  | 
  | 
[ブール値] デフォルト: True  | 
入力ベクタレイヤのフィールド名を小文字に変換します  | 
文字フィールドの長さ制約を解く  | 
  | 
[ブール値] デフォルト: False  | 
文字フィールドの長さ制約を解くか否か  | 
マルチパートの代わりにシングルパートのジオメトリを作る  | 
  | 
[ブール値] デフォルト: False  | 
出力レイヤの地物をマルチパートではなくシングルパートとするかどうか。デフォルトでは、既存のジオメトリ情報が保持されます。  | 
出力
このアルゴリズムに出力はありません。
Pythonコード
Algorithm ID: qgis:importintopostgis
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
27.1.2.2. SpatiaLiteへ出力
ベクタレイヤをSpatiaLiteデータベースにエクスポートします。これを使用する前に、QGISとSpatiaLiteデータベース間の接続を作成( SpatiaLiteレイヤ 参照)しておく必要があります。
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
エクスポートするレイヤ  | 
  | 
[ベクタ:任意]  | 
データベースに追加したいベクタレイヤ  | 
データベースのファイル  | 
  | 
[ベクタ:任意]  | 
接続するSQLiteまたはSpatiaLiteデータベースファイル  | 
インポートするテーブル(空白の場合、レイヤ名が使われます) オプション  | 
  | 
[文字列] デフォルト: ''  | 
インポートされるベクタファイルのテーブル名を定義します。何も指定しない場合は、レイヤ名が使用されます。  | 
主キーの属性(フィールド) オプション  | 
  | 
[テーブルのフィールド:任意]  | 
入力ベクタレイヤのフィールドを主キーとして使用します  | 
ジオメトリのカラム  | 
  | 
[文字列] デフォルト: 'geom'  | 
新しいSpatiaLiteのテーブルのジオメトリカラムの名前を定義します。地物のジオメトリ情報は、このカラムに格納されます。  | 
文字コード オプション  | 
  | 
[文字列] デフォルト: 'UTF-8'  | 
出力レイヤの文字コードを定義します  | 
上書き  | 
  | 
[ブール値] デフォルト: True  | 
指定されたテーブルが存在する場合、このオプションを   | 
空間インデックスを作成  | 
  | 
[ブール値] デフォルト: True  | 
空間インデックスを作成するかどうかを指定します  | 
フィールド名を小文字に変換  | 
  | 
[ブール値] デフォルト: True  | 
入力ベクタレイヤのフィールド名を小文字に変換します。  | 
文字フィールドの長さ制約を解く  | 
  | 
[ブール値] デフォルト: False  | 
文字フィールドの長さ制約を解くか否か  | 
マルチパートの代わりにシングルパートのジオメトリを作る  | 
  | 
[ブール値] デフォルト: False  | 
出力レイヤの地物をマルチパートではなくシングルパートとするかどうか。デフォルトでは、既存のジオメトリ情報が保持されます。  | 
出力
このアルゴリズムに出力はありません。
Pythonコード
Algorithm ID: qgis:importintospatialite
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
27.1.2.3. レイヤをGeoPackage化
レイヤをGeoPackageに追加します。
GeoPackageが既に存在し、 既存のGeoPackageを上書きする にチェックを入れている場合には、これは上書き(削除してから再度作成)されます。GeoPackageが既に存在し、 既存のGeoPackageを上書きする にチェックを入れていない場合には、レイヤは追加されます。
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
入力レイヤ  | 
  | 
[ベクタ:任意] [リスト]  | 
GeoPackageにインポートする(ベクタ)レイヤ。ラスタレイヤはサポートしていません。ラスタレイヤを追加した場合には、   | 
既存のGeoPackageを上書きする  | 
  | 
[ブール値] デフォルト: False  | 
指定されたGeoPackageが存在する場合、このオプションを   | 
レイヤスタイルをGeoPackageに保存  | 
  | 
[ブール値] デフォルト: True  | 
レイヤスタイルを保存します  | 
選択地物のみ保存  | 
  | 
[ブール値] デフォルト: False  | 
レイヤに選択範囲がある場合、このオプションに   | 
プロジェクトで定義されているリレーションのあるレイヤをエクスポート 
  | 
  | 
[ブール値] デフォルト: False  | 
入力レイヤにプロジェクトで設定された relations がある場合、このオプションを   | 
GeoPackageのファイル名  | 
  | 
[ファイル] デフォルト:   | 
GeoPackageファイルの保存場所を指定します。次のいずれかです: 
  | 
出力
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
新しいGeoPackageのレイヤ  | 
  | 
[文字列] [リスト]  | 
GeoPackageに追加されたレイヤのリスト  | 
Pythonコード
Algorithm ID: native:package
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
27.1.2.4. PostGISを実行し読み込む
QGISに接続されたPostgreSQLデータベースでSQLデータベースクエリを実行し、その結果を読み込みます。このアルゴリズムは、新しいレイヤを作成 しません。レイヤ自身に対してクエリを実行するように設計されています。
例
ある既存のフィールドのすべての値を固定値に設定します。SQLクエリ文字列は次のようになります:
UPDATE your_table SET field_to_update=20;
上の例では、テーブル
your_tableのフィールドfield_to_updateの値が全て20に設定されます。新しく
areaカラムを作成し、ST_AREAPostGIS関数を使用して各地物の面積を計算します。-- 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);
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
データベース(接続名)  | 
  | 
[文字列]  | 
データベース接続(データベース名ではありません)。既存の接続がコンボボックスに表示されます。  | 
SQLクエリ  | 
  | 
[文字列]  | 
SQLクエリを定義します。例えば、   | 
一意のIDのフィールド名  | 
  | 
[文字列] デフォルト: id  | 
主キーのフィールド(結果テーブルのカラム)を設定します  | 
ジオメトリのフィールド名 オプション  | 
  | 
[文字列] デフォルト: 'geom'  | 
ジオメトリカラムの名前(結果テーブルのカラム)  | 
出力
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
SQLレイヤ  | 
  | 
[ベクタ:任意]  | 
QGISに読み込まれる結果のベクタレイヤ  | 
Pythonコード
Algorithm ID: qgis:postgisexecuteandloadsql
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
27.1.2.5. PostgreSQLでSQLを実行
QGISに接続されたPostgreSQLデータベースでSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません。レイヤ自身に対してクエリを実行するように設計されています。
例
ある既存のフィールドのすべての値を固定値に設定します。SQLクエリ文字列は次のようになります:
UPDATE your_table SET field_to_update=20;
上の例では、テーブル
your_tableのフィールドfield_to_updateの値が全て20に設定されます。新しく
areaカラムを作成し、ST_AREAPostGIS関数を使用して各地物の面積を計算します。-- 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);
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
データベース(接続名)  | 
  | 
[文字列]  | 
データベース接続(データベース名ではありません)。既存の接続がコンボボックスに表示されます。  | 
SQLクエリ  | 
  | 
[文字列]  | 
SQLクエリを定義します。例えば、   | 
出力
出力は作成されません。SQLクエリが実行されます。
Pythonコード
Algorithm ID: native:postgisexecutesql
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
27.1.2.6. SpatiaLiteを実行
SpatiaLiteデータベースでSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません。レイヤ自身に対してクエリを実行するように設計されています。
参考
SQLクエリの例については、:ref:`PostGIS SQLクエリの例 <qgis_postgis_execute_sql_example>`を参照してください。
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
データベース  | 
  | 
[ベクタ]  | 
接続するSQLiteまたはSpatiaLiteデータベースファイル  | 
SQLクエリ  | 
  | 
[文字列] デフォルト: ''  | 
SQLクエリを定義します。例えば、   | 
出力
出力は作成されません。SQLクエリが実行されます。
Pythonコード
Algorithm ID: native:spatialiteexecutesql
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
27.1.2.7. SpatiaLiteで実行(登録済みDB)
QGISに接続されたSpatiaLiteデータベースでSQLデータベースクエリを実行します。このアルゴリズムは新しいレイヤを作成 しません。レイヤ自身に対してクエリを実行するように設計されています。
参考
SQLクエリの例については、:ref:`PostGIS SQLクエリの例 <qgis_postgis_execute_sql_example>`を参照してください。
パラメータ
ラベル  | 
名前  | 
データ型  | 
説明  | 
|---|---|---|---|
データベース  | 
  | 
[列挙型] デフォルト:未設定  | 
現在のセッションに接続している SQLite/SpatiaLite データベースを選択します  | 
SQLクエリ  | 
  | 
[文字列] デフォルト: ''  | 
SQLクエリを定義します。例えば、   | 
出力
出力は作成されません。SQLクエリが実行されます。
Pythonコード
Algorithm ID: native:spatialiteexecutesqlregistered
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。