Tema 1 - Parciales
--Tema 1
-- 1. Ingresa según el texto, los registros necesarios en las tablas de la base de datos eventos para completar la siguiente operación:
-- a. Identifica a cuantas tablas debe ingresarle información.
-- Rta: 2 tablas, conciertos y comprasconciertos
-- b. Realiza los insert into correspondientes.
-- Rebeca Gómez compra 10 tiquetes el día 30 de octubre de 2014 a las 18:30. Para un nuevo concierto del
-- género R&B que se realizara el 15 de diciembre de 2014 a las 21:00 horas y lo da la artista Beyonce en el
-- Santiago Bernabeu, el precio del tiquete es de 6000 y se dice que ya vendieron 25531 de 50000, del
-- concierto no se tiene más información.
insert into conciertos
values ('857','Beyonce','R&B','2014-12-15','21:00:00','6000','50000','25531',null,'567');
insert into comprasconciertos
values ('Rebeca','857','2014-10-30','10');
-- 2. Actualiza la columna vendidas de la tabla conciertos, en base a las compras registradas en la tabla compraconciertos.
select *
from comprasconciertos
order by codconcierto;
-- Boletas vendidas del concierto 287 (10+8)=18
update conciertos set vendidas = 18 where codigo = '287';
-- Boletas vendidas del concierto 345 (14+5+36)= 55
update conciertos set vendidas = 55 where codigo = '345';
-- Boletas vendidas del concierto 345 (14+5+36)= 55
update conciertos set vendidas = 10 where codigo = '857';
-- 3. Obtenga la información de las corridas de toros donde se presenten tanto ‘El Litri’ o ‘El Fundi’ .
select *
from corridasdetoros
where torero1 in ('El Litri','El Fundi') or
torero2 in ('El Litri','El Fundi') or
torero3 in ('El Litri','El Fundi');
-- 4. Muestra los clientes cuya fecha de caducidad de la cuenta se cumple en el año 2015.
select * from clientes
where extract (year from feccaducidad) = 2015;
-- 5. Muestra los conciertos que se realizaron en el segundo trimestre del 2004.
select * from conciertos
where fecha between '2004-04-01' and '2004-06-30';
select * from conciertos
where fecha >= '2004-04-01' and fecha <= '2004-06-30';
select * from conciertos
where extract(month from fecha) between 4 and 6 and
extract(year from fecha)=2004;
-- 6. Halla cuantas veces (distintas) se ha realizado corridas de toro con el torero ‘El Fundi’
select distinct count(codigo)
from corridasdetoros
where torero1='El Fundi' or
torero2='El Fundi' or
torero3='El Fundi';
-- 7. Aumenta el precio de los tiquetes de las corridas en un 3%.
update corridasdetoros set precio = precio * 1.03;
-- 8. Halla los conciertos que su precio sea superiores a 3000 o menores e iguales a 6000.
select * from conciertos where precio >3000 or precio <=6000;
-- 9. Lista los nombres y las capacidades de los escenarios que cumplen las siguientes condiciones:
-- a. No tiene foto del escenario.
select nombre,capacidad from escenario where foto is null;
-- b. Entre su nombre no tienen los siguientes caracteres y espacio: ‘ago Be’
select nombre,capacidad from escenario
where nombre not like '%ago Be%';
-- c. El código del escenario es el 123 o 466 o 890 o 563.
select nombre,capacidad
from escenario
where codigo in ('123', '466', '890', '563');
-- 10. Ingresa el siguiente registro :
-- Identificación: 1098635611
-- Nombre: Luz Ximena
-- Apellido1: Torres
-- Apellido2: Osorio
-- Teléfono:
-- Email: rpp@yahoo.es
-- Dirección: carrera 8 # 26 – 17 Portones del Lago
-- Ciudad: Bucaramanga
-- Departamento: Santander
-- Código postal: 91802
insert into datospersona
values ('1098635611','Luz Ximena','Torres','Osorio',null,'rpp@yahoo.es','carrera 8 # 26 – 17 Portones del Lago','Bucaramanga','Santander','91802');
-- a. Escriba y explique por qué se genera el error.
-- Primer Error:
-- ERROR: el valor es demasiado largo para el tipo character varying(9) -----> Hay un campo que excede el valor asignado de caracteres, el mensaje nos indica que tiene 9 maximo y corresponde a la identificación
-- > Se arregla disminuyendo los caracteres que se estan ingresando: se quita un digito de la identificación
insert into datospersona
values ('109863561','Luz Ximena', 'Torres', 'Osorio',null, 'rpp@yahoo.es', 'carrera 8 # 26 – 17 Portones del Lago', 'Bucaramanga', 'Santander', '91802');
-- Segundo Error
-- ERROR: el valor null para la columna «telefono» viola la restricción not null -----> Hay un valor que estamos tratando pasar como nulo y no permite porque hay una restricción que hace obligatorio el ingreso.
-- Se arregla agregando un número de telefono.
insert into datospersona
values ('109863561','Luz Ximena', 'Torres', 'Osorio', '6342516', 'rpp@yahoo.es', 'carrera 8 # 26 – 17 Portones del Lago','Bucaramanga','Santander','91802');
-- Tercer Error
-- ERROR: llave duplicada viola restricción de unicidad «uqemil» -----> Se esta tratando de duplicar un dato en una columna que esta restringida a valores unicos.
-- Se arregla modificando el email para que sea unico dentro de la columna.
insert into datospersona
values ('109863561','Luz Ximena', 'Torres', 'Osorio', '6342516', 'lxto@yahoo.es', 'carrera 8 # 26 – 17 Portones del Lago','Bucaramanga','Santander','91802');
0 comments:
Publicar un comentario