jueves, 6 de noviembre de 2014

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