Ejercicios de SQL

Páginas: 10 (2427 palabras) Publicado: 18 de octubre de 2013
EJERCICIOS DE SQL

Base de Datos del Ejemplo
Maquinas

Proyectos

CodM Nombre
CodP

Descrip

P01
P02
P03
P04
P05

Garaje
Solado
Garaje
Techado
Buhardilla

Localidad Cliente

Telefono

Arganda Felipe Sol
600111111
Rivas
José Pérez
912222222
Arganda Rosa López 666999666
Loeches José Pérez 913333333
Rivas
Ana Botijo
null

M01
M02
M03
M04

PrecioHoraExcavadora
Hormigonera
Volquete
Apisonadora

15000
10000
11000
18000

Trabajos

CodC CodM CodP
Conductores

CodC
C01
C02
C03
C04
C05
C06

Nombre

Localidad Categ

José Sánchez Arganda
Manuel Díaz
Arganda
Juan Pérez
Rivas
Luis Ortiz
Arganda
Javier Martín Loeches
Carmen Pérez Rivas

18
15
20
18
12
15

C02
C03
C05
C04
C01
C02
C03
C02
C01
C05
C01
C02M03
M01
M03
M03
M02
M03
M01
M03
M03
M03
M02
M03

P01
P02
P02
P02
P02
P03
P04
P02
P04
P04
P04
P01

Fecha

Tiempo

10/09/02
10/09/02
10/09/02
10/09/02
12/09/02
13/09/02
15/09/02
15/09/02
15/09/02
15/09/02
17/09/02
18/09/02

100
200
150
90
120
30
300
null
180
90
null
null

1. Obtener el nombre de los conductores con categoría 15.
SELECTnombre
FROM conductores
WHERE categ > 15
2. Obtener la descripción de los proyectos en los que se haya realizado trabajos durante los días 11 al 15 de
septiembre de 2002.


Solución con subconsultas



SELECT descrip
FROM proyectos
WHERE codP IN (SELECT codP
FROM trabajos
WHERE fecha BETWEEN '11/sep/02' AND '15/sep/02');
Solución con join
SELECT descrip
FROM proyectos, trabajosWHERE proyectos.codP = trabajos.codP
AND fecha BETWEEN '11/sep/02' AND '15/sep/02';



Solución con Inner Join
SELECT descrip
FROM proyectos INNER JOIN trabajos ON proyectos.codP = trabajos.codP
WHERE fecha BETWEEN '11/sep/02' AND '15/sep/02';

3. Obtener el nombre de los conductores que hayan trabajado con una Hormigonera, ordenados
descendentemente.
SELECT nombre
FROM conductoresWHERE codC IN (SELECT codC
FROM trabajos

2002 ©Pedro Pablo Alarcón

HOJA 1

WHERE codM IN (SELECT codM
FROM maquinas
WHERE nombre = 'Hormigonera'))
ORDER BY nombre DESC;
4. Obtener el nombre de los conductores que hayan trabajado con una Hormigonera en proyectos de
Arganda.


Solución con subconsultas
SELECT nombre
FROM conductores
WHERE codC IN (SELECT codC
FROM trabajosWHERE codM IN (SELECT codM
FROM maquinas
WHERE nombre = 'Hormigonera')
AND codP IN (SELECT codP
FROM proyectos
WHERE localidad = 'Arganda'));



Solución con condición de Join en el Where
SELECT conductores.nombre
FROM conductores, trabajos, maquinas, proyectos
WHERE proyectos.localidad = 'Arganda' AND
maquinas.nombre = 'Hormigonera' AND
proyectos.codP = trabajos.codP ANDtrabajos.codM = maquinas.codM AND
trabajos.codC = conductores.codC;



Solución con Inner Join
SELECT conductores.nombre
FROM conductores INNER JOIN trabajos ON conductores.codC = trabajos.codC
INNER JOIN maquinas ON trabajos.codM = maquinas.codM
INNER JOIN proyectos ON proyectos.codP = trabajos.codP
WHERE proyectos.localidad = 'Arganda' AND
maquinas.nombre = 'Hormigonera';

5. Obtener el nombrede los conductores y descripción del proyecto, para aquellos conductores que hayan
trabajado con una Hormigonera en proyectos de Arganda durante los días 12 al 17 de Septiembre.
SELECT conductores.nombre, proyectos.descrip
FROM conductores, trabajos, maquinas, proyectos
WHERE proyectos.localidad = 'Arganda' AND
maquinas.nombre = 'Hormigonera' AND
trabajos.fecha BETWEEN '10/sep/02' AND'18/sep/02' AND
proyectos.codP = trabajos.codP AND
trabajos.codM = maquinas.codM AND
trabajos.codC = conductores.codC;
6. Obtener los conductores que trabajan en los proyectos de José Pérez.
SELECT DISTINCT conductores.nombre
FROM conductores, trabajos, proyectos
WHERE proyectos.cliente = 'José Pérez' AND
proyectos.codP = trabajos.codP AND
trabajos.codC = conductores.codC;
7. Obtener el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ejercicios de SQL
  • Ejercicios en sql
  • Ejercicios de SQL
  • ejercicios sQl
  • Ejercicios sql
  • Ejercicio SQL
  • sql ejercicios
  • ejercicios sql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS