SQL : Manual Introducción al lenguaje de consultas parte 7 (Subconsultas)

SQL : Manual Introducción al lenguaje de consultas parte 7 (Subconsultas)



Objetivos :
  • Que son las subconsultas?
  • Restricciones a la hora de escribir subconsultas.
  • En que momento podemos usar las subconsultas?
  • Referencias externas.
  • Tipos de subconsultas.
  • Describir los tipos de problemas que se pueden resolver las subconsultas.
  • EXISTS. 

Antes de entrar en materia vamos a definir lo que es una subconsulta en el lenguaje de SQL.

Que  son Subconsultas?

 "Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT. Normalmente se utilizan para filtrar una clausula WHERE o HAVING con el conjunto de resultados de la subconsulta, aunque también pueden utilizarse en la lista de selección."

Las subsconsltas nos ayudan a la hora de escribir queries que intervengan varias tablas, como en el articulo anterior de los Joins, asi evitando la complejidad de la consulta. Una nota es debemos de tener en cuenta es que este tipo de operaciones son mas lentas que los Joins, pero en caso que sea necesario debemos de usarlo.

La podemos usar luego de la clausula WHERE  o HAVING.

Ejemplo :

SELECT CAMPO1, CAMPO2 FROM TABLA 
WHERE  CAMPO2  = (SELECT MAX(CAMPO2  ) FROM TABLA)

Restricciones a la hora de escribir subconsultas.

  • No se permite la clausula Order by.
  • No se permite usar el signo de igualdad(=) , cuando la subconsulta retorna mas de un valor
  • Debe de estar encerrado en paréntesis.
  • Debe de escribirse luego del operador logico.
En que momento podemos usar las subconsultas?

SELECT 
Ejemplo :

SELECT CAMPO1, CAMPO2 FROM TABLA 
WHERE  CAMPO1  IN (SELECT CAMPO1 FROM TABLA2)

DELETE 
Ejemplo :

DELETE  FROM TABLA 
WHERE  CAMPO1  IN (SELECT CAMPO1 FROM TABLA2)

UPDATE 
Ejemplo :

UPDATE  TABLA 
SET         CAMPO2 = 'INFORMACIO'
WHERE  CAMPO1  IN (SELECT CAMPO1 FROM TABLA2)

Referencias externas.

 Una referencia externa es un campo que aparece en la subconsulta pero se refiere a la una de las tablas designadas en la consulta principal. Cuando se ejecuta una consulta que contiene una subconsulta con referencias externas, la subconsulta se ejecuta por cada fila de la consulta principal.

Ejemplo :

SELECT CAMPO1, CAMPO2 FROM TABLA1
WHERE  CAMPO3  IN (SELECT CAMPO3 FROM TABLA1 WHERE  CAMPO1 = CAMPO1)

http://es.slideshare.net/nicola51980/postgresql-leccin-6-subconsultas

Tipos de subconsultas.

Existen dos tipos de sobconsultas, las de un solo registro y las de múltiples registros.

Ejemplo único registro:
SELECT CAMPO1, CAMPO2 FROM TABLA1
WHERE  CAMPO1 = (SELECT MAX(CAMPO1) FROM TABLA1)

 Ejemplo múltiples registros:
SELECT CAMPO1, CAMPO2 FROM TABLA1
WHERE  CAMPO1 IN  (SELECT CAMPO1 FROM TABLA1)


EXISTS 

Verifica si la consulta interna arroja alguna fila. Si lo hace, entonces la consulta externa procede. De no hacerlo, la consulta externa no se ejecuta, y la totalidad de la instrucción SQL no retorna ningun valor

Ejemplo :


SELECT CAMPO1, CAMPO2 FROM TABLA1
WHERE  EXISTS  
(
SELECT * FROM 
TABLA1 WHRE    CONDICIÓN 1 AND CONDICIÓN 2 ....
)

Hasta la próxima entrega.

M.L.



Comentarios

Entradas populares de este blog

SQL SERVER : Obtener Objeto Última Fecha de modificación de una tabla

MetroFramework : Aplicaciones de escritorio al estilo metro

Que es LOCALDB?