Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TIENDA DE VIDEO
1.- Creamos nuestra base de datos y a su vez
los archivos mdf, ldf y ndf
create database Tienda_de_Video
--creamos la base de datos Tienda_de_Video
on primary
--definimos y configuramos el archivo MDF
(name = Tienda_de_video,
--el nombre será Tienda_de_video
filename ='D:\Risco Guzman Diego Alonzo-
Tienda_de_video\Tienda_de_video.mdf',
--la ruta en la que está almacenado el archivo MDF es en
el disco D, en la carpeta que le pondremos el nombre
--de Risco Guzman Diego Alonzo-Tienda_de_Video y el
archivo Tienda_de_video
size = 5mb,
--el tamaño es de 5mb,
maxsize = 10mb,
--el tamaño máximo es de 10mb
filegrowth = 20%)
--cuando llegue a su tamaño máximo el archivo MDF crecerá
en 20%
log on
--definimos y configuramos el archivo ldf
(name = Tienda_de_videoLog,
--el nombre será Tienda_de_videoLog,
filename ='D:\Risco Guzman Diego Alonzo-
Tienda_de_video\Tienda_de_video.ldf',
--la ruta en la que está almacenado el archivo ldf es en
el disco D, en la carpeta que le pondremos el nombre
--de Risco Guzman Diego Alonzo-Tienda_de_Video y el
archivo Tienda_de_video
size = 3mb,
--el tamaño es de 3mb
maxsize = 5mb,
--el tamaño maximo es de 5mb
filegrowth = 1 mb)
--cuando llegue a su tamaño maximo el archivo ldf crecerá
en 1mb
go
go
b)
*Visualizar las películas que se estrenan en el año 2017, que estén ordenadas
en forma ascendente por su genero correspondiente
select nombre_pelicula, descripcion_genero, fecha_estreno
--Seleccionamos los campos nombre_pelicula,
descripcion_genero y fecha_estreno
from Pelicula inner join Genero
--Que provienen de la tabla Pelicula unida con la tabla
Genero
on Pelicula.id_genero=Genero.id_genero
--en la cual las tablas Pelicula y Genero tienen como
relacion el campo id_genero
where fecha_estreno like'2017%'
--Donde el campo fecha_estreno sean del 2017
order by descripcion_genero
--Ordenado por descripcion_genero
c)
e)
g)
*Visualizar las ofertas que tienen las películas que empiezan con la letra D
select nombre_pelicula, descripcion_oferta
--seleccionamos los campos nombre_pelicula y
descripcion_oferta
from pelicula inner join Detalle_Comprobante
--que proviene de la tabla Pelicula unida con la tabla
Detalle_Comprobante
on pelicula.id_pelicula=Detalle_Comprobante.id_pelicula
--en la cual las tablas Peliculas y Detalle_Comprobante
tienen como relacion el campo id_pelicula
inner join Oferta
--Unida con la tabla Oferta
on Detalle_Comprobante.id_oferta=Oferta.id_oferta
--en la cual la tabla Detalle_Comprobante y Oferta tienen
como relacion el campo id_oferta
where nombre_pelicula like 'D%'
--donde el campo nombre_pelicula comience con la letra D
h)
*Visualizar de forma ascendente el genero junto con el pais
select descripcion_genero, pais
--Seleccionamos el campo descripcion_genero y el campo
pais
from Nacionalidad inner join Pelicula
--Que proviene de la tabla Nacionalidad unida con la
tabla Pelicula
on Nacionalidad.id_nacionalidad=Pelicula.id_nacionalidad
--en el cual las tablas Nacionalidad y Pelicula tienen
como relacion el campo id_nacionalidad
inner join Genero
--Unida con la tabla Genero
on Pelicula.id_genero=Genero.id_genero
--en la cual las tablas Peliculas y Genero tienen como
relacion el campo id_genero
order by descripcion_genero
--Ordenado por descripcion_genero
i)
m)
*Visualizar el tipo de comprobante que reciben los niños
select descripcion_comprobante, descripcion_tipocliente
--seleccionamos el campo descripcion_comprobante,
descripcion_tipocliente
from Tipocomprobante inner join Detalle_Comprobante
--que proviene de la tabla Tipocomprobante unida con la
tabla Detalle_Comprobante
on
Tipocomprobante.id_tipocomprobante=Detalle_Comprobante.id
_tipocomprobante
--en la cual las tablas Tipocomprobante y
Detalle_Comprobante tienen como relacion el campo
id_tipocomprobante
inner join Detalle_Cliente
--Unida con la tabla Detalle_Cliente
on
Detalle_Comprobante.id_detalle_comprobante=Detalle_Client
e.id_det_comprobante
--en la cual las tablas Detalle_Comprobante y
Detalle_Cliente tienen como relacion el campo
id_det_comprobante
inner join Cliente
--Unida con la tabla Cliente
on Detalle_Cliente.dni_cliente=Cliente.dni_cliente
--en la cual las tablas Detalle_Cliente y Cliente tienen
como relacion el campo dni_cliente
inner join Tipocliente
--Unida con la tabla Tipocliente
on Cliente.id_tipocliente=Tipocliente.id_tipocliente
--en la cual las tablas Cliente y Tipocliente tienen como
relacion el campo id_tipocliente
where descripcion_tipocliente='NIÑO'
--donde el campo descripcion_tipocliente es igual a NIÑO
n)
*Visualizar el teléfono de los empleados que son cajeros
ñ)
*Visualizar los premios de las películas que están 10 soles
select descripcion_premio, precio_pelicula
--seleccionamos el campo descripcion_premio y
precio_pelicula
from Premio inner join DetalleactorPremio
--que proviene de la tabla Premio unida con la tabla
DetalleactorPremio
on Premio.id_premio=DetalleactorPremio.id_premio
--en la cual las tablas Premio y DetalleactorPremio
tienen como relacion el campo id_premio
inner join Protagonista
--unida con la tabla Protagonista
on DetalleactorPremio.id_actor=Protagonista.id_actor
--en la cual las tablas DetalleactorPremio y Protagonista
tienen como relacion el campo id_actor
inner join Pelicula
--unida con la tabla Pelicula
on Protagonista.id_actor=Pelicula.id_actor
--en la cual las tablas Protagonista y Pelicula tienen
como relacion el campo id_actor
where precio_pelicula = 10
--donde el campo precio_pelicula es igual a 10
o)
p)
r)
d)
*Visualizar cuantos comprobantes a realizado el empleado con el siguiente
numero de DNI: 94683133
*Mostrar cuantos comprobantes a realizado mis empleados
select nombre_empleado, apellido_empleado,
--Seleccionamos los campos nombre_empleado,
apellido_empleado
(select count(*)
--Contamos todos los datos
from Detalle_Comprobante
--De la tabla Detalle_Comprobante
where
Detalle_Comprobante.dni_empleado=Empleado.dni_empleado)
--Donde las tablas Detalle_Comprobante y Empleado tienen
como relación los campos dni_empleado
as 'comprobantes realizados'
--Dandole el alias Comprobantes realizados
from Empleado
--De la tabla Empleado
where dni_empleado='94683133'
--Donde el campo dni_empleado sea 94683133
e)
*Visualizar el nombre y codigo de las peliculas
disponibles
g)
h)
select id_pelicula,nombre_pelicula
--Seleccionamos el campo id y nombre de la pelicula
from Pelicula
--de la tabla pelicula
where exists
--donde exista
(select * from Director
--la seleccion de todos los datos de la tabla director
where Director.id_director=Pelicula.id_director
--donde las tablas director y peliculas tienen como
relacion el campo id_director
and nombre_director+' '+ apellido_director='Steven
Spielberg')
--y el campo nombre y apellidp debe ser de steven
spielberg
i)
SELECT EMPLEADO.nombre_empleado,
--seleccionar el campo nombre_empleado de la tabla
empleado
(
SELECT COUNT(*) FROM Detalle_Comprobante
--contando todos los datos de la tabla
detalle_comprobante
WHERE Detalle_Comprobante.dni_empleado=
EMPLEADO.dni_empleado
--donde las tablas detalle y empleado tienen como
relacion el campo dni_empleado
) as 'cantidad_comprobantes'
--dando el alias cantidad_comprobantes
FROM EMPLEADO
--que proviene de la tabla empleado
GROUP BY EMPLEADO.dni_empleado,EMPLEADO.nombre_empleado
--agrupando los campos dni y nombre de la tabla empleados
j)
SELECT CARGO.id_cargo,
--Seleccionamos el campo id de la tabla cargo
(
SELECT COUNT (*)
--contamos todos los datos
FROM EMPLEADO
--de la tabla empleados
WHERE EMPLEADO.id_cargo = CARGO.id_cargo
--donde las tablas empleado y cargo tienen como
relacion el campo id_cargo
) as 'cantidad de empleado'
--dandole el alias cantidad de empleado
FROM CARGO
--de la tabla cargo
GROUP BY CARGO.id_cargo
--ordenando por el campo id de la tabla cargo
k)
select nombre_pelicula,precio_pelicula,
--Seleccionar el nombre y precio de las peliculas
(
select nombre_actor+' '+apellido_actor
--seleccionando el campo nombe concatenado con el
campo apellid
from Protagonista
--de la tabla protagonista
where nombre_actor+' '+apellido_actor = 'David
Lopez'
--donde el campo nombre concatenado con el campo
apellido sea david lopez
)
from Pelicula
--de la tabla pelicula
6.- PROCEDIMIENTOS ALMACENADOS
a)
c)
create procedure deletedetallecli @detallclien char(5),
@detallecom char(5)
--Creamos el procedimiento llamado deletedetallecli con
el parámetro detallclien de tipo de dato char que
almacene 5 caracteres y el paramentro detallecom de tipo
de dato char que almacene 5 caracteres
as
begin
delete Detalle_Cliente
--Empezando a eliminar en la tabla Detalle_Cliente
where dni_cliente = @detallclien and id_det_comprobante
= @detallecom
--Donde el campo dni_cliente sea igual al parámetro
detallclien y el campo id_det_comprobante sea igual al
parámetro detallecom
end
exec deletedetallecli '78787879','00005'
d)
create procedure addcargo @cargoid char(5),@cargo
varchar(50)
--Creamos el procedimiento llamado addcargo con el
parámetro cargoid de tipo de dato char que almacene 5
caracteres y el parámetro cargo de tipo de dato varchar
que almacene 50 caracteres
as
insert into Cargo (id_cargo, nombre_cargo)
values (@cargoid, @cargo)
--Insertamos los valores de los parámetros cargoid y
cargo en los campos id_cargo y nombre_cargo en la tabla
Cargo
EXEC addcargo '02549','ADMINISTRADOR'
e)
create procedure preciopelicula @peliculaid int
--Creamos el procedimiento llamado preciopelicula con el
parámetro peliculaid de tipo de dato int
as
begin
if (select precio_pelicula from película
--Si la selección del campo precio_pelicula de la tabla
pelicula
where id_pelicula=@peliculaid) <10
--Donde el campo id_pelicula que es igual al parámetro
pelicuaid sea menor a 10
return 0
else
return 1
end
declare @precio int
exec @precio = preciopelicula '9'
print @precio
f)
*Creamos un procedimiento que nos muestre todos los datos
de la pelicula 'TITANIC'
k)
l)
--insertamos un registro
insert into Tipocliente values ('97342','ADOLESCENTE')
--actualizamos un registro
update Tipocliente
set descripcion_tipocliente='CHAMACO'
WHERE id_tipocliente=54976
--eliminamos un registro
delete from Tipocliente
where = 97342
b)
--Creamos uun trigger de nombre verificacion en la tabla
Protagonista
create trigger verificacion on Protagonista
--que se desencadene despues de insertar, actualizar o
elimnar
after insert, update, delete
as
--seleccionar o llamar a la tabla eliminar
select*from deleted;
--seleccionar y llamar a la tabla insertar
select*from inserted;
--Insertamos un registro
insert into Protagonista values
('83738','DANIEL','BUEZA')
--Actualizamos un registro
update Protagonista
set nombre_actor='ronald'
WHERE id_actor=19652
--Eliminamos un registro
delete from Protagonista
where = 83738
c)
--Creamos uun trigger de nombre ver en la tabla Ubigeo
create trigger ver on Ubigeo
--que se desencadene despues de insertar, actualizar o
elimnar
after insert, update, delete
as
--seleccionar o llamar a la tabla eliminar
select*from deleted;
--seleccionar y llamar a la tabla insertar
select*from inserted;
--Insertamos un registro
insert into Ubigeo values
('87943','PARAMONGA','BARRANCA','LIMA')
--Actualizamos un registro
update Ubigeo
set distrito='AUCALLAMA'
WHERE id_ubigeo=08563
--Eliminamos un registro
delete from Protagonista
where id_actor= 83738
d)
--Creamos uun trigger de nombre Visualizar en la tabla
Director
create trigger Visualizar on Director
--que se desencadene despues de insertar, actualizar o
elimnar
after insert, update, delete
as
--seleccionar o llamar a la tabla eliminar
select*from deleted;
--seleccionar y llamar a la tabla insertar
select*from inserted;
--Insertamos un registro
insert into Director values ('9819','STEVEN','RISCO')
select*from Director
--Actualizamos un registro
update Director
set apellido_director='DOS SANTOS'
WHERE id_director=1092
--Eliminamos un registro
delete from Director
where id_director=9819
e)
--Creamos un trigger de nombre Verificar_proveedor en la
tabla Proveedor
create trigger VERIFICAR_PROVEEDOR on Proveedor
--que se desencadene despues de insertar, actualizar o
elimnar
after insert, update, delete
as
--seleccionar o llamar a la tabla eliminar
select*from deleted;
--seleccionar y llamar a la tabla insertar
select*from inserted;
--Insertamos un registro
insert into Proveedor
values ('1234123412','DANIVIDEO S.A','CALLE LA HUERTA
PERDIDA','987989888')
--Actualizamos un registro
update Proveedor
set razon_social_proveedor='PENTAGONO S.A'
WHERE ruc_proveedor=8787787098
--Eliminamos un registro
delete from Protagonista
where = 1234123412
8.- VISTAS
a)
*Visualizar las películas que son de Perú
create view v_pelicula
--Creamos la vista v_pelicula
as
select nombre_pelicula, pais
--seleccionando el campo nombre_pelicula y pais
from Pelicula inner join Nacionalidad
--de la tabla Pelicula unida con la tabla Nacionalidad
on Pelicula.id_nacionalidad=Nacionalidad.id_nacionalidad
--en la cual las tablas Pelicula y Nacionalidad tienen
como relacion el camo id_nacionalidad
where pais='PERU'
--donde le campo pais es igual a PERU
select*from v_pelicula
--seleccionando todos los valores de la vista
b)
c)
on Empleado.dni_empleado=Detalle_Comprobante.dni_empleado
--en el cual las tablas Empleado y Detalle tienen como
relación el campo dni_empleado
inner join Detalle_Cliente
--unida con la tabla Detalle_Cliente
on
Detalle_Comprobante.id_detalle_comprobante=Detalle_Client
e.id_det_comprobante
--en el cual las tablas Detalle_Comprobante y
Detalle_Cliente tienen como relación el campo id_detalle
inner join Cliente
--de la tabla Cliente
on Detalle_Cliente.dni_cliente=Cliente.dni_cliente
--en la cual las tablas Detalla_Cliente y Cliente tienen
como relación el campo dni_empleado
inner join Tipocliente
--de la tabla Tipocliente
on Cliente.id_tipocliente=Tipocliente.id_tipocliente
--en el cual las tablas Cliente y Tipocliente tienen com
relación el campo tipo_cliente
where distrito='HUACHO'and descripcion_tipocliente =
'ADULTO'
--Donde el campo distrito sea igual HUACHO y la tabla
descripción_tipocliente sea igual a ADULTO
select*from V_PROCEDENCIA
--Seleccionamos todos los datos de la vista v_procedencia
d)
SELECT*FROM obtenerxfechaxdexatencion
--seleccionamos la vista
l)
*Una vista para obtener las peliculas que lleven en su
nombre la letra 'a' y que sean de mexico
select*from peliculaxfecha
--seleccionamos los datos de la vista
m)
--Vista que nos permita vizualizar los empleados que sus
nombres empiezen con la letra 'M' y su cargo