Procedimientos Almacenados

• Procedimientos Almacenados • CREATE PROC[EDURE] • [ • {@parámetro tipoDatos} [= predeterminado] [OUTPUT] • ] • [,...n] • [WITH • { • RECOMPILE •

6 downloads 136 Views 220KB Size

Recommend Stories


PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS • • Un procedimiento almacenado es un conjunto de sentencias SQL y de control de flujo Procedimientos almacenados definido

Procedimientos almacenados
Procedimientos almacenados Vimos que SQL Server ofrece dos alternativas para asegurar la integridad de datos, la integridad: 1) DECLARATIVA, mediante

Implementación de procedimientos almacenados
Implementación de procedimientos almacenados Introducción  Introducción a los procedimientos almacenados  Creación, ejecución, modificación y

PROCEDIMIENTOS ALMACENADOS. Transact-SQL
PROCEDIMIENTOS ALMACENADOS Los procedimientos almacenados son módulos o rutinas que encapsulan código para su reutilización. Un procedimiento almacena

GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL
GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL Conceptos, historia y contexto http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html L

PARTE II. PROGRAMAS ALMACENADOS
Lenguaje Sql con MySQL avanzado Parte II. Programas almacenados PARTE II. PROGRAMAS ALMACENADOS Tema 2. Programas almacenados en MySQL 2.1. 2.2. 2.3

Procedimientos
Publicidad. Presupuestos. Programas

Story Transcript

• Procedimientos Almacenados

• CREATE PROC[EDURE] • [ • {@parámetro tipoDatos} [= predeterminado] [OUTPUT] • ] • [,...n] • [WITH • { • RECOMPILE • | ENCRYPTION • } • ] • AS • Sentencias SQL [...n]

• Una vez que se crea un PA, puede ser llamado todas las veces que sea necesario. • Provee modulación y habilita la reutilización del código->mejora el mantenimiento de la BD aislandola de los cambios en las prácticas del negocio. • Si las reglas de negocios cambian en una organización, se puede modificar a los PA para cumplir con las nuevas reglas de negocio. • Los PA pueden aceptar parámetros de ingreso, retornar parámetros de salida, producir información de retroalimentación de la ejecución en la forma de códigos de estatus y texto descriptivo, y llamar a otros procedimientos. • Ante cualquier tarea simple, se debería escribir un procedimiento almacenado. • Mientras más genérico sea el procedimiento más útil será…

• Procedimiento almacenado sencillo con instrucción select…

• Al ejecutarse muestra todos los datos de persona en la BD Universidad:

• create procedure personas • as • select * from persona

• exec personas

• • • •

create procedure personas1 as select * from persona select * from profesor

• Con select mas complejos…

• Procedimiento que al ejecutarse muestra nombre, apellido y telefono de las personas que son profesores (hombres) …

• • • • • •

create procedure personas2 as select nombre, apellido, telefono from persona, profesor where persona.dni=profesor.dni and varon=1

• Con select mas complejos… • Qué hace el siguiente PA?

• create procedure personas3 • as • select asignatura.nombre as 'Nombre Asignatura', persona.nombre+' '+persona.apellido as 'Nombre Profesor' • from asignatura, profesor, persona • where asignatura.idprofesor=profesor.idprofesor • and profesor.dni=persona.dni

• Procedimiento que al ejecutarse muestra los ramos y su profesor, y ademas, aparte, la cantidad de ramos que dicta cada profesor…

• create procedure personas4 • as • select asignatura.nombre as 'Nombre Asignatura', persona.nombre+' '+persona.apellido as 'Nombre Profesor' • from asignatura, profesor, persona • where asignatura.idprofesor=profesor.idprofesor • and profesor.dni=persona.dni • select count(distinct asignatura.nombre)as 'Cantidad de Ramos Dictados por: ', persona.nombre+' '+persona.apellido as 'Nombre Profesor' • from persona, profesor, asignatura • where asignatura.idprofesor=profesor.idprofesor • and profesor.dni=persona.dni • group by persona.nombre+' '+apellido

• Ejercicio. • Genere un AP que al ejecutarse, muestre el nombre y apellido en una columna „Nombre Alumno‟ de todos los alumnos registrados en la BD UNIVERSIDAD.

• create procedure alumnos • as • select nombre+' '+apellido as 'Nombre Alumno' • from alumno, persona • where persona.dni=alumno.dni

• Ejercicio. • Genere un AP que al ejecutarse, muestre el nombre de cada asignatura de la titulación Matemáticas y el cuatrimestre al que corresponden en la BD UNIVERSIDAD.

• create procedure ramos • as • select asignatura.nombre as Ramo, cuatrimestre • from asignatura, titulacion • where asignatura.idtitulacion=titulacion.idtitulacion • and titulacion.nombre='Matemáticas'

• Ejercicio. • Genere un AP que al ejecutarse, muestre el nombre y apellido en una columna de todos los alumnos registrados en la BD UNIVERSIDAD y la cantidad de ramos que cada uno de ellos esta tomando.

• create procedure alumnoscantramos • as • select persona.nombre+' '+apellido as 'Nombre Alumno', count(idasignatura) as 'Cantidad de ramos' • from alumno, persona, alumnoasignatura • where persona.dni=alumno.dni • and alumno.idalumno=alumnoasignatura.idalumno • group by persona.nombre+' '+apellido

• Tarea. • Genere un AP que al ejecutarse, muestre el nombre de todas las titulaciones y su costo basico total.

• AP que al ejecutarse muestra la cantidad de profesores que hacen ramos para la titulacion Matemáticas.

• CREATE procedure cantidadprofes • as • select count(distinct idprofesor) as 'Total Profesores en Matemáticas' • from titulacion, asignatura • where asignatura.idtitulacion=titulacion.idtitulacion • and titulacion.nombre='Matemáticas'

• Ejercicio • Genere un AP que al ejecutarse, muestre el numero total de titulaciones de la BD universidad.

• create procedure cantidadtit • as • select count(idtitulacion) as 'Total Titulaciones„ from titulacion

• AP que al ejecutarse, muestra el numero total de titulaciones de la BD universidad. • Uso de Print y variables.

• PRINT: Imprime en pantalla. • Print „Mensaje‟ • Print @variable • Print „Mensaje‟+cast(@numero as varchar(10))+‟mensaje‟

• VARIABLES: • Se declaran: declare @variable tipo de dato • Set= lo que se debe realizar con la variable…

• • • •

create procedure cantidadtit1 as declare @cantidad int set @cantidad=(select count(idtitulacion) from titulacion) • print „Cantidad calculada‟ • Cantidad calculada

• • • •

create procedure cantidadtit2 as declare @cantidad int set @cantidad=(select count(idtitulacion) from titulacion) • print @cantidad • 3

• • • •

create procedure cantidadtit3 as declare @cantidad int set @cantidad=(select count(distinct idtitulacion) from titulacion) • print 'Se tienen ' +cast(@cantidad as varchar) +' titulaciones.„

• Se tienen 3 titulaciones.

• Ahora con Print, variables, IF ELSE.

• • • • • • • • •

Create procedure cantidadtit33 as declare @cantidad int set @cantidad=(select count(idtitulacion) from titulacion) print 'Se tienen ' +cast(@cantidad as varchar) +' titulaciones.' If @cantidad=1 • begin • select * from persona • where nombre=@nombre and apellido=@apellido • print 'Select realizado' • end • else • print 'No existe persona, por favor ingresar bien nombre y apellido.'

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.