17
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente Creación de Funciones Ing. Eddie Malca Vicente [email protected] @emalca

Creación de funciones postgre sql

Embed Size (px)

DESCRIPTION

Creación de Funciones de Usuario, curso básico de Postgresql - Eddie Malca

Citation preview

Page 1: Creación de funciones postgre sql

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creación de FuncionesIng. Eddie Malca Vicente

[email protected]

@emalca

Page 2: Creación de funciones postgre sql

Qué son las Funciones

• En PostgreSQL no existe una diferencia muy marcada entre una función y un procedimiento almacenado, a diferencia de otros SGBD. Por ello el tratamiento las primeras se usan a modo de las segundas.

• Las funciones son segmentos de código creados por el sistemas o por el usuario para desarrollar procesos, es decir ejecutar acciones que no existen como tal dentro del lenguaje SQL utilizado, es decir extendemos el lenguaje de consultas.

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 3: Creación de funciones postgre sql

PostgreSQL y los lenguajes procedurales

• PostgreSQL nos permite trabajar con más de un lenguaje procedural, tales como:

• PL/pgSQL• C• C++• Java PL/Java Web• plPHP• PL/Python• PL/Ruby, entre otros =)

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 4: Creación de funciones postgre sql

Listar las funciones

SELECT pronameFROM pg_proc;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 5: Creación de funciones postgre sql

Creación de un Lenguaje

CREATE LANGUAGE plpgsql;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

En servidores Windows el lenguaje PLPGSQL ya viene instalado por defecto, en servidores Linux hay que instalarlo antes de usarlo.

Page 6: Creación de funciones postgre sql

Sintaxis Básica

CREATE OR REPLACE FUNCTION [nombre de la función]([parámetros]) RETURNS [tipo de dato que retorna] AS [definición de la función] LANGUAGE [lenguaje utilizado]

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 7: Creación de funciones postgre sql

Ejemplo

CREATE OR REPLACE FUNCTION sumar(integer,integer)

RETURNS integer

AS

‘SELECT $1+$2;’

LANGUAGE ‘sql’;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creamos una función que reciba como parámetros dos números enteros y devuelva como resultado la suma de ambos

OBS: las variables son accedidas como $1,$2,…$n

Se accede a ella mediante SELECT sumar(3,4);

Page 8: Creación de funciones postgre sql

Trabajando con Tablas

CREATE OR REPLACE FUNCTION creatabla() RETURNS VOIDAS

'CREATE TABLE tb_pais(pais_id VARCHAR(5),pais_nom VARCHAR(20),CONSTRAINT pk_pais PRIMARY KEY (pais_id));'

LANGUAGE sql;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Es posible trabajar con las tablas de una base de datos, por ejemplo creamos una tabla llamada tb_pais:

Se ejecuta con SELECT creatabla();

Obviamente se SETEA antes el SCHEMA de trabajo primero.

Page 9: Creación de funciones postgre sql

Trabajando con Tablas

CREATE OR REPLACE FUNCTION insertaregistros() RETURNS VOIDAS$$INSERT INTO tb_pais VALUES('P001','ARGENTINA');

INSERT INTO tb_pais VALUES('P002','BRASIL');INSERT INTO tb_pais VALUES('P003','PERU');INSERT INTO tb_pais VALUES('P004','URUGUAY');

$$LANGUAGE sql;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Como segundo ejemplo podemos crear una función que ingrese registros a la tabla creada:

Se ejecuta con SELECT insertaregistros();

Otra forma de sintaxis es la que se muestra en la siguiente diapositiva.

Page 10: Creación de funciones postgre sql

Trabajando con Tablas

CREATE OR REPLACE FUNCTION insertaregistros2() RETURNS VOIDAS'INSERT INTO tb_pais VALUES(''P001'',''ARGENTINA'');

INSERT INTO tb_pais VALUES(''P002'',''BRASIL'');INSERT INTO tb_pais VALUES(''P003'',''PERU'');INSERT INTO tb_pais VALUES(''P004'',''URUGUAY'');

'LANGUAGE sql;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Trabajando con comillas:

Se ejecuta con SELECT insertaregistros2();

Page 11: Creación de funciones postgre sql

Trabajando con Tablas

CREATE FUNCTION listapais() RETURNS SETOF tb_paisAS $$SELECT * FROM tb_pais;$$ LANGUAGE SQL;

SELECT lispais();

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Podemos crear una función que consulte los registros de una tabla:

Page 12: Creación de funciones postgre sql

Trabajando con Tablas

CREATE FUNCTION buscapais(VARCHAR) RETURNS SETOF tb_pais AS $$SELECT * FROM tb_pais WHERE UPPER(pais_nom) LIKE $1;$$ LANGUAGE SQL;

SELECT buscapais('ARGENTINA');

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creamos una función que lista los países que cumplen con determinado criterio

Page 13: Creación de funciones postgre sql

Trabajando con Tablas

CREATE FUNCTION buscapais(VARCHAR) RETURNS SETOF tb_pais AS $$SELECT * FROM tb_pais WHERE UPPER(pais_nom) LIKE $1;$$ LANGUAGE SQL;

SELECT buscapais('ARGENTINA');

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creamos una función que actualiza determinado registro:

Page 14: Creación de funciones postgre sql

Trabajando con Tablas

CREATE OR REPLACE FUNCTION borrapais(VARCHAR) RETURNS VOIDAS

'DELETE FROM tb_pais WHERE UPPER(pais_id) LIKE $1;'LANGUAGE 'sql';

SELECT borrapais('P004');

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creamos una función que elimina determinado registro:

Page 15: Creación de funciones postgre sql

Trabajando con Tablas

CREATE OR REPLACE FUNCTION updpais(VARCHAR,VARCHAR) RETURNS VOIDAS

'UPDATE tb_pais SET pais_nom = $2 WHERE UPPER(pais_id) LIKE $1;'LANGUAGE 'sql';

SELECT updpais('P003','COLOMBIA');

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creamos una función que actualiza determinado registro:

Page 16: Creación de funciones postgre sql

Existen muchos más comandos por aplicar…es

tu labor investigar…

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 17: Creación de funciones postgre sql

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creación de FuncionesIng. Eddie Malca Vicente

[email protected]

@emalca