## DESCRIPTION

SQL support for GRASS.

Supported is a limited set of SQL functions and operators.

## FUNCTIONS

      ALTER TABLE table ADD [COLUMN] columndef
      CREATE TABLE table ( columndefs )
      DROP TABLE table
      SELECT columns FROM table
      SELECT columns FROM table WHERE condition
      DELETE FROM table
      DELETE FROM table WHERE condition
      INSERT INTO table values
      INSERT INTO table ( columns ) values
      UPDATE table SET assignments
      UPDATE table SET assignments WHERE condition

## OPERATORS

      "="  : equal
      "<"  : smaller than
      "<=" : smaller/equal than
      ">"  : larger than
      ">=" : larger/equal than
      "<>" : not equal
      "~"  : Substring matching

## NOTES

- SQL does not support '.' (dots) in table names.
- Supported table name characters are only:
  [A-Za-z][A-Za-z0-9_]*
- A table name must start with a character, not a number.
- Brackets are needed, e.g. for

            select * from some_table where (3*(some_field - another_field) > 5)

  The parser does not know about precedence yet, so the sub-clause has to be in brackets to avoid ambiguity.
- Text-string matching requires the text part to be 'single quoted' and multiple queries should be contained in "double quotes". e.g.

            d.vect map where="individual='juvenile' and area='beach'"

- An error message such as "dbmi: Protocol error" either indicates an invalid column name or an unsupported column type (then the GRASS SQL parser needs to be extended).
- DBF column names are limited to 10 characters (DBF API definition)

## EXAMPLES

Display all vector points except for LAMAR valley and extensive trapping:

     d.vect trapping_sites_points fcol=black icon=basic/diamond col=white size=13 \
        where="valley <> 'LAMAR' OR (valley = 'LAMAR' AND description = 'extensive trapping')"

Select all attributes from table where str1 column values are not 'No Name':

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

## SEE ALSO

db.execute, db.select, db.tables, d.vect
SQL reference links

Last changed: $Date: 2005/05/10 09:58:07 $

Help Index