Ing. Francisco Rodríguez

Slides:



Advertisements
Presentaciones similares
Se necesita un PA que muestre la información de todos los clientes registrados de la siguiente forma: Nombre1 Nombre2, Apellido1 Apellido2 bajo el título.
Advertisements

Insercion de datos..
Implementación de procedimientos almacenados
Implementación de procedimientos almacenados. Introducción a los procedimientos almacenados Creación, ejecución, modificación y eliminación de procedimientos.
Introducción a Transact-SQL
PL/SQL Francisco Moreno Universidad Nacional.
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Estructura general de un programa en el servidor de Bases de Datos.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
5 Paquetes ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
DLM Transact SQL Sesión II Recuperación de información.
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
DML Transact SQL Sesión IX Introducción a los procedimientos almacenados.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
ESTRUCTURAS DE DATOS Y ALGORITMOS Samuel Peñaló
GESTOR DE BASE DE DATOS CARRERA: COMPUTACIÓN E INFORMÁTICA CURSO: TALLER DE SISTEMAS I DOCENTE: ING. JOSÉ EDUARDO QUISPE TAIPE CICLO: QUINTO.
Índices Ing. Catherine Naranjo D.. Introducción Los índices son objetos de base de datos diseñados para mejorar el rendimiento de las consultas. En este.
Administración de Sistemas Gestores de Bases de Datos.
Introducción a la Programación Multimedial
PL/SQL Francisco Moreno Universidad Nacional.
SQL: Structured Query Language
PL/SQL Francisco Moreno Universidad Nacional.
Convenciones de nomenclatura y diseño
Estructuras de Control.
Características Objeto Relacionales en Oracle
MYSQL SQL: Lenguaje de consulta estructurado. Es un lenguaje de programación para trabajar con BD relacionadas, entre las cuales tenemos MYSQL, ORACLE,
SEGURIDAD SQL Usuarios, privilegios y perfiles.
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
Programación 1 Curso: 5to. I TT
Anexo Chame-San Carlos
Métodos y parámetros.
3. Control de acceso.
Stored Procedures Firebird.
Fechas evaluaciones Parcial: 11 de octubre
Conceptos básicos de programación
SQL Prof. Martín Contreras.
Estructuras de Control en Visual Basic.net
Introducción a Transact-SQL BASES DE DATOS II. Introducción E lenguaje de programación Transact-SQL Tipos de instrucciones de Transact-SQL Elementos de.
Structure Query Languaje
Lenguajes de programación
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
5. SQL Procedural.
SQL Lenguaje de Consulta Estructurado
Instrucciones y excepciones
Bucles y estructuras de decisión
Taller de Bases de Datos Ingeniería en Sistemas Computacionales Clave de la asignatura: SCA-1025 (Créditos) SATCA1: 0 – 4 – 4.
Orígenes Funciones Condicionales
Oracle Pl/SQl Developer – Nivel 1
Estructuras de control en PHP
Hardware Description Language
Curso de iniciación al trabajo con MatLab 7.0
Structure Query Languaje
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
LENGUAJE C.
Metodología de la Programación
Unidad V :- Integridad de datos.
ESTRUCTURAS DE DATOS Docente: Ing. Yesika Medina
4.- Sentencia SELECT simple
Bucles y estructuras de decisión
Estructuras de Control
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
Características Objeto Relacionales en Oracle
Informática Ingeniería en Electrónica y Automática Industrial
TRIGGERS VISTAS Y PROCESOS Ing. Fabiola Nilda Perez Oliver
Ing. Francisco Rodríguez
Lenguaje de definición de datos. Un lenguaje de base de datos o lenguaje de definición de datos es un lenguaje proporcionado por el sistema de gestión.
Transcripción de la presentación:

Ing. Francisco Rodríguez UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE ING. INDUSTRIAL Base de Datos Resultados BASE DATOS Internet Requerimientos Docente: Ing. Francisco Rodríguez

Procedimientos Almacenados Base de Datos Tema 9: Procedimientos Almacenados (Stored Procedures)

