Visualizar registros de una tabla con SELECT en PostgreSQL

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:

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;

Escribir un comentario