Comandos y funciones sql postgres

18

Transcript of Comandos y funciones sql postgres

Page 1: Comandos y funciones sql postgres
Page 2: Comandos y funciones sql postgres

Introducción

En el mundo que hemos seleccionado para vivir profesionalmente, la ingeniería en

software, el elemento principal de todos nuestros productos desarrollados es la base de

datos. Por esta razón se hace necesario que se tenga un pleno conocimiento del manejo de

los diferentes motores de base de datos.

En esta investigación se abordará el manejador de base de datos Postgres, principalmente

sus comandos y funciones básicas, que permitirán al lector adentrarse al menos al plano

básico de tan potente motor de base de datos.

Antes de iniciar la lectura esta investigación se debe tener presente que una base de datos

es un conjunto de datos pertenecientes a un mismo contexto y almacenados

sistemáticamente para su posterior uso. Estas almacenan su información en tablas.

Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada

columna es un campo o atributo y cada fila, un registro. La intersección de una columna

con una fila, contiene un dato específico, un solo valor.

Cada registro contiene un dato por cada columna de la tabla. Cada campo debe tener un

nombre. El nombre del campo hace referencia a la información que almacenará. Cada

campo columna también debe definir el tipo de dato que almacenará.

Teniendo presente lo anterior, ya se está preparado para iniciar el proceso de aprendizaje de

los comandos SQL y funciones básicas de Postgres

Page 3: Comandos y funciones sql postgres

Comandos SQL básicos en Postgres

create table

El comando créate table sirve para crear tablas en una base de datos. Se debe recordar que

al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos

almacenarán cada uno de ellos, es decir, su estructura.

La sintaxis básica y general para crear una tabla es la siguiente:

create table nombretabla(

nombre campo1 tipodedato,

...

Nombre campon tipodedato

);

Ejemplo de su aplicación

create table usuarios (

nombre varchar(30),

clave varchar(10)

);

Cada campo con su tipo debe separarse con comas de los siguientes, excepto el último.

Cuando se crea una tabla debemos indicar su nombre y definir al menos un campo con su

tipo de dato. En esta tabla "usuarios" se definen dos campos:

nombre: que contendrá una cadena de caracteres de 30 caracteres de longitud, que

almacenará el nombre de usuario y

clave: otra cadena de caracteres de 10 de longitud, que guardará la clave de cada usuario.

Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave.

Page 4: Comandos y funciones sql postgres

Para nombres de tablas, se puede utilizar cualquier caracter alfabético o numérico, el

primero debe ser un carácter alfabético y no puede contener espacios en blanco.

drop table

El comando drop table sirve para eliminar una tabla. Básicamente se utiliza junto al nombre

de la tabla. Su sintaxis es la siguiente

drop table usuarios;

Si intentamos eliminar una tabla que no existe, aparece un mensaje de error indicando tal

situación y la sentencia no se ejecuta.

alter table

El comando alter table se utiliza para cambiar la definición de una tabla. Con se pueden

cambiar los nombres y tipos de datos de los campos, agregar campos, eliminar campos,

asignar esquemas en otras cosas interesantes

Su sintaxis básica es:

alter table nombre tabla

rename [campo ] columna to campo_nuevo

add[campo ]

drop[campo ]

alter table nombre

set schema nuevo_esquema

Por ejemplo

Page 5: Comandos y funciones sql postgres

alter table usuarios add empleado varchar(40);

Con esta sintaxis, haciendo uso de modificador add, se agrega un campo llamado empleado

de tipo varchar de tamaño 40 a la tabla usuarios

alter table usuarios rename empleado to id_empleado

Con eststa sintaxis, haciendo uso del modificador rename más el nombre del campo

empleado, se le cambia el nombre a id_empleado.

alter table usuarios drop id_empleado

Con esta sintaxis, haciendo uso del modificador drop más el nombre del campo

id_empleado, se elimina ese campo de la tabla.

alter table usuarios set schema hipolito

Esta sintaxis se cambia el esquema de la tabla usuarios al esquema llamado hipolito.

insert into

El comando insert into sirve para insertar registro en una tabla existente. Un registro es una

fila de la tabla que contiene los datos propiamente dichos. Cada registro tiene un dato por

