Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GDAL-VECTOR-SQL(1)		      GDAL		      GDAL-VECTOR-SQL(1)

NAME
     gdal-vector-sql - Apply SQL statement(s) to a dataset

     Added in version 3.11.

SYNOPSIS
	Usage: gdal vector sql [OPTIONS] <INPUT> <OUTPUT> <statement>|@<filename>

	Apply SQL statement(s) to a dataset.

	Positional arguments:
	  -i, --input <INPUT>				       Input vector datasets [required]
	  -o, --output <OUTPUT> 			       Output vector dataset [required]
	  --sql <statement>|@<filename> 		       SQL statement(s) [may be repeated] [required]

	Common Options:
	  -h, --help					       Display help message and exit
	  --json-usage					       Display usage as JSON document and exit
	  --config <KEY>=<VALUE>			       Configuration option [may be repeated]
	  --progress					       Display progress bar

	Options:
	  -f, --of, --format, --output-format <OUTPUT-FORMAT>  Output format ("GDALG" allowed)
	  --co, --creation-option <KEY>=<VALUE> 	       Creation option [may be repeated]
	  --lco, --layer-creation-option <KEY>=<VALUE>	       Layer creation option [may be repeated]
	  --overwrite					       Whether overwriting existing output is allowed
	  --update					       Whether to open existing dataset in update mode
	  --overwrite-layer				       Whether overwriting existing layer is allowed
	  --append					       Whether appending to existing layer is allowed
	  --output-layer <OUTPUT-LAYER> 		       Output layer name(s) [may be repeated]
	  --dialect <DIALECT>				       SQL dialect (e.g. OGRSQL, SQLITE)

	Advanced Options:
	  --if, --input-format <INPUT-FORMAT>		       Input formats [may be repeated]
	  --oo, --open-option <KEY>=<VALUE>		       Open options [may be repeated]

DESCRIPTION
     gdal  vector  sql	returns  one or several layers evaluated from SQL state-
     ments.

   Standard options
     -f, --of, --format, --output-format <OUTPUT-FORMAT>
	    Which output vector format to use. Allowed values may  be  given  by
	    gdal --formats | grep vector | grep rw | sort

     --co <NAME>=<VALUE>
	    Many formats have one or more optional dataset creation options that
	    can  be  used to control particulars about the file created. For in-
	    stance, the GeoPackage driver supports creation options  to  control
	    the version.

	    May be repeated.

	    The  dataset  creation  options available vary by format driver, and
	    some simple formats have no creation options at all. A list  of  op-
	    tions  supported  for a format can be listed with the --formats com-
	    mand line option but the documentation for the format is the defini-
	    tive source of information on driver creation options.   See  Vector
	    drivers format specific documentation for legal creation options for
	    each format.

	    Note that dataset creation options are different from layer creation
	    options.

     -lco <NAME>=<VALUE>
	    Layer creation option (format specific)

     --overwrite
	    Allow  program to overwrite existing target file or dataset.  Other-
	    wise, by default, gdal errors out if the target file or dataset  al-
	    ready exists.

     --sql <sql_statement>|@<filename>
	    SQL statement to execute that returns a table/layer (typically a SE-
	    LECT statement).

	    Can be repeated to generated multiple output layers (repeating --sql
	    <value> for each output layer)

     --dialect <DIALECT>
	    SQL dialect.

	    By default the native SQL of an RDBMS is used when using gdal vector
	    sql.  If  using  sql as a step of gdal vector pipeline, this is only
	    true if the step preceding sql is read, otherwise the OGRSQL dialect
	    is used.

	    If a datasource does not support SQL natively, the default is to use
	    the OGRSQL dialect, which  can  also  be  specified  with  any  data
	    source.

	    The SQL SQLite dialect dialect can be chosen with the SQLITE and IN-
	    DIRECT_SQLITE  dialect  values,  and  this can be used with any data
	    source.  Overriding the default dialect may  be  beneficial  because
	    the capabilities of the SQL dialects vary.

	    Supported dialects can be checked with gdal --format. For example:

	       $ gdal --format "PostgreSQL"
	       [...]
	       Supported SQL dialects: NATIVE OGRSQL SQLITE
	       [...]

	       $ gdal --format "ESRI Shapefile"
	       [...]
	       Supported SQL dialects: OGRSQL SQLITE
	       [...]

     --output-layer <OUTPUT-LAYER>
	    Output  SQL  layer	name(s).  If not specified, a generic layer name
	    such as "SELECT" may be generated.

	    Must be specified as many times as there are SQL statements,  either
	    as	several --output-layer arguments, or a single one with the layer
	    names combined with comma.

   Advanced options
     --oo <NAME>=<VALUE>
	    Dataset open option (format specific).

	    May be repeated.

     --if <format>
	    Format/driver name to be attempted to open the input file(s). It  is
	    generally  not  necessary  to specify it, but it can be used to skip
	    automatic driver detection, when it fails to select the  appropriate
	    driver.   This  option can be repeated several times to specify sev-
	    eral candidate drivers.  Note that it does not force  those  drivers
	    to	open  the dataset. In particular, some drivers have requirements
	    on file extensions.

	    May be repeated.

GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)
     This program supports serializing the command line as a JSON file using the
     GDALG output format.  The resulting file can then be  opened  as  a  vector
     dataset  using  the  GDALG:  GDAL	Streamed Algorithm driver, and apply the
     specified pipeline in a on-the-fly / streamed way.

EXAMPLES
   Example 1: Generate a GeoPackage file with a layer sorted by descending popu-
     lation
	$ gdal vector sql in.gpkg out.gpkg --output-layer country_sorted_by_pop --sql="SELECT * FROM country ORDER BY pop DESC"

   Example 2: Generate a GeoPackage file with 2 SQL result layers
	$ gdal vector sql in.gpkg out.gpkg --output-layer=beginning,end --sql="SELECT * FROM my_layer LIMIT 100" --sql="SELECT * FROM my_layer OFFSET 100000 LIMIT 100"

AUTHOR
     Even Rouault <even.rouault@spatialys.com>

COPYRIGHT
     1998-2025

				  Oct 29, 2025		      GDAL-VECTOR-SQL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdal-vector-sql&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help