Procedimientos Almacenados Procedimiento Almacenado (Stored Procedure): Colección de sentencias SQL, con un nombre, almacenadas en el servidor dentro de la BD. Finalidad: Encapsular tareas repetitivas

Procedimientos Almacenados Características: Soportan declaración de variables, ejecución condicional y otras características de programación. Aceptan parámetros de entrada y devuelven valores. Devuelven un valor de estado que indica éxito o falla. Pueden llamar a otros procedimientos almacenados.

Procedimientos Almacenados Tipos: Del sistema Locales Temporales Remotos Extendidos

Procedimientos Almacenados Procedimientos almacenados del sistema: Devuelven información de las tablas del sistema y ejecutan tareas de mantenimiento. En SQL Server se almacenan en la BD master y sus nombres comienzan con sp_: sp_help

Procedimientos Almacenados Procedimientos almacenados locales: Creados en las BD de usuario individuales. Procedimientos almacenados temporales: En SQL Server sus nombres empiezan con # o ## (si son locales o globales). Los procedimientos almacenados temporales se crean siempre en la BD tempdb

Procedimientos Almacenados Procedimientos almacenados remotos: Soportan la funcionalidad de consultas y operaciones distribuidas. Procedimientos almacenados extendidos: Se ejecutan fuera del ambiente del servidor. En SQL Server, sus nombres comienzan con xp_. Los procedimientos almacenados extendidos son funciones dentro de una DLL que incrementan la funcionalidad de SQL Server.

Procedimientos Almacenados Ventajas: Encapsulan la lógica de negocio y crean una lógica de la aplicación reusable. Ocultan a los usuarios la complejidad subyacente y detalles internos de la BD. Proveen mecanismos de seguridad. Mejoran el rendimiento. Reducen el tráfico en la red. Reducen la vulnerabilidad debido a los ataques de infiltración de código intruso.

Creación de Procedimientos Almacenados Consideraciones: Se emplea la sentencia CREATE PROCEDURE. Pueden referenciar tablas, vistas, otros procedimientos y tablas temporales. En SQL Server la sentencia CREATE PROCEDURE es un batch por si mismo. SQL Server: CREATE PROC sp_listado AS SELECT * FROM TEXTO GO

Creación de Procedimientos Almacenados Ejecución en SQL Server se emplea la sentencia EXECUTE seguida del nombre del procedimiento y sus parámetros. EXECUTE sp_listado En SQL Server se puede usar la forma abreviada de EXECUTE: EXEC.

Creación de Procedimientos Almacenados Los procedimientos pueden anidarse (un procedimiento llama a otro): El nivel de anidamiento es limitado. Si un P1 llama a P2, P2 puede acceder a todos los objetos definidos localmente en P1. En SQL Server puede haber hasta 32 niveles de anidamiento, y la variable @@nestlevel guarda el nivel de anidamiento actual.

Creación de Procedimientos Almacenados En SQL Server: Para ver información sobre los procedimientos: sp_help , sp_helptext y sp_depends Para obtener una lista de procedimientos: sp_stored_procedures

Recomendaciones Cualificar los nombres de los objetos dentro del cuerpo del procedimiento. En SQL Server, tratar de evitar romper la cadena de permisos. Realizar un procedimiento por cada tarea (cohesión). Crear, probar y corregir los procedimientos en el servidor, luego hacer la prueba en los clientes.

Modificación y Borrado En SQL Server, para modificar un procedimiento se puede usar la sentencia ALTER PROC[EDURE] Ejemplo SQL Server: ALTER PROC esquema1 AS SELECT CONVERT(char(8),due_date,1) due_date, codigo, nrocopia, SUBSTRING(title, 1, 30) titulo, FROM Texto ORDER BY due_date GO

Modificación y Borrado Borrado de un procedimiento (SQL Server): DROP PROC[EDURE] esquema1 En el caso de SQL Server, también se puede borrar un procedimiento desde SSMS

Parámetros de Entrada Parámetros de entrada: Permiten pasar información a los procedimientos. Se los debe declarar en la sentencia CREATE PROCEDURE.

Parámetros de Entrada Consideraciones: Verificar al principio del procedimiento los valores de entrada para detectar posibles valores inválidos. Proveer valores por defecto apropiados (SQL Server). El máximo número de parámetros depende del SGBDR. En el caso de SQL Server 2008, un procedimiento soporta hasta 2100 parámetros de entrada.

Parámetros de Entrada Consideraciones: El máximo número de variables locales es limitado solamente por la memoria disponible (depende del SGBDR). Los parámetros tienen un ámbito local al procedimiento.

Parámetros de Entrada SQL Server: CREATE PROC inserta_cliente @codi varchar(10), @apell varchar(20), @ nomb varchar(20) AS Begin Insert into Cliente(codigo, apellidos, nombres) Values(@codi, @apell, @nomb) End Go

Parámetros de Entrada Llamada a un procedimiento con parámetros de entrada: SQL Server Por referencia Por posición En el caso de SQL Server, no se puede mezclar ambas formas durante el llamado del procedimiento.

Parámetros de Entrada Llamada por referencia: En la sentencia EXEC se especifica el parámetro de la forma @parámetro = valor. El orden de los parámetros puede ser cualquiera. Se pueden omitir parámetros. Se puede especificar @parámetro = DEFAULT.

Parámetros de Entrada Llamada por referencia: EXEC listado_adultos @nombre = 'Linda', @apellidos = 'Lopez', @calle = ‘Mantaro', @ciudad = ‘Trujillo',

Parámetros de Entrada Llamada por posición (SQL Server): Se pasan los valores en el mismo orden en que fueron definidos el procedimiento. Se pueden omitir parámetros en valores por defecto, pero no se debe interrumpir la secuencia. Se usan también valores nulos y DEFAULT como parámetros.

Parámetros de Entrada Llamada por posición (SQL Server): EXEC listado_adultos 'Linda', 'Lopez', ‘Mantaro', ‘Trujillo',

Parámetros de Salida Un procedimiento puede devolver información a quien lo llama en forma de parámetros de salida. SQL Server usa OUTPUT al definir el procedimiento: CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m2 smallint, @resultado smallint OUTPUT AS SET @resultado = @m1 * @m2 GO

Parámetros de Salida Llamada a un procedimiento con parámetros de salida: SQL Server Se emplea la cláusula OUTPUT. Quien llama al procedimiento debe tener una variable para guardar el valor de salida. DECLARE @answer smallint EXEC mathtutor 5, 6, @answer OUTPUT SELECT 'El resultado es: ' , @answer

Estructuras de Control de Flujo

Estructuras de Control de Flujo 1) IF…ELSE La palabra clave IF con o sin la compañía ELSE se utiliza para introducir una condición que determina si se ejecutará la instrucción siguiente. La instrucción SQL se ejecuta si la condición se cumple, es decir, si devuelve TRUE (verdadero) La palabra clave ELSE introduce una instrucción SQL alternativa que se ejecuta cuando la condición IF devuelva FALSE (falso).

Estructuras de Control de Flujo

Ejemplos: a) Cree un procedimiento almacenado que permita el ingreso de datos de un usuario. El procedimiento tendrá los siguientes parámetros de entrada: código, nombre, apellido paterno, apellido materno, fecha de nacimiento, fecha de registro, tipo de documento, número de documento y código de estado. Considere las siguientes condiciones antes de ingresar un usuario: El código del usuario debe ser único No deberá ingresar usuarios cuya edad sea menor de 18 años

b) Cree un procedimiento almacenado que permita modificar los datos de un inquilino. El procedimiento tendrá los siguientes parámetros de entrada: código de usuario, nombre de aval, apellido del aval, Haber básico, estado civil y lugar de trabajo del inquilino. Así mismo, sólo se podrán modificar aquellos inquilinos cuyo Haber básico sea menor a 600 soles.

CREATE PROCEDURE MODIFICA_INQUILINO @COD_USUA char(6), @NOM_AVAL_INQ varchar(30), @APELL_AVAL char(30), @HABER_BAS_INQ float, @EST_CIVIL_INQ char(1), @LUG_TRAB_INQ varchar(50) AS -- Variables Declare @HABER_BAS_INQ_ACTUAL float -- Obtener el Haber Básico Actual del Inquilino Select @HABER_BAS_INQ_ACTUAL = HABER_BAS_INQ From INQUILINO Where COD_USUA = @COD_USUA -- Verificar el Haber Básico del Inquilino If @HABER_BAS_INQ_ACTUAL>600 Begin Select 'El Haber Básico del Inquilino debe ser menor a 600 soles' Return End

-- Actualizar los Datos Update INQUILINO Set COD_USUA = @COD_USUA, NOM_AVAL_INQ = @NOM_AVAL_INQ, APELL_AVAL = @APELL_AVAL, HABER_BAS_INQ = @HABER_BAS_INQ, EST_CIVIL_INQ = @EST_CIVIL_INQ, LUG_TRAB_INQ = @LUG_TRAB_INQ Where COD_USUA = @COD_USUA

2) WHILE WHILE se utiliza para definir una condición para la ejecución repetida de una instrucción o un bloque de instrucciones. Las instrucciones se ejecutan reiteradamente siempre que la condición especificada es verdadera. La sintaxis de WHILE es WHILE BOOLEAN_EXPRESION EXPRESION_SQL BREAK y CONTINUE controlan el funcionamiento de las instrucciones dentro de un bucle while. BREAK permite salir del bucle while. CONTINUE hace que el bucle while se inicie de nuevo.

6.1.2.7. CASE La función CASE es una expresión especial de Transact SQL que permite que se muestre un valor alternativo dependiendo de una columna. Este cambio es temporal, con lo que no hay cambios permanentes en los datos. La función CASE está compuesta de: La palabra CASE El nombre de la columna que se va transformar Cláusulas WHEN que se especifican las expresiones que se van a buscar y cláusulas THEN que especifican las expresiones que las van a reemplazar La palabra END

Ejemplo: Select COD_USUA, NOM_USUA, APEPATER_USUA, APEMATER_USUA, Case Month(FEC_NAC_USUA) When 1 Then 'Enero' When 2 Then 'Febrero' When 3 Then 'Marzo' When 4 Then 'Abril' When 5 Then 'Mayo' When 6 Then 'Junio' When 7 Then 'Julio' When 8 Then 'Agosto' When 9 Then 'Septiembre' When 10 Then 'Octubre' When 11 Then 'Noviembre' When 12 Then 'Diciembre' End As Mes_Nacimiento From USUARIO

Crear un sp que permita incrementar el haber básico de un inquilino en función de su estado civil (20% para casados o viudos y 10% para los solteros y divorciados). Asimismo, si el inquilino tiene una comisión aumentar su haber con ese monto. Create Procedure spIncHaberInquilino @Inquilino Char(6), @Comision Numeric(10,2) = Null --Parámetro con valor por defecto As Begin -- Inicio del sp -- Validar que el código y la descripcion no sean nulas If( @Inquilino Is Null ) Begin Print 'El código del inquilino no puede ser NULO!!!' Return End

-- Validar si el inquilino existe If Not Exists(Select -- Validar si el inquilino existe If Not Exists(Select * From Inquilino Where Cod_Usua = @Inquilino) Begin Print 'Actualizacion cancelada. El inquilino no existe.' Return End -- Variables locales para el proceso Declare @HaberBasico Int Declare @EstadoCivil Char(1) Declare @IncrementoPorEstadoCivil Int -- Determinar valores del inquilino Select @HaberBasico = Haber_Bas_Inq, @EstadoCivil = Est_Civil_Inq From Inquilino Where Cod_Usua = @Inquilino

-- Determinar porcentaje de incremento If(@EstadoCivil In ('C','V')) Set @IncrementoPorEstadoCivil = @HaberBasico * 0.20 Else Set @IncrementoPorEstadoCivil = @HaberBasico * 0.10 -- Eliminar el departamento Update Inquilino Set Haber_Bas_Inq = Haber_Bas_Inq + @IncrementoPorEstadoCivil + IsNull(@Comision,0) Where Cod_Usua = @Inquilino End -- Fin del spIncHaberInquilino

FIN