24.04.2013 Views

PRÁCTICAS DE BASES DE DATOS I - Universidad de Jaén

PRÁCTICAS DE BASES DE DATOS I - Universidad de Jaén

PRÁCTICAS DE BASES DE DATOS I - Universidad de Jaén

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Programación <strong>de</strong> Bases <strong>de</strong> Datos Oracle SQL<br />

• Obtener los coches reparados por algún mecánico <strong>de</strong> CHAPA:<br />

SQL> SELECT mat<br />

FROM trabajos<br />

WHERE dni IN ( SELECT dni<br />

FROM mecanicos<br />

WHERE puesto = 'CHAPA');<br />

MAT<br />

--------<br />

M3020KY<br />

J1234Z<br />

J9999AB<br />

J1234Z<br />

Nótese como cuando el resultado <strong>de</strong> la subconsulta es un conjunto <strong>de</strong> valores NO se pue<strong>de</strong><br />

utilizar el operador <strong>de</strong> igualdad, sino el <strong>de</strong> inclusión.<br />

6.2.3. Variables <strong>de</strong> tupla y consultas sincronizadas<br />

SQL toma prestada la notación <strong>de</strong> variables <strong>de</strong> tupla <strong>de</strong>l cálculo relacional orientado a tuplas. Una<br />

variable <strong>de</strong> tupla en SQL <strong>de</strong>be estar asociada a una tabla <strong>de</strong>terminada. Las variables <strong>de</strong> tupla se<br />

<strong>de</strong>finen en la cláusula FROM <strong>de</strong>l comando SELECT, situándolas junto a la tabla asociada. Las<br />

variables <strong>de</strong> tupla son variables que van tomando como valores tuplas <strong>de</strong> una <strong>de</strong>terminada tabla.<br />

Hasta el momento se han utilizado variables <strong>de</strong> tupla para ahorrar trabajo, dar mayor claridad al<br />

escribir las consultas y evitar ambigüeda<strong>de</strong>s.<br />

Una variable <strong>de</strong> tupla se coloca <strong>de</strong>spués <strong>de</strong>l nombre <strong>de</strong> la relación y separada por uno o más<br />

espacios en blanco. Cuando una consulta tiene subconsultas anidadas, se aplica la siguiente regla<br />

<strong>de</strong> ámbito para las variables <strong>de</strong> tuplas: en un subconsulta, está permitido usar sólo variables <strong>de</strong><br />

tupla <strong>de</strong>finidas en la misma subconsulta o en cualquier consulta que contenga a la subconsulta. Si<br />

existen dos variables <strong>de</strong> tupla con el mismo nombre se tiene en cuenta la más interior a la<br />

subconsulta.<br />

Las variables <strong>de</strong> tupla son muy útiles para comparar dos tuplas <strong>de</strong> la misma relación. Por ejemplo, si<br />

se quieren obtener las parejas <strong>de</strong> mecánicos con el mismo tipo <strong>de</strong> contrato:<br />

SQL> SELECT m1.nombre,m2.nombre,<br />

m1.parcial"Contrato parcial?"<br />

FROM mecanicos m1,mecanicos m2<br />

WHERE m1.parcial=m2.parcial AND<br />

m1.nombre

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!