Publicado el 6 de Abril del 2018
4.165 visualizaciones desde el 6 de Abril del 2018
1,2 MB
108 paginas
Creado hace 10a (14/01/2015)
PL/pgSQL y otros lenguajes
procedurales en PostgreSQL
Guía para el desarrollo de lógica de negocio del lado del servidor
Guía para el desarrollo de lógica de negocio del lado del servidor
Anthony R. Sotolongo León
Yudisney Vazquez Ortíz
Universidad de las Ciencias Informáticas
La Habana, 2015
ISBN: 9781312994898
Copyright: Creative Commons Attribution 2.5
Edition: First Edition
Published: March 16, 2015
Language: Spanish
Pages: 107
File Format: PDF
PL/pgSQL y otros lenguajes
procedurales en PostgreSQL
Guía para el desarrollo de lógica de negocio del lado del servidor
CONTENIDOS
PREFACIO _____________________________________________________________________________IX
INTRODUCCIÓN A LA PROGRAMACIÓN DEL LADO DEL SERVIDOR EN POSTGRESQL ____14
1.1 Introducción a las Funciones Definidas por el Usuario ___________________________14
1.2 Ventajas de utilizar la programación del lado del servidor de bases de datos _____17
1.3 Usos de la lógica de negocio del lado del servidor _______________________________18
1.4 Modelo de datos para el trabajo en el libro ______________________________________21
1.5 Resumen ______________________________________________________________________21
PROGRAMACIÓN DE FUNCIONES EN SQL______________________________________________23
2.1 Introducción a las funciones SQL _______________________________________________23
2.2 Extensión de PostgreSQL con funciones SQL ___________________________________23
2.3 Sintaxis para la definición de una función SQL __________________________________23
2.4 Parámetros de funciones SQL __________________________________________________27
2.5 Retorno de valores _____________________________________________________________30
2.6 Resumen ______________________________________________________________________36
2.7 Para hacer con SQL ____________________________________________________________37
PROGRAMACIÓN DE FUNCIONES EN PL/PGSQL _______________________________________39
3.1 Introducción a las funciones PL/pgSQL _________________________________________39
3.2 Estructura de PL/pgSQL________________________________________________________39
3.3 Trabajo con variables en PL/pgSQL_____________________________________________42
3.4 Sentencias en PL/pgSQL _______________________________________________________46
3.5 Estructuras de control__________________________________________________________49
3.6 Retorno de valores _____________________________________________________________56
3.7 Mensajes ______________________________________________________________________61
3.8 Disparadores __________________________________________________________________64
3.9 Resumen ______________________________________________________________________79
3.10 Para hacer con PL/pgSQL_____________________________________________________79
III
PL/pgSQL y otros lenguajes
procedurales en PostgreSQL
Guía para el desarrollo de lógica de negocio del lado del servidor
PROGRAMACIÓN DE FUNCIONES EN LENGUAJES PROCEDURALES DE DESCONFIANZA DE
POSTGRESQL _________________________________________________________________________81
4.1 Introducción a los lenguajes de desconfianza ___________________________________81
4.2 Lenguaje procedural PL/Python ________________________________________________82
4.2.1 Escribir funciones en PL/Python ____________________________________________82
4.2.2 Parámetros de una función en PL/Python___________________________________83
4.2.3 Homologación de tipos de datos PL/Python ________________________________85
4.2.4 Retorno de valores de una función en PL/Python____________________________86
4.2.5 Ejecutando consultas en la función PL/Python ______________________________89
4.2.6 Mezclando_________________________________________________________________91
4.2.7 Realizando disparadores con PL/Python____________________________________92
4.3 Lenguaje procedural PL/R ______________________________________________________94
4.3.1 Escribir funciones en PL/R _________________________________________________94
4.3.2 Pasando parámetros a una función PL/R ___________________________________95
4.3.3 Homologación de tipos de datos PL/R ______________________________________96
4.3.4 Retornando valores de una función en PL/R_________________________________97
4.3.5
Ejecutando consultas en la función PL/R _______________________________100
4.3.6 Mezclando _______________________________________________________________101
4.3.7 Realizando disparadores con PL/R ________________________________________102
4.4 Para hacer con PL/Python y PL/R _____________________________________________103
4.5 Resumen _____________________________________________________________________104
RESUMEN ___________________________________________________________________________106
BIBLIOGRAFÍA _______________________________________________________________________107
IV
PL/pgSQL y otros lenguajes
procedurales en PostgreSQL
Guía para el desarrollo de lógica de negocio del lado del servidor
ÍNDICE DE EJEMPLOS
Ejemplo 1: Función SQL que elimina los estudiantes de quinto año ____________________15
Ejemplo 2: Función en PL/pgSQL que suma 2 valores _________________________________15
Ejemplo 3: Invocación de funciones en PostgreSQL ___________________________________16
Ejemplo 4: Invocación de la suma definida en el ejemplo 2 ____________________________16
Ejemplo 5: Función que actualiza el género de una canción____________________________18
Ejemplo 6: Empleo de PL/R para generar un gráfico de pastel__________________________19
Ejemplo 7: Función que importa el resultado de una consulta a un fichero CSV _________20
Ejemplo 8: Función que elimina clientes de 18 años o menos __________________________24
Ejemplo 9: Reemplazo de función que elimina clientes menores de 20 en lugar de 18 años
_____________________________________________________________________________________26
Ejemplo 10: Reemplazo de la función eliminar_clientesmenores() existente por otra que
elimina los clientes menores de 20 años y retorna la cantidad de clientes que quedan
registrados en la base de datos ______________________________________________________26
Ejemplo 11: Empleo de parámetros usando sus nombres en una sentencia INSERT ____28
Ejemplo 12: Empleo de parámetros empleando su numeración en una sentencia INSERT
_____________________________________________________________________________________28
Ejemplo 13: Empleo de parámetros con iguales nombres que columnas en tabla
empleada en la función ______________________________________________________________28
Ejemplo 14: Empleo de parámetros de tipo compuesto ________________________________29
Ejemplo 15: Empleo de parámetros de salida__________________________________________29
Ejemplo 16: Función que dado el identificador de la orden devuelve su monto total_____31
Ejemplo 17: Función que a determinado producto le incrementa el precio en un 5% y lo
muestra _____________________________________________________________________________31
Ejemplo 18: Función que incrementa, en un 5%, y muestra el precio de un producto
determinado pasándosele como parámetro un producto ______________________________32
Ejemplo 19: Empleo de la función aumentar_precio para aumentar el precio del producto
ACADEMY ADAPTATION _____________________________________________________________33
Ejemplo 20: Empleo de la función mostrar_cliente para devolver todos los datos de un
cliente pasado por parámetro ________________________________________________________33
Ejemplo 21: Empleo de la función mostrar_cliente para devolver el nombre del cliente con
id 31 ________________________________________________________________________________33
V
PL/pgSQL y otros lenguajes
procedurales en PostgreSQL
Guía para el desarrollo de lógica de negocio del lado del servidor
Ejemplo 22: Empleo de la función listar_productos para devolver el listado de productos
existente ____________________________________________________________________________34
Ejemplo 23: Empleo de la función mostrar_productos para devolver nombre y precio de
los productos existentes empleando parámetros de salida ____________________________35
Ejemplo 24: Función mostrar_productos para devolver nombre y precio de los existentes
empleando RETURNS TABLE _________________________________________________________36
Ejemplo 25: Función que retorna la suma 2 de números enteros _______________________40
Ejemplo 26: Empleo de variables en bloques anidados ________________________________41
Ejemplo 27: Creación de un alias para el parámetro de la función duplicar_impuesto en el
comando CREATE FUNCTION y en la sección DECLARE _______________________________45
Ejemplo 28: Captura de una fila resultado de consultas SELECT, INSERT, UPDATE o
DELETE______________________________________________________________________________47
Ejemplo 29: Empleo del comando EXECUTE en consultas constantes y dinámicas______49
Ejemplo 30: Empleo de la estructura condicional IF-THEN implementada en PL/pgSQL_51
Ejemplo 31: Empleo de la estructura condicional IF-THEN-ELSE implementada en
PL/pgSQL ___________________________________________________________________________51
Ejemplo 32: Empleo de la estructura condicional IF-THEN-ELSIF implementada en
PL/pgSQL ___________________________________________________________________________52
Ejemplo 33: Empleo de la estructura condicional CASE implementada en PL/pgSQL____52
Ejemplo 34: Empleo de la estructura condicional CASE buscado implementada en
PL/pgSQL ___________________________________________________________________________52
Ejemplo 35: Empleo de las estructuras iterativas implementadas por PL/pgSQL usando
LOOP y WHILE _______________________________________________________________________55
Ejemplo 36: Empleo de la cláusula RETURN para devolver valores y culminar la ejecución
de una función____________
Comentarios de: PL/pgSQL y otros lenguajes procedurales en PostgreSQL (1)