next up previous contents index
Next: pgaccess Up: Herramientas Previous: Herramientas   Índice General   Índice de Materias

psql

La herramienta canónica para trabajar en modo línea de comandos con PostgreSQL es psql. En este modo tenemos una herramienta completa para poder manipular las bases de datos. Este programa cuenta con ayuda en línea, por medio de la instrucción \?, para los comandos a psql y \h para examinar la sintáxis de las instrucciones de SQL.

También acepta opciones en la línea de comandos al momento de ejecución:

Usage: psql [options] [dbname]
    -a authsvc     set authentication service
    -A             turn off alignment when printing out attributes
    -c query       run single query (slash commands too)
    -d dbName      specify database name
    -e             echo the query sent to the backend
    -E             echo all queries sent to the backend
    -f filename    use file as a source of queries
    -F sep         set the field separator (default is '|')
    -h host        set database server host
    -H             turn on html3.0 table output
    -l             list available databases
    -n             don't use readline library
    -o filename    send output to filename or (|pipe)
    -p port        set port number
    -q             run quietly (no messages, no prompts)
    -s             single step mode (prompts for each query)
    -S             single line mode (i.e. query terminated by newline)
    -t             turn off printing of headings and row count
    -T html        set html3.0 table command options (cf. -H)
    -u             ask for a username and password for authentication
    -x             turn on expanded output (field names on left)

Entre las opciones más útiles, están -h servidor (conexión al host servidor) y -d base (conexión a la base de datos base), en cuyo caso también podemos indicarle la opción -u para que nos solicite el usuario y la contraseña13.1, en caso de que nos conectemos como un usuario distinto al de la sesión actual:

mancha@caserola:~$ psql -h breogan -d agn -u
Username: fml
Password: 

Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL
[PostgreSQL 6.5.3 on i586-pc-linux-gnu, compiled by gcc 2.7.2.3]

Otra opción muy útil es -l para listar todas las bases existentes:

mancha@caserola:~$ psql -h breogan -l -u
Username: fml
Password: 

datname     |datdba|encoding|datpath     
------------+------+--------+------------
template1   |   100|       0|template1   
postgres    |   100|       0|postgres    
agn         |   500|       0|agn         
root        |     0|       0|root        
plpgsql_test|     0|       0|plpgsql_test
dbarc       |   500|       0|dbarc       
zapatos     |   500|       0|zapatos     
pruebas     |   500|       0|pruebas     
fml         |   534|       0|fml         
mancha      |   500|       0|mancha      
antiguedades|   500|       0|antiguedades
discos      |   500|       0|discos      
discuas     |   500|       0|discuas     
hotpizza    |   500|       0|hotpizza    
videos      |   500|       0|videos      
poblacion   |   500|       0|poblacion   
licencias   |   500|       0|licencias   
(17 rows)

Una combinación realmente útil estas instrucciones es la siguiente:

psql -Htc 'select autor,titulo,ndis,medio from discos \
order by autor,titulo' discos \
| sed -e's/<table /<table border=2/' > tabla.de.discos.html

equivalente a:

psql -Htc 'select autor,titulo,ndis,medio from discos \
order by autor,titulo' -T 'border=2' -o tabla.de.discos.html discos

¿Puede el lector indicar qué hacen ambas acciones?

Cabe mencionar que psql utiliza la biblioteca readline de GNU, por lo cuál cuenta con edición en la línea de comandos.


next up previous contents index
Next: pgaccess Up: Herramientas Previous: Herramientas   Índice General   Índice de Materias
Ismael Olea 2001-04-21