db.exec( statement )

Execute sql statement.

If statement is a query, return value is a table with the query results.

See also db.escape().

Examples:

Check if a table exists:

if #db.exec[[SELECT name FROM sqlite_master WHERE type='table' AND name='grraka_animals']] <1 then
  -- table doesn't exist, do something here
end


Create a table:

db.exec[[CREATE TABLE grraka_animals(
                     animal_name TEXT,
                     location TEXT)]]

Insert values into table:

db.exec[[INSERT INTO grraka_animals( animal_name, location ) VALUES( 'Dog', 'land')]]

Bulk insert using transaction:

local animals=
{
{animal_name="Aardvark",location="land" },
{animal_name="Albatross",location="air" },
{animal_name="Alligator",location="water" },
{animal_name="Alpaca",location="land" },
{animal_name="Ant",location="land" }
}
 
db.exec[[BEGIN]]
for _,entry in pairs(animals) do
    db.exec( ([[INSERT INTO grraka_animals(animal_name, location)
                      VALUES( '%s', '%s')]]):format( db.escape(entry.animal_name), db.escape(entry.location))
end
db.exec[[END]]

Run a query and process the results:

local result=db.exec[[SELECT animal_name, location FROM grraka_animals ORDER BY animal_name]]
 
for _,row in result do
    say(row.animal_name.." lives in "..row.location)
end

See sqlite3 general documentation for further reference on statements.