Sei sulla pagina 1di 93

BASE DE DATOS

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

alter database Tienda_de_video


add filegroup RiscoGuzmanDiegoAlonzo
--Modificamos la base de datos para añadirle el grupo de
archivos secundario, para ello usaremos Add FileGroup

alter database Tienda_de_video


add file
--Modificamos la base de datos para añadir un archivo NDF
físico al grupo de archivos secundario, para ello
usaremos Add File.
(name = 'ModuloI',
--le ponemos el nombre ModuloI,
filename = 'D:\Risco Guzman Diego Alonzo-
Tienda_de_video\Tdevideo1.ndf',
--La ruta en la que está almacenado el archivo ndf es en
el disco D, en la carpeta que le pondremos el nombre
--de Risco Guzman Diego Alonzo-Tienda_de_Video y el
archivo Tdevideo1
size = 5mb
--El tamaño es de 5mb
),
(name = 'ModuloII',
--Le ponemos el nombre ModuloII,
filename = 'D:\Risco Guzman Diego Alonzo-
Tienda_de_video\Tdevideo2.ndf',
--La ruta en la que está almacenado el archivo ndf es en
el disco D, en la carpeta que le pondremos el nombre
--de Risco Guzman Diego Alonzo-Tienda_de_Video y el
archivo Tdevideo2
size = 5mb
--El tamaño es de 5mb
),
(name = 'ModuloIII',
--Le ponemos el nombre ModuloIII,
filename = 'D:\Risco Guzman Diego Alonzo-
Tienda_de_video\Tdevideo3.ndf',
--La ruta en la que está almacenado el archivo ndf es en
el disco D, en la carpeta que le pondremos el nombre
--de Risco Guzman Diego Alonzo-Tienda_de_Video y el
archivo Tdvideo3
size = 5mb
--El tamaño es de 5mb
),
(name = 'ModuloIV',
--le ponemos el nombre ModuloIV,
filename = 'D:\Risco Guzman Diego Alonzo-
Tienda_de_video\Tdevideo4.ndf',
--La ruta en la que está almacenado el archivo ndf es en
el disco D, en la carpeta que le pondremos el nombre
--de Risco Guzman Diego Alonzo-Tienda_de_Video y el
archivo Tdvideo4
size = 5mb
--El tamaño es de 5mb
)
to filegroup RiscoGuzmanDiegoAlonzo
--Lo agrupamos con el nombre RiscoGuzmanDiegoAlonzo
2.- Creamos las siguientes tablas
if object_id ('Idioma') is not null drop table Idioma;
--Si la tabla('Idioma') existe, es no nulo, eliminamos la
tabla Idioma;
create table Idioma
--Creamos la tabla Idioma
(id_idioma char(5) constraint ididio_pk primary key,
--Creamos el campo id_idioma de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idiodio
descripcionidioma varchar(50) not null);
--Creamos el campo descripcionidioma de tipo de dato
varchar que almacene 50 caracteres, no nulo

if object_id ('Genero') is not null drop table Genero;


--Si la tabla('Genero') existe, es no nulo, eliminamos la
tabla Genero;
create table Genero
--Creamos la tabla Genero
(id_genero char(5) constraint idgene_pk primary key,
--Creamos el campo id_genero de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria el campo idgene_pk
descripcion_genero varchar(50) not null);
--Creamos el campo descripcion_genero de tipo de dato
vachar que almacene 50 caracteres, no nulo

if object_id ('Director') is not null drop table


Director;
--Si la tabla('Director') existe, es no nulo, eliminamos
la tabla Director;
create table Director
--Creamos la tabla Director
(id_director char(5) constraint iddire_pk primary key,
--Creamos el campo id_director de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria el campo iddire_pk
nombre_director varchar(50) not null,
--Creamos el campo nombre_director de tipo de dato
varchar que almacene 50 caracteres, no nulo
apellido_director varchar(50) not null);
--Creamos el campo apellido_director de tipo de dato
varchar que almacene 50 caracteres, no nulo

if object_id ('Nacionalidad') is not null drop table


Nacionalidad;
--Si la tabla('Nacionalidad') existe, es no nulo,
eliminamos la tabla Nacionalidad;
create table Nacionalidad
--Creamos la tabla Nacionalidad
(id_nacionalidad char(5) constraint idnacion_pk primary
key,
--Creamos el campo id_nacionalidad de tipo de dato char
que almacene 5 caracteres
--asignando como llave primaria el campo idnacion_pk
pais varchar(20) not null);
--Creamos el campo pais de tipo de dato varchar que
almacene 20 caracteres, no nulo

if object_id ('Tipocomprobante') is not null drop table


Tipocomprobante;
--Si la tabla('Tipocomprobante') existe, es no nulo,
eliminamos la tabla Tipocomprobante;
create table Tipocomprobante
--Creamos la tabla Tipocomprobante
(id_tipocomprobante char(5) constraint idtipcom_pk
primary key,
--Creamos el campo id_tipocomprobante de tipo de dato
char que almacene 5 caracteres
--asignando como llave primaria el campo idtipcom_pk
descripcion_comprobante varchar(50) not null);
--Creamos el campo descripcion_comprobante de tipo de
dato varchar que almacene 50 caracteres, no nulo

if object_id ('Oferta') is not null drop table Oferta;


--Si la tabla('Oferta') existe, es no nulo, eliminamos la
tabla Oferta;
create table Oferta
--Creamos la tabla Oferta
(id_oferta char(5) constraint idofer_pk primary key,
--Creamos el campo id_oferta de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria el campo idofer_pk
descripcion_oferta varchar(50) not null);
--Creamos el campo descripcion_oferta de tipo de dato
varchar que almacene 50 caracteres, no nulo

if object_id ('Tienda') is not null drop table Tienda;


--Si la tabla('Tienda') existe, es no nulo, eliminamos la
tabla Tienda;
create table Tienda
--Creamos la tabla Tienda
(ruc_tienda char(10) constraint idtien_pk primary key,
--Creamos el campo ruc_tienda de tipo de dato char que
almacene 10 caracteres
--asignando como llave primaria al campo idtien_pk
razonsocial varchar(50) not null,
--Creamos el campo razonsocial de tipo de dato varchar
que almacene 50 caracteres, no nulo
direccion varchar(50) not null,
--Creamos el campo direccion de tipo de dato varchar que
almacene 50 caracteres, no nulo
telefono char(9) not null);
--Creamos el campo telefono de tipo de dato char que
almacene 9 caracteres, no nulo
if object_id ('Horarioempleado') is not null drop table
Horarioempleado;
--Si la tabla('Horarioempleado') existe, es no nulo,
eliminamos la tabla Horarioempleado;
create table Horarioempleado
--Creamos la tabla Horarioempleado
(id_horario char(5) constraint idhora_pk primary key,
--Creamos el campo id_horario de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idhora_pk
hora_ingreso int not null,
--Creamos el campo hora_ingreso de tipo de dato
int(entero), no nulo
hora_salida int not null);
--Creamos el campo hora_salida de tipo de dato
int(entero), no nulo

if object_id ('Cargo') is not null drop table Cargo;


--Si la tabla('Cargo') existe, es no nulo, eliminamos la
tabla Cargo;
create table Cargo
--Creamos la tabla Cargo
(id_cargo char(5) constraint idcar_pk primary key,
--Creamos el campo id_cargo de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idcar_pk
nombre_cargo varchar(50) not null);
--Creamos el campo nombre_cargo de tipo de dato varchar
que almacene 50 caracteres, no nulo
if object_id ('Ubigeo') is not null drop table Ubigeo;
--Si la tabla('Ubigeo') existe, es no nulo, eliminamos la
tabla Ubigeo;
create table Ubigeo
--Creamos la tabla Ubigeo
(id_ubigeo char(5) constraint idubi_pk primary key,
--Creamos el campo id_ubigeo de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idubi_pk
distrito varchar(50) not null,
--Creamos el campo distrito de tipo de dato varchar que
almacene 50 caracteres, no nulo
provincia varchar(50) not null,
--Creamos el campo provincia de tipo de dato varchar que
almacene 50 caracteres, no nulo
departamento varchar(50) not null);
--Creamos el campo departamento de tipo de dato varchar
que almacene 50 caracteres, no nulo

if object_id ('Empleado') is not null drop table


Empleado;
--Si la tabla('Empleado') existe, es no nulo, eliminamos
la tabla Empleado;
create table Empleado
--Creamos la tabla Empleado
(dni_empleado char(8) constraint iddni_pk primary key,
--Creamos el campo dni_empleado de tipo de dato char que
almacene 8 caracteres
--asignando como llave primaria al campo iddni_pk
nombre_empleado varchar(50) not null,
--Creamos el campo nombre_empleado de tipo de dato
varchar que almacene 50 caracteres, no nulo
apellido_empleado varchar(50) not null,
--Creamos el campo apellido_empleado de tipo de dato
varchar que almacene 50 caracteres, no nulo
direccion_empleado varchar(50) not null,
--Creamos el campo direccion_empleado de tipo de dato
varchar que almacene 50 caracteres, no nulo
telefono_empleado char(9) not null,
--Creamos el campo telefono_empleado de tipo de dato char
que almacene 9 caracteres, no nulo
id_cargo char(5) constraint cargo_fk references
Cargo(id_cargo),
--Creamos el campo id_cargo de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo cargo_fk
--tomando como referencia al campo id_cargo de la tabla
Cargo
id_horario char(5) constraint hora_fk references
Horarioempleado(id_horario),
--Creamos el campo id_horario de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo hora_fk
--tomando como referencia al campo id_horario de la tabla
Horarioempleado
id_ubigeo char(5) constraint ubi_fk references
Ubigeo(id_ubigeo));
--Creamos el campo id_ubigeo de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo ubi_fk
--tomando como referencia al campo id_ubigeo de la tabla
Ubigeo

if object_id ('Tipocliente') is not null drop table


Tipocliente;
--Si la tabla('Tipocliente') existe, es no nulo,
eliminamos la tabla Tipocliente;
create table Tipocliente
--Creamos la tabla Tipocliente
(id_tipocliente char(5) constraint idtipo_pk primary key,
--Creamos el campo id_tipocliente de tipo de dato char
que almacene 5 caracteres
--asignando como llave primaria al campo idtipo_pk
descripcion_tipocliente varchar(50)not null);
--Creamos el campo descripcion_tipocliente de tipo de
dato varchar que almacene 50 caracteres, no nulo

if object_id ('Cliente') is not null drop table Cliente;


--Si la tabla('Cliente') existe, es no nulo, eliminamos
la tabla Cliente;
create table Cliente
--Creamos la tabla Cliente
(dni_cliente char(8) constraint idcliente_pk primary key,
--Creamos el campo dni_cliente de tipo de dato char que
almacene 8 caracteres
--asignando como llave primaria al campo idcliente_pk
nombre_cliente varchar(50) not null,
--Creamos el campo nombre_cliente de tipo de dato varchar
que almacene 50 caracteres, no nulo
apellido_cliente varchar(50) not null,
--Creamos el campo apellido_cliente de tipo de dato
varchar que almacene 50 caracteres, no nulo
direccion_cliente varchar(50) not null,
--Creamos el campo direccion_cliente de tipo de dato
varchar que almacene 50 caracteres, no nulo
telefono_cliente char(9) not null,
--Creamos el campo telefono_cliente de tipo de dato char
que almacene 9 caracteres, no nulo
id_tipocliente char(5) constraint tipclien_fk references
Tipocliente(id_tipocliente),
--Creamos el campo id_tipocliente de tipo de dato char
que almacene 5 caracteres
--asignando como llave foranea el campo tipclien_fk
--tomando como referencia al campo id_tipocliente de la
tabla Tipocliente
id_ubigeo char(5) constraint ubige_fk references
Ubigeo(id_ubigeo));
--Creamos el campo id_ubigeo de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo ubige_fk
--tomando como referencia al campo id_ubigeo de la tabla
Ubigeo

if object_id ('Premio') is not null drop table Premio;


--Si la tabla('Cliente') existe, es no nulo, eliminamos
la tabla Cliente;
create table Premio
--Creamos la tabla Cliente
(id_premio char(5) constraint idprem_pk primary key,
--Creamos el campo id_premio de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idprem_pk
descripcion_premio varchar(50) not null);
--Creamos el campo descripcion_premio de tipo de dato
varchar que almacene 50 caracteres, no nulo

if object_id ('Protagonista') is not null drop table


Protagonista;
--Si la tabla('Protagonista') existe, es no nulo,
eliminamos la tabla Protagonista;
create table Protagonista
--Creamos la tabla Protagonista
(id_actor char(5) constraint idac_pk primary key,
--Creamos el campo id_actor de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idac_pk
nombre_actor varchar(50) not null,
--Creamos el campo nombre_actor de tipo de dato varchar
que almacene 50 caracteres, no nulo
apellido_actor varchar(50) not null);
--Creamos el campo apellido_actor de tipo de dato varchar
que almacene 50 caracteres, no nulo
if object_id ('DetalleactorPremio') is not null drop
table DetalleactorPremio;
--Si la tabla('DetalleactorPremio') existe, es no nulo,
eliminamos la tabla DetalleactorPremio;
create table DetalleactorPremio
--Creamos la tabla DetalleactorPremio
(id_actor char(5) constraint actorr_pk references
Protagonista(id_actor),
--Creamos el campo d_actor de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo actorr_pk
--tomando como referencia al campo id_actor de la tabla
Protagonista
id_premio char(5) constraint premiiio_pk references
Premio(id_premio),
--Creamos el campo id_premio de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo premiiio_pk
--tomando como referencia al campo id_premio de la tabla
Premio
constraint detaactprem_pk primary key (id_actor,
id_premio),
--Teniendo como llave foranea al campo detaactprem_pk y
como llaves primarias
--a los campos id_actor y tambien id_premio
fecha_premio date not null);
--Creamos el campo fecha_premio de tipo de dato date que
sea no nulo

if object_id ('Pelicula') is not null drop table


Pelicula;
--Si la tabla('Pelicula') existe, es no nulo, eliminamos
la tabla Pelicula;
create table Pelicula
--Creamos la tabla Pelicula
(id_pelicula char(5) constraint idpel_pk primary key,
--Creamos el campo id_pelicula de tipo de dato char que
almacene 5 caracteres
--asignando como llave primaria al campo idpel_pk
nombre_pelicula varchar(50) not null,
--Creamos el campo nombre_pelicula de tipo de dato
varchar que almacene 50 caracteres, no nulo
precio_pelicula decimal(4,2) not null,
--Creamos el campo precio_pelicula de tipo de dato
decimal que tenga 4 digitos enteros y 2 decimales, no
nulo
fecha_estreno date not null,
--Creamos el campo fecha_estreno de tipo de dato date no
nulo,
id_nacionalidad char(5) constraint idnacio_fk references
Nacionalidad(id_nacionalidad),
--Creamos el campo id_nacionalidad de tipo de dato char
que almacene 5 caracteres
--asignando como llave foranea el campo idnacio_fk
--tomando como referencia al campo id_nacionalidad de la
tabla Nacionalidad
id_idioma char(5) constraint ididdiom_fk references
Idioma(id_idioma),
--Creamos el campo id_idioma de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo ididdiom_fk
--tomando como referencia al campo id_idioma de la tabla
Idioma
id_genero char(5) constraint idgene_fk references
Genero(id_genero),
--Creamos el campo id_genero de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo idgene_fk
--tomando como referencia al campo id_genero de la tabla
Genero
id_director char(5) constraint iddirec_fk references
Director(id_director),
--Creamos el campo id_director de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo iddirec_fk
--tomando como referencia al campo id_director de la
tabla Director
id_actor char(5) constraint idact_fk references
Protagonista(id_actor));
--Creamos el campo id_actor de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo idact_fk
--tomando como referencia al campo id_actor de la tabla
Protagonista

if object_id ('Proveedor') is not null drop table


Proveedor;
--Si la tabla('Proveedor') existe, es no nulo, eliminamos
la tabla Proveedor;
create table Proveedor
--Creamos la tabla Proveedor
(ruc_proveedor char(10) constraint rucpro_pk primary key,
--Creamos el campo ruc_proveedor de tipo de dato char que
almacene 10 caracteres
--asignando como llave primaria al campo rucpro_pk
razon_social_proveedor varchar(50) not null,
--Creamos el campo razon_social_proveedor de tipo de dato
varchar que almacene 50 caracteres, no nulo
direccion_proveedor varchar(50)not null,
--Creamos el campo direccion_proveedor de tipo de dato
varchar que almacene 50 caracteres, no nulo
telefono_proveedor char(10)not null);
--Creamos el campo telefono_proveedor de tipo de dato
char que almacene 10 caracteres, no nulo
if object_id ('Almacen') is not null drop table Almacen;
--Si la tabla('Almacen') existe, es no nulo, eliminamos
la tabla Almacen;
create table Almacen
--Creamos la tabla Almacen
(id_almacen char(5),
--Creamos el campo id_almacen de tipo de dato char que
almacene 5 caracteres
id_pelicula char(5) constraint idpeli_fk references
Pelicula(id_pelicula),
--Creamos el campo id_pelicula de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo idpeli_fk
--tomando como referencia al campo id_pelicula de la
tabla Pelicula
ruc_proveedor char(10) constraint rucprov_fk references
Proveedor(ruc_proveedor)
--Creamos el campo ruc_proveedor de tipo de dato char que
almacene 10 caracteres
--asignando como llave foranea el campo rucprov_fk
--tomando como referencia al campo ruc_proveedor de la
tabla Proveedor
primary key (id_pelicula));
--Asignamos como llave primaria al campo id_pelicula

if object_id ('Detalle_Comprobante') is not null drop


