Introducción
PostgreSQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto. El sistema de base de datos maneja fácilmente diversas cargas de trabajo y es compatible con la mayoría de los sistemas operativos. Su extensibilidad y compatibilidad con SQL hacen de PostgreSQL un RDBMS muy popular.
El SELECT
es el comando de lenguaje de manipulación de datos (DML) más utilizado en PostgreSQL.
En este tutorial, aprenderá a usar la declaración SELECT de PostgreSQL con su sintaxis completa y ejemplos.
Requisitos previos
- PostgreSQL instalado y configurado.
- Una base de datos para trabajar (vea cómo crear una base de datos).
Declaración SELECT de PostgreSQL
PostgreSQL SELECT
recupera datos de una o varias tablas de una base de datos y devuelve los datos en una tabla de resultados, denominada conjunto de resultados. Usa el SELECT
para devolver una o más filas que coincidan con los criterios especificados de las tablas de la base de datos.
El SELECT
es la declaración más compleja de SQL, con muchas palabras clave y cláusulas opcionales. Las siguientes secciones explican el SELECT
sintaxis en detalle.
Sintaxis SELECT de PostgreSQL
La forma más simple de SELECT
la sintaxis de la sentencia es:
SELECT expressions
FROM tables
WHERE conditions;
- Las
expressions
son todas las columnas y campos que desea en el resultado. - Las
tables
sintaxis es la tabla o tablas de las que desea extraer los resultados. - Las
conditions
representan los requisitos que se deben cumplir para seleccionar los registros.
Un ejemplo del SELECT
completo la sintaxis de la sentencia es:
SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]];
Explicaremos todos los parámetros en la sección a continuación.
Parámetros SELECCIONAR de PostgreSQL
Los posibles parámetros en un SELECT
declaración son:
ALL
- Un parámetro opcional que devuelve todas las filas coincidentes.DISTINCT
- Un parámetro que elimina los duplicados del conjunto de resultados.DISTINCT ON
- Un parámetro opcional que elimina los datos duplicados en función de lasdistinct_expressions
palabra clave.expressions
- Todas las columnas y campos que quieras incluir en el resultado. Especificando un asterisco (*
) selecciona todas las columnas.tables
- Especifique las tablas de las que desea recuperar registros. ElFROM
la cláusula debe contener al menos una tabla.WHERE conditions
- La cláusula es opcional y contiene las condiciones que se deben cumplir para filtrar los registros en el conjunto de resultados.GROUP BY expressions
- Una cláusula opcional que recopila datos de múltiples registros, agrupando los resultados por una o más columnas.HAVING condition
- Una cláusula opcional utilizada en combinación conGROUP BY
. Restringe los grupos de las filas devueltas a solo aquellas que cumplen la condiciónTRUE
, filtrándolos así.ORDER BY expression
- Una cláusula opcional que identifica qué columna o columnas usar para ordenar los datos en el conjunto de resultados.LIMIT
- Una cláusula opcional que establece el número máximo de registros para recuperar de la tabla, especificado pornumber_rows
sintaxis. La primera fila del conjunto de resultados está determinada poroffset_value
.FETCH
- Una cláusula opcional que establece el número máximo de registros en el conjunto de resultados. Especifique el número de registros en lugar defetch_rows
sintaxis. Eloffset_value
determina la primera fila en el conjunto de resultados.FOR UPDATE
- Una cláusula opcional que bloquea la escritura de los registros necesarios para ejecutar la consulta hasta que se complete la transacción.FOR SHARE
- Una cláusula opcional que permite que los registros sean utilizados por otras transacciones pero evita su actualización o eliminación.
Ejemplos de instrucciones SELECT de PostgreSQL
Las siguientes secciones muestran varios casos de uso para SELECT
declaración.
Ejemplo 1:seleccionar todos los campos
La forma más fácil de devolver todos los campos y ver todo el contenido de una tabla es usar PostgreSQL SELECT
declaración.
Por ejemplo:
SELECT * FROM actor;
En el ejemplo anterior, la salida muestra todos los campos contenidos en la tabla de actores.
Ejemplo 2:filtrar resultados para que coincidan con una condición
El SELECT
le permite filtrar los resultados estableciendo una condición. En el siguiente ejemplo, queremos mostrar solo los títulos de películas donde el idioma de la película es inglés (language_id=1
):
SELECT title
FROM film
WHERE language_id=1;
Ejemplo 3:seleccionar campos de varias tablas
PostgreSQL le permite procesar datos de varias tablas en una base de datos. Para obtener resultados de varias tablas en una sola consulta, use JOINS .
Por ejemplo:
SELECT customer.first_name, customer.last_name, payment.amount
FROM customer
INNER JOIN payment
ON customer.customer_id=payment.customer_id
ORDER BY amount DESC;
En el ejemplo anterior, combinamos dos tablas usando INNER JOIN
para obtener un conjunto de resultados que muestre las columnas de nombre y apellido de una tabla y el monto del pago de otra tabla. Las dos tablas están unidas por el customer_id
columna, que es la misma en ambas tablas.
Los resultados están en orden descendente, especificados por ORDER BY amount DESC
cláusula.
Ejemplo 4:seleccionar campos individuales de una tabla
PostgreSQL SELECT
le permite devolver campos individuales de una tabla.
Por ejemplo:
SELECT first_name, last_name
FROM actor
ORDER BY last_name ASC;
El ejemplo anterior proporciona solo el nombre y apellido de los actores y omite otras columnas. La salida ordena los resultados por apellido en orden ascendente.
Ejemplo 5:Concatenar columnas
Si desea que su conjunto de resultados combine varias columnas en una, puede usar el operador de concatenación ||
con SELECT
declaración. Por ejemplo:
SELECT
first_name || ' ' || last_name
FROM
customer;
En este ejemplo, concatenamos las columnas de nombre y apellido para obtener el nombre completo de cada cliente.
Ejemplo 6:Cálculos
También puede usar el SELECT
instrucción para realizar algunos cálculos, pero luego omite el FROM
cláusula. Por ejemplo:
SELECT 15*3/5;
La salida es el resultado de la expresión matemática especificada en SELECT
declaración.