Tabla de contenido
SELECCIONAR
Los resultados se almacenan en una tabla de resultados, denominada conjunto de resultados.
gramática
La sintaxis de la sentencia SELECT es la siguiente:
SELECT column1, column2,...columnN FROM table_name;
-
columna1, columna2,...columnaN son los nombres de campo en la tabla.
-
table_name es el nombre de la tabla.
Si queremos leer todos los datos de la tabla, podemos usar la siguiente instrucción SQL:
SELECT * FROM table_name;
CON
En PostgreSQL, la cláusula WITH proporciona una forma de escribir declaraciones auxiliares para usar en consultas más grandes.
La cláusula WITH ayuda a desglosar consultas grandes y complejas en formularios más simples que son más fáciles de leer. Estas declaraciones generalmente se denominan expresiones de tabla comunes (Common Table Express, CTE) y también se pueden usar como una tabla temporal para consultas.
La cláusula WITH es especialmente útil cuando se ejecuta una subconsulta varias veces, permitiéndonos referirnos a ella por su nombre (posiblemente varias veces) en la consulta.
La cláusula WITH debe definirse antes de poder usarse.
gramática
La sintaxis básica de una consulta CON es la siguiente:
WITH
name_for_summary_data AS (
SELECT Statement)
SELECT columns
FROM name_for_summary_data
WHERE conditions <=> (
SELECT column
FROM name_for_summary_data)
[ORDER BY columns]
name_for_summary_data es el nombre de la cláusula WITH, name_for_summary_data puede ser el mismo que el nombre de la tabla existente y tiene prioridad.
Las declaraciones INSERT, UPDATE o DELETE de datos se pueden usar dentro de WITH, lo que le permite realizar múltiples operaciones diferentes en la misma consulta.
CON recursividad
La salida de datos por sí misma se puede utilizar en la cláusula WITH.
Una expresión de tabla común (CTE) tiene la importante ventaja de poder referenciarse a sí misma, creando así una CTE recursiva. Una CTE recursiva es una expresión de tabla común que ejecuta repetidamente una CTE inicial para devolver un subconjunto de datos hasta que se obtiene un conjunto de resultados completo.
LÍMITE
La cláusula de límite en PostgreSQL se usa para limitar la cantidad de datos consultados en la instrucción SELECT.
gramática
La sintaxis básica de una instrucción SELECT con una cláusula LIMIT es la siguiente:
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
La siguiente es la sintaxis de la cláusula LIMIT cuando se usa con la cláusula OFFSET:
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows] OFFSET [row num]
COMO
En la base de datos PostgreSQL, si queremos obtener datos que contengan determinados caracteres, podemos utilizar la cláusula LIKE .
En la cláusula LIKE, generalmente se usa en combinación con comodines, que representan cualquier carácter. En PostgreSQL, hay principalmente dos tipos de comodines:
- signo de porcentaje %
- guion bajo _
Si no se utiliza ninguno de los comodines anteriores, la cláusula LIKE y el signo igual = dan el mismo resultado.
gramática
La siguiente es la sintaxis general para obtener datos de la base de datos utilizando la cláusula LIKE con el signo de porcentaje % y el guión bajo _ :
SELECT FROM table_name WHERE column LIKE 'XXXX%';
--或者
SELECT FROM table_name WHERE column LIKE '%XXXX%';
--或者
SELECT FROM table_name WHERE column LIKE 'XXXX_';
--或者
SELECT FROM table_name WHERE column LIKE '_XXXX';
--或者
SELECT FROM table_name WHERE column LIKE '_XXXX_';
Puede especificar cualquier condición en la cláusula WHERE.
Puede especificar una o más condiciones usando AND u OR.
XXXX puede ser cualquier número o carácter.
DÓNDE
En PostgreSQL, cuando necesitamos consultar datos de una sola tabla o varias tablas de acuerdo con condiciones específicas, podemos agregar una cláusula WHERE a la instrucción SELECT para filtrar los datos que no necesitamos.
La cláusula WHERE se puede usar no solo en la instrucción SELECT, sino también en las instrucciones UPDATE, DELETE, etc.
gramática
La siguiente es la sintaxis general para leer datos de la base de datos usando la cláusula WHERE en la instrucción SELECT:
SELECT column1, column2, columnN
FROM table_name
WHERE [condition1]
Podemos usar operadores de comparación u operadores lógicos como >, <, =, LIKE, NOT, etc. en la cláusula WHERE.
AGRUPAR POR
En PostgreSQL, la instrucción GROUP BY se usa junto con la instrucción SELECT para agrupar los mismos datos.
GROUP BY se coloca después de la cláusula WHRER y antes de la cláusula ORDER BY en una instrucción SELECT.
gramática
A continuación se muestra la sintaxis básica de la cláusula GROUP BY:
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
La cláusula GROUP BY debe colocarse después de las condiciones de la cláusula WHERE y antes de la cláusula ORDER BY.
En la cláusula GROUP BY, puede agrupar una o más columnas, pero las columnas agrupadas deben existir en la lista de columnas.
TENIENDO
La cláusula HAVING nos permite filtrar los grupos de datos después de la agrupación.
La cláusula WHERE establece condiciones en las columnas seleccionadas, mientras que la cláusula HAVING establece condiciones en las agrupaciones creadas por la cláusula GROUP BY.
gramática
Aquí es donde va la cláusula HAVING en una consulta SELECT:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
La cláusula HAVING debe colocarse después de la cláusula GROUP BY y antes de la cláusula ORDER BY La siguiente es la sintaxis básica de la cláusula HAVING en la instrucción SELECT:
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
Ejemplo:
Los registros de la tabla EMPRESA son los siguientes:
id | name | age | address | salary
----+-------+-----+--------------+--------
1 | Paul | 32 | California | 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000
8 | Paul | 24 | Houston | 20000
9 | James | 44 | Norway | 5000
10 | James | 45 | Texas | 5000
(10 rows)
El siguiente ejemplo encontrará los datos agrupados según el valor del campo de nombre, y el recuento del nombre es mayor que 1:
SELECT NAME FROM COMPANY GROUP BY name HAVING count(name) > 1;
El resultado es el siguiente:
name
-------
Paul
James
(2 rows)
ORDENAR POR
En PostgreSQL, ORDER BY se usa para clasificar una o más columnas de datos en orden ascendente (ASC) o descendente (DESC).
gramática
La sintaxis básica de la cláusula ORDER BY es la siguiente:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
Puede usar una o más columnas en ORDER BY, pero debe asegurarse de que las columnas que se ordenarán existan.
ASC significa orden ascendente, DESC significa orden descendente.
Ejemplo:
Cree la tabla EMPRESA, el contenido de los datos es el siguiente:
id | name | age | address | salary
----+-------+-----+-----------+--------
1 | Paul | 32 | California| 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall| 45000
7 | James | 24 | Houston | 10000
(7 rows)
El siguiente ejemplo ordenará los resultados en orden ascendente según el valor del campo NOMBRE y el valor del campo SALARIO:
SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;
y obtener el siguiente resultado:
id | name | age | address | salary
----+-------+-----+----------------------------------------------------+--------
2 | Allen | 25 | Texas | 15000
5 | David | 27 | Texas | 85000
7 | James | 24 | Houston | 10000
6 | Kim | 22 | South-Hall | 45000
4 | Mark | 25 | Rich-Mond | 65000
1 | Paul | 32 | California | 20000
3 | Teddy | 23 | Norway | 20000
(7 rows)