Once a database has been installed, there are many ways to interact with it. The primary way is using SQL, either directly or indirectly. Some client programs connect to the database server directly and allow the user to type in SQL commands and display the results with minimal processing. Some programs are more elaborate, providing a web-based interface or other GUI. These applications typically provide some amount of post-processing of SQL output. In some cases, many operations can be carried out without direct knowledge of SQL. These will certainly help the novice database user, but may also satisfy many of the needs of more experienced users and developers. Sometimes these general-purpose applications are not sufficiently specific to the needs of database users. In that case, custom applications can be written. Many programming languages have extensions that allow data to be selected from the database and read into data structures for further operations. This chapter will consider ways of using ODBC, JDBC for Java, Perl::DBI, pg and pgdb for python and PDO for php.Â