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;