4
LABORATORIO #1 BASES DE DATOS Jesús Reyes Carvajal Conexión con el servidor Antes de intentar conectarse con el servidor, debemos asegurarnos de que está funcionando y que admite conexiones, locales (el SGBD se está ejecutando en la misma máquina que intenta la conexión) o remotas. Una vez comprobado el correcto funcionamiento del servidor, debemos disponer de las credenciales necesarias para la conexión. Para simplificar, supondremos que disponemos de las credenciales* del administrador de la base de datos (normalmente, usuario PostgreSQL y su contraseña). El cliente psql Para conectarse con un servidor, se requiere, obviamente, un programa cliente. Con la distribución de PostgreSQL se incluye un cliente, psql, fácil de utilizar, que permite la introducción interactiva de comandos en modo texto. El siguiente paso es conocer el nombre de una base de datos residente en el servidor. El siguiente comando permite conocer las bases de datos residentes en el servidor: ~$ psql –l –U estudiante List of databases Name | Owner | Encoding -----------+----------+----------- demo | postgres | SQL_ASCII template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII (3 rows) ~$ Para realizar una conexión, se requieren los siguientes datos: • Servidor. Si no se especifica, utiliza localhost. • Usuario. Si no se especifica, utiliza el nombre de usuario Linux que ejecuta psql. • Base de datos. ~$ psql -h servidor -U usuario -d bdatos Introducción de sentencias

Ejercicios Expresiones Formatos Postgres

Embed Size (px)

DESCRIPTION

postgres, postgresql, ejercicio, lenguaje sql, sql

Citation preview

Page 1: Ejercicios Expresiones Formatos Postgres

LABORATORIO #1BASES DE DATOSJesús Reyes Carvajal

Conexión con el servidor

Antes de intentar conectarse con el servidor, debemos asegurarnos de que está funcionando y que admite conexiones, locales (el SGBD se está ejecutando en la misma máquina que intenta la conexión) o remotas.

Una vez comprobado el correcto funcionamiento del servidor, debemos disponer de las credenciales necesarias para la conexión. Para simplificar, supondremos que disponemos de las credenciales* del administrador de la base de datos (normalmente, usuario PostgreSQL y su contraseña).

El cliente psql

Para conectarse con un servidor, se requiere, obviamente, un programa cliente. Con la distribución de PostgreSQL se incluye un cliente, psql, fácil de utilizar, que permite la introducción interactiva de comandos en modo texto.

El siguiente paso es conocer el nombre de una base de datos residente en el servidor. El siguiente comando permite conocer las bases de datos residentes en el servidor:

~$ psql –l –U estudianteList of databasesName | Owner | Encoding-----------+----------+-----------demo | postgres | SQL_ASCIItemplate0 | postgres | SQL_ASCIItemplate1 | postgres | SQL_ASCII(3 rows)~$

Para realizar una conexión, se requieren los siguientes datos:

• Servidor. Si no se especifica, utiliza localhost.

• Usuario. Si no se especifica, utiliza el nombre de usuario Linux que ejecuta psql.

• Base de datos.

~$ psql -h servidor -U usuario -d bdatos

Introducción de sentencias

Las sentencias SQL que escribamos en el cliente deberán terminar con ‘;’ o bien con ‘\g’:

Cuando un comando ocupa más de una línea, el indicador cambia de forma y va señalando el elemento que aún no se ha completado.

~$ psql -h servidor -U usuario -d bdatos

bdatos=#bdatos=# select user; //Usuario actualcurrent_user--------------

bdatos=#bdatos=# selectbdatos-# user \gcurrent_user

Page 2: Ejercicios Expresiones Formatos Postgres

postgres(1 row)

--------------postgres(1 row)

El cliente psql almacena la sentencia hasta que se le da la orden de enviarla al SGBD. Para visualizar el contenido del buffer donde ha almacenado la sentencia, disponemos de la orden ‘\p’:

bdatos=> SELECTbdatos -> 2 * 10 + 1bdatos -> \pSELECT2 * 10 + 1demo-> \g?column?----------21(1 row)

Expresiones y variablesEl cliente psql dispone de multitud de prestaciones avanzadas; entre ellas (como ya hemos comentado), el soporte para sustitución de variables similar al de los shells de Linux:

bdatos=>\set var1 demostracion //fija valor a una variablebdatos=# \echo :var1 //Ver contenido de variabledemostración

Variables especiales de postgres

bdatos=# \echo :DBNAME :ENCODING :HOST :PORT :USER;bdatos LATIN9 localhost 5432 postgres

Uso de variables en la ejecución de sentencias SQL:bdatos=> \set var2 ‘mi_tabla’bdatos=> SELECT * FROM :var2

PSQL proporciona un mecanismo para almacenar en fichero el resultado de las sentencias:bdatos=# create table tabla( cod VARCHAR primary key, nomb VARCHAR);bdatos=# insert into tabla values(‘01’,’Jorge’);bdatos=# insert into tabla values(‘02’,’Pedro’);

Page 3: Ejercicios Expresiones Formatos Postgres

bdatos=# select * from tabla \g ‘c:\a.txt’

Mediante un pipe enviamos la salida a un comando Linux:basedatos=# select * from tabla \g | cat > /tmp/b.txt

Mediante la orden ‘\o’ se puede indicar dónde debe ir la salida de las sentenciasSQL que se ejecuten en adelante:

bdatos=# \o /tmp/sentencias.txtbdatos=# select * from tabla;bdatos=# select 1+1+4;bdatos=# \o

Formato de salida de los resultados de una sentencia.Por defecto, psql los muestra en forma tabular mediante texto. Para cambiarlo, se debe modificar el valor de la variable interna ‘format’ mediante la orden ‘\pset’. Veamos, en primer lugar, la especificación del formato de salida.

bdatos=# \pset format htmlOutput format is html.

bdatos=# select user;<table border=“1”>

<tr><th align=“center”>current_user</th>

</tr><tr valign=“top”>

<td align=“left”>postgres</td></tr>

</table><p>(1 row)<br /></p>badatos=#

Formatos de salida, como ‘aligned’, ‘unaligned’, ‘html’ y ‘latex’. Por defecto, psql muestra el resultado en formato ‘aligned’.Tenemos también multitud de variables para ajustar los separadores entre columnas, el número de registros por página, el separador entre registros, título de la página html, etc. Veamos un ejemplo.

bdatos=# \pset format unalignedOutput format is unaligned.

bdatos=# \pset fieldsep ‘,’Field separator is “,”.

bdatos =# select user, 1+2+3 as resultado;current_user,resultadopostgres,6(1 row)