man sql () - SQL support for GRASS.

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


AltStyle によって変換されたページ (->オリジナル) /