cada campo. En caso de la tabla creada con el comando créate table esta consta de dos

campos, "nombre" y "clave".

La sintaxis básica y general es la siguiente:

insert into nombretabla (nombrecampo1, ..., nombrecampon)

values (valorcampo1, ..., valorcampon);

Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el orden de los

campos.

Ejemplo de uso en la tabla usuario;

Page 6: Comandos y funciones sql postgres

insert into usuarios (nombre, clave) values ('hipolitogrullon','rosa123');

En vista de que los dos campos de la tabla son de tipo cadena se colocan entre comillas

simples.

select

El comando select se utiliza para ver los registros de una o varias tablas. Es decir este

elcomando "select" recupera los registros de una tabla

Su sintaxis es la siguiente

Select campo/s from tabla/s

Ejemplo de aplicación en la tabla usuario

select * from usuarios;

Con el asterisco indicamos que muestre todos los campos de la tabla usuarios.

where

La where permite especificar condiciones para una consulta "select". Es decir, podemos

recuperar algunos registros, sólo los que cumplan con ciertas condiciones indicadas con la

cláusula "where". Es decir que con la cláusula establecemos condiciones para recuperar

algunos registros. Para recuperar algunos campos de algunos registros combinamos en la

consulta la lista de campos y la cláusula "where":

Page 7: Comandos y funciones sql postgres

La sintaxis básica y general es la siguiente:

select nombrecampo1, ..., nombrecampon

from nombretabla

where condicion;

Por ejemplo, queremos ver el usuario cuyo nombre es "hipolito", para ello utilizamos

"where" y luego de ella, la condición:

select nombre, clave

from usuarios

where nombre='hipolito';

Para las condiciones se utilizan operadores relacionales =, >, <

Si ningún registro cumple la condición establecida con el "where", no aparecerá ningún

registro.

order by

La clásula order by permite ordenar el resultado de un "select" para que los registros se

muestren ordenados por algún campo.

La sintaxis básica es la siguiente:

select * from nombretabla

order by campo;

Por ejemplo, recuperamos los registros de la tabla usuario ordenado por nombre:

select * from usuario

order by nombre asc;

Page 8: Comandos y funciones sql postgres

Aparecen los registros ordenados alfabéticamente por el campo especificado. El

modificador asc significa que lo muestre de forma ascendente. Si por el contrario queremos

el resultado ordenado de forma descendente se utiliza el modificador desc.

Por defecto, si no aclaramos en la sentencia, los ordena de manera ascendente

Se permite ordenar por valores calculados o expresiones.

Delete

El comando delete sirve para eliminar uno o varios registros de una tabla.

Su sintaxis es la siguiente

delete from table

Es imporante mencionar que si se utiliza el comando delete sin la clausula where este

borrará todos los datos de la tabla. Si no queremos eliminar todos los registros, sino

solamente algunos, debemos indicar cuál o cuáles, para ello utilizamos el comando "delete"

junto con la clausula "where" con la cual establecemos la condición que deben cumplir los

registros a borrar.

Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es "Marcelo":

delete from usuarios

where nombre='hipolitogrullon';

Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con

la condición especificada, ningún registro será eliminado.

Update

Page 9: Comandos y funciones sql postgres

Este comando se utiliza para actualizar uno o varios registros de una tabla Decimos que

actualizamos un registro cuando modificamos alguno de sus valores.

Su sintaxis básica es

Update tabla set campo=valor

Por ejemplo, en la tabla usuarios, queremos cambiar los valores de todas las claves, por

"123":

update usuarios set clave='123';

Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su

nuevo valor.

Como sucede con el delete, utilizar el uptade sin la cláusula where afectará a todos los

registros de la tabla.

Podemos modificar algunos registros, para ello debemos establecer condiciones de

selección con "where".

Por ejemplo, queremos cambiar el valor correspondiente al la clave del usuario llamado

"hipolitogrullon", queremos como nueva clave "postgres", necesitamos una condición

"where" que afecte solamente a este registro:

update usuarios set clave='postgres'

where nombre='hipolitogrullon';

Si Postgres no encuentra registros que cumplan con la condición del "where", no se

modifica ninguno.

Page 10: Comandos y funciones sql postgres

En resumen las condiciones no son obligatorias, pero si omitimos la cláusula "where", la

actualización afectará a todos los registros.

También se pueden actualizar varios campos en una sola instrucción:

update usuarios set nombre='hipolito, clave='sqlpower'

where nombre='hipolitogrullon';

Para ello se escribe "update", el nombre de la tabla, "set" junto al nombre del campo y el

nuevo valor y separado por coma, el otro nombre del campo con su nuevo valor.

Page 11: Comandos y funciones sql postgres

Funciones básica en Postgres

Funciones matemática

Las funciones matemáticas realizan operaciones con expresiones numéricas y retornan un

resultado, operan con tipos de datos numéricos.

PostgreSQL tiene algunas funciones para trabajar con números. Aquí presentamos algunas.

abs(x): devuelve el valor absoluto del argumento "x". Ejemplo:

Ejemplo

select abs(-20);

devuelve 20.

cbrt(x): devuelve la raíz cúbica del argumento "x". Ejemplo:

select cbrt(27);

devuelve 3.

ceiling(x): redondea hacia arriba el argumento "x". Ejemplo:

select ceiling(12.34);

devuelve 13.

floor(x): redondea hacia abajo el argumento "x". Ejemplo:

select floor(12.34);

devuelve 12.

Page 12: Comandos y funciones sql postgres

power(x,y): devuelve el valor de "x" elevado a la "y" potencia. Ejemplo:

select power(2,3);

devuelve 8.

round(numero): devuelve un número redondeado al valor más próximo. Ejemplo:

select round(10.4);

devuelve "10".

Funciones para el manejo de cadenas

PostgreSQL tiene algunas funciones para trabajar con cadenas de caracteres. Estas son

algunas:

char_length(string): Retorna la longitud del texto. Ejemplo:

select char_length('Hola');

devuelve un 4.

upper(string): Retorna el texto convertido a mayúsculas. Ejemplo:

select upper('Hola');

devuelve 'HOLA'.

Page 13: Comandos y funciones sql postgres

lower(string): Retorna el texto convertido a minúsculas. Ejemplo:

select lower('Hola');

devuelve 'hola'.

position(string in string): Retorna la posición de un string dentro de otro. Si no está

contenido devuelve un 0. Ejemplo:

select position('Mundo' in 'Hola Mundo');

devuelve 6.

select position('MUNDO' in 'Hola Mundo');

devuelve 0 (ya que no coinciden mayúsculas y minúsculas)

substring(string [from int] [for int]): Retorna un substring, le indicamos la posición

inicial y la cantidad de caracteres a extraer desde dicha posición. Ejemplo:

select substring('Hola Mundo' from 1 for 2);

devuelve 'Ho'.

select substring('Hola Mundo' from 6 for 5);

devuelve 'Mundo'.

trim([leading|trailing|both] [string] from string): Elimina caracteres del principio o o

final de un string. Por defecto elimina los espacios en blanco si no indicamos el caracter o

string. Ejemplo:

select char_length(trim(' Hola Mundo '));

Page 14: Comandos y funciones sql postgres

devuelve un 10. Esto es debido a que primero se ejecuta la función trim que elimina los dos

espacios iniciales y los dos finales.

select char_length(trim(leading ' ' from ' Hola Mundo '));

devuelve un 12. Esto es debido a indicamos que elimine los espacios en blanco de la cadena

solo del comienzo (leading).

select trim(trailing '-' from '--Hola Mundo----');

devuelve '--Hola Mundo'. Esto es debido a indicamos que elimine los guiones del final del

stirng.

ltrim(string,string): Elimina los caracteres de la izquierda según el dato del segundo

parámetro de la función. Ejemplo:

select char_length(ltrim(' Hola'));

devuelve un 4.

select ltrim('---Hola','-');

devuelve 'Hola'.

rtrim(string,string): Elimina los caracteres de la derecha según el dato del segundo

parámetro de la función. Ejemplo:

select char_length(rtrim('Hola '));

devuelve un 4.

select rtrim('Hola----','-');

devuelve un 'Hola'.

Page 15: Comandos y funciones sql postgres

