Provided by: grass-doc_7.8.2-1build3_all bug


       The DBF driver is a file based attribute table driver.

Defining the DBF driver

       The DBF driver is a file based driver, in theory no user interaction is required. However,
       if the settings should be set back  from  a  different  driver  to  the  DBF  driver,  the
       following step is required:
       # keep single quotes:
       db.connect driver=dbf database=’$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/’
       db.connect -p
       The dbf/ subdirectory in the mapset must exist or must be created by the user.

Creating a DBF table

       DBF  tables  are  created by GRASS when generating a vector map with attributes and having
       defined the DBF as attribute driver.

       If a DBF table has to be created  manually,  db.execute  can  be  used  or  a  spreadsheet
       application.  Also  db.copy  is  sometimes  useful as well as to import external

Supported SQL commands by DBF driver

         ALTER TABLE table ADD [COLUMN] columndef
         ALTER TABLE table DROP COLUMN colname
         CREATE TABLE table ( columndefs )
         DROP TABLE table
         SELECT columns FROM table
         SELECT columns FROM table WHERE condition
         SELECT columns FROM table ORDER BY column
         DELETE FROM table
         DELETE FROM table WHERE condition
         INSERT INTO table VALUES (value1[,value2,...])
         INSERT INTO table ( column1[,column2,...] ) VALUES (value1[,value2,...])
         UPDATE table SET assignment1[,assignment2,...]
         UPDATE table SET assignment1[,assignment2,...] WHERE condition

Operators available in conditions

         "="  : equal
         "<"  : smaller than
         "<=" : smaller/equal than
         ">"  : larger than
         ">=" : larger/equal than
         "<>" : not equal
         "~"  : Substring matching  (non-standard SQL)
         "%"  : Substring matching  (limited functionality)

       Arithmetic expressions using constants and field values are allowed in  condition  clauses
       and in the RHS of assignments.
       Usual precedence rules and bracketing (using ’(’ and ’)’) are supported.
       Type conversion is performed if necessary (experimental).

       Conditions  allow  boolean expressions using the AND, OR and NOT operators, with the usual
       precedence rules.

       NULLs can be tested by ’colname IS NULL’ in  conditions.  The  negation  is  ’colname  NOT

       Sorting: Empty fields in a character column are sorted to the end.


       The  DBF  driver  supports only a few SQL statements since the DBF tables are intended for
       simple table storage. DBF column names are limited to 10 characters (as defined in the DBF
       specifications). For example,

           ·   aggregate  functions  (sum,  count,  min,  max,...)  are  not  supported in SELECT

           ·   mathematic functions (sin, cos, exp, log,...) are not supported in expressions;

           ·   SQL query with IN are not supported.


       An error message such as:
       DBMI-DBF driver error:
       SQL parser error: syntax error, unexpected NAME processing ’IN’..
       indicates that an unsupported SQL statement (here, ’IN’) was used. The only solution is to
       switch  the  DBMI  backend  to a real SQL engine (SQLite, PostgreSQL, MySQL etc.). See SQL
       support in GRASS GIS.

       An error message such as:
       DBMI-DBF driver error:
       SQL parser error: syntax error, unexpected DESC, expecting NAME processing ’DESC’
       indicates that a column name corresponds  to  a  reserved  SQL  word  (here:  ’DESC’).   A
       different  column  name  should  be used. If this happens during import with, the
       cnames parameter can be used to assign different column names on the fly.


        db.connect, SQL support in GRASS GIS
       DBF Specifications (Shapelib)

       Main index | Topics index | Keywords index | Graphical index | Full index

       © 2003-2019 GRASS Development Team, GRASS GIS 7.8.2 Reference Manual