0% encontró este documento útil (0 votos)
32 vistas11 páginas

Tema - Teoria Consultas SQL

El documento revisa la teoría de consultas en SQL, describiendo su estructura básica y operaciones como JOIN, subconsultas y funciones agregadas. Se explican conceptos clave como la cláusula WHERE, GROUP BY y HAVING, así como el uso de referencias externas y operadores EXISTS. Además, se presentan funciones agregadas que permiten resumir datos en consultas agrupadas.

Cargado por

Chritian Huari
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas11 páginas

Tema - Teoria Consultas SQL

El documento revisa la teoría de consultas en SQL, describiendo su estructura básica y operaciones como JOIN, subconsultas y funciones agregadas. Se explican conceptos clave como la cláusula WHERE, GROUP BY y HAVING, así como el uso de referencias externas y operadores EXISTS. Además, se presentan funciones agregadas que permiten resumir datos en consultas agrupadas.

Cargado por

Chritian Huari
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTONOMA GABRIEL RENE

MORENO
FACULTAD DE CIENCIAS DE LA COMPUTACION
Carrera de Ingeniería Informática

Revisión de la Teoría de
Consultas en SQL
Docente: Ing. Ubaldo Pérez Ferreir

Santa Cruz de la Sierra – Bolivia


El Lenguaje SQL

Lenguaje SQL (Structure Query Languaje). Implementado


en la mayoría de los SGBD, es un lenguaje NO
PROCEDIMENTAL, al igual que el Algebra Relacional opera sobre
Relaciones (tablas)
La mayoría de las operaciones del Algebra relacional pueden ser
formuladas en el SQL.
La Estructura Básica de una expresión en SQL esta compuesta de
tres cláusulas:
SELECT A1, A2,...,An // Que atributos
FROM r1, r2,...,rm // De que relaciones
WHERE P // Que tuplas
[GROUP BY A1, A2,...,An] // Agrupador

[HAVING PG] // Predicado para el grupo


Reunión Natural (JOIN)

Combina la Selección y el Producto Cartesiano entre dos tablas en una sola


operación, el Predicado esta implícito y toma en cuenta a las parejas de
tuplas que tenga el mismo valor en al menos un atributo en común entre
ambas tablas PK FK PK
Para elaborar una consulta de A B C R T
tipo JOIN se debe cumplir con 1 aaa y x a1
los siguientes requisitos:
2 bbb y y b2
SELECT * 3 ccc y z c3
FROM t1, t2 4 eee z t2
WHERE t1.c=t2.r
t1
1. En la clausula FROM tienen que
Resultado después de la ejecución
intervenir dos o mas tablas.
2. En la clausula WHERE son incluidos los A B C R T
atributos en común de las dos tablas. 1 aaa y y b2
Generalmente es un atributo Llave
2 bbb y y b2
Primaria(PK) y el otro un atributo llave
foránea (FK). 3 ccc y y b2
4 eee z z c3
Sub Consulta

Una sub consulta es una sentencia SELECT que es


Consulta incrustada en una cláusula de otra sentencia SQL, llamada
Principal Consulta Principal.

Sub
Consulta
Interna

La sub consulta interna se ejecuta antes que la consulta


principal. El resultado de la sub consulta es utilizado por
la consulta principal.
Cuando se ejecuta una consulta que contiene una subconsulta, la
subconsulta se ejecuta por cada fila de la consulta principal.
Sub Consulta usando la Clausula IN

En la clausula WHERE se tienen que elegir un atributo de la(s) tabla(s) de la


Consulta Principal o un valor constante, de tal forma que por cada fila se
permita comparar el valor del atributo o de la constante con el resultado
obtenido en la Sub Consulta. PK FK PK
La Sub Consulta puede A B C R T
SELECT * retornar vacío, una o mas filas
1 aaa y x a1
FROM t2 2 bbb y y b2
WHERE r IN (SELECT c FROM t1) 3 ccc y
z c3
4 eee z

t1 t2
Ejecución paso a paso …
x NO PERTENECE NO SE MUESTRA

Primero se ejecuta la Sub C y PERTENECE SI SE MUESTRA

consulta y el resultado es: y z PERTENECE SI SE MUESTRA

z Resultado después de la ejecución

R T
Luego por cada fila de la tabla t2, se
valida que el valor de r pertenezca al y b2
resultado de la Sub Consulta. z c3
Sub Consulta usando Referencias Externas

A menudo, es necesario, dentro del cuerpo de una Sub Consulta,


hacer referencia al valor de una columna en la fila actual de la
Consulta Padre, ese nombre de columna se denomina referencia
externa.
SELECT * SELECT *
FROM t2 FROM t2
WHERE (SELECT COUNT(*) WHERE EXISTS (SELECT *
FROM t1 WHERE t1.c=t2.r) >=1 FROM t1 WHERE t1.c=t2.r)

El atributo r pertenece a una tabla de la El atributo r pertenece a una tabla de la


Consulta Padre, por lo tanto es una Consulta Padre, por lo tanto es una
referencia externa en la Sub Consulta referencia externa en la Sub Consulta

Una referencia externa es un nombre de columna que estando en la Sub


Consulta, no se refiere a ninguna columna de las tablas designadas en la
clausula FROM de la Sub Consulta sino a una columna de las tablas
designadas en la clausula FROM de la Consulta Padre.
Sub Consulta usando la Clausula EXISTS

La Sub Consulta se ejecuta por cada fila de la Consulta Padre, por lo tanto el
valor del atributo de la referencia externa irá cambiando en la Sub Consulta.

El atributo r pertenece a una tala de la Consulta Padre,


SELECT * por lo tanto es una referencia externa en la Sub Consulta
FROM t2
WHERE

(SELECT COUNT(*) FROM t1 WHERE t1.c=t2.r) >=1

Ejecución paso a paso …

t1.c=x , COUNT(*) =0, NO SE MUESTRA x


t1.c=y , COUNT(*) =3 SI SE MUESTRA y
PK FK PK t1.c=z , COUNT(*) = 1 SI SE MUESTRA z
A B C R T
1 aaa y x a1 R T

2 bbb y y b2 y b2
3 ccc y z c3
z c3
4 eee z

t1 t2
Sub Consulta usando la Clausula EXISTS

Este operador es frecuentemente usado en sub consultas correlacionadas para


verificar cuando un valor recuperado por la consulta externa existe en el
conjunto de resultados obtenidos por la consulta interna.
Si la Sub Consulta obtiene al menos una fila, el operador obtiene el valor
TRUE, de lo contrario se obtiene FALSE.
El atributo r pertenece a una tala de la Consulta Padre,
SELECT *
por lo tanto es una referencia externa en la Sub Consulta
FROM t2

WHERE EXISTS (SELECT * FROM t1 WHERE t1.c=t2.r)

PK FK PK Ejecución paso a paso …


A B C R T
RETORNA FALSE NO SE MUESTRA x
1 aaa y x a1 RETORNA TRUE SE MUESTRA y
2 bbb y y b2 RETORNA TRUE SE MUESTRA z
3 ccc y
z c3
R T
4 eee z

t1 t2 y b2

z c3

NOT EXISTS verifica cuando un valor recuperado por la consulta externa


no es parte del conjunto de resultados obtenidos por la consulta interna.
Funciones Agregadas

Muchas de las peticiones de información no requieren el nivel


de detalle, es así, que SQL ofrece funciones que se aplican a
las columnas de resultado de una consulta. Estas funciones
de columnas ofrecen diferentes tipos de datos resumen. Las
funciones básicas son las siguientes:

• SUM() calcula el total de una columna


• AVG() calcula el valor promedio de una columna
• MIN() encuentra el valor mas pequeño de una columna
• MAX() encuentra el valor mayor de una columna
• COUNT() cuenta el numero de valores de una columna
• COUNT(*) cuenta las filas de resultados de la consulta.
Consultas Agrupadas

La cláusula GROUP BY agrupa los datos de las tablas


fuentes y produce una única fila sumaria por cada grupo de
filas. Las columnas que se indican en la cláusula GROUP BY
se las denominan columnas de agrupación de la consulta,
ya que ellas determinan como se dividen las filas en grupo.
SELECT c , COUNT(*) Total
El atributo c es seleccionado
como columna de FROM t1
agrupación GROUP BY c

Ejecución paso a paso …


Se agrupan las filas con c=y , resultado es COUNT(*) =3
Se agrupan las filas con c=z , resultado es COUNT(*) = 1
PK FK
A B C
1 aaa y C
R Total
T

2 bbb y y 3
b2
3 ccc y z 1
4 eee z

t1
Condiciones de búsquedas por grupos

De la misma manera que la cláusula WHERE puede ser


utilizada para seleccionar y rechazar filas individuales que
participan en una consulta, la cláusula HAVING puede ser
utilizada para seleccionar y rechazar grupos de filas. Existe
una analogía entre el formato de la cláusula HAVING y la
cláusula WHERE. La cláusula HAVING especifica por tanto
una condición de búsqueda para grupos.

También podría gustarte