 
Database management in GRASS GIS
GRASS can be linked to one or many database management systems (DBMS).
The 
db.* set of commands provides basic SQL support for
attribute management, while the 
v.db.* set of commands operates
on the vector map (see 
Vector introduction).
Available drivers are listed in 
SQL support in GRASS GIS.
Notes:
The DBF driver provides only very limited SQL
support (as DBF is not an SQL DB) while the other DBMS backends (such
as SQLite, PostgreSQL, MySQL etc) provide full SQL support since the SQL
commands are sent directly to the DBMS. For this reason, the SQLite driver
is the default DBMI backend.
The current database management settings are shown or modified with
db.connect for current mapset. Available DBMI drivers
are listed with 
db.drivers. Some DBMI backends
require a user/password for driver/database to be set with 
db.login.
In order to test a driver, run 
db.test.
Attribute data can be imported with 
db.in.ogr from
various formats and exported with 
db.out.ogr. To internally
copy a a full table or selectively parts of it, use 
db.copy.
Further conversion tools:
GRASS supports two main SQL operations, execution of an SQL statement
(
db.execute) and selection
of data from a table (
db.select).
See the 
SQL help page for examples.
Per default vector map attributes are stored in SQLite tables. This default
definition can be modified with 
db.connect. If an
external DBMS is used, 
db.login may be required.
Specific commands are explained on the individual driver pages (these
pages are only available if driver was compiled in this installation):
All columns for a given table are listed with 
db.columns.
The command 
db.describe describes a table in detail. To
list all available tables for a given database, run 
db.tables.
To drop a column from a selected attribute table, use 
db.dropcolumn.
With 
db.droptable an attribute table can be deleted.
Currently schema support only works for PostgreSQL connections. Default schema
can be set with 
db.connect. Note that the default
schema will be used by all db.* modules.
db.tables returns 'schema.table' if schemas are
available in the database.
To migrate a GRASS database table (or a GRASS vector map) to a different DBMI engine,
the best solution is to create a new MAPSET, define the DBMI settings accordingly
with 
db.connect and if needed, 
db.login.
Then the table of interest can be copied over with 
db.copy from
the original MAPSET. Likewise, a vector map including its table(s) are copied from
the original MAPSET to the current MAPSET with 
g.copy.
SOURCE CODE
  Available at:
  Database management in GRASS GIS source code
  (history)
  Accessed: Monday Feb 24 12:19:10 2025
Main index |
Database index |
Topics index |
Keywords index |
Graphical index |
Full index
© 2003-2025
GRASS Development Team,
GRASS GIS 8.4.1 Reference Manual