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.