Visualizar registros de una tabla con SELECT en Oracle

En este articulo vamos aprender a visualizar registros de una tabla con SELECT en Oracle. 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, 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;

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;

Mostrar los sueldos distintos

En este ejemplo mostramos los diferentes sueldos de los empleados:

select distinct sueldo
from empleados;

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;

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;

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
from dual;

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;

Ejemplo completo

Copia y pega el siguiente código en tu consola de Oracle y realiza paso a paso leyendo los comentarios:

-- Borramos la tabla por si ya existía
DROP TABLE empleados;

--Creamos la tabla de empleados
CREATE TABLE 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  VALUES (1,1,'Miguel Troyano','Analista', 60000);
INSERT INTO empleados  VALUES (2,1,'Ismael Troyano','Analista', 60000);
INSERT INTO empleados  VALUES (3,1,'Jose Troyano','Director', 80000);
INSERT INTO empleados  VALUES (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
from dual;

-- 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