En este articulo vamos aprender a visualizar registros de una tabla con SELECT en PostgreSQL. Una vez que hemos creado la tabla e insertado registros, realizaremos consultas para ver la información.
Sintaxis
La sintaxis básica para mostrar 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 mayusculas o minusculas.
- 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.
Mostrar todos los campos de una tabla
En este ejemplo mostramos todos los campos de la tabla empleados:
select *
from empleados;
Lenguaje del código: JavaScript (javascript)
Mostrar 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;
Lenguaje del código: JavaScript (javascript)
Mostrar los sueldos distintos
En este ejemplo mostramos los diferentes sueldos de los empleados:
select distinct sueldo
from empleados;
Lenguaje del código: JavaScript (javascript)
Mostrar 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;
Lenguaje del código: JavaScript (javascript)
Mostrar 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;
Lenguaje del código: JavaScript (javascript)
Mostrar 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;
Lenguaje del código: JavaScript (javascript)
Mostrar la suma de sueldo y el calculo 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;
Lenguaje del código: JavaScript (javascript)
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;
Lenguaje del código: JavaScript (javascript)