PostgreSQL: optimización de SQL

PostgreSQL es la base de datos de código abierto de uso general más avanzada del mundo. pgAdmin es la herramienta de gestión o plataforma de desarrollo más popular para PostgreSQL. También es una plataforma de desarrollo de código abierto. Se puede usar en cualquier sistema operativo y se puede ejecutar como una aplicación de escritorio o como una web en su navegador. Puede descargar la herramienta de gestión pgAdmin desde aquí .

Necesitamos optimización en las consultas SQL para obtener resultados precisos y más rápidos de una manera más estructurada. Esto aumentará el rendimiento y la aceleración del proceso.

En este artículo vamos a discutir varias técnicas de optimización de SQL en PostgreSQL. Hay básicamente dos tipos de consultas de optimización:

1. Inclusión 

  • Cláusula IN: el operador IN se usa principalmente con la cláusula WHERE para probar una expresión determinada o un registro que coincida con un valor particular de un conjunto de valores. Funciona como un operador OR múltiple.
  • Cláusula ANY: se utiliza para la comparación que devuelve un valor booleano VERDADERO si la condición proporcionada en la subconsulta se obtiene para cualquier valor. Si la condición es verdadera para cualquiera de los valores en ese rango, la salida es VERDADERA.
  • Cláusula EXISTS: operador EXISTS utilizado principalmente en consultas anidadas (consulta dentro de una consulta). Se utiliza para comprobar la existencia del registro proporcionado en la subconsulta. Devuelve Boolean TRUE si uno o más registros coinciden; de lo contrario, FALSE cuando no coincide ninguna fila.
  • INNER JOIN: se devuelven los valores que coinciden en ambas tablas.

2. Exclusión

  • NOT IN: es solo la negación de la cláusula IN que ayuda a ejecutar las filas que no coinciden con el conjunto de valores.
  • TODO: también se utiliza para la comparación que devuelve el valor booleano VERDADERO si la condición proporcionada en la subconsulta se obtiene para todos los valores. Si la condición es verdadera para todos los valores en ese rango, la salida es VERDADERA.
  • NOT EXISTS: es solo la negación de la cláusula EXISTS.
  • LEFT JOIN AND IS NULL:  se utiliza para encontrar todas las filas que tienen entradas NULL después de realizar la operación LEFT JOIN en dos tablas.

Implementemos las técnicas de optimización de SQL anteriores utilizando un ejemplo adecuado. Considere las tablas de muestra que se muestran a continuación de una base de datos de comercio electrónico.

                               informacion de compra
identificación de producto Marca móvil Precio Nombre del cliente
1 OnePlus Norte 5G 30000 Rishabh
2 Samsung Galaxy M51 28000 Srishti
3 iPhone 12 Pro 128000 Un hombre
4 samsung galaxy s20 55000 Duro
5 Real Me X50 Pro 40000 Manjari
6 Mi 10i 5G 24000 satadru
                   Información al cliente
Identificación del cliente Nombre del cliente Dirección de correo electrónico
1 Srishti abc@gmail.com
2 Rajprofundo def@gmail.com
3 Un hombre  xxx@gmail.com
4 Pooja xyz@gmail.com
5 Tanmoy tdq@gmail.com

CONSULTA SQL BÁSICA:

1. Crear una base de datos

CREATE DATABASE database_name

2. Crear una tabla

CREATE TABLE Table_name(
col_1 TYPE col_1_constraint,
col_2 TYPE col_2 constraint
.....
)

col: Column name
TYPE: Data type whether an integer, variable character, etc
col_constraint: Constraints in SQL like PRIMARY KEY, NOT NULL, UNIQUE, REFERENCES, etc

3. Insertar en una tabla

INSERT INTO Table_name
VALUES(val_1, val_2, val_3, ..........)

val: Values in particular column

4. Ver la tabla

SELECT * FROM Table_name

CONSULTAS DE INCLUSIÓN:

1. EN LA CLÁUSULA:

SELECT col_name(s)
FROM Table1
WHERE value IN
    (SELECT col_name(s) FROM Table2
     WHERE condition)

col_name : Name of the column
SELECT col_name(s)
FROM Table_Name
WHERE col_name IN (val1,val2,val3,...)

col_name : Name of the column
val1 : Values in the column
  • Recupera todos los datos de compra que compraron teléfonos móviles y el precio es más de treinta mil.

EN CLÁUSULA

  • Recupera todos los detalles de compra que compraron teléfonos de la marca Samsung.

EN CLÁUSULA

2. CUALQUIER CLÁUSULA

SELECT col_name(s)
FROM Table_Name
WHERE col_name rln_opr ANY
 (SELECT col_name 
  FROM Table_Name
  WHERE condition)

rln_opr: Relational Operator like (>,>=,<,<=,!= or <>,=)
  • Recupera toda la información de aquellos clientes de la Tabla de Información de Clientes que compraron teléfonos y cuyo precio es superior a treinta mil.

CUALQUIER CLÁUSULA

3. CLÁUSULA EXISTE 

SELECT col_name(s)
FROM Table_Name WHERE EXISTS
 (SELECT col_name(s)
  FROM Table_Name
  WHERE condition)
  • Recuperar todos aquellos clientes que compraron teléfonos móviles y sus datos existen en la tabla de información de clientes.

EXISTE CLÁUSULA

4. UNIÓN INTERNA

SELECT * FROM Table1
INNER JOIN Table2
ON Table1.column_match=Table2.column_match;

Table1: First Table in Database.
Table2: Second Table in Database.
column_match: The column common to both the tables.

SALIDA DE UNIÓN INTERNA

CONSULTAS DE EXCLUSIÓN:

1. NO EN

SELECT col_name(s)
FROM Table1
WHERE value NOT IN
(SELECT col_name(s) FROM Table2
 WHERE condition)
SELECT col_name(s)
FROM Table_Name
WHERE col_name NOT IN (val1,val2,val3,...)
  • Recupera todos los datos de compra que compraron teléfonos móviles cuyo precio no supere los treinta mil.

NO EN CLÁUSULA

  • Recupera todos los detalles de compra de quienes no compraron teléfonos de la marca Samsung.

NO EN CLÁUSULA

2. TODOS

SELECT col_name(s)
FROM Table_Name
WHERE col_name rln_opr ALL
(SELECT col_name
 FROM Table_Name
 WHERE condition)

rln_opr: Relational Operator like (>,>=,<,<=,!= or <>,=)
  • Recupere la información de compra para aquellos que compraron teléfonos con precios no inferiores a cincuenta mil.

TODAS LAS SALIDAS

  • Recupera todos aquellos datos de compra de los móviles cuyo precio sea mayor y menor que el precio medio de todos los móviles vendidos.

Precio promedio

Mayor que TODA LA SALIDA

Menos que TODA la salida

3. NO EXISTE

SELECT col_name(s)
FROM Table_Name WHERE NOT EXISTS
(SELECT col_name(s)
 FROM Table_Name
 WHERE condition)
  • Recupere todos aquellos clientes cuya información está presente en la Tabla de Clientes pero que no compraron ningún teléfono.

NO EXISTE SALIDA

4. IZQUIERDA UNIRSE Y ES NULO

SELECT * FROM Table1
LEFT JOIN Table2
ON Table1.column_match=Table2.column_match
WHERE Table2.col_name IS NULL

Table1: First Table in Database.
Table2: Second Table in Database.
column_match: The column common to both the tables.

UNIRSE A LA IZQUIERDA Y ES NULLL

Del mismo modo, podemos hacerlo para todos los demás JOINS inSQL. Generalmente se usa con la cláusula WHERE para obtener las filas que tienen una entrada NULL después de unir dos o más tablas.

Publicación traducida automáticamente

Artículo escrito por rishabhchakrabortygfg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *