Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL SELECCIONAR

La sentencia `SELECT` de PostgreSQL se utiliza para consultar y recuperar datos de una o varias tablas. Este comando SQL fundamental puede utilizarse para obtener columnas específicas, aplicar condiciones y ordenar el conjunto de datos resultante.

Utilización

La sentencia `SELECT` se emplea siempre que hay que extraer datos de una base de datos. A menudo se combina con otras cláusulas como `DÓNDE`, `ORDENAR POR` y `GRUPO POR` para refinar y organizar la salida.

sql
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, ...];

En esta sintaxis, `SELECT` especifica las columnas a recuperar, y `FROM nombre_tabla` indica la tabla de origen. Otras cláusulas opcionales pueden refinar aún más la consulta.

Ejemplos

1. Selección básica

sql
SELECT *
FROM products;

Esta consulta recupera todas las columnas de la tabla `productos`, proporcionando una vista completa de cada entrada.

2. Seleccionar columnas específicas con una condición

sql
SELECT name, price
FROM products
WHERE price > 100;

Este ejemplo selecciona sólo las columnas "nombre" y "precio" de la tabla "productos" cuyo precio sea superior a 100, filtrando los resultados.

3. Consulta con ordenación

sql
SELECT name, price
FROM products
WHERE price > 100
ORDER BY price DESC;

Aquí, la sentencia `SELECT` no sólo filtra los registros por precio, sino que también ordena los resultados en orden descendente de la columna `precio`, lo que permite ver por orden de prioridad los artículos de mayor precio.

4. Manejo de valores nulos

sql
SELECT name, price
FROM products
WHERE price IS NOT NULL;

Esta consulta recupera los nombres y precios de los productos excluyendo las entradas en las que el precio es "NULL".

5. Utilizar DISTINCT para eliminar duplicados

sql
SELECT DISTINCT category
FROM products;

Esta consulta devuelve una lista de categorías únicas de la tabla `productos`, eliminando las entradas duplicadas.

6. Limitar resultados con LIMIT y OFFSET

sql
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 10 OFFSET 5;

Este ejemplo recupera diez productos empezando por el sexto, ordenados de forma descendente por precio.

7. Unir tablas

sql
SELECT orders.id, customers.name
FROM orders
JOIN customers ON orders.customer_id = customers.id;

Esta consulta recupera los identificadores de los pedidos y los nombres de los clientes uniendo las tablas "pedidos" y "clientes" por sus respectivos identificadores.

Consejos y buenas prácticas

  • Selecciona sólo las columnas necesarias. Evita utilizar `SELECT *` en las consultas de producción para minimizar el uso de recursos y aumentar el rendimiento.
  • Combínalo con condiciones de filtrado. Utiliza la cláusula "DONDE" para limitar los resultados sólo a los que se ajusten a tus necesidades.
  • Utiliza alias para mayor claridad. Implementa alias de tablas y columnas para mejorar la legibilidad, especialmente en consultas complejas. Por ejemplo:
    sql
        SELECT p.name AS product_name, c.name AS category_name
        FROM products p
        JOIN categories c ON p.category_id = c.id;
        
  • Emplea sabiamente la clasificación y la agrupación. Utiliza `ORDENAR POR` y `GRUPAR POR` para organizar los datos de forma lógica y mejorar su análisis.
  • Comprende la indexación. Ten en cuenta las columnas indexadas, ya que seleccionarlas puede aumentar significativamente el rendimiento de la consulta.
  • Trata con cuidado los duplicados y los NULL. Utiliza `DISTINCT` para eliminar duplicados y `IS NULL`/`IS NOT NULL` para gestionar eficazmente los valores `NULL`.
  • Precaución con las consultas complejas. Ten en cuenta las repercusiones en el rendimiento, sobre todo cuando se trate de grandes conjuntos de datos o se omitan los índices. Considera la posibilidad de dividir las consultas complejas para mejorar la eficacia.