duda en querty de sql
Publicado por O.V (1 intervención) el 01/04/2013 22:34:31
esta hecho con el sql management studio aqui estan las indicaiones :
Usted ha sido contratado por “Erika’s Rent Video” para crear una base de dato que ayude a mantener el control sobre un negocio de renta de videos. La dueña, le enumera todas las características que necesita de dicha base de dato:
a) Se tiene que mantener un control sobre las películas que tiene el renta-video. Cada película se considera como única y aunque sea la misma película, cada DVD o BlueRay tiene un código único. Esto ayuda a mantener el control sobre el cuidado de los discos.
b) Dicho negocio puede alquilar y/o vender películas, TODO EN EL MISMO SERVICIO. También se impone multas a aquellos usuarios que no han regresado sus películas a tiempo. Antes de vender o alquilar la película, se deben guardar los datos del usuario. Solo se puede vender/alquilar a usuarios registrados. Los usuarios pueden ser “ocasionales” o “clientes frecuentes”.
c) Los clientes registrados tienen capacidad de acceder al servicio de Reserva de películas, siempre y cuando lo habiliten con el supervisor de la tienda. La reserva es valida cuando se reserva con un mínimo 2 días y máximo 3 días.
d) Un cliente no puede alquilar la misma película más de una vez en una única visita.
e) Una película puede tener más de una categoría. Las películas se orden por categorías.
Debe realizar:
a) Una base de datos relacional que satisfaga todas las necesidades.
b) Ingresar 5 categorías de películas.
Ingresar 10 películas, de las cuales, solo 6 tienen doble categoría y 1 sin que tenga categoría asignada.
Ingresar 10 usuarios, de los cuales, 8 deben estar marcados como frecuentes.
Ingresar 10 servicios, los cuales no deben ser asignados a 2 usuarios.
Entre esos servicios deben ir préstamos y ventas de película por igual.
Aplicar 3 multas.
Aplicar 5 reservas a préstamo.
TAMBIEN REALIZAR LAS SIGUIENTES SENTENCIAS :
a) Debe de pedir el listado de todas las películas (código y nombre) y de todas las categorías (nombre) mediante operación de conjuntos.
b) Mediante una subconsulta deberá mostrar los clientes que viven en San Salvador y La Libertad
.
c) Mediante una consulta demuestre los préstamos realizados en febrero de 2012 utilizando between.
d) Mediante una consulta, pida aquellos usuarios cuyo nombre comience con A o el apellido comience con Z.
e) Muestre la cantidad de veces que se ha prestado cada película, la cantidad de películas que hay por cada categoría.
f) Muestre el monto alcanzado por el préstamo total de las películas y luego, muéstrelo el monto recaudado por cada película.
g) Muestre el monto recaudado por las multas a las películas y diga cual es la película (o cuales son las) que mas ha provocado multas. (use para esto algún tipo de predicado).
h) Muestre un listado completo de los usuarios y las películas que han rentado, dejando declarado que películas nunca han sido dadas en alquiler. (Ocupe algún tipo de outer join).
i) Muestre las primeras 5 películas que más han recaudado y el 10% de las películas que menos han recaudado.
ESTE ES EL PROCESO QUE YO TENGO POR AHORIT A:
CREATE DATABASE PELICULAS;
GO
USE PELICULAS;
GO
---------------------------------TABLAS---------------------------------
CREATE TABLE CLIENTES(
ID_CLIENTES NVARCHAR(6) NOT NULL,
NOMBRES NVARCHAR(30) NOT NULL,
APELLIDOS NVARCHAR(30) NOT NULL,
FECHANAC DATE NOT NULL,
PAISNAC NVARCHAR(20) NOT NULL,
LUGARNAC NVARCHAR(30) NOT NULL,
ESCLIENTEFRECUENTE NVARCHAR(30) NOT NULL,
);
GO
CREATE TABLE PELICULAS(
ID_PELICULAS NVARCHAR(6) NOT NULL,
FECHACREACION DATE NOT NULL,
);
GO
CREATE TABLE ACTOR(
ID_ACTOR NVARCHAR(6) NOT NULL,
NOMBRES NVARCHAR(30) NOT NULL,
APELLIDOS NVARCHAR(30) NOT NULL,
FECHANAC DATE NOT NULL,
PAISNAC NVARCHAR(20) NOT NULL,
LUGARNAC NVARCHAR(30) NOT NULL,
BIOGRAFIA NVARCHAR(2000)
);
GO
CREATE TABLE ACTOR_DIRECTOR(
ID INT IDENTITY,
ID_ACTOR NVARCHAR(6) NOT NULL UNIQUE,
ID_DIRECTOR NVARCHAR(6) NOT NULL UNIQUE
);
GO
CREATE TABLE DIRECTOR(
ID INT IDENTITY,
ID_DIRECTOR NVARCHAR(6) NOT NULL UNIQUE
NOMBRE_DIRECTOR NVARCHAR(6) NOT NULL,
);
GO
CREATE TABLE PELICULAS_DIRECTOR(
ID INT IDENTITY,
ID_PELICULAS NVARCHAR(6) NOT NULL UNIQUE,
ID_DIRECTOR NVARCHAR(6) NOT NULL UNIQUE
);
GO
CREATE TABLE REPARTO(
ID INT IDENTITY NOT NULL,
ID_ACTOR NVARCHAR(6) NOT NULL,
ID_PELICULAS NVARCHAR(6) NOT NULL
PELICULAS_ALQUILADAS NVARCHAR(6) NOT NULL,
PELICULAS_VENDIDAS NVARCHAR(6) NOT NULL,
FECHADEINICIO DATE NOT NULL,
FECHADEENTREGA DATE NOT NULL,
MULTA NUMERIC NOT NULL,
ID_CLIENTES NVARCHAR(6) NOT NULL,
);
GO
create table CATEGORIA(
id_categoria int identity(1,1),
nombre varchar(25),
)
CREATE TABLE EMPRESADUEÑA(
ID INT IDENTITY NOT NULL,
ID_ACTOR NVARCHAR(6) NOT NULL,
ID_PELICULAS NVARCHAR(6) NOT NULL,
ID_EMPRESADUEÑA NVARCHAR(6) NOT NULL,
NUM_PROT BIT
);
GO
---------------------------------LLAVES---------------------------------
ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (ID_CLIENTES);
GO
ALTER TABLE PELICULAS ADD CONSTRAINT PK_PELICULAS PRIMARY KEY (ID_PELICULAS);
GO
ALTER TABLE DIRECTOR ADD CONSTRAINT PK_DIRECTOR PRIMARY KEY (ID_DIRECTOR);
GO
ALTER TABLE ACTOR_DIRECTOR ADD CONSTRAINT FK_ACTOR_DIRECTOR FOREIGN KEY (ID_ACTOR) REFERENCES ACTOR(ID_ACTOR); ALTER TABLE ACTOR_DIRECTOR ADD CONSTRAINT FK_DIRECTOR_ACTOR FOREIGN KEY (ID_DIRECTOR) REFERENCES DIRECTOR(ID_DIRECTOR);
GO
ALTER TABLE PELICULAS_DIRECTOR ADD CONSTRAINT FK_PELICULAS_DIRECTOR FOREIGN KEY (ID_PELICULAS) REFERENCES PRODUCTOR(ID_PRODUCTOR); ALTER TABLE PRODUCTOR_DIRECTOR ADD CONSTRAINT FK_DIRECTOR_PRODUCTOR FOREIGN KEY (ID_DIRECTOR) REFERENCES DIRECTOR(ID_DIRECTOR);
GO
ALTER TABLE PELICULAS ADD CONSTRAINT PK_PELICULA PRIMARY KEY (ID_PELICULAS);
GO
ALTER TABLE PELICULAS ADD CONSTRAINT FK_PELICULA_DIRECTOR FOREIGN KEY (ID_DIRECTOR) REFERENCES DIRECTOR(ID_DIRECTOR);
GO
ALTER TABLE REPARTO ADD CONSTRAINT PK_REPARTO_PELICULAS PRIMARY KEY (ID_PELICULA);
GO
ALTER TABLE REPARTO ADD CONSTRAINT FK_ACTOR_REPARTO FOREIGN KEY (ID_ACTOR) REFERENCES ACTOR(ID_ACTOR);
GO
ALTER TABLE REPARTO ADD CONSTRAINT FK_PELICULA_REPARTO FOREIGN KEY (ID_PELICULA) REFERENCES PELICULA(ID_PELICULA);
GO
ALTER TABLE REPARTO ADD CONSTRAINT FK_CLIENTES_REPARTO FOREIGN KEY (ID_CLIENTES) REFERENCES CLIENTES(ID_PELICULA);
GO
ALTER TABLE EMPRESADUEÑA ADD CONSTRAINT PK_PROTAGONISTAS PRIMARY KEY (ID_EMPRESADUEÑA);
GO
ALTER TABLE EMPRESADUEÑA ADD CONSTRAINT FK_EMPRESADUEÑA_ACTOR FOREIGN KEY (ID_ACTOR) REFERENCES ACTOR(ID_ACTOR);
GO
ALTER TABLE PROTAGONISTAS ADD CONSTRAINT FK_EMPRESADUEÑA_PELICULAS FOREIGN KEY (ID_PELICULAS) REFERENCES PELICULA(ID_PELICULA);
GO
ALTER TABLE EMPRESADUEÑA ADD CONSTRAINT FK_ UNIQUE (ID_PELICULAS, NUM_PROT);
GO
ALTER TABLE CATEGORIA ADD CONSTRAINT UNIQUE (ID_PELICULAS, NUM_PROT);
GO
de antemano gracias por su ayuda
Usted ha sido contratado por “Erika’s Rent Video” para crear una base de dato que ayude a mantener el control sobre un negocio de renta de videos. La dueña, le enumera todas las características que necesita de dicha base de dato:
a) Se tiene que mantener un control sobre las películas que tiene el renta-video. Cada película se considera como única y aunque sea la misma película, cada DVD o BlueRay tiene un código único. Esto ayuda a mantener el control sobre el cuidado de los discos.
b) Dicho negocio puede alquilar y/o vender películas, TODO EN EL MISMO SERVICIO. También se impone multas a aquellos usuarios que no han regresado sus películas a tiempo. Antes de vender o alquilar la película, se deben guardar los datos del usuario. Solo se puede vender/alquilar a usuarios registrados. Los usuarios pueden ser “ocasionales” o “clientes frecuentes”.
c) Los clientes registrados tienen capacidad de acceder al servicio de Reserva de películas, siempre y cuando lo habiliten con el supervisor de la tienda. La reserva es valida cuando se reserva con un mínimo 2 días y máximo 3 días.
d) Un cliente no puede alquilar la misma película más de una vez en una única visita.
e) Una película puede tener más de una categoría. Las películas se orden por categorías.
Debe realizar:
a) Una base de datos relacional que satisfaga todas las necesidades.
b) Ingresar 5 categorías de películas.
Ingresar 10 películas, de las cuales, solo 6 tienen doble categoría y 1 sin que tenga categoría asignada.
Ingresar 10 usuarios, de los cuales, 8 deben estar marcados como frecuentes.
Ingresar 10 servicios, los cuales no deben ser asignados a 2 usuarios.
Entre esos servicios deben ir préstamos y ventas de película por igual.
Aplicar 3 multas.
Aplicar 5 reservas a préstamo.
TAMBIEN REALIZAR LAS SIGUIENTES SENTENCIAS :
a) Debe de pedir el listado de todas las películas (código y nombre) y de todas las categorías (nombre) mediante operación de conjuntos.
b) Mediante una subconsulta deberá mostrar los clientes que viven en San Salvador y La Libertad
.
c) Mediante una consulta demuestre los préstamos realizados en febrero de 2012 utilizando between.
d) Mediante una consulta, pida aquellos usuarios cuyo nombre comience con A o el apellido comience con Z.
e) Muestre la cantidad de veces que se ha prestado cada película, la cantidad de películas que hay por cada categoría.
f) Muestre el monto alcanzado por el préstamo total de las películas y luego, muéstrelo el monto recaudado por cada película.
g) Muestre el monto recaudado por las multas a las películas y diga cual es la película (o cuales son las) que mas ha provocado multas. (use para esto algún tipo de predicado).
h) Muestre un listado completo de los usuarios y las películas que han rentado, dejando declarado que películas nunca han sido dadas en alquiler. (Ocupe algún tipo de outer join).
i) Muestre las primeras 5 películas que más han recaudado y el 10% de las películas que menos han recaudado.
ESTE ES EL PROCESO QUE YO TENGO POR AHORIT A:
CREATE DATABASE PELICULAS;
GO
USE PELICULAS;
GO
---------------------------------TABLAS---------------------------------
CREATE TABLE CLIENTES(
ID_CLIENTES NVARCHAR(6) NOT NULL,
NOMBRES NVARCHAR(30) NOT NULL,
APELLIDOS NVARCHAR(30) NOT NULL,
FECHANAC DATE NOT NULL,
PAISNAC NVARCHAR(20) NOT NULL,
LUGARNAC NVARCHAR(30) NOT NULL,
ESCLIENTEFRECUENTE NVARCHAR(30) NOT NULL,
);
GO
CREATE TABLE PELICULAS(
ID_PELICULAS NVARCHAR(6) NOT NULL,
FECHACREACION DATE NOT NULL,
);
GO
CREATE TABLE ACTOR(
ID_ACTOR NVARCHAR(6) NOT NULL,
NOMBRES NVARCHAR(30) NOT NULL,
APELLIDOS NVARCHAR(30) NOT NULL,
FECHANAC DATE NOT NULL,
PAISNAC NVARCHAR(20) NOT NULL,
LUGARNAC NVARCHAR(30) NOT NULL,
BIOGRAFIA NVARCHAR(2000)
);
GO
CREATE TABLE ACTOR_DIRECTOR(
ID INT IDENTITY,
ID_ACTOR NVARCHAR(6) NOT NULL UNIQUE,
ID_DIRECTOR NVARCHAR(6) NOT NULL UNIQUE
);
GO
CREATE TABLE DIRECTOR(
ID INT IDENTITY,
ID_DIRECTOR NVARCHAR(6) NOT NULL UNIQUE
NOMBRE_DIRECTOR NVARCHAR(6) NOT NULL,
);
GO
CREATE TABLE PELICULAS_DIRECTOR(
ID INT IDENTITY,
ID_PELICULAS NVARCHAR(6) NOT NULL UNIQUE,
ID_DIRECTOR NVARCHAR(6) NOT NULL UNIQUE
);
GO
CREATE TABLE REPARTO(
ID INT IDENTITY NOT NULL,
ID_ACTOR NVARCHAR(6) NOT NULL,
ID_PELICULAS NVARCHAR(6) NOT NULL
PELICULAS_ALQUILADAS NVARCHAR(6) NOT NULL,
PELICULAS_VENDIDAS NVARCHAR(6) NOT NULL,
FECHADEINICIO DATE NOT NULL,
FECHADEENTREGA DATE NOT NULL,
MULTA NUMERIC NOT NULL,
ID_CLIENTES NVARCHAR(6) NOT NULL,
);
GO
create table CATEGORIA(
id_categoria int identity(1,1),
nombre varchar(25),
)
CREATE TABLE EMPRESADUEÑA(
ID INT IDENTITY NOT NULL,
ID_ACTOR NVARCHAR(6) NOT NULL,
ID_PELICULAS NVARCHAR(6) NOT NULL,
ID_EMPRESADUEÑA NVARCHAR(6) NOT NULL,
NUM_PROT BIT
);
GO
---------------------------------LLAVES---------------------------------
ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (ID_CLIENTES);
GO
ALTER TABLE PELICULAS ADD CONSTRAINT PK_PELICULAS PRIMARY KEY (ID_PELICULAS);
GO
ALTER TABLE DIRECTOR ADD CONSTRAINT PK_DIRECTOR PRIMARY KEY (ID_DIRECTOR);
GO
ALTER TABLE ACTOR_DIRECTOR ADD CONSTRAINT FK_ACTOR_DIRECTOR FOREIGN KEY (ID_ACTOR) REFERENCES ACTOR(ID_ACTOR); ALTER TABLE ACTOR_DIRECTOR ADD CONSTRAINT FK_DIRECTOR_ACTOR FOREIGN KEY (ID_DIRECTOR) REFERENCES DIRECTOR(ID_DIRECTOR);
GO
ALTER TABLE PELICULAS_DIRECTOR ADD CONSTRAINT FK_PELICULAS_DIRECTOR FOREIGN KEY (ID_PELICULAS) REFERENCES PRODUCTOR(ID_PRODUCTOR); ALTER TABLE PRODUCTOR_DIRECTOR ADD CONSTRAINT FK_DIRECTOR_PRODUCTOR FOREIGN KEY (ID_DIRECTOR) REFERENCES DIRECTOR(ID_DIRECTOR);
GO
ALTER TABLE PELICULAS ADD CONSTRAINT PK_PELICULA PRIMARY KEY (ID_PELICULAS);
GO
ALTER TABLE PELICULAS ADD CONSTRAINT FK_PELICULA_DIRECTOR FOREIGN KEY (ID_DIRECTOR) REFERENCES DIRECTOR(ID_DIRECTOR);
GO
ALTER TABLE REPARTO ADD CONSTRAINT PK_REPARTO_PELICULAS PRIMARY KEY (ID_PELICULA);
GO
ALTER TABLE REPARTO ADD CONSTRAINT FK_ACTOR_REPARTO FOREIGN KEY (ID_ACTOR) REFERENCES ACTOR(ID_ACTOR);
GO
ALTER TABLE REPARTO ADD CONSTRAINT FK_PELICULA_REPARTO FOREIGN KEY (ID_PELICULA) REFERENCES PELICULA(ID_PELICULA);
GO
ALTER TABLE REPARTO ADD CONSTRAINT FK_CLIENTES_REPARTO FOREIGN KEY (ID_CLIENTES) REFERENCES CLIENTES(ID_PELICULA);
GO
ALTER TABLE EMPRESADUEÑA ADD CONSTRAINT PK_PROTAGONISTAS PRIMARY KEY (ID_EMPRESADUEÑA);
GO
ALTER TABLE EMPRESADUEÑA ADD CONSTRAINT FK_EMPRESADUEÑA_ACTOR FOREIGN KEY (ID_ACTOR) REFERENCES ACTOR(ID_ACTOR);
GO
ALTER TABLE PROTAGONISTAS ADD CONSTRAINT FK_EMPRESADUEÑA_PELICULAS FOREIGN KEY (ID_PELICULAS) REFERENCES PELICULA(ID_PELICULA);
GO
ALTER TABLE EMPRESADUEÑA ADD CONSTRAINT FK_ UNIQUE (ID_PELICULAS, NUM_PROT);
GO
ALTER TABLE CATEGORIA ADD CONSTRAINT UNIQUE (ID_PELICULAS, NUM_PROT);
GO
de antemano gracias por su ayuda
Valora esta pregunta


-1