4.6. Consulta de informacion de bases de datos y tablas

Como ya sabemos, el cliente psql ofrece varias alternativas para obtener información sobre la estructura de nuestra base de datos. En la siguiente tabla se muestran algunos comandos de mucha utilidad.

Comando Descripción
\1 Lista las bases de datos
\d Describe las tablas de la base de datos en uso
\ds Lista las secuencias
\di Lista los índices
\dv Lista las vistas
\dp \z Lista los privilegios sobre las tablas
\da Lista las funciones de agregados
\df Lista las funciones
\g archivo Ejecuta los comandos de archivo
\H Cambia el modo de salida HTML
\! comando Ejecuta un comando del sistema operativo

Para obtener la lista de tablas de la base de datos demo hacemos lo siguiente:

 

demo=# \d
List of relations
Name                 |Type      | Owner
---------------------+----------+--------
            ganancia |    table | postgres
             precios |    table | postgres
           productos |    table | postgres
productos_clave_seq | sequence | postgres
         proveedores |    table | postgres
(5 rows)

 

La estructura de la tabla productos se solicita de la siguiente manera.

 

demo=# \d productos
Table "productos"
Column        |Type                 | Modifiers
--------------+---------------------+-------------------------------------------            
        parte |character varying(20)|
         tipo |character varying(20)|
especificación|character varying(20)|
    psugerido |                real |
        clave |             integer |not null default nextval 
                                     (`"productos_clave_seq"´::text)
Primary key: productos_pkey
Triggers: RI_ConstraintTrigger_17342,
RI_ConstraintTrigger_17344

 

En el ejemplo anterior podemos observar que la columna clave contiene dos modificadores:

•    El primero especifica que no pueden asignarse valores nulos.

•    El segundo especifica el valor por omisión que deberá asignarse a la columna.
 

* Una secuencia es un nombre          especial que permite la producción   de series numéricas.                           

En este caso, el valor será automáticamente calculado por la función nextval(), que toma como argumento la secuencia* productos_clave_seq.

El siguiente comando muestra las secuencias creadas en una base de datos:

demo=# \ds
List of relations
Name                 |Type      | Owner
---------------------+----------+--------
productos_clave_seq | sequence | quiron
(1 row)

Las  secuencias  se  crean  automáticamente  cuando  se  declaran  columnas  de tipo serial.

 

En la estructura de la tabla productos encontramos también una clave primaria. PostgreSQL generará siempre un índice para cada tabla utilizando la clave primaria. La lista de los índices de la base de datos se obtiene de la siguiente forma:

demo=# \di
List of relations
Name              | Type  | Owner
------------------+-------+--------
productos_pkey    | index | quiron
proveedores_pkey  | index | quiron
(2 rows)

El  conjunto  de  comandos  proporcionados  por  psql  que  hemos  presentado permite obtener información sobre la estructura de nuestra base de datos de una manera directa y sencilla y, también, es útil para explorar bases de datos que no conozcamos.