substr(text,int[,int]): Retorna una subcadena a partir de la posición que le indicamos en el

segundo parámetro hasta la posición indicada en el tercer parámetro. Ejemplo:

select substr('Hola Mundo',2,4);

devuelve 'ola'.

select substr('Hola Mundo',2);

devuelve 'ola Mundo' (si no indicamos el tercer parámetro devuelve todo el string hasta el

final)

lpad(text,int,text): Rellena de caracteres por la izquierda. El tamaño total de campo es

indicado por el segundo parámetro y el texto a insertar se indica en el tercero. Ejemplo:

select lpad('Hola Mundo',20,'-');

devuelve '----------Hola Mundo'.

rpad(text,int,text): Rellena de caracteres por la derecha. El tamaño total de campo es

indicado por el segundo parámetro y el texto a insertar se indica en el tercero. Ejemplo:

select rpad('Hola Mundo',20,'-');

devuelve 'Hola Mundo----------'.

select rpad('Hola Mundo',20,'-*');

devuelve 'Hola Mundo-*-*-*-*-*'.

Funciones para el uso de fechas y horas

PostgreSQL ofrece algunas funciones para trabajar con fechas y horas. Estas son algunas:

Page 16: Comandos y funciones sql postgres

- current_date: devuelve la fecha actual. Ejemplo:

select current_date;

Retorna por ejemplo '2009-05-20'

- current_time: devuelve la hora actual con la zona horaria. Ejemplo:

select current_time;

Retorna por ejemplo '18:33:06.074493+00'

- current_timestamp: devuelve la fecha y la hora actual con la zona horaria. Ejemplo:

select current_timestamp;

Retorna por ejemplo '2009-05-20 18:34:16.63131+00'

- extract(valor from timestamp): devuelve una parte de la fecha u hora según le

indiquemos antes del from, luego del from debemos indicar un campo o valor de tipo

timestamp (o en su defecto anteceder la palabra clave timestamp para convertirlo).

Ejemplo:

select extract(year from timestamp'2009-12-31 12:25:50');

Retorna el año '2009'

select extract(month from timestamp'2009-12-31 12:25:50');

Retorna el mes '12'

select extract(day from timestamp'2009-12-31 12:25:50');

Retorna el día '31'

Page 17: Comandos y funciones sql postgres

select extract(hour from timestamp'2009-12-31 12:25:50');

Retorna la hora '12'

select extract(minute from timestamp'2009-12-31 12:25:50');

Retorna el minuto '25'

select extract(second from timestamp'2009-12-31 12:25:50');

Retorna el segundo '50

select extract(century from timestamp'2009-12-31 12:25:50');

Retorna el siglo '21'

select extract(dow from timestamp'2009-12-31 12:25:50');

Retorna el día de a semana '4'

select extract(doy from timestamp'2009-12-31 12:25:50');

Retorna el día del año '365'

select extract(week from timestamp'2009-12-31 12:25:50');

Retorna el número de semana dentro del año '53'

select extract(quarter from timestamp'2009-12-31 12:25:50');

Retorna en que cuarto del año se ubica la fecha '4'

Page 18: Comandos y funciones sql postgres

Conclusión

Al finalizar esta investigación se puede concluir que:

Los comandos SQL utilizados en Postgres son idénticos a los utilizados en

cualquier manejador de base de datos SQL.

Las funciones básicas de Postgres se deben tratar de forma muy cuidadosa, pues un

error en los parámetros no significaría que no funcione, sino que los datos obtenidos

por la misma sean erróneo.

Además del apartado de las funciones básicas de Postgres, también se pueden crear

funciones, cuya funcionalidad y aplicación solo está limitada por la capacidad el

programador o administrador de base de datos.

El uso adecuado de los comandos SQL y las funciones en Postgres puede mejorar

considerablemente el rendimiento de cualquier sistema de este motor de base de

datos dependa.

Por el contrario el uso inadecuado de estos elementos puede ralentizar su

rendimiento.

El rendimiento general de una base de datos, no solo está dato por la capacidad de la

computadora y servidor en que se ejecuta, esta también depende que como estén

organizado los datos, eliminando ambigüedades en las tablas e indexando

correctamente su contenido.