Optimización de Consultas SQL: Técnicas y Operaciones Esenciales

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,17 KB

Orden de Evaluación en Consultas SQL

El orden de evaluación en las consultas SQL es fundamental para entender cómo se procesan los datos. Se evalúa en el siguiente orden:

  1. WHERE: Establece las filas individuales, candidatos.
  2. GROUP BY: Forma los grupos.
  3. HAVING: Selecciona los grupos a mostrar.

Operaciones de Join

Un Join se usa cuando una consulta requiere datos de más de una tabla en la base de datos.

JOIN REFLEXIVO

Es aquel que se implementa para relaciones recursivas (como una relación de "padre-hijo"). Requiere usar Aliases y lo considera como si se tratase de dos tablas separadas.

Operadores de Conjunto

Estos operadores combinan los resultados de dos o más consultas SELECT.

  • UNION: Retorna todas las filas distintas recuperadas por una u otra consulta SQL.
  • La variante UNION ALL no elimina los duplicados.
  • INTERSECT: Retorna solo aquellas filas que son recuperadas por ambas consultas SQL a la vez.
  • MINUS: Retorna todas las filas recuperadas por la primera Query que no están en las recuperadas por la segunda.

Restricciones en Operadores de Conjunto

Al usar operadores de conjunto, se deben considerar las siguientes restricciones:

  • Los selects deben contener igual número de columnas.
  • Las columnas correspondientes deben tener el mismo tipo de dato.
  • Los duplicados se eliminan automáticamente (no se puede usar DISTINCT).
  • Los nombres de las columnas de la primera SELECT permanecen.
  • ORDER BY aparece solamente en la sentencia final.
  • ORDER BY por posición de columna (no nombre).
  • Los operadores de conjunto pueden usarse en subqueries.
  • Los SELECT se ejecutan de arriba hacia abajo.
  • Múltiples operadores de conjuntos son posibles con paréntesis (si son necesarios) para alterar el orden de ejecución.

Subqueries (Subconsultas)

Una subquery es un SELECT anidado dentro de otro que retorna resultados inmediatos.

  • Se le conoce también como SUB SELECT.
  • Generalmente se ejecuta primero y su salida se usa para completar la condición del SELECT que lo contiene (main query).
  • Cuando la subquery retorna un valor solamente, se puede usar un = para comparar.
  • Cuando la subquery retorna más de un valor se emplea IN.
  • En una subquery se puede comparar más de un valor.
  • En ese caso, los valores deben estar siempre entre paréntesis y separados entre sí por comas.
  • Dentro de la subquery deben retornarse en el mismo orden, la misma cantidad y del mismo tipo de datos.

Operadores ANY y ALL

Se pueden usar con subqueries que retornan más de una fila. Se usan en WHERE o HAVING junto con cualquier operador lógico (=, <=, <, <>, >, >=).

  • ANY: Compara un valor, para cada (algún) valor retornado por la subquery.
  • Ejemplo: WHERE SAL > ANY (SELECT ...)
  • NOTAS: "= ANY" equivale a "IN". Cuando usa ANY frecuentemente se usa DISTINCT para evitar duplicados.
  • ALL: Compara un valor con todo valor retornado por la subquery.
  • Ejemplo: WHERE SAL > ALL (SELECT ...)

Vistas

Las vistas representan de forma lógica subconjuntos de datos de una o más tablas.

Ventajas de las Vistas

  • Restringe el acceso a los datos.
  • Facilita consultas complejas.
  • Mejora la independencia de los datos.
  • Permite presentar distintas vistas de los mismos datos.

Operaciones CRUD (Create, Read, Update, Delete)

Estas operaciones son fundamentales para la manipulación de datos en una base de datos.

  • INSERT: Una vez que creamos una estructura, podemos utilizarla para guardar datos en ella. Para esto usamos el comando INSERT, que nos permite ingresar nuevos registros a la tabla.
  • UPDATE: Una vez agregados los datos a la tabla, es posible que queramos o necesitemos modificar algunos. Para ello existe el comando UPDATE. A diferencia de INSERT que trabaja a nivel de registros completos, UPDATE opera a nivel de columnas.
  • DELETE: Es posible eliminar un registro de la tabla, usando el comando DELETE.

Transacciones y ROLLBACK

Si uno detecta que ha cometido un error y no desea CONSOLIDAR los cambios, tiene la posibilidad de DESHACER los cambios realizados, para ello sirve el comando ROLLBACK.

ROLLBACK;

El comando ROLLBACK deshace todos los cambios hasta el último COMMIT.

Entradas relacionadas: