## NAME

db.select - Selects data from attribute table (performs SQL query statement(s)).

## KEYWORDS

database, attribute table, SQL

## SYNOPSIS

db.select
db.select help
db.select [-cdvt] [table=name] [database=name] [driver=name] [sql=string] [input=name] [fs=character] [vs=character] [nv=string] [output=name] [--verbose] [--quiet]

### Flags:

-c
  Do not include column names in output
-d
  Describe query only (don't run it)
-v
  Vertical output (instead of horizontal)
-t
  Only test query, do not execute
--verbose
  Verbose module output
--quiet
  Quiet module output

### Parameters:

table=name
  Table name
database=name
  Database name
  Default: $GISDBASE/$LOCATION_NAME/$MAPSET/dbf/
driver=name
  Driver name
  Options: dbf,odbc,ogr,pg,sqlite
  Default: dbf
sql=string
  SQL select statement
  For example: 'select * from rybniky where kapri = 'hodne'
input=name
  Name of file with sql statement
fs=character
  Field separator
  Output field separator
  Default: |
vs=character
  Field separator
  Output vertical record separator
nv=string
  Null value indicator
output=name
  Name for output file (if omitted or "-" output to stdout)

## DESCRIPTION

db.select prints result of selection from database based on SQL statement read from input file or from standard input to standard output.

## NOTE

If parameters for database connection are already set with db.connect, they are taken as default values and do not need to be spcified each time. Output will be displayed to stdout or can be directed to a file.

## EXAMPLES

    echo "select * from roads" | db.select
    or
     cat file.sql | db.select
    or
     db.select input=file.sql

Select all from table roads

    db.select -c driver=odbc database=mydb table=roads \
              input=file.sql output=result.csv

Select some string attribute, exclude others:

    echo "SELECT * FROM archsites WHERE str1 <> 'No Name'" | db.select

Select some string attribute with ZERO length:

    echo "SELECT * FROM archsites WHERE str1 IS NULL" | db.select

Select coordinates from PostGIS table:

    echo "SELECT x(geo),y(geo) FROM localizzazione" | db.select

Count number of cases falling into same position:
When multiple observation have the spatial coordinates, they can still be counted (if needed, coordinates can be uploaded to the attribute table by v.to.db:

    db.select sql="SELECT long,lat,site_id,department,obs,COUNT(long) as count_cases \
                   FROM diseases GROUP BY long,lat"

## SEE ALSO

GRASS SQL interface,
db.connect, db.describe, db.drivers, db.droptable, db.execute, db.login, db.tables

## AUTHOR

Unknown
Modifications: Radim Blazek, ITC-Irst, Trento, Italy

Last changed: $Date: 2013-04-09 18:52:11 +0200 (út, 09 IV 2013) $

Main index - database index - Full index

© 2003-2014 GRASS Development Team