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.
- Recupera todos los detalles de compra que compraron teléfonos de la marca Samsung.
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.
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.
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.
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.
- Recupera todos los detalles de compra de quienes no compraron teléfonos de la marca Samsung.
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.
- 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.
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.
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.
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