Está en la página 1de 11

Resolución del desafio.

1. Crear la base de Datos

CREATE DATABASE Desafio1_BD_Carnet


ON
(NAME = Desafio1_BD_Carnet_dat,
FILENAME = 'C:\Users\USUARIO\Desktop\Bases de datos prácticas y
tareas\Desafio1_BD_Carnet\Desafio1_BD_Carnet_dat.mdf',
SIZE = 10,
MAXSIZE = 100,
FILEGROWTH = 20%)
LOG ON
(NAME = Desafio1_BD_Carnet_log,
FILENAME = 'C:\Users\USUARIO\Desktop\Bases de datos prácticas y
tareas\Desafio1_BD_Carnet\Desafio1_BD_Carnet_log.ldf',
SIZE = 5,
MAXSIZE = 50,
FILEGROWTH = 5%);
GO

2. Crear Tablas
USE Desafio1_BD_Carnet
GO

CREATE TABLE Pelicula


(CodigoPelicula varchar(4)Not NUll,
NombrePeli char (100),
FechaIngreso date,
Disponibles int,
)
go

CREATE TABLE Tipo

(CodigoTipo varchar(4)Not NUll,


NombreTipo char (20),
)
GO

CREATE TABLE Categoria


(CodigoCategoria varchar(4)Not NUll,
NombreCategoria char (20),
)
GO

CREATE TABLE Cliente


(CodigoDUI varchar(10)Not NUll,
NombresCliente char (100),
ApellidosCliente char (100),
FechaAfiliacion date,
Edad int,
)
GO
CREATE TABLE Renta
(CodigoRenta varchar(7)Not NUll,
FechaRenta date,
FechaDevolucion date,
Cobro float,
Mora float
)
GO

CREATE TABLE Movie_Cat


(Movie_CatID int Not NUll,
CodigoPelicula varchar(4),
CodigoCategoria varchar(4),
MovieName char(100),
Movie_CatNam char(20)
)
GO

CREATE TABLE Movie_Type


(Movie_TypeID int Not NUll,
CodigoPelicula varchar(4),
CodigoTipo varchar(4),
Name_MovieTwo char(100),
Type_MovieTwo char(20)
)
GO

CREATE TABLE Movie_Rent


(Movie_RentID int Not NUll,
CodigoPelicula varchar(4),
CodigoRenta varchar(7),
Movie_RentName char(100),
)
GO

CREATE TABLE Rent_Cust


(Rent_CustID int Not NUll,
CodigoDUI varchar(10),
CodigoRenta varchar(7),
Cust_F_Name char(100),
Cust_S_Name char(100),
)
GO

3. Asignar Llaves Primarias


ALTER TABLE Pelicula
ADD CONSTRAINT PK_CodigoPelicula
PRIMARY KEY (CodigoPelicula)
GO

ALTER TABLE Categoria


ADD CONSTRAINT PK_CodigoCategoria
PRIMARY KEY (CodigoCategoria)
GO

ALTER TABLE Cliente


ADD CONSTRAINT PK_CodigoDUI
PRIMARY KEY (CodigoDUI)
GO
ALTER TABLE Renta
ADD CONSTRAINT PK_CodigoRenta
PRIMARY KEY (CodigoRenta)
GO

ALTER TABLE Tipo


ADD CONSTRAINT PK_CodigoTipo
PRIMARY KEY (CodigoTipo)
GO

ALTER TABLE Movie_Cat


ADD CONSTRAINT PK_Movide_Cat
PRIMARY KEY (Movie_CatID)
GO

ALTER TABLE Movie_Rent


ADD CONSTRAINT PK_Movide_Rent
PRIMARY KEY (Movie_RentID)
GO

ALTER TABLE Movie_Type


ADD CONSTRAINT PK_Movide_Type
PRIMARY KEY (Movie_TypeID)
GO

ALTER TABLE Rent_Cust


ADD CONSTRAINT PK_Rent_Cust
PRIMARY KEY (rent_CustID)
GO

4. Asignar Llaves Foraneas


ALTER TABLE Movie_Rent
ADD CONSTRAINT FK_CodigoPelicula
FOREIGN KEY (CodigoPelicula)
REFERENCES Pelicula(CodigoPelicula)
GO

ALTER TABLE Movie_Rent


ADD CONSTRAINT FK_CodigoRenta
FOREIGN KEY (CodigoRenta)
REFERENCES Renta(CodigoRenta)
GO

ALTER TABLE Movie_Cat


ADD CONSTRAINT FK_CodigoPelicula2
FOREIGN KEY (CodigoPelicula)
REFERENCES Pelicula(CodigoPelicula)
GO

ALTER TABLE Movie_Cat


ADD CONSTRAINT FK_CodigoCategoria
FOREIGN KEY (CodigoCategoria)
REFERENCES Categoria(CodigoCategoria)
GO

ALTER TABLE Movie_Type


ADD CONSTRAINT FK_CodigoPelicula3
FOREIGN KEY (CodigoPelicula)
REFERENCES Pelicula(CodigoPelicula)
GO

ALTER TABLE Movie_Type


ADD CONSTRAINT FK_CodigoTipo
FOREIGN KEY (CodigoTipo)
REFERENCES Tipo(CodigoTipo)
GO

ALTER TABLE Rent_Cust


ADD CONSTRAINT FK_CodigoDUI
FOREIGN KEY (CodigoDUI)
REFERENCES Cliente(CodigoDUI)
GO

ALTER TABLE Rent_Cust


ADD CONSTRAINT FK_CodigoRenta2
FOREIGN KEY (CodigoRenta)
REFERENCES Renta(CodigoRenta)
GO

5. Definir CONSTRAINT
ALTER TABLE Cliente
ADD CONSTRAINT df_Fecha
DEFAULT getdate() FOR FechaAfiliacion;
GO

ALTER TABLE Pelicula


ADD CONSTRAINT df_Fechaingreso
DEFAULT getdate() FOR FechaIngreso;
GO

ALTER TABLE Renta


ADD CONSTRAINT df_FechaRenta
DEFAULT getdate() FOR FechaRenta;
GO

ALTER TABLE Renta


ADD CONSTRAINT df_FechaDevolucion
DEFAULT getdate() FOR FechaDevolucion;
GO

ALTER TABLE Cliente


ADD CONSTRAINT CHK_Edad CHECK (Edad>=18);
GO

ALTER TABLE Pelicula


ADD CONSTRAINT UC_Pelis2 UNIQUE (CodigoPelicula,NombrePeli);
GO

ALTER TABLE Tipo


ADD CONSTRAINT UC_Tipo UNIQUE (CodigoTipo,NombreTipo);
GO

ALTER TABLE Categoria


ADD CONSTRAINT UC_Categoria UNIQUE (CodigoCategoria,NombreCategoria);
GO
ALTER TABLE Pelicula
ADD CONSTRAINT UC_Pelis UNIQUE (CodigoPelicula,NombrePeli);
GO

ALTER TABLE Cliente


ADD CONSTRAINT UC_cliente UNIQUE (CodigoDUI,NombresCliente,ApellidosCliente);
GO

6. Insertar los datos en la base de datos

INSERT INTO Pelicula Values


('P001','Ace Ventura', '2010-12-02',3),
('P002','El mundo guerrero', '2009-01-10',4),
('P003','El ultimo guerrero','2012-11-12',5),
('P004','Aguas Turbias','2011-11-11',6),
('P005','Terminator III', '2010-11-26', 5),
('P006','La sociedad de los poetas', '2010-09-12',4),
('P007','Final fantassy III', '2011-03-01',5),
('P008','Little frog', '2010-01-18',6),
('P009','Halo 2', '2012-07-07', 7),
('P010','Ace Ventura 2', '2012-01-14',4),
('P011','Oracion y alabanzas', '2012-12-12',3),
('P012','Donde hay llanto hay risa','2012-11-03',3),
('P013','Rambo III','2014-08-27', 5),
('P014','Terminator I','2013-04-22',3)
GO

INSERT INTO TIPO VALUES


('T001', 'DVD'),
('T002','Electronica'),
('T003', 'Coleccionable')
GO

Insert INTO Renta Values


('Ren0001','2014-05-21','2014-05-31', 1.50,0.5),
('Ren0002','2014-07-10','2014-07-13', 1.5,null),
('Ren0003','2011-04-25','2011-04-28',1.5,null),
('Ren0004','2014-12-30','2014-01-01',1.5,null),
('Ren0005','2014-06-20','2014-06-30',1.50,0.5),
('Ren0006','2014-07-21','2014-07-23',1.5,null),
('Ren0007','2014-08-10','2014-08-12',1.5,null),
('Ren0008','2014-06-20','2014-06-30',1.5,null),
('Ren0009','2014-07-21','2014-07-23',1.5,null),
('Ren0010','2014-08-10','2014-08-12',1.5,null),
('Ren0011','2014-08-10','2014-08-12',1.5,null),
('Ren0012','2014-09-14','2014-09-16',1.5,null),
('Ren0013','2011-03-21','2011-03-29',1.5,0.5),
('Ren0014','2012-07-15','2012-07-25',1.5,0.5),
('Ren0015','2014-08-05','2014-08-07',1.5,null),
('Ren0016','2012-07-21','2012-07-23',1.5,null),
('Ren0017','2014-11-02','2014-11-12',1.5,0.5),
('Ren0018','2012-02-21','2012-02-23',1.5,null),
('Ren0019','2014-09-24','2014-09-26',1.5,null),
('Ren0020',null,null,null,null),
('Ren0021',null,null,null,null),
('Ren0022',null,null,null,null),
('Ren0023',null,null,null,null)
GO
Insert INTO Cliente Values
('00224432-3','Jorge Ernesto',' Manzanero','2014-05-15',28),
('00278283-2','Maria Elena','Sanchez Campos','2013-09-30',24),
('00900082-9',' Miguel Armando',' Cardoza Vasquez','2010-03-23',25),
('00901133-2',' Jose Antonio',' Juarez Blanco','2010-05-23',19),
('01234567-8',' Joselyn','Rosa',' 2014-03-21',20),
('01503949-2',' Raul Ernesto',' Barraza Sorto','2014-07-21',29),
('01850173-9',' Juan Jose',' Recinos Ayala','2011-04-12',28),
('01900683-1','Pedro', 'Rivas Cisneros','2010-01-23',26),
('02829380-9',' Ana Maria',' Lopez Duran',' 2012-06-12',24)
GO

INSERT INTO Categoria Values


('C001','Comedia'),
('C002','Acción'),
('C003','Romantica'),
('C004','Drama'),
('C005','Juego'),
('C006','Infantil'),
('C007','Suspenso'),
('C008','Sonido')
GO

Insert INTO Movie_Rent Values


(1,'P001','Ren0001','Ace Ventura'),
(2,'P001','Ren0002','Ace Ventura'),
(3,'P001','Ren0003','Ace Ventura'),
(4,'P002','Ren0004','El mundo guerrero'),
(5,'P003','Ren0005','El ultimo guerrero'),
(6,'P003','Ren0006','El ultimo guerrero'),
(7,'P003','Ren0007','El ultimo guerrero'),
(8,'P004','Ren0008','Aguas Turbias'),
(9,'P004','Ren0009','Aguas Turbias'),
(10,'P004','Ren0010','Aguas Turbias'),
(11,'P005','Ren0011','Terminator III'),
(12,'P006','Ren0012','La sociedad de los poetas'),
(13,'P007','Ren0013','Final fantassy III'),
(14,'P007','Ren0014','Final fantassy III'),
(15,'P007','Ren0015','Final fantassy III'),
(16,'P008','Ren0016','Little frog'),
(17,'P009','Ren0017','Halo 2'),
(18,'P010','Ren0018','Ace Ventura 2'),
(19,'P010','Ren0019','Ace Ventura 2'),
(20,'P011','Ren0020','Oracion y alabanzas'),
(21,'P012','Ren0021','Donde hay llanto hay risa'),
(22,'P013','Ren0022','Rambo III'),
(23,'P014','Ren0023','Terminator I')
GO
Insert INTO Movie_Type Values
(1,'P001','T001','Ace Ventura','DVD'),
(2,'P002','T002','El mundo guerrero','Electronica'),
(3,'P003','T003','El ultimo guerrero','Coleccionable'),
(4,'P004','T003','Aguas Turbias','Coleccionable'),
(5,'P005','T002','Terminator III','Electronica'),
(6,'P006','T002','La sociedad de los poetas','Electronica'),
(7,'P007','T001','Final fantassy III','DVD'),
(8,'P008','T003','Little frog','Coleccionable'),
(9,'P009','T001','Halo 2','DVD'),
(10,'P010','T002','Ace Ventura 2','Electronica'),
(11,'P011','T001','Oracion y alabanzas','DVD'),
(12,'P012','T002','Donde hay llanto hay risa','Electronica'),
(13,'P013','T003','Rambo III','Coleccionable'),
(14,'P014','T003','Terminator I','Coleccionable')
GO

Insert INTO Rent_Cust Values


(1,'00224432-3','Ren0001','Jorge Ernesto','Manzanero'),
(2,'00278283-2','Ren0002','Maria Elena','Sanchez Campos'),
(3,'00900082-9','Ren0003','Miguel Armando','Cardoza Vásquez'),
(4,'00224432-3','Ren0004','Jorge Ernesto','Manzanero'),
(5,'00901133-2','Ren0005','Jose Antonio','Juarez Blanco'),
(6,'01234567-8','Ren0006','Joselyn','Rosa'),
(7,'01503949-2','Ren0007','Raul Ernesto','Barraza Sorto'),
(8, '01850173-9','Ren0008','Juan Jose','Recinos Ayala'),
(9, '01900683-1','Ren0009','Pedro','Rivas Cisneros'),
(10,'02829380-9','Ren0010','Ana Maria','López Duran'),
(11,'02829380-9','Ren0011','Ana Maria','López Duran'),
(12,'01503949-2','Ren0012','Raul Ernesto','Barraza Sorto'),
(13,'01850173-9','Ren0013','Juan Jose','Recinos Ayala'),
(14,'02829380-9','Ren0014','Ana Maria','Lopez Duran'),
(15,'00278283-2','Ren0015','Maria Elena','Sanchez Campos'),
(16,'02829380-9','Ren0014','Ana María','Lopez Duran'),
(17,'01503949-2','Ren0012','Raul Ernesto','Barraza Sorto'),
(18,'00901133-2','Ren0005','Jose Antonio','Juarez Blanco'),
(19,'01234567-8','Ren0006','Joselyn','Rosa'),
(20,null,'Ren0020',null,null),
(21,null,'Ren0021',null,null),
(22,null,'Ren0022',null,null),
(23,null,'Ren0023',null,null)
GO

INSERT INTO Movie_Cat VALUES


(1,'P001','C001','Ace Ventura','Comedia'),
(2,'P002','C002','El mundo guerrero','Accion'),
(3,'P003','C005','El ultimo guerrero','Juego'),
(4,'P004','C003','Aguas Turbias','Romantica'),
(5,'P005','C002','Terminator III','Accion'),
(6,'P006','C004','La sociedad de los poetas', 'Drama'),
(7,'P007','C005','Final fantassy III', 'Juego'),
(8,'P008','C006','Little frog', 'Infantil'),
(9,'P009','C007','Halo 2', 'Suspenso'),
(10,'P010','C001','Ace Ventura 2','Comedia'),
(11,'P011','C008','Oración y alabanzas','Sonido'),
(12,'P012','C001','Donde hay llanto hay risa','Comedia'),
(13,'P013','C002','Rambo III','Accion'),
(14,'P014','C002','Terminator I','Accion')
GO
7. Realizar Consultas solicitadas
---SOlo peliculas categoria Comedia---

SELECT
MovieName AS "Peliculas",
Movie_CatNam AS "Categoria"
From
Movie_Cat
INNER JOIN Categoria ON (Movie_Cat.CodigoCategoria = Categoria.CodigoCategoria)
--AND Movie_Cat.CodigoPelicula = Pelicula.CodigoPelicula
WHERE
Movie_CatNam = 'Comedia'

Figura 1. Listado de peliculas en la


categoría comedia.

--Lista de Peliculas que comienza con la letra A--

SELECT NombrePeli AS "Peliculas"


FROM
Pelicula
WHERE
NombrePeli LIKE 'a%'

Figura 2. Peliculas que comienzan


con la letra “A”.
--Nombre de peliculas que contienen la letra e--

SELECT NombrePeli AS "Peliculas"


FROM
Pelicula
WHERE
NombrePeli LIKE '%e%'

Figura 4. Listado de peliculas cuyo


nombre contiene la letra “E”.

--Lista de clientes entre 18 y 30 años--

SELECT NombresCliente AS "Nombres",


ApellidosCliente AS APellidos,
Edad
FROM
Cliente
WHERE
Edad BETWEEN 18 AND 30
GO

Figura 5. Listado de Clientes cuya


edad está entre los 18 y 30 años.
--Lista de peliculas rentadas entre los años 2012 y 2021--

SELECT
Movie_RentName AS "Nombre Pelicula",
FechaRenta AS "Fecha de Renta"
FROM
Movie_Rent,
Renta
WHERE
Renta.CodigoRenta=Movie_Rent.CodigoRenta AND
Renta.FechaRenta Between '2012-01-01' AND '2021-12-31';

Figura 6. Listado de peliculas


rentadas entre los años 2012 y 2021.
8. Diagrama de Base de Datos

Figura 7. Diagrama de Bases de Datos

También podría gustarte