Está en la página 1de 9

TALLER CONSULTAS COMPLEJAS

Se dispone de las siguientes tablas con los siguientes datos:

Las relaciones entre estas tablas son las siguientes.

Realiza las siguientes consultas en SQL.


1 Averigua el DNI de todos los clientes.
2 Consulta todos los datos de todos los programas.
3 Obtn un listado con los nombres de todos los programas.
4 Genera una lista con todos los comercios.
5 Genera una lista de las ciudades con establecimientos donde se venden
programas, sin que aparezcan valores duplicados (utiliza DISTINCT).
6 Obtn una lista con los nombres de programas, sin que aparezcan valores
duplicados (utiliza DISTINCT).
7 Obtn el DNI ms 4 de todos los clientes.
8 Haz un listado con los cdigos de los programas multiplicados por 7.
9 Cules son los programas cuyo cdigo es inferior o igual a 10?
10 Cul es el programa cuyo cdigo es 11?
11 Qu fabricantes son de Estados Unidos?
12 Cules son los fabricantes no espaoles?
13 Obtn un listado con los cdigos de las distintas versiones de Windows.
14 En qu ciudades comercializa programas El Corte Ingls?
15 Qu otros comercios hay, adems de El Corte Ingls?
16 Genera una lista con los cdigos de las distintas versiones de Windows y
Access.
17 Obtn un listado que incluya los nombres de los clientes de edades
comprendidas entre 10 y 25 y de los mayores de 50 aos. Da una solucin con
BETWEEN.
18 Saca un listado con los comercios de Sevilla y Madrid. No se admiten
valores duplicados.
19 Qu clientes terminan su nombre en la letra o?
20 Qu clientes terminan su nombre en la letra o y, adems, son mayores
de
30 aos?
21 Obtn un listado en el que aparezcan los programas cuya versin finalice
por una letra i, o cuyo nombre comience por una A o por una W.

22 Obtn un listado en el que aparezcan los programas cuya versin finalice


por una letra i, o cuyo nombre comience por una A y termine por una S.
23 Obtn un listado en el que aparezcan los programas cuya versin finalice
por una letra i, y cuyo nombre no comience por una A.
24 Obtn una lista de empresas por orden alfabtico ascendente.
25 Genera un listado de empresas por orden alfabtico descendente.
26 Obtn un listado de programas por orden de versin
27 Genera un listado de los programas que desarrolla Oracle.
28 Qu comercios distribuyen Windows?
29 Genera un listado de los programas y cantidades que se han distribuido a El
Corte Ingls de Madrid.
Ejercicios de SQL. Consultas ms complejas (I). Pg. 6

30 Qu fabricante ha desarrollado Freddy Hardest?


31 Selecciona el nombre de los programas que se registran por Internet.
32 Selecciona el nombre de las personas que se registran por Internet.
33 Qu medios ha utilizado para registrarse Pepe Prez?
34 Qu usuarios han optado por Internet como medio de registro?
35 Qu programas han recibido registros por tarjeta postal?
36 En qu localidades se han vendido productos que se han registrado por
Internet?
37 Obtn un listado de los nombres de las personas que se han registrado por
Internet, junto al nombre de los programas para los que ha efectuado el
registro.
38 Genera un listado en el que aparezca cada cliente junto al programa que ha
registrado, el medio con el que lo ha hecho y el comercio en el que lo ha
adquirido.
39 Genera un listado con las ciudades en las que se pueden obtener los
productos de Oracle.
40 Obtn el nombre de los usuarios que han registrado Access XP.
41 Nombre de aquellos fabricantes cuyo pas es el mismo que Oracle.
(Subconsulta).
42 Nombre de aquellos clientes que tienen la misma edad que Pepe Prez.
(Subconsulta).
43 Genera un listado con los comercios que tienen su sede en la misma ciudad
que tiene el comercio FNAC. (Subconsulta).
44 Nombre de aquellos clientes que han registrado un producto de la misma
forma que el cliente Pepe Prez. (Subconsulta).
45 Obtener el nmero de programas que hay en la tabla programas.
46 Calcula el nmero de clientes cuya edad es mayor de 40 aos.
47 Calcula el nmero de productos que ha vendido el establecimiento cuyo CIF
es 1.
48 Calcula la media de programas que se venden cuyo cdigo es 7.
49 Calcula la mnima cantidad de programas de cdigo 7 que se ha vendido
Ejercicios de SQL. Consultas ms complejas (I). Pg. 7

50 Calcula la mxima cantidad de programas de cdigo 7 que se ha vendido.


51 En cuntos establecimientos se vende el programa cuyo cdigo es 7?
52 Calcular el nmero de registros que se han realizado por Internet.
53 Obtener el nmero total de programas que se han vendido en Sevilla.
54 Calcular el nmero total de programas que han desarrollado los fabricantes
cuyo pas es Estados Unidos.

CREACION DE LA BASE DE DATOS


create table fabricante(
id_fab integer primary key,
nombre varchar(50),
pais
varchar(30));
create table programa(
codigo integer primary key,
nombre varchar(50),
version varchar(50));
create table comercio(
cif integer primary key,
nombre varchar(50),
ciudad varchar(50));
create table cliente(
dni integer primary key,
nombre varchar(50),
edad integer);
create table desarrolla(
id_fab integer,
codigo integer,
primary key(id_fab,codigo));
create table distribuye(
cif integer,
codigo integer,
cantidad integer,
primary key(cif,codigo));
create table registra(
cif integer,
dni integer,
codigo integer,
medio varchar(20),
primary key(cif,dni));
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into

fabricante
fabricante
fabricante
fabricante
fabricante
fabricante

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into
into
into
into

programa
programa
programa
programa
programa
programa
programa
programa
programa
programa
programa
programa
programa
programa

values(1,'Oracle','Estados Unidos');
values(2,'Microsoft','Estados Unidos');
values(3,'IBM','Estados Unidos');
values(4,'Dinamic','Espaa');
values(5,'Borland','Estados Unidos');
values(6,'Symantec','Estados Unidos');

values(1,'Application Server','9i');
values(2,'Database','8i');
values(3,'Database','9i');
values(4,'Database','10g');
values(5,'Developer','6i');
values(6,'Access','97');
values(7,'Access','2000');
values(8,'Access','XP');
values(9,'Windows','98');
values(10,'Windows','XP Professional');
values(11,'Windows','XP Home Edition');
values(12,'Windows','2003 Server');
values(13,'Norton Internet Security','2004');
values(14,'Freddy Hardest',NULL);

insert into programa values(15,'Paradox','2');


insert into programa values(16,'C++ Builder','5.5');

insert
insert
insert
insert
insert

into
into
into
into
into

comercio
comercio
comercio
comercio
comercio

values(1,'El Corte Ingls','Sevilla');


values(2,'El Corte Ingls','Madrid');
values(3,'Jump','Valencia');
values(4,'Centro Mail','Sevilla');
values(5,'FNAC','Barcelona');

insert
insert
insert
insert
insert
insert

into
into
into
into
into
into

cliente
cliente
cliente
cliente
cliente
cliente

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into

desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla
desarrolla

values(1,1);
values(1,2);
values(1,3);
values(1,4);
values(1,5);
values(2,6);
values(2,7);
values(2,8);
values(2,9);
values(2,10);
values(2,11);
values(2,12);
values(6,13);
values(4,14);
values(5,15);
values(5,16);
values(3,17);
values(3,18);
values(5,19);
values(4,20);

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into

distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye
distribuye

values(1,1,10);
values(1,2,11);
values(1,6,5);
values(1,7,3);
values(1,10,5);
values(1,13,7);
values(2,1,6);
values(2,2,6);
values(2,6,4);
values(2,7,7);
values(3,10,8);
values(3,13,5);
values(4,14,3);
values(4,20,6);
values(5,15,8);
values(5,16,2);
values(5,17,3);
values(5,19,6);
values(5,8,8);

values(1,'Pepe Prez',45);
values(2,'Juan Gonzlez',45);
values(3,'Mara Gmez',33);
values(4,'Javier Casado',18);
values(5,'Nuria Snchez',29);
values(6,'Antonio Navarro',58);

insert into registra values(1,1,1,'Internet');


insert into registra values(1,3,4,'Tarjeta postal');
insert into registra values(4,2,10,'Telfono');

insert into registra values(4,1,10,'Tarjeta postal');


insert into registra values(5,2,12,'Internet');
insert into registra values(2,4,15,'Internet');