You are on page 1of 10

REPASO

EXAMEN 1
BBDD

Cargamos el
archivo
'aeropuerto.sql' a
MySQL:

Primero creamos
la base de datos:
'create database aeropuerto'

Para cargar la base de datos:


Copiamos aqui el path de nuestro 'aeropuerto.sql' que sera en este caso :

C:\Program Files\MySQL\MySQL Server 5.5\bin

1.- Muestra nombre de agencias que tienen reserva de vuelos en el mes de Febrero de 2001 y
su origen de vuelo sea Madrid

select distinct nombre from agencias a, reservas r, vuelos v where a.code=r.agencia and
r.num_vuelo=v.num_vuelo and fecha between "2001/2/1" and "2001/2/28" and
origen="Madrid" order by nombre;

2.- Muestra los tipos de aviones que han pasado por Barcelona 2 formas :

select distinct tipo from aviones a ,vuelos v where origen="BArcelona" or


destino="Barcelona";
select distinct tipo from aviones a ,vuelos v where a.tipo=v.tipo_avion and
origen="BArcelona" or destino="Barcelona";

3.- ¿Cuantos aviones realizan vuelos desde o hacia MAdrid ? 2 formas :

select count(tipo) from aviones a,vuelos v where origen="MAdrid" or destino="Madrid";

select count(*) as aviones from vuelosv where origen="MAdrid" or destino="Madrid";

4.- Muestra el total de plazas reservadas existentes para cada numero de vuelo de IBeria
-----------------------------------------------------------------------------------------------------------------------------

PROBLEMA 1 : Crear tabla alumnos con id, nombre, apellidos, dir, tlfno, repite(SI/NO),
edad(0-99) y provincia(Madrid,Tooledo o Sevilla)

create table alumnos(id varchar(20) not null auto_increment primary key, nombre
varchar(30), apellidos varchar(50),dir varchar(30),tlfno int (20),repite boolean, edad int(2),

insert into alumnos values("","Alfred"," Hitchcock","Colombia 12 4b",23456789,false,55);

*NOTA: en el campo 'id' no escribimos valor ya que hemos puesto por defecto que se
autoincrementa, para ello hemos tenido que introducir el comando tambien con los campos
pero sin incluir el del 'id'.
PROBLEMA 2 : Crear tabla profesores con dni, nombre, ultimo acceso(fecha actual por
defecto), fecha nacimiento, y salario(1000-90000) . 2 formas :

create table profesores(dni varchar(20) primary key, nombre varchar(30) not null, ult_acceso
date ' now() ',fecha_nac date, salario int check(salario between 1000 and 90000));

create table profesores(dni varchar(20) primary key, nombre varchar(30) not null, ult_acceso
timestamp current_timestamp,fecha_nac date, salario int check(salario between 1000 and
90000));

*NOTA : el not null del primary key es redundante, se puede excluir!

Añadimos otro campo mas a la tabla profesores:

alter table profesores add email varchar(30);


Cambiamos detalles de la entrada 'email' introducida:

alter table profesores modify email varchar(50);

Actualizamos la tabla alumnos para que sean repetidores todo los que son de Toledo:

Actualizamos la tabla alumnos cambiando su provincia a Madrid a todos aquellos entre 20 y


40 años;
Borramos de la tabla alumnos aquellos cuya edad sea mayor que la media;

Delete from alumnos where edad>(select avg(edad) from alumnos);

PROBLEMA 3

Obtenga en una sola columna los nombres de todas las ciudades que aparecen en la tabla
vuelos, ordenados alfabeticamente, sin repetir

select distinct origen from vuelos union select distinct destino from vuelos;
Obtenga una vista que almacene las butacas de aquellos aviones con butacas menor que la
media de los otros aviones 2 formas

create view aeropuerto as select butacas from aviones where butacas <( select avg(butacas )
from aviones);

create view vista as select tipo,butacas from aviones a where butacas <(select avg(b.butacas)
from aviones b );

Visualice media de plazas reservadas por numero de vuelo para los realizados desde
Barcelona o Sevilla a Madrid y que recorren una distancia menor que la media de todos los
vuelos que llegan a Madrid, ordenados de menor a mayor
create view vista2 as select avg(plazas) from reservas r,vuelos v where
r.num_vuelo=v.num_vuelo and num_vuelo in ( select origen,destino from vuelos where
origen="Barcelona" or origen="Sevilla" and destino="Madrid" and distancia <( select
avg( distancia) from vuelos where destino="Madrid" order by distancia));

create view vista2 as select avg(plazas) from reservas r,vuelos v where


r.num_vuelo=v.num_vuelo and origen="Barcelona" or origen="Sevilla" and
destino="Madrid" and distancia <( select avg( distancia) from vuelos where
destino="Madrid" order by distancia));

Obtener el número de vuelos diarios de Madrid a Barcelona

mostrar los números de vuelo y el origen de los vuelos que correspondes partes con numero
de partes entre 200 y 800 y que recorren distancias mayores que la media, ordenandolos por
origen.
Mostrar para cada fecha cuantos vuelos ni llegan ni salen de madrid

localhost/phpmyadmin