The functional interface provides a full set of Data Manipulation and Data Definition functions. The interface provides an SQL-compatible means of querying and updating the database from Lisp. In particular, the values returned from the database are Lisp values -- thus smoothly integrating user applications with database transactions. An embedded syntax is provided for dynamically constructing sophisticated queries through
select
. Iteration is also provided via a mapping function and an extension to the
loop
macro. If necessary, the basic functions
query
and
execute-command
can be called with SQL statements expressed as strings. It is also possible to update or query the data dictionary.