Sentencias Sql
Sentencias SQL
Pacheco Arteaga Jasiel
06/06/2012
Subconsultas
Definición:
Una subconsulta es una sentencia SELECT que aparece dentro de otrasentencia SELECT que llamaremos consulta principal.
Se puede encontrar en la lista de selección, en la cláusula WHERE o en la cláusula HAVING de la consulta principal.
Una subconsulta tiene lamisma sintaxis que una sentencia SELECT normal exceptuando que aparece encerrada entre paréntesis, no puede contener la cláusula ORDER BY, ni puede ser la UNION de varias sentencias SELECT, además tienealgunas restricciones en cuanto a número de columnas según el lugar donde aparece en la consulta principal. Estas restricciones las iremos describiendo en cada caso.
Cuando se ejecuta una consultaque contiene una subconsulta, esta se ejecuta por cada fila de la consulta principal.
Se aconseja no utilizar campos calculados en las subconsultas, ralentizan la consulta.
Las consultas que utilizansubconsultas suelen ser más fáciles de interpretar por el usuario.
Ejemplo de cómo añadir una subconsulta.
Las subconsultas pueden anidarse de forma que una subconsulta aparezca en la cláusulaWHERE (por ejemplo) de otra subconsulta que a su vez forma parte de otra consulta principal. En la práctica, una consulta consume mucho más tiempo y memoria cuando se incrementa el número de niveles deanidamiento. La consulta resulta también más difícil de leer , comprender y mantener cuando contiene más de uno o dos niveles de subconsultas.
Ejemplo:
SELECT num_emp, nombre
FROM empleadosWHERE num_emp = (SELECT rep FROM pedidos WHERE clie = (SELECT num_clie FROM clientes WHERE nombre = 'Julia Antequera'))
En este ejemplo, por cada linea de pedido se calcula la subconsulta de clientes, yesto se repite por cada empleado, en el caso de tener 10 filas de empleados y 200 filas de pedidos (tablas realmente pequeñas), la subconsulta más interna se ejecutaría 2000 veces (10 x 200)....
Regístrate para leer el documento completo.