Visualizar registros de una tabla con SELECT en PostgreSQL es una de las operaciones fundamentales al trabajar con bases de datos. En este artículo, aprenderás cómo utilizar este comando para consultar y explorar la información almacenada en tus tablas. Desde los primeros pasos de creación e inserción de datos hasta ejemplos prácticos de consultas, te guiaré para que puedas dominar este aspecto esencial de PostgreSQL.
Sintaxis
La sintaxis básica para consultar datos es la siguiente:
SELECT campo_1, campo_2, ... FROM nombreTabla;
En la sintaxis anterior:
- Primero se escribe SELECT y después los campos o expresiones que se quieren mostrar separadas por comas entre ellos. El SELECT no es sensible a mayúsculas o minúsculas.
- En segundo lugar se escribe FROM y el nombre de la tabla dónde están los campos. Si solo escribes una expresión que no contiene ninguno campo, el FROM es opcional.
Ten en cuenta que la sintaxis anterior es básica, pero que el SELECT acepta las siguientes cláusulas:
- Distinct: para mostrar las filas diferentes.
- Order by: para ordenar las filas.
- Where: para filtrar la información.
- Limit o fetch: para seleccionar un subconjunto de filas.
- Group by: para establecer agrupaciones de filas.
- Having: para filtrar agrupaciones de filas.
- Inner join, left join, right join, full outer join y cross join: para unir tablas.
- Union, intersect y except: para realizar acciones de conjunto de datos.
Cuando escribes una sentencia con SELECT y FROM la herramienta los evalúa de la siguiente forma:

Esto es importante saberlo, ya que si utilizas un alias de tabla en el FROM podrás utilizarlo en el SELECT.
Ejemplos
En estos ejemplos nos centramos en la sintaxis básica. Puedes ver otros artículos como order by o where para más detalles.
Consultar todos los campos de una tabla
En este ejemplo mostramos todos los campos de la tabla empleados:
select * from empleados;

Consultar solo dos campos de una tabla
En este ejemplo mostramos solos los campos de nombre y sueldo de la tabla empleados:
select nombre, sueldo from empleados;

Consultar los sueldos distintos
En este ejemplo mostramos los diferentes sueldos de los empleados:
select distinct sueldo from empleados;

Consultar la suma de sueldos por departamento
En este ejemplo mostramos la suma de todos los sueldos por departamento:
select id_departamento, sum(sueldo) from empleados group by id_departamento;

Consultar la suma de sueldos por puesto con un filtro en la suma
En este ejemplo mostramos la suma de todos los sueldos por puesto, pero solo de aquellos que la suma supere los 100000:
select puesto, sum(sueldo) from empleados group by puesto having sum(sueldo) > 100000;

Consultar el resultado de una expresión
En este ejemplo mostramos el resultado de una expresión, en este caso el resultado de multiplicar 5*5:
select 5*5 as MULTIPLICAR;

Consultar la suma de sueldo y el cálculo de su subida
En este ejemplo mostramos el nombre del empleado junto a su sueldo y su sueldo al subirle un 5%:
select nombre, sum(sueldo) as SUELDO, sum(sueldo + (sueldo*0.05)) as SUELDO_NUEVO from empleados group by nombre;

Ejemplo completo
Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios:
-- Borramos la tabla por si ya existía DROP TABLE IF EXISTS empleados; --Creamos la tabla de empleados CREATE TABLE IF NOT EXISTS empleados ( id_empleado numeric(2,0), id_departamento numeric(2,0), nombre character varying(50), puesto character varying(50), sueldo integer ); -- Insertamos registros de ejemplo INSERT INTO empleados (id_empleado, id_departamento, nombre, puesto, sueldo) VALUES (1,1,'Miguel Troyano','Analista', 60000), (2,1,'Ismael Troyano','Analista', 60000), (3,1,'Jose Troyano','Director', 80000), (4,1,'Pilar Troyano','Directora', 80000); -- Mostramos todos los registros de la tabla empleados select * from empleados; -- Mostramos solo los campos nombre y sueldo select nombre, sueldo from empleados; -- Mostrar los distintos sueldos select distinct sueldo from empleados; -- Mostramos la suma de los sueldos por departamento select id_departamento, sum(sueldo) from empleados group by id_departamento; -- Mostramos el puesto y la suma de los sueldos solo -- cuando la suma sea mayor de 100000 select puesto, sum(sueldo) from empleados group by puesto having sum(sueldo) > 100000; -- Mostramos una operación matematica select 5*5 as MULTIPLICAR; -- Mostramos el nombre del empleado y su sueldo -- y el resultado de aplicar una subida a su sueldo select nombre, sum(sueldo) as SUELDO, sum(sueldo + (sueldo*0.05)) as SUELDO_NUEVO from empleados group by nombre;