Consulta #04
Con esta consulta mostraremos todos los clientes inactivos con sus nombres y apellidos ordenados de
manera ascendentes por su número de Id
Consulta #06
Con esta consulta mostraremos el primer nombre y apellido de los clientes que nacieron en un año es
especifico en este ejemplo será de 1997
select pnombre_cte, papellido_cte from cliente --- seleccionamos los atributos de la tabla
cliente
where Fecha_nac like '1997%' -- que hallan nacido en una fecha en especifico
Order by Pnombre_cte asc -- que se ordenen segun su nombre ascendentemente
Consulta # 07
Mostraremos los clientes cuya cedula de identidad inicie con 001, así mismo mostraremos sus nombres
completos y apellido.
Consulta #08
Mostraremos todos los clientes con sus nombres completos siempre y cuando sean mujeres.
Mostramos la cantidad de clientes Mujeres y cuantos son varones, hay registrados en nuestra tabla.
select Genero , count (*) from Cliente -- contamos segun el genero de la tabla cliente
group by Genero -- agrupados cuantas F y M hay
Consulta #02
Mostraremos las actividades actuales del gimnasio, ordenados de manera ascendentes.
Consulta #02
Mostraremos los atributos de la tabla factura y detalle_factura en una misma vista mediante la
instrucción INNER JOIN.
Select f.Id_Factura, f. Fecha_Factura, df.Id_Producto, df.Precio_Unit, df.Cantidad,
df.Descuento, df.Subtotal --- seleccionamos los atrutos
From Factura f inner join Detalle_Factura df on f.Id_Factura = df.Id_Factura -- y con INNER
JOIN devolveremos unicamente aquellos registros identicos en los campos
Nota: algunos campos dicen nul porque faltaba la ejecución de los procedimientos y cursores.
Consulta de la tabla [DBO].[PRODUCTO]
Consulta #01
Mostraremos el registro de la tabla productos, con sus respectivos atributos de manera descendentes
por el nombre del producto.
select *from Producto -- mostramos todos los atributos de la tabla producto
Order by Nombre_Producto desc -- de manera descendente por el nombre del producto
Consulta #02
Con esta consulta mostramos la cantidad de producto registrados en la base de datos.
Select Count(Nombre_producto)from Producto
Consulta # 03
Mostraremos cuantos de estos productos son trajes que están en venta.
Select count(Nombre_Producto) from producto – contamos los atributos de la tabla productos
where Nombre_Producto like 'Traje%' – cuyo nombre del productos sean trajes.
Consulta #04
Mostraremos el nombre de los productos con sus respectivas categorías de manera ascendente según el
nombre del producto.
Consulta #01
Mostraremos el contenido de la tabla instructor
Consulta #02
Mostrar en que sala imparte cada instructor
Consulta #03
Mostrar a los profesores que imparten Aerobic
Consulta # 04
Mostrar nombre y teléfono de cada instructor
Consulta #01
Mostrar el contenido de la tabla sala
Consulta # 02
Hacer un conteo de las personas que asisten a las clases de Zumba
select Count(C.Pnombre_cte)
from Cliente C, Horario H, Inscripcion I, Actividad A, Sala S
Where C.Id_Cliente= I.Id_Cliente AND I.Id_Horario=H.Id_Horario
AND H.Id_Actividad = A.Id_Actividad AND A.Id_Actividad=S.Id_Actividad
AND S.Nombre_Sala like '%Zumba'
Consulta #03
Mostrar en pantalla el nombre de las salas, numero sala y equipo que existe en ella.
Consulta #02
Mostrar Nombre del Equipo, precio y el proveedor que lo distribuye
Consulta #02
Mostrar el Equipo que distribuye Export Gym
Consulta #02
Mostramos la suma total de las facturas pero agrupados por Cliente
Ejemplo observemos que la factura 1 lleva dos productos uno de $4 y otro de $5 en total serian $9
A continuación ejecutamos nuestro procedimiento almacenado para ellos utilizamos el comando Exec
+ el nombre del procedimiento + los valores a insertar en comillas simples estos últimos, pero a
como observamos en la imagen en el atributo Cod_Cliente y Edad (recuadro verde) los dejamos vacío
dado que más adelante utilizamos cursores para crear códigos automáticos y calcular la edad del
cliente.
En esta primera captura podemos observar el registro de todos los clientes ya insertado
Ahora ejecutamos nuestro procedimiento almacenado y buscamos el código 0001jipo a como vemos
en la image. Exec SP_BuscarPorCliente ‘0001jipo’
En esta imagen vemos que solo obtuvimos un resultado del nombre creado.
En este otro resultado obtuvimos dos nombres que iniciaban igual
Y en este último vemos que no se encuentran ningún resultado ya que no hay ningún cliente registrado
con ese nombre
5- SP_BuscarPorLetra Con este procedimiento se quiere poder buscar un registro por la letra del Primer
nombre del cliente a como vemos a continuación Creamos el procedimiento y dentro del código
usamos el comando like ‘%’ lo que indica que la comparación del primer nombre se realiza sólo en el
primer carácter.
Ahora ejecutamos nuestro procedimiento almacenado buscando los nombres que inicien con la letra A.
6- SP_ActualizarrCliente Este procedimiento es para poder actualizar los datos del cliente , primero
declaramos Create procedure SP_ActualizarCliente , luego declaramos nuestras variables globales ,
actualizamos nuestra tabla cliente con el comando UPDATE y por ultimo asignamos a los atrbutos las
variables globales declaradas para poder modificar a como vemos en la imagen.
Y mostramos el resultado de nuestro procedimiento almacenado
Un Disparador nunca se llama directamente, en cambio, cuando una aplicación o usuario intenta insertar,
actualizar, o anular una fila en una tabla, la acción definida en el disparador se ejecuta automáticamente
(se dispara).
Decimos que los Triggers se invocan para ejecutar un conjunto de instrucciones que protejan, restrinjan,
actualicen o preparen la información de las tablas, al momento de manipular la información. Para crear
triggers son necesarios los privilegios SUPER y TRIGGER
---------------------------------------------------------------------------------
-------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
Creación de un trigger para eliminar un registro de la tabla Categoría
---Trigger para eliminar un registro de la tabla Categoria
CREATE TRIGGER Delete_Categoria ON [dbo].[Categoria] --DATABASE
FOR delete -- Indicamos la accion a realizar
AS
BEGIN
delete from Categoria
From Categoria , deleted
where
Categoria.Id_Categoria = deleted.Id_Categoria--indicamos que numero de registro
se eliminara
---------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Creación de un trigger para modificar un registro de la tabla Categoría
----Trigger para modificar registro de la tabla Categoria
Create Trigger Modificar_Categoria
On [dbo].[Categoria]-- Indicamos la tabla en donde se guardara el procedimiento
For Update -- Indicamos el evento que sera insertar
As
Update Categoria -- actualizamos la tabla Categoria
set
Id_Categoria = inserted.Id_Categoria -- asignamos a que Id sera qel que se
modifique
from Nombre_Categoria,DescripcionCategoria--- los atributos que podemos modificar
de esa tabla
where
Categoria.Id_Categoria = inserted.Id_Categoria
Print 'Se ha modificado un registro de una Categoria' --- Imprimimos un msj
Creación de Vistas
VISTA Nº1
Procedemos a listar la tabla Cliente para luego mostrar en la vista Vw_listar _clientes solo el primer
nombre y primer apellido
Ejecutamos la vista Vw_listar_clientes y el resultado nos genera el primer nombre y el primer apellido
de la tabla cliente
VISTA Nº 2
Crearemos una vista para el cliente la cual nos mostrar los clientes Inactivos
VISTA Nº 3
En esta vista listaremos los clientes cuyo género es Masculino
VISTA Nº 4
En esta vista listaremos los clientes cuyo género es Femenino
VISTA Nº 5
En esta vista del cliente encriptamos al cliente ya que las vistas son un como un método de seguridad y
restricciones ejecutamos el comando encrytion para que las personas que vean nuestra vista no logren
ver como esta estructurada
VISTA Nº 6
En esta vista procedemos a realizar un listado de las actividades, Día y hora de Inicio de la tabla Horario
la cual nuevamente fue encriptada como método de seguridad dado que fue alterada esta vista por ello
esta antecedida de la palabra ALTER
VISTA Nº 7
En esta vista mostraremos la cantidad de instructores y la lista por nombre y apellido
VISTA Nº 8
Ahora veremos el registro clientes antes de ejecutar nuestro cursor lo cual muestra en la columna Edad
valores NULL
Una vez ejecutado nuestro cursor podemos observar que nos muestra calcula y muestra la edad de los
clientes.
2- Cursor CurCod_Cliente con este cursor creamos un código para cada cliente utilizamos el comando
lower y anteponemos tres ceros“000” luego concatenamos con + con el Id_Cliente que es un entero
en el cual también se utilizó el comando identity para que el Id_Cliente aumente de 1 en 1 (Id_Cliente
int identity(1,1)) concatenamos y luego sustraemos la primera letra de cada del primer nombre,
segundo nombre, primer apellido y segundo apellido esto con el comando substring
(@Pnombre_cte,1,1) a como observamos acontinuacion
Observemos que antes de ejecutar nuestro cursor el valor del atributo es nulo
Una vez ejecutado nuestro cursor obtenemos el siguiente resultado
3) Cursor CurEdadInstructor: Con este cursor lo que hacemos es calcular la edad de nuestra tabla
Instructor
Declare @Id_Instructor int
Declare @Fecha_Nacimiento date
Declare CurEdadInstructor Cursor for
select Id_Instructor, Fecha_Nacimiento from Instructor --Seleccionamos tanto
la tabla como los atributos a utilizar
Open CurEdadInstructor --Abrimos nuestro cursor
Fetch next from CurEdadInstructor into @Id_Instructor, @Fecha_Nacimiento --
Ubicarnos en el Primer Registro
while @@FETCH_STATUS = 0 -- Si FETCH STATUS retorna 0 significa que el
cursor con -- y que es un cursor valido
Begin
update Instructor --Actualizamos la tabla
set Edad = datediff(year, (@Fecha_Nacimiento), GETDATE()) --con set le asignamos
el resultado de la operacion para calcular la edad
where Id_Instructor = @Id_Instructor
Fetch next from CurEdadInstructor into @Id_Instructor , @Fecha_Nacimiento
end
close CurEdadInstructor --cerramos nuestro cursor
Deallocate CurEdadInstructor
Mostramos los resultados obtenidos en nuestra tala instructor
4) Cursor CurPrecioUnit: Con este cursor lo que hacemos es que pasamos los precios reales de los
productos de nuestra tabla Producto a la tabla detalle producto.
Antes de ejecutar el cursor , nuestra tabla Detalle_Factura se mostraba sin precio en los productos.
Una vez que ejecutamos nuestro cursor podemos obtener el resultado del subtotal en pantalla, el
recuadro en azul nos muestra la aplicación de la operación completa junto con el descuento.
7) Cursor CurCalcula: con este cursor calculamos el costo de la mensualidad en córdobas, osea
dado que el costo de la mensualidad en el gimnasio se cobra en dólares pero en muchas ocasiones
las personas paga su equivalente en córdobas entonces tenemos que convertir el precio de dólares a
córdobas.