To enter queries directly into the prompt, open psql and make sure you are connected to the correct database (and logged in as the correct user). You should be presented with a prompt that, by default, is set to display the name of the database you are currently connected to. The prompt should look something like the following immediately after opening psql :

Example 4-3. The psql Prompt

 Welcome to psql, the PostgreSQL interactive terminal.
Type:  \copyright for distribution terms                    
       \h for help with SQL commands    
       \? for help on internal slash commands   
       \g or terminate with semicolon to execute query  
       \q to quit 


To pass SQL statements to PostgreSQL, just type them into the prompt. Anything you type (barring a slash command) will be queued until you terminate the query with a semi-colon, even if you start a new line. This allows you to spread query statements across multiple lines. Examine the following example to see how this is done.

Example 4-4. Entering Statements into psql

testdb=# SELECT * FROM employees
testdb-#  WHERE firstname = 'Michael'; 

This will return a table of matching data. This query could be broken up over multiple lines to improve readability even more and psql still would not send it until the terminating semi-colon was sent. What isn't displayed by this example is that the prompt will show you any end-character that you've left open, such as parenthesis. If you were to issue a CREATE TABLE command to start a statement, then hit enter to start a new line for readability purposes, you would see a prompt similar to what is displayed in the following example.

Example 4-5. Leaving end-characters open

testdb=# CREATE TABLE employees ( 

At this point you could continue the statement. The psql prompt is informing you of the open parenthesis by inserting an open parenthesis symbol into the prompt.