table Detalle_Comprobante;
--Si la tabla('Detalle_Comprobante') existe, es no nulo,
eliminamos la tabla Detalle_Comprobante;
create table Detalle_Comprobante
--Creamos la tabla Detalle_Comprobante
(id_detalle_comprobante char(5) constraint detacomp_pk
primary key,
--Creamos el campo id_detalle_comprobante de tipo de dato
char que almacene 5 caracteres
--asignando como llave primaria al campo detacomp_pk
monto_total varchar(5),
--Creamos el campo monto_total de tipo de dato varchar
que almacene 5 caracteres
Cantidad int not null,
--Creamos el campo Cantidad de tipo de dato int(entero)
no nulo,
ruc_tienda char(10) constraint ructi_fk references
Tienda(ruc_tienda),
--Creamos el campo ruc_tienda de tipo de dato char que
almacene 10 caracteres
--asignando como llave foranea el campo ructi_fk
--tomando como referencia al campo ruc_tienda de la tabla
Tienda
id_oferta char(5) constraint idoferrrrr_fk references
Oferta(id_oferta),
--Creamos el campo id_oferta de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo idoferrrrr_fk
--tomando como referencia al campo id_oferta de la tabla
Oferta
id_tipocomprobante char(5) constraint idcompro_fk
references Tipocomprobante(id_tipocomprobante),
--Creamos el campo id_tipocomprobante de tipo de dato
char que almacene 5 caracteres
--asignando como llave foranea el campo idcompro_fk
--tomando como referencia al campo id_tipocomprobante de
la tabla Tipocomprobante
id_pelicula char(5) constraint fk_pelisc references
Pelicula(id_pelicula),
--Creamos el campo id_pelicula de tipo de dato char que
almacene 5 caracteres
--asignando como llave foranea el campo fk_pelisc
--tomando como referencia al campo id_pelicula de la
tabla Pelicula
dni_empleado char(8) constraint fk_dniemple references
empleado(dni_empleado),
--Creamos el campo dni_empleado de tipo de dato char que
almacene 8 caracteres
--asignando como llave foranea el campo fk_dniemple
--tomando como referencia al campo dni_empleado de la
tabla empleado
fecha_atencion date not null);
--Creamos el campo fecha_atencion de tipo de dato date no
nulo

if object_id ('Detalle_cliente') is not null drop table


Detalle_cliente;
--Si la tabla('Detalle_cliente') existe, es no nulo,
eliminamos la tabla Detalle_cliente;
create table Detalle_Cliente
--Creamos la tabla Detalle_cliente
(id_det_comprobante char(5) not null,
--Creamos el campo id_det_comprobante de tipo de dato
char que almacene 5 caracteres no nulo
dni_cliente char(8) not null,
--Creamos el campo dni_cliente de tipo de dato char que
almacene 8 caracteres no nulo
fecha_de_adquisicion date not null,
--Creamos el campo fecha_de_adquisicion de tipo de dato
date no nulo
constraint compclient_FK foreign key(id_det_comprobante)
--Asignando como llave foranea a compcliente_FK del campo
id_det_comprobante
references Detalle_Comprobante(id_detalle_comprobante),
--Tomando como referencia al campo id_detalle_comprobante
de la tabla Detalle_Comprobante
constraint clientdet_FK foreign key(dni_cliente)
--Asignando como llave foranea a clientdet_FK del campo
dni_cliente
references Cliente(dni_cliente),
--Tomando como referencia al campo dni_cliente de la
tabla Cliente
primary key(id_det_comprobante,dni_cliente)
--Asignando como llave primaria a los campos
id_det_comprobante y dni_cliente
)
3.- Ingresamos algunos registros
--Insertamos los valores en la tabla Idioma
insert into Idioma
values('11111','Castellano'),
('22222','Ingles'),
('33333','Frances'),
('44444','Italiano'),
('55555','Aleman'),
('66666','Chino'),
('77777','Japones')
go

--Insertamos los valores en la tabla protagonista


INSERT INTO Protagonista
VALUES('53394','Joshep','Mendoza'),
('86219','David','Lopez'),
('53903','Salome','Santos'),
('19652','Isaac','Espinoza'),
('72974','Carlos','Santos'),
('16635','David','Saenz'),
('73602','Jose','Espinoza'),
('86117','Salome','Villanueva'),
('27188','Samuel','Chauca'),
('60922','Isaac','Penelope')
go

--Insertamos los valores en la tabla Genero


insert into Genero
values('73478','DRAMA'),
('09324','ACCION'),
('19567','ROMANTICA'),
('28567','TERROR'),
('31256','ADOSLESCENTE'),
('98123','AVENTURA'),
('99988','FICCION'),
('77765','MUSICAL'),
('18456','ANIMADAS'),
('28999','INTRIGA')
go

--Insertamos los valores en la tabla Director


INSERT INTO Director
values('1324','Steven','Spielberg'),
('5623','Peter','Jackson'),
('1937','Martin','Scorsese'),
('2906','Christopher','Nolan '),
('8765','Steven','Soderbergh'),
('9524','Ridley','Scott'),
('1092','Quentin','Tarantino'),
('9911','Michael','Mann'),
('8822','Michael','Mann'),
('7733','Joel','Coen')
go

--Insertamos los valores en la tabla Nacionalidad


insert into Nacionalidad
values ('010','PERU'),
('123','ECUADOR'),
('234','EEUU'),
('425','COLOMBIA'),
('562','CHILE'),
('089','MEXICO'),
('256','ESPAÑA'),
('775','FRANCIA')
go

--Insertamos los valores en la tabla Tipocomprobante


insert into Tipocomprobante
values ('0','FACTURA'),
('1','BOLETA')
go
--Insertamos los valores en la tabla Oferta
insert into Oferta
values ('55551','NINGUNA'),
('55552','DOS POR UNO'),
('55553','LLEVA TRES MAS ALBUM PANINI'),
('55554','TRES POR DOS'),
('55555','GASTE CIEN Y LLEVE POSTER DE GUERRERO'),
('55556','SIN DESCUENTO')
go

--Insertamos los valores en la tabla Tienda


insert into Tienda
values ('9547697860','VIDEO S.A','CALLE EL PALMO
#88','909876781')
go

--Insertamos los valores en la tabla Horarioempleado


insert into Horarioempleado
values ('07489','7 ','16'),
('04548','8','20'),
('42369','13','22')
go

--Insertamos los valores en la tabla Cargo


insert into Cargo
values ('01002','ATENCION AL CLIENTE'),
('09621','LIMPIEZA'),
('05636','CAJERO'),
('00189','RECEPCIONISTA'),
('11762','JEFE PERSONAL'),
('12555','JALADOR'),
('13666','ORGANIZADOR')
go
--Insertamos los valores en la tabla Ubigeo
INSERT INTO Ubigeo
VALUES ('95700','HUARAL','HUARAL','LIMA'),
('56790','HUACHO','HUACHO','LIMA'),
('98745','BARRANCA','BARRANCA','LIMA'),
('08563','HUARMEY','HUACHO','LIMA')

go

--Insertamos los valores en la tabla Empleado


insert into Empleado
values ('76548912','JUAN LUCAS','LOPES ARIAS','CALLE
GRAU','999888777','01002','07489','95700'),
('74562310','JORGE STEBAN','LANTAURO GUERRERO','CALLE
LURCO','984536271','09621','04548','56790'),
('77532178','JAVIER LUIS','CUEVA FLORES','CALLE
CARQUIN','945367180','01002','42369','98745'),
('78324579','LUIS ALONSO','LOYOLA GALLESE','CALLE SANTA
MONICA','908765438','09621','04548','95700'),
('94683133','MARC ANTONY','RUIZ DIAZ','CALLE
LURIGANCHO','992266774','05636','07489','56790'),
('70742313','CESAR MARIO','FARFAN GUADALUPE','CALLE
MARANGUITA','977623433','00189','42369','98745'),
('78855443','RAUL STEVEN','YOTUN TAPIA','CALLE CERRO MI
PERU','926371845','05636','07489','98745'),
('77788899','MARIO PEDRO','CACEDA CORZO','CALLE
MORAN','994110033','11762','42369','56790'),
('76543210','PABLO LEO','TRAUCO ADVINCULA','CALLE
NERUDA','904902212','12555','04548','95700'),
('78909876','WALTER JHON','POLO RAMOS','CALLE LOS
CHORLITOS','974563123','13666','04548','08563')
go
--Insertamos los valores en la tabla TipoCliente
insert into Tipocliente
values ('54976','NIÑO'),
('97687','ADULTO')
go

--Insertamos los valores en la tabla Cliente


insert into Cliente
values ('76453731','LUKA','MODRIC','CALLE LOS
GIRASOLES','985875964','54976','95700'),
('78787879','CRISTIANO','RONALDO','CALLE
TARAPACA','95888568','97687','56790'),
('76273748','KARIM','BENZEMA','CALLE
PILETAS','954757639','97687','95700'),
('72367909','GARET','BALE','CALLE DOS DE
MAYO','938064675','54976','56790'),
('70932090','KEYLOR','NAVAS','CALLE LOS SIETE
COLORES','953785349','54976','56790'),
('77178933','SERGIO','RAMOS','CALLE
TRECE','909900089','97687','08563'),
('73003023','DANI','CARVAJAL','CALLE LAS
TORTUGAS','908867900','97687','08563'),
('77092389','TONY','KROS','CALLE LOS
PIRATAS','907367896','97687','95700'),
('78038098','MARCO','ASENCIO','CALLE NO
ENTRES','965380756','54976','08563'),
('79830922','LUCAS','VAZQUEZ','CALLE LAS
BEGONIAS','995546899','54976','98745'),
('70932002','MOHAMED','SALAH','CALLE LOS
CIPRESES','952136809','97687','08563'),
('72098313','ANDREA','PIRLO','CALLE SIN
NOMBRE','978574634','97687','08563'),
('70289082','JULIETA','RODRIGUEZ','CALLE
RAMONES','932435589','54976','98745'),
('70380821','MONICA','SANCHEZ','CALLE LA
PARADA','954758735','97687','98745')
go
--Insertamos los valores en la tabla Premio
INSERT INTO Premio
values ('85879','Oscar'),
('97565','Mejor Actor'),
('32747','Mejor reparto'),
('85855','Mejor Malvado'),
('84759','Mejor Blooper')
go

--Insertamos los valores en la tabla Protagonista


insert into Protagonista
values ('87566','Robert','Englund'),
('65476','Oscar','Casas'),
('68588','Lou','Ferrigno'),
('98665','Peter','Mayhew'),
('97546','Daveigh','Chase'),
('58978','Bill','Nighy'),
('67443','Linda','Blair'),
('89754','Robin','Williams'),
('98776','Brad','Pitt'),
('86875','Meryl','Streep'),
('76456','Kim','Hunter'),
('89475','Cameron',' Diaz'),
('98327','Silvestre','Stallon'),
('74368','Sandra','Bullock'),
('78348','Jennifer','Aniston'),
('56434','Angelina','Jolie'),
('76534','Leonardo','Dicaprio'),
('84795','Julia','Roberts')
go
--Insertamos los valores en la tabla DetalleactorPremio
insert into DetalleactorPremio
values ('87566','84759','06-20-14'),
('65476','85879','06-13-15'),
('68588','97565','06-20-15'),
('98665','32747','07-25-12'),
('97546','85879','11-15-13'),
('58978','32747','11-15-13'),
('67443','97565','06-20-14'),
('89754','32747','09-11-11'),
('98776','85855','12-12-16'),
('86875','97565','04-04-17'),
('76456','85855','04-04-17'),
('89475','85879','05-05-18'),
('98327','85855','05-05-18'),
('74368','97565','09-11-11'),
('78348','84759','07-25-12'),
('56434','84759','12-12-16'),
('76534','84759','11-12-15'),
('84795','85879','03-18-16')
go

--Insertamos los valores en la tabla Pelicula


insert into Pelicula
values('78934','Duro DE MATAR','15','01-01-17',
'234','11111','09324','1324','87566'),
('35464','TITANIC','20','02-02-17',
'234','11111','73478','1324','87566'),
('34666','PIRATAS DEL CARIBE','15','03-03-17',
'089','11111','09324','1324','87566'),
('24544','EL SEÑOR DE LOS ANILLOS','15','04-04-
17','089','11111','19567','1324','65476'),
('25544','HARRY POTTER','10','05-05-17',
'234','22222','19567','1324','65476'),
('87878','JURASSIC PARK','25','06-06-17',
'425','22222','19567','5623','65476'),
('87329','STAR WARS','30','07-07-17',
'089','22222','09324','5623','68588'),
('98724','BATMAN','10','08-08-17',
'425','22222','19567','5623','68588'),
('97459','E.T EL EXTRATERRESTRE','15','09-09-17',
'425','33333','28567','5623','98665'),
('98749','LA PASION DE CRISTO','20','10-10-17',
'425','33333','31256','5623','98665'),
('83795','SPIDER MAN','25','11-11-17',
'089','33333','09324','5623','97546'),
('83744','EL SEXTO SENTIDO','12','12-12-17',
'123','44444','28567','1937','97546'),
('89734','SOY LEYENDA','15','01-13-16',
'089','44444','73478','1937','58978'),
('98374','MI POBRE ANGELITO','18','02-14-16',
'123','44444','31256','1937','58978'),
('23409','IRON MAN','20','03-15-16',
'123','55555','31256','1937','67443'),
('98273','DEAD POOL','15','04-16-16',
'123','55555','09324','1937','67443'),
('82742','LOS HOMBRES DE NEGRO','10','05-17-16',
'256','55555','31256','2906','89754'),
('82479','INDIANA JONES','15','06-18-16',
'234','66666','09324','2906','98776'),
('78933','SPIDER MAN 2','20','07-19-16',
'234','66666','98123','2906','98776'),
('89372','STAR WARS 2','20','08-20-16',
'256','66666','31256','8765','98776'),
('98272','TIBURON','10','09-21-16',
'256','66666','99988','8765','86875'),
('23478','TIBURON 2','25','10-22-16',
'256','66666','31256','9524','86875'),
('98734','AVATAR','30','11-23-16',
'562','22222','99988','9524','76456'),
('89730','EL EXORCISTA','35','12-24-
16','562','22222','28567','9524','76456'),
('80734','SAW','35','01-25-
15','562','11111','18456','1092','89475'),
('87923','KING KONG','40','02-26-
15','562','33333','18456','1092','89475'),
('98730','TERMINATOR','30','03-27-
15','775','11111','28999','1092','98327'),
('98735','MATRIX','20','04-28-
15','775','44444','28999','9911','74368'),
('98704','PESADILLA EN ELM STREET','20','05-29-
15','775','55555','28999','9911','78348'),
('98745','PSICOSIS','15','06-30-
15','775','77777','28567','9911','78348'),
('43564','TERMINATOR 2','18','07-01-
15','775','22222','28999','8822','56434'),
('23436','EL RESPLANDOR','15','08-02-
15','010','11111','77765','8822','76534'),
('43346','PULP FICTION','10','09-03-
15','010','77777','73478','7733','84795'),
('25223','PANTALEON Y LAS VISITADORAS','30','10-04-
15','010','11111','28999','7733','84795')

go

--Insertamos los valores en la tabla Proveedor


insert into Proveedor
values ('8787787098','VIDEITO S.A','CALLE LOS
POLARES','998674999'),
('8797687558','PELICULAS S.A.A','CALLE
PALOMARES','942392277')
go
--Insertamos los valores en la tabla Almacen
insert into Almacen
values ('08787','78934','8787787098'),
('08787','35464','8787787098'),
('08787','34666','8787787098'),
('08787','24544','8787787098'),
('08787','25544','8787787098'),
('08787','87878','8787787098'),
('08787','87329','8787787098'),
('08787','98724','8787787098'),
('08787','97459','8787787098'),
('08787','98749','8787787098'),
('08787','83795','8787787098'),
('08787','83744','8787787098'),
('08787','89734','8787787098'),
('08787','98374','8787787098'),
('08787','23409','8787787098'),
('08787','98273','8797687558'),
('08787','82742','8797687558'),
('08787','82479','8797687558'),
('08787','78933','8797687558'),
('08787','89372','8797687558'),
('08787','98272','8797687558'),
('08787','23478','8797687558'),
('08787','98734','8797687558'),
('08787','89730','8797687558'),
('08787','80734','8797687558'),
('08787','87923','8797687558'),
('08787','98730','8797687558'),
('08787','98735','8797687558'),
('08787','98704','8797687558'),
('08787','98745','8797687558'),
('08787','43564','8797687558'),
('08787','23436','8797687558'),
('08787','43346','8797687558'),
('08787','25223','8797687558')
go
--Insertamos los valores en la tabla Detalle_Comprobante
insert into Detalle_Comprobante
values('00001','30','3','9547697860','55551','0','25544',
'94683133','05-01-18'),
('00002','40','4','9547697860','55551','0','98724','94683
133','05-02-18'),
('00003','20','2','9547697860','55551','0','82742','94683
133','05-03-18'),
('00004','10','1','9547697860','55551','0','98272','94683
133','05-10-18'),
('00005','40','4','9547697860','55551','0','43346','94683
133','05-09-18'),
('00006','24','2','9547697860','55551','0','83744','94683
133','05-08-18'),
('00007','15','2','9547697860','55552','0','78934','94683
133','05-07-18'),
('00008','15','1','9547697860','55552','0','34666','94683
133','05-06-18'),
('00009','15','2','9547697860','55552','0','24544','94683
133','05-05-18'),
('00010','15','1','9547697860','55552','0','97459','94683
133','04-20-18'),
('00011','15','2','9547697860','55552','0','89734','94683
133','04-19-18'),
('00012','30','3','9547697860','55552','0','98273','94683
133','04-18-18'),
('00013','15','2','9547697860','55552','0','82479','94683
133','04-17-18'),
('00014','45','5','9547697860','55552','0','98745','94683
133','04-16-18'),
('00015','30','3','9547697860','55552','0','23436','94683
133','04-15-18'),
('00016','54','5','9547697860','55552','0','98374','94683
133','04-14-18'),
('00017','36','4','9547697860','55552','0','43564','94683
133','04-13-18'),
('00018','40','2','9547697860','55553','0','35464','94683
133','04-12-18'),
('00019','60','3','9547697860','55553','0','98749','94683
133','04-11-18'),
('00020','30','2','9547697860','55553','0','23409','94683
133','04-11-18'),
('00021','40','2','9547697860','55553','0','78933','94683
133','03-10-18'),
('00022','40','2','9547697860','55553','0','89372','94683
133','03-10-18'),
('00023','60','3','9547697860','55553','0','98735','94683
133','03-11-18'),
('00024','60','3','9547697860','55553','0','98704','94683
133','03-11-18'),
('00025','75','4','9547697860','55554','1','87878','94683
133','03-12-18'),
('00026','100','6','9547697860','55554','1','83795','9468
3133','03-12-18'),
('00027','50','3','9547697860','55554','1','23478','94683
133','03-13-18'),
('00028','90','3','9547697860','55555','1','87329','94683
133','03-13-18'),
('00029','240','8','9547697860','55555','1','98734','9468
3133','03-14-18'),
('00030','210','7','9547697860','55555','1','98730','7885
5443','03-15-18'),
('00031','60','2','9547697860','55555','1','25223','78855
443','03-15-18'),
('00032','70','2','9547697860','55556','1','89730','78855
443','03-15-18'),
('00033','210','6','9547697860','55556','1','80734','7885
5443','02-28-18'),
('00034','200','5','9547697860','55556','1','87923','7885
5443','02-27-18'),
('00035','40','4','9547697860','55551','1','25544','78855
443','02-26-18'),
('00036','20','2','9547697860','55551','1','98724','78855
443','02-25-18'),
('00037','30','3','9547697860','55551','1','82742','78855
443','02-24-18'),
('00038','40','4','9547697860','55551','1','98272','78855
443','02-23-18'),
('00039','60','6','9547697860','55551','1','43346','78855
443','02-22-18'),
('00040','60','3','9547697860','55553','1','35464','78855
443','02-21-18'),
('00041','160','8','9547697860','55553','1','98749','7885
5443','02-20-18'),
('00042','120','6','9547697860','55553','1','78933','7885
5443','02-19-18'),
('00043','40','2','9547697860','55553','1','89372','78855
443','02-18-18'),
('00044','160','8','9547697860','55553','1','98735','7885
5443','02-17-18'),
('00045','180','9','9547697860','55553','1','98704','7885
5443','01-15-18'),
('00046','160','8','9547697860','55553','1','35464','7885
5443','01-15-18'),
('00047','80','4','9547697860','55553','1','98749','78855
443','01-15-18'),
('00048','105','3','9547697860','55556','1','89730','7885
5443','01-19-18'),
('00049','70','2','9547697860','55556','1','80734','78855
443','01-19-18'),
('00050','40','1','9547697860','55556','1','87923','78855
443','01-23-18')
go
--Insertamos los valores en la tabla Detalle_cliente
insert into Detalle_cliente
values ('00001','76453731','05-01-18'),
('00002','76453731','05-02-18'),
('00003','76453731','05-03-18'),
('00004','76453731','05-10-18'),
('00005','78787879','05-09-18'),
('00006','78787879','05-08-18'),
('00007','78787879','05-07-18'),
('00008','78787879','05-06-18'),
('00009','76273748','05-05-18'),
('00010','76273748','04-20-18'),
('00011','76273748','04-19-18'),
('00012','76273748','04-18-18'),
('00013','72367909','04-17-18'),
('00014','72367909','04-16-18'),
('00015','72367909','04-15-18'),
('00016','72367909','04-14-18'),
('00017','70932090','04-13-18'),
('00018','70932090','04-12-18'),
('00019','70932090','04-11-18'),
('00020','70932090','04-11-18'),
('00021','77178933','03-10-18'),
('00022','77178933','03-10-18'),
('00023','77178933','03-11-18'),
('00024','73003023','03-11-18'),
('00025','73003023','03-12-18'),
('00026','73003023','03-12-18'),
('00027','77092389','03-13-18'),
('00028','77092389','03-13-18'),
('00029','77092389','03-14-18'),
('00030','78038098','03-15-18'),
('00031','78038098','03-15-18'),
('00032','78038098','03-16-18'),
('00033','79830922','02-28-18'),
('00034','79830922','02-27-18'),
('00035','79830922','02-26-18'),
('00036','79830922','02-25-18'),
('00037','70932002','02-24-18'),
('00038','70932002','02-23-18'),
('00039','70932002','02-22-18'),
('00040','70932002','02-21-18'),
('00041','72098313','02-20-18'),
('00042','72098313','02-19-18'),
('00043','72098313','02-18-18'),
('00044','72098313','02-17-18'),
('00045','70289082','01-15-18'),
('00046','70289082','01-15-18'),
('00047','70289082','01-15-18'),
('00048','70380821','01-19-18'),
('00049','70380821','01-19-18'),
('00050','70380821','01-23-18')
go
4.- Consultas
a)

*Visualizar el año de estreno de la película que contenga


AR y que sea de Colombia
select nombre_pelicula, fecha_estreno, pais
--Seleccionamos los campos nombre_pelicula, fecha_estreno
y pais
from Pelicula inner join Nacionalidad
--Que proviene de la tabla Pelicula unida con la tabla
Nacionaildad
on Pelicula.id_nacionalidad=Nacionalidad.id_nacionalidad
--en la cual las tablas Pelicula y Nacionalidad tienen
como relacion el campo id_nacioinalidad
where nombre_pelicula like '%AR%'
--Donde el campo nombre_pelicula contenga las letras AR
and pais = 'COLOMBIA'
--Y el campo pais sea igual a COLOMBIA

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)

*Visualizar las películas que estén mas de 10 soles y


también mostrar su genero junto con su país de origen
Select nombre_pelicula, descripcion_genero, pais,
precio_pelicula
--Seleccionamos los campos nombre_pelicula,
descripcion_genero, pais y precio_pelicula
from Pelicula inner join Genero
--que proviene 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
inner join Nacionalidad
--Unida con la tabla Nacionalidad
on Pelicula.id_nacionalidad=Nacionalidad.id_nacionalidad
--en la cual la tabla Pelicula y Nacionalidad tienen como
relacion el campo id_nacionalidad
where precio_pelicula > 10
--donde el precio_pelicula sea mayor a 10
d)
*Visualizar el año y el premio que ganó la actriz Angelina Jolie
select nombre_actor+''+apellido_actor as actor,
descripcion_premio, fecha_premio
--Seleccionamos el campo nombre_actor concatenado con el
apellido_actor dandole el alias actor, el campo
descripcion_premio y fecha_premio
from DetalleactorPremio inner join Premio
--Que proviene de la tabla Detallactor
on DetalleactorPremio.id_premio=Premio.id_premio
--en la cual las tablas DetalleactorPremio y Genero
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
where nombre_actor+''+apellido_actor='AngelinaJolie'
--Donde el campo nombre_actor concatenado con
apellido_actor sea igual a AngelinaJolie

e)

*Visualizar el director e idioma de cada pelicula

select nombre_director+''+apellido_director as Director,


nombre_pelicula, descripcionidioma
--Seleccionamos el campo nombre_director concatenado con
apellido_director dandole el alias de Director, el campo
nombre_pelicula y descripcionidioma
from Pelicula inner join Director
--Que proviene de la tabla Pelicula unida con la tabla
Director
on Pelicula.id_director=Director.id_director
--en la cual las tablas Pelicula y Director tienen como
relacion el campo id_director
inner join Idioma
--Unida con la tabla Idioma
on Pelicula.id_idioma=Idioma.id_idioma
--en la cual las tablas Pelicula e Idioma tienen como
relacion el campo id_idioma
f)
*Visualizar a los empleados que son de Barranca
select nombre_empleado, distrito
--Seleccionamos el campo nombre_empleado y el campo
distrito
from Empleado inner join Ubigeo
--Que proviene de la tabla Empleado unida con la tabla
Ubigeo
on Empleado.id_ubigeo=Ubigeo.id_ubigeo
--en la cual las tablas Empleado y Ubigeo tienen como
relacion el campo id_ubigeo
where distrito='BARRANCA'
--donde el campo distrito es igual a BARRANCA

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)

*Visualizar las películas en ingles que cuesten mas de 15


soles

select nombre_pelicula, descripcionidioma,


precio_pelicula
--Seleccionamos el campo nombre_pelicula,
descripcionidioma, precio_pelicula
from Pelicula inner join Idioma
--Que proviene de la tabla Pelicula unida con la tabla
Idioma
on Pelicula.id_idioma=Idioma.id_idioma
--en la cual las tablas Peliculas
where descripcionidioma = 'Ingles'
--donde el campo descripcionidioma es igual a Ingles
and precio_pelicula>15
--y el campo precio_pelicula es mayor a 15
order by nombre_pelicula
--Ordenado por nombre_pelicula
j)

select nombre_empleado +''+ apellido_empleado as


Empleado, count(Cliente.dni_cliente)
--Seleccionamos el campo nombre_empleado concatenado con
apellido_empleado dandole el alias de Empleado, contando
el campo
--dni_cliente de la tabla Cliene
from Empleado inner join Detalle_Comprobante
--Que proviene de la tabla Empleado unido con la tabla
Detalle_Comprobante
on Empleado.dni_empleado=Detalle_Comprobante.dni_empleado
--en la cual las tablas Empleado y Detalle_comprobante
tienen como relacion 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 la cual las tablas Detalle_Comprobante y
Detalle_Clienre tienen como relacion el campo
id_det_comprobante
inner join Cliente
--Unida con la tabla Cliente
on Cliente.dni_cliente=Detalle_Cliente.dni_cliente
--en la cual las tablas Cliente y Detalle_Cliente tienen
como relacion el campo dni_cliente
group by nombre_empleado +''+ apellido_empleado
--agrupado por el nombre_empleado
k)
*Visualizar a los empleados de huacho que atendieron a los clientes adultos
con sus repectivos nombres
select nombre_empleado+''+apellido_empleado as Empleador,
--Seleccionamos el campo nombre_empleado concatenado con
apellido_empleado dandole el alias Empleador
provincia, nombre_cliente+''+apellido_cliente as
Clientes, descripcion_tipocliente
--campo provincia, nombre_cliente concatenado con
apellido_clientes dandole el alias de Clientes, el campo
descripcion_tipocliente
from Ubigeo inner join Empleado
--Que proviene de la tabla Ubigeo unida con la tabla
Empleado
on Ubigeo.id_ubigeo=Empleado.id_ubigeo
--en la cual las tablas Ubigeo y Empleado tienen en comun
el campo id_ubigeo
inner join Detalle_Comprobante
--Unida con la tabla Detalle_Comprobante
on Empleado.dni_empleado=Detalle_Comprobante.dni_empleado
--en el cual las tablas Empleado y Detalle_Comprobante
tiene como relacion el campo dni_empleado
inner join Detalle_Cliente
--Unida con la tabla Detalle_Cliente
on Detalle_Comprobante.id_detalle_comprobante=
Detalle_Cliente.id_det_comprobante
--en el cual las tablas Detalle_Comprobante y
Detalle_Cliente tienen como relacion 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 provincia='HUACHO' and descripcion_tipocliente
='ADULTO'
--donde el campo provincia es igual a HUACHO y el campo
descripcion_tipocliente es igual a ADULTO
order by Empleador
--Ordenando por Empleador
l)

*Visualizar el ruc de las películas que solo cuesten 25


soles

select Proveedor.ruc_proveedor, nombre_pelicula,


precio_pelicula
--Seleccionamos el campo ruc_productor de la tabla
Proveedor, el campo nombre_pelicula y precio_pelicula
from Proveedor inner join Almacen
--Unida con la tabla Proveedor unida con la tabla Almacen
on Proveedor.ruc_proveedor=Almacen.ruc_proveedor
--en la cual las tablas Proveedor y Almacen tienen como
relacion el campo ruc_proveedor
inner join Pelicula
--Unida con la tabla Pelicula
on Almacen.id_pelicula=Pelicula.id_pelicula
--en la cual las tablas Almacen y Pelicula tienen como
relacion el campo id_pelicula
where precio_pelicula=25
--donde el campo precio_pelicula es igual a 25

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

select telefono_empleado, nombre_cargo


--Seleccionamos el campo telefono _empleado y
nombre_cargo
from Empleado inner join cargo
--Que proviene de la tabla Empleado unida con la tabla
cargo
on Empleado.id_cargo=cargo.id_cargo
--en el cual las tablas Empleado y Cargo tienen como
relacion el campo id_cargo
where nombre_cargo='CAJERO'
--donde el campo nombre_cargo es igual a CAJERO

ñ)
*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)

*Visualizar la hora de ingreso y la hora de salida de los


empleados que se encargan de la limpieza

select hora_ingreso, hora_salida, nombre_cargo


--Seleccionamos el campo hora_ingreso, hora_salida y
nombre_cargo
from Horarioempleado inner join Empleado
--De la tabla Horarioempleado unida con la tabla Empleado
on Horarioempleado.id_horario=Empleado.id_horario
--en la cual las tablas Horarioempleado y EMpleado tienen
como relacioin id_horario
inner join Cargo
--unida con la tabla Cargo
on Empleado.id_cargo=Cargo.id_cargo
--en la cual las tablas Empleados y Cargos tienen como
relacion el campo id_cargo
where nombre_cargo='LIMPIEZA'
--donde el campo nombre_cargo es igual a LIMPIEZA

p)

*Visualizar las películas que tengan el precio entre 10 y


20 soles

select nombre_pelicula, precio_pelicula


--Seleccionamos el campo nombre_pelicula y
precio_pelicula
from Pelicula
--que proviene de la tabla Pelicula
where precio_pelicula between 10 and 20
--donde el campo precio_pelicula está entre 10 y 20
q)
*Visualizar cuantas películas de drama hay
select count(id_pelicula) as [Cantidad de Pelicualas]
--Contamos el campo id_pelicula dandole el alias de
cantidad de Peliculas
from Pelicula inner join Genero
--que proviene de la tabla Pelicula 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
where descripcion_genero='DRAMA'
--donde el campo descripcion_genero es igual a DRAMA

r)

*Visualizar el DNI del empleado que es organizador

select dni_empleado, nombre_cargo


--Seleccionar el campo dni_empleado y nombre_cargo
from Empleado inner join Cargo
--que proviene de la tabla Empleado unida con la tabla
Cargo
on Empleado.id_cargo=Cargo.id_cargo
--en la cual las tablas Empleado y Cargo tienen como
relacion el campo id_cargo
where nombre_cargo='ORGANIZADOR'
--donde el campo nombre_cargo es igual a ORGANIZADOR
s)
*Visualizar de el genero y el director de las películas que contengan la letra E
select nombre_pelicula, descripcion_genero,
nombre_director
--seleccionamos el campo nombre_pelicula,
descripcion_genero y nombre_director
from Pelicula inner join Genero
--que proviene 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
inner join Director
--unida con la tabla Director
on Pelicula.id_director=Director.id_director
--en la cual las tablas Pelicula y Director tienen como
relacion el campo id_director
where nombre_pelicula like '%E%'
--donde el campo nombre_pelicula debe tener la letra E
5.- SUBCONSULTAS
a)

*Visualizar el dni, nombre y apellido de los empleados


que atendieron en la fecha 05-03-18

select dni_empleado, nombre_empleado, apellido_empleado


--Seleccionamos el campo dni_empleado, nombre_empleado,
apellido_empleado
from Empleado
--Que proviene de la tabla Empleado
where exists
--Donde existe
(select *from Detalle_Comprobante as d
--La selección de los datos de la tabla
Detalle_Comprobante dándole el alias d
where Empleado.dni_empleado=d.dni_empleado
--Donde las tablas Empleado y d tienen como relación el
campo dni_empleado
and fecha_atencion='05-03-18'
--Y que el campo fecha_atencion sea 05-03-18
)
b)
*Visualizar el numero de comprobantes que han realizado
cada empleado

select dni_empleado, nombre_empleado+''+apellido_empleado


--Seleccionamos los campos dni_empleado, nombre_empleado
concatenado con el apellido_empleado
as Nombres,
--Dandole el alias Nombres
(select count(dni_empleado)
--Contando el campo dni_empleado
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 el campo dni_empleado
as 'numero de comprobantes'
--Dandole el alias numero de comprobantes
from Empleado
--De la tabla Empleado
order by nombre_empleado+''+apellido_empleado desc
--Ordenando de forma descendiente el nombre_empleado
concatenado con el apellido_empleado
c)
*Mostrar los empleados que hacen el trabajo de realizar
comprobantes
select*from Empleado
--Seleccionamos los datos de la tabla Empleado
where dni_empleado in
--Donde en el campo dni_empleado
(select distinct dni_empleado
--Seleccionamos el campo dni_empleado
from Detalle_Comprobante
--De la tabla Detalle_Comprobante
)

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

select id_pelicula, nombre_pelicula


--Seleccionamos los campos id_pelicula y el campo
nombre_pelicula
from Pelicula
--De la tabla Pelicula
where exists
--Donde exista
(select * from Detalle_Comprobante
--La selección de todos los datos de la tabla
Detalle_Comprobante
where
Pelicula.id_pelicula=Detalle_Comprobante.id_pelicula
--Donde las tablas Pelicula y Detalle_Comprobante tienen
como relación el campo id_pelicula
)
f)
*Visualizar el precio de cada película menor al promedio
de estas

select id_pelicula, nombre_pelicula,


nombre_director+''+apellido_director,
precio_pelicula
--Seleccionamos los campos id_pelicula, nombre_pelicula,
nombre_director concatenado con el campo
apellido_director y precio_pelicula
from Pelicula inner join Director
--Que proviene de la tabla Pelicula unida con la tabla
Director
on Pelicula.id_director=Director.id_director
--En el cual las tablas Pelicula y Director tienen como
relación el campo id_director
where precio_pelicula<
--Donde el campo precio_pelicula sea menor a
(select avg(precio_pelicula)from Pelicula)
--La selección del promedio del campo precio_pelicula de
la tabla Pelicula
order by precio_pelicula asc
--Ordenando de forma ascendente el campo precio_pelicula

g)

*Mostrar los clientes que son adultos

select dni_cliente, nombre_cliente,apellido_cliente


--Seleccionar los campos dni, nombre y apellido del
cliente
from Cliente
--de la tabla cliente
where exists
--donde exista
(select*from Tipocliente
--la seleccion de todos los datos de la tabla
tipoclientes
where cliente.id_tipocliente=Tipocliente.id_tipocliente
--donde las tablas cliente y tipocliente tienen como
relacion el campo tipo cliente
and descripcion_tipocliente='ADULTO')
--y el campo descripcion es igual Adulto
order by apellido_cliente
--ordenando por el apellido del cliente

h)

*Mostrar las peliculas que tengan de director a Steven


Spielberg

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)

*Mostrar la cantidad de comprobantes realizados por cada


empleado

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)

*Mostrar la cantidad de empleados por cada cargo

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)

*Mostrar el horario de salida de cada empleado

select nombre_empleado+' '+apellido_empleado as


empleado,hora_salida as horario_salida
--Seleccionar el nombre concatenado con el apellido
dandole el alias empleado y el campo hora de salida
dandole el alias hora_salida
from EMPLEADO inner join Horarioempleado
--de la tabla empleado unida con la tabla horarioempleado
on Empleado.id_horario=Horarioempleado.id_horario
--en la cual las tablas empleado y horarioempleado tienen
como relacion el campo hprarioempleado
where Empleado.dni_empleado
--donde el campo dni de la tabla empleado
in
( SELECT dni_empleado FROM Horarioempleado )
--se seleccion el campo dni_empleaado de la tabla
horarioempleado
l)

*Mostrar cuantos empleados estan registrados en la


provincia de barranca

SELECT COUNT(*) as 'total'


--contamos todos los datos dandole el alias de total
FROM Empleado
--de la tabla elmpleado
WHERE Empleado.id_ubigeo in (
--donde el campo id_ubigeo de la tabla empleado este en
SELECT id_ubigeo
--la seleccion del campo id_ubigeo
FROM UBIGEO
--de la tabla ubigeo
WHERE provincia = 'BARRANCA'
--donde la provincia sea barranca
);
m)

*Mostrar todas las peliculas y su precio donde tenga de


protagonita David Lopez

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)

*Visualizar las 5 películas con los precios mas baratos

create procedure cinco_mas_baratos


--Creamos el procedimiento llamado cinco_mas_baratos
as
select top 5 nombre_pelicula as [nombre pelicula],
precio_pelicula
--Seleccionar solo 5 campos nombre_pelicula dándole el
alias nombre pelicula
from Pelicula
--Que proviene de la tabla Pelicula
order by precio_pelicula asc, nombre_pelicula
--Ordenando de forma ascendete
execute cinco_mas_baratos
--Ejecutamos el procedimiento cinco_mas_baratos
b)
*Visualizar el teléfono de cada empleado
create procedure celular
--Creamos el procedimiento llamado celular
as
select nombre_empleado, telefono_empleado
--Seleccionando el campo nombre_empleado y
teléfono_empleado
from Empleado order by telefono_empleado
--Que proviene de la tabla Empleado ordenando por
teléfono_empleado
execute celular
--Ejecutando el procedimiento celular

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'

CREATE PROCEDURE obtenerdatospelicula(@nombrepelicula


varchar (50))
--Creamos el procedimiento de nombre ontenerdatospelicula
con el parametro nombrepelicula de tipo de dato varchar
que almacene 50 caracteres
as
begin
select nombre_pelicula, descripcionidioma, nombre_actor,
descripcion_genero, nombre_director
--Seleccionando el campo nombre_pelicula,
descripcionidioma, nombre_actor, descripcion_genero y
nombre_director
from Pelicula inner join Protagonista on
--Que proviene de la tabla Pelicula unida con la tabla
Protagonista en la cual
Pelicula.id_actor=Protagonista.id_actor inner join
Director on
--Las tablas Pelicula y Protagonista tienen como relacion
el campo id_actor unida con la tabla Director en la cual
Pelicula.id_director=Director.id_director inner join
Genero on
--Las tablas Pelicula y Director tienen como relacion el
campo id_director unida con la tabla Genero en la cual
Pelicula.id_genero=Genero.id_genero inner join Idioma on
--Las tablas Pelicula y Genero tienen como relacion el
campo id_genero unida con la tabla Idioma en la cual
pelicula.id_idioma=Idioma.id_idioma
--Las tablas Pelicula e idioma tienen como relacion el
campo id_idioma
where nombre_pelicula =@nombrepelicula
--donde el campo nombre_pelicula es igual al parametro
nombrepelicula
end
exec obtenerdatospelicula 'TITANIC'
g)
*Creamos un prcedimiento que nos muestre el nombre del
empleado que salieron del trabajo a las 16h
CREATE PROCEDURE EMPLEADOSXHORA @HORA int
--Creamos el procedimiento llamado EMPLEADOSXHORA con el
parametro hora de tipo de dato int
as
begin
select nombre_empleado+''+apellido_empleado as
nombrecompleto, hora_ingreso, hora_salida
--Seleccionando el campo nombre_empleado concatenado con
el campo apellido_empleado dandole el alias
nombrecompleto
--y el campo hora_ingreso y el campo hora_salida
from Empleado inner join Horarioempleado on
--Que proviene de la tabla Empleado unida con la tabla
Horarioempleado en la cual
Empleado.id_horario=Horarioempleado.id_horario
--Las tablas Empleado y Horariempleado tienen como
relacion el campo id_horario
where hora_salida = @HORA
--donde el campo hora_salida sea igual al parametro hora
end
exec EMPLEADOSXHORA '16'
h)

*Creamos un procedimiento que nos muestre la venta total


de la pelicula 'JURASSIC PARK'

create procedure ventatotal @nombrepelicula varchar(50)


--Creamos el procedimiento de nombre venta total con el
parametro nombrepelicula con tipo de dato varchar que
almacene 50 caracteres
as
begin
select pelicula.id_pelicula, nombre_pelicula,
sum(Cantidad*precio_pelicula)as total
--Seleccionando el campo id_pelicula de la tabla
pelicula, el campo nombre_pelicula, y la suma del
producto de los campos cantidad y precio_pelicula dandole
el alias total
from Pelicula inner join Detalle_Comprobante on
--Que proviene de la tabla Pelicula unida con la tabla
Detalle_Comprobante en la cual
Pelicula.id_pelicula=Detalle_Comprobante.id_pelicula
--Las tablas peliculas y detalle_comprobate tienen como
relacion al campo id_pelicula
group by Pelicula.id_pelicula, nombre_pelicula
--agrupamos el campo id_pelicula de la tabla Pelicula y
el campo nombre_pelicula
having nombre_pelicula = @nombrepelicula
--en cuanto el campo nombre_pelicula es igual al
parametro nombreelicula
end
exec ventatotal 'JURASSIC PARK'
i)

*Creamos el procedimiento que nos muestre la suma de


todos los precios de las peliculas segun su genero
create procedure sumaprecio @precio varchar(20)
--Creamos el procedimiento de nombre sumaprecio con el
parametro precio de tipo de dato varchar que almacene 20
caracteres
as
begin
select descripcion_genero,sum(precio_pelicula)as total
--Seleccionar el campo descripcion_genero, la suma del
campo precio_pelicula dandole el alias total
from Genero inner join Pelicula on
--Que proviene de la tabla Genero unida con la tabla
Pelicula en el cual
Genero.id_genero=Pelicula.id_genero
--Las tablas genero y pelicula tienen como relacion el
campo id_genero
group by descripcion_genero
--agrupando el campo descripcion_genero
having sum(precio_pelicula) > @precio
--en cuanto la suma del campo precio_pelicula es mayor al
parametro precio
end
exec sumaprecio '70'
j)

*Creamos un procedimiento que nos muestre el nombre del


actor, el nombre de la pelicula y el premio que le dieron
al actor 'steven'

create procedure PELICULAzPREMIO @director varchar(50)


--Creamos el procedimiento de nombre peliculazpremio con
el parametro director de tipo de dato varchar que
almacene 50 caracteres
as
begin
select nombre_actor+''+apellido_actor as
NombreCompleto,nombre_pelicula,descripcion_premio
--Seleccionando el campo nombre concatenado con el campo
apellido dandole el alias NombreCompleto, el campo
nombre_pelicula y descripcion_premio
from Protagonista inner join Pelicula on
--que proviene de la tabla Protagonista unida con la
tabla Pelicula enn la cual
Protagonista.id_actor=Pelicula.id_actor inner join
DetalleactorPremio on
--Las tablas Protagonista y pelicula tienen como relacion
el campo id_actor unida con la tabla DetalleactorPremio
en la cual
Protagonista.id_actor=DetalleactorPremio.id_actor inner
join Premio on
--Las tablas Protagonista y Detalleactorpremio tienen
como relacion el campo id_actor unida con la tabla Premio
en la cual
DetalleactorPremio.id_premio=Premio.id_premio inner join
Director on
--Las tablas Detalleactorpremio y premio tienen como
relacion el campo id_premio unida con la tabla Director
en la cual
Pelicula.id_director=Director.id_director
--Las tablas Pelicula y Director tienen como relacion el
campo id_director
where nombre_director = @director
--donde el campo nombre_director es igual al parametro
director
end
exec PELICULAzPREMIO 'Steven'

k)

*Creamos un procedimiento que nos muestre el


departamento,distrito y provincia del empleado 'JUAN
LUCAS'

create procedure zempleado @empl varchar(50)


--Creamos el procedimiento de nombre zempleado con el
parametro empl de tipo de dato varchar que almacene 50
caracteres
as
begin
select nombre_empleado,departamento,provincia,distrito
--Seleccionar el campo nombre, departamento, provincia,
distrito
from Empleado inner join Ubigeo on
--que proviene de la tabla Empleado unida con la tabla
ubigeo en la cual
Empleado.id_ubigeo=Ubigeo.id_ubigeo
--las tablas empleado y ubigeo tienen como relacion el
campo id_ubigeo
where nombre_empleado = @empl
--donde el campo nombre_empleado sea igual al parametro
empl
end
exec zempleado 'JUAN LUCAS'

l)

*Creamos el procedimiento que nos muestre la cantidad, el


monto total y la descripccion del comprobante de
cualquier pelicula

create procedure vental @empleado varchar(50)


--Creamos el procedimiento de nombre zempleado con el
parametro empl de tipo de dato varchar que almacene 50
caracteres
as
begin
select
nombre_pelicula,cantidad,monto_total,descripcion_comproba
nte
--Seleccionamos el campo nombre, cantidad, monto,
descripcion
from Pelicula inner join Detalle_Comprobante on
--de la tabla pelicula unida con la tabla
detalle_comprobante en el cual
Pelicula.id_pelicula=Detalle_Comprobante.id_pelicula
inner join Tipocomprobante on
--las tablas peliculas y detalle_comprobante tienen como
relacion el campo id_pelicula unida con la tabla
Tipocomprobante en la cual
Detalle_Comprobante.id_tipocomprobante=Tipocomprobante.id
_tipocomprobante
--las tablas detalle_comprobante y tipocomprobantes
tienen como relacion el campo id_tipocomprobante
where nombre_pelicula = @empleado
--en donde el campo nombre_pelicula es igual al parametro
empleado
end
exec vental 'TITANIC'
7.- TRIGGERS
a)

create trigger verificacion on Tipocliente


--Creamos un trigger de nombre verificacion en la tabla
tipocliente
after insert, update, delete
--que se desencadene despues de insertar, actualizar o
elimnar
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 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)

*Visualizar mas de 5 empleados

CREATE VIEW V_CANTIDADCOMPRO


--Creamos la vista de nombre v_cantidadcompro
AS
SELECT nombre_empleado, Cantidad
--seleccionando el campo nombre_empleado y cantidad
from Empleado inner join Detalle_Comprobante
--de la tabla Empleado unido con la tabla
Detalle_comprobante
on
Empleado.dni_empleado=Detalle_Comprobante.dni_empleado
--en la cual las tablas tienen como relacion el campo
dni_empleados
where Cantidad>5
--donde el campo cantidad es mayor a 5
select * from V_CANTIDADCOMPRO
--seleccionamos todos los valores de la vista

c)

*Visualizar a que clientes atendieron los empleados de


Huacho

CREATE VIEW V_PROCEDENCIA


--Creamos la vista llamada v_procedencia
AS
SELECT nombre_empleado+ '' + apellido_empleado as
Empleado, distrito, nombre_Cliente
--Seleccionando el campo nombre_empleado concatenado con
el campo apellido_empleado dándole el alias Empleado, el
campo distrito y nombre_Cliente
from Empleado inner join Ubigeo
--Que proviene de la tabla Empleado unida con la tabla
Ubigeo
on Empleado.id_ubigeo=Ubigeo.id_ubigeo
--en el cual las tablas Empleado y Ubigeo tienen como
relación el campo id_ubigeo
inner join Detalle_Comprobante
--Unida con la tabla Detella_Comprobante

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)

*Visualizar a los empleados que ingresaron después de las


8 y antes de las 17 horas

CREATE VIEW V_HORARIO


--Creamos la vista llamada v_horario
AS
SELECT nombre_empleado, hora_ingreso, hora_salida
--Seleccionando el campo nombre_empleado, nombre_ingreso,
hora salida
from Empleado inner join Horarioempleado
--que proviene de la tabla Empleado unida con la tabla
Horarioempleado
on Empleado.id_horario=Horarioempleado.id_horario
--en la cual las tablas Empleado y Horarioempleado tiene
como relación el campo id_horario
where hora_ingreso>8 and hora_salida>17
--donde el campo hora_ingreso es mayor a 8 y el campo
hora_salida es mayor a 17
select*from V_HORARIO
--Seleccionamos todos los datos de la vista v_horario
e)

*Visualizar que premios recibieron los actores de las


peliculas que cuestan 10 soles

create view v_premios


--Creamos la vista llamada v_premios
as
select descripcion_premio, nombre_actor, precio_Pelicula
--Seleccionamos los campos descripción_premio,
nombre_actor, precio_pelicula
from Protagonista inner join DetalleactorPremio
--De la tabla Protagonista unida con la tabla
DetalleactorPremio
on Protagonista.id_actor=DetalleactorPremio.id_actor
--en la cual las tablas Potagonista y DetalleactorPremio
tienen como relación el campo id_actor
inner join Premio
--Unida con la tabla Premio
on DetalleactorPremio.id_premio=Premio.id_premio
--en la cual las tablas DetalleactorPremio y Premio
tienen como relación los campos id_premio
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 relación el campo id_actor
where precio_pelicula=10
--donde el campo precio_pelicula es 10
select *from v_premios
--Seleccionamos todos los datos de la vista v_premios
f)
*Visualizar la dirección de los clientes niños

create view v_direcccion


--Creamos la vista llamada v_direccion
AS
SELECT direccion_cliente, descripcion_tipocliente
--Seleccionamos el campo dirección_cliente,
descripción_tipocliente
from Cliente inner join Tipocliente
--Que proviene de la tabla Cliente unida con la tabla
Tipocliente
on Cliente.id_tipocliente=Tipocliente.id_tipocliente
--en la cual las tablas Cliente y Tipocliente tienen como
relación el campo id_tipocliente
where descripcion_tipocliente = 'NIÑO'
--donde el campo descripción_tipocliente es igual a NIÑO
g)

*Visualizar a los empleados de huacho con la cantidad de


comprobante y su monto total de cada uno

CREATE VIEW V_COMPRA


--Creamos la vista llamada v_compra
AS
SELECT nombre_empleado, Cantidad, monto_total,
tienda.ruc_tienda
--Seleccionando el campo nombre_empleado, cantidad,
monto_total y el campo ruc_tienda de la tabla tienda
from Empleado inner join Detalle_Comprobante
--Que proviene de la tabla Empleado unida con la tabla
Detalle_Comprobante
on Empleado.dni_empleado=Detalle_Comprobante.dni_empleado
--en el cual las tablas Empleado y Detalle_Comprobante
tiene como relación el campo dni_empleado
inner join Tienda
--unida con la tabla Tienda
on Detalle_Comprobante.ruc_tienda=Tienda.ruc_tienda
--en la cual la cual las tablas Detalle_Comprobante y
Tienda tienen como relación el campo ruc_tienda
where Cantidad > 2
--Donde el campo cantidad es mayor a 2
select* from V_COMPRA
--Seleccionamos todos los campos de la vista v_compra
h)
*Visualizar el idioma y en que año se estrenaron las películas que tienen la
letra A
create view Vv_PELICULA
--Creamos la vista llamada Vv_Pelicula
AS
SELECT nombre_pelicula, descripcionidioma, fecha_estreno
--Seleccionando el campo nombre_pelicula,
descripciónidioma y fecha_estreno
FROM Pelicula inner join Idioma
--Que proviene de la tabla Pelicula unida con la tabla
Idioma
on Pelicula.id_idioma=Idioma.id_idioma
--en la cual las tablas Pelicula e Idioma tienen como
relación el campo id_idioma
where nombre_pelicula like '%A%'
--donde el campo nombre_pelicula debe contener la letra A
select * from Vv_PELICULA
--Seleccionando los datos de la vista Vv_Pelicula
i)
*Visualizar en que año los comprobantes tienen un monto mayor a 10
create view V_COMPROBANTE
--Creamos la vista llamada v_comprobante
AS
SELECT id_detalle_comprobante, fecha_atencion,
monto_total
--Seleccionando el campo id_detalle_comprobante,
fecha_atencion y monto_total
FROM Detalle_Comprobante
--De la tabla Detalle_Comprobante
WHERE monto_total>10
--En donde el campo monto_total es mayor a 10
SELECT * FROM V_COMPROBANTE
--Seleccionamos todos los datos de la vista v_comprobante
j)

*Visualizar de que genero y en que almacen están las


películas que tienen las letras AS

CREATE VIEW V_TCOM


--Creamos la vista llamada v_tcom
AS
SELECT descripcion_genero, nombre_pelicula, id_almacen
--Seleccionamos el campo descripción_genero,
nombre_pelicula y el campo id_almacen
from Genero inner join Pelicula
--Que proviene de la tabla Genero unida con la tabla
Pelicula
on Genero.id_genero=pelicula.id_genero
--en el cual las tablas Genero y Pelicula tienen como
relación el campo id_genero
inner join Almacen
--Unida con la tabla Almacen
on Pelicula.id_pelicula=Almacen.id_pelicula
--en la cual las tablas Pelicula y Almacen tienen como
relación el campo id_pelicula
where nombre_pelicula like '%AS%'
--donde el campo nombre_pelicula debe contener AS
select * from V_TCOM
--Seleccionamos todos los datos de la vista
k)
*Obtener fechas de atencion de los comprobantes
realizados con el tipo BOLETA
create view obtenerxfechaxdexatencion
--Crear la vista llamada obtenerxfechaxdexatencion
as
select
fecha_atencion ,descripcion_comprobante
--seleccionando los campos fecha_atencion
,descripcion_comprobante
from Detalle_Comprobante inner join Tipocomprobante
--de la tabla Detalle_Comprobante unida con la tabla
Tipocomprobante
on
Detalle_Comprobante.id_tipocomprobante=Tipocomprobante.id
_tipocomprobante
--en la cual las tablas Detalle_Comprobante y
Tipocomprobante tienen como relacion tipocomprobante
where descripcion_comprobante = 'BOLETA'
--donde el campo descripcion_comprobante es boleta

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

CREATE VIEW peliculaxfecha


--Creamos la vista llamada peliculaxfecha
as
select nombre_pelicula,fecha_estreno,pais
--seleccionamos los campo nombre_pelicula, fecha_estres
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 peliculas y nacionalidad tienen
como relacion el campo id_nacionalidad
where nombre_pelicula like '%A%'
--donde el campo nombre_pelicula debe tener la letra A
and pais = 'MEXICO'
--y el campo pais debe ser 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

create view EmpleadoxCargo


--creamos la vista EmpleadoxCargo
as
select nombre_empleado,apellido_empleado, nombre_cargo
--seleccionando el campo nombre, apellida, y el cargo
del empleado
from Empleado inner join Cargo
--de la tabla empleado unida con la tabla cargo
on Empleado.id_cargo = Cargo.id_cargo
--en la cual las tablas empleado y cargo tienen como
relacion el campo id_cargo
where nombre_empleado like 'M%'
--doonde el nombre debe empezar con M

select * from EmpleadoxCargo


--seleccionamos los datos de la vista
n)
*Visualizar que premio han ganado los protagonistas de
las peliculas que cuestan 15 soles

create view premioxprecio


--Creamos la vista premioxprecio
as
select descripcion_premio,precio_pelicula
--seleccionamos el campo
descripcion_premio,precio_pelicula
from Premio inner join DetalleactorPremio
--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 premio tienen como
relacion el campo id_actor
where precio_pelicula = 15
--donde el precio de la pelicula sea 15

select * from premioxprecio


--seleccionamos los datos de la vista

Potrebbero piacerti anche