Ejemplo de Consultas SQL y Definiciones
Ejemplo de Consultas SQL y Definiciones
Ejemplo de Consultas SQL y Definiciones
6.- Muestre el apellido y la comisin (en soles) de los empleados; cuyos salarios se encuentren
entre 5000 y 12 000 y adems pertenezcan a los departamentos 20, 10 y 80
select last_name, commission_pct, salary, department_id
from employees e
where salary between 5000 and 12000 and e.department_id in(10,20,80);
7.-Muestre el nombre y apellido en una sola columna llamada nombre_completo
y la fecha de contratacin de los empleados que entraron en el ao 2004.
select e.first_name|| ' ' || e.last_name "Nombre Completo", e.hire_date
from employees e
where e.hire_date between '01-01-2004' and '31-12-2004';
8.- Muestre el nombre y el cdigo de trabajo de todos los empleados que no tienen un
supervisor (manager_id).
select first_name, last_name, job_id ,nvl(to_char(manager_id),'Sin supervisor')
Supervisor
from employees
where manager_id is null;
9.-Muestre el apellido, salario y las comisiones de todos los empleados que
ganan comisin, ordnelo de forma descendente los 2 campos
select e.last_name, e.salary, e.commission_pct
from employees e
where e.commission_pct is not null
order by e.last_name desc ;
select e.last_name, e.salary, e.commission_pct
from employees e
where e.commission_pct is not null
order by e.salary desc;
10.- Muestre el apellido de los empleados que tengan como tercera letra una a.
select last_name
from employees
where last_name like '__a%';
11.-Muestre el apellido de los empleados que tengan una a
y una e en su apellido
select e.last_name
from employees e
where (e.last_name like '%e%a%') or (e.last_name like '%a%e%') ;
12.- Muestre el apellido, cdigo de trabajo y salario de los empleados
que laboran como Sales representative (SA_REP) o Stock clerk (ST_CLERK)
y que su salario no sea igual a 2500, 3000 o 7000.
select last_name , job_id, salary
from employees
where (job_id like 'SA_REP' or job_id like 'ST_CLERK') and salary not in
(2500,3000,7000);
13.-Construya una vista llamada sueldo_empleado que permita visualizar el cdigo, nombre
completo concatenado con el alias Nombre_completo a dicha columna, el sueldo total
(incluyendo el porcentaje de su comision), solo para los empleados que tienen ms de 5 aos
en la empresa.
21.-Mostrar los apellidos y el nombre del mes que fue contratado los empleados del cdigo del
departamento 30. Rotule esta ltima columna como MES_CONTRATO.
SELECT LAST_NAME APELLIDOS, TO_CHAR(HIRE_DATE,'MONTH') "MES
CONTRATO" FROM EMPLOYEES WHERE DEPARTMENT_ID = 30;
22.-Muestre las primeras cinco letras del nombre del departamento en maysculas para la tabla
departments.
SELECT UPPER(SUBSTR(DEPARTMENT_NAME,1,5)) DEPARTAMENT FROM
DEPARTMENTS;
23.-Mostrar el nombre, fecha de contratacin y el nmero de das trabajados.
SELECT FIRST_NAME NOMBRE, TRUNC(SYSDATE - HIRE_DATE) FROM
EMPLOYEES;
24.-Mostrar el nombre y la fecha de contrato para todos los empleados en el siguiente
formato:dd de mes de aaaa, rotule esta columna con el nombre de FECHA_CONTRATO.
Ejemplo: 17 de Junio de 1987.
SELECT FIRST_NAME NOMBRE,TO_CHAR(HIRE_DATE, 'DD')|| ' de '||
TO_CHAR(HIRE_DATE, 'MONTH')|| ' de '||
TO_CHAR(HIRE_DATE, 'YYYY') "FECHA DE CONTRATO" FROM EMPLOYEES;
25.-Mostrar el nombre, fecha de contratacin y la fecha del primer chequeo mdico, sabiendo
que este se realiza cada seis meses, para los empleados con cdigo de departamento 60.
SELECT FIRST_NAME NOMBRE, HIRE_DATE "FECHA CONTRATO",
ADD_MONTHS(HIRE_DATE,6) FROM EMPLOYEES WHERE DEPARTMENT_ID = 60;
28.-Construya una sentencia que te permita obtener los nombres de todos los empleados que
no ganan comisin y adems no pertenecen al departamento 50 ni 80 .
SELECT FIRST_NAME ||' '||LAST_NAME "NOMBRE COMPLETO",
COMMISSION_PCT, DEPARTMENT_ID FROM EMPLOYEES
WHERE COMMISSION_PCT > 0 AND DEPARTMENT_ID NOT IN (80,50);
30.-Construya una sentencia que muestre lo siguiente para cualquier empleado
Cdigo
123
Empleado
juan Perez
Nombre_jefe
Luis Casas
36.Cree una consulta que muestre el apellido y las comisiones de los empleados. Si un
empleado no gana comisin, ponga No Commission. Etiquete la columna COMM.
SELECT LAST_NAME APELLIDO, DECODE(COMMISSION_PCT,NULL,'NO
COMISION', COMMISSION_PCT*SALARY) COM FROM EMPLOYEES;
37.-Utilizando la funcin DECODE O CASE, escriba una consulta que muestre el grado de
todos los empleados basndose en el valor de la columna JOB_ID, segn los datos siguientes:
Cargo
AD_PRES
ST_MAN
IT_PROG
SA_REP
ST_CLERK
Ninguno de los anteriores
Grado
A
B
C
D
E
0
DECODE(
JOB_ID,'AD_PRES','A',
'ST_MAN','B','IT_PROG', 'C','SA_REP', 'D',
'ST_CLERK','E','0') GRADO
FROM EMPLOYEES ;
IS NOT NAN
La condicion de punto flotante determina si una expresion es infinita o es un resultado
indefinido de un operador ( que este, es un no numero or NAN)
ejemplo :
SELECT * from employee where salary IS NOT NAN;
IS NULL
En Oracle IS NULL condition es usado para testear para un valor NULL.
La sintaxis para Oracle es expresion IS NULL
Ejemplo:
SELECT * FROM suppliers
WHERE supplier_name IS NULL;
ORDER BY
Es usado para buscar los archivos en el resultado de la sentencia SELECT.
Ejemplo:
SELECT expressions
FROM tables
WHERE conditions
ORDER BY expression [ASC | |DESC ];
NOT
La condicional NOT( tambien llamado operador NOT) es usado para negar una
condicion en una sentencia SELECT, INSERT, UPDATE, or DELETE.
Ejemplo:
SELECT *
FROM customers
WHERE customer_name NOT IN ( IN, Hewlett Packard, Microsoft);
GROUP BY
La clausula SQL GROUP BY puede ser usada en una sentencia SELECT para
recoger datos a travez de multiples archivos y gurpos del resultados por una o mas
columnas.
Ejmeplo:
SELECT expression1, expression2, . expression_n.
aggregate_function (expression)
FROM tables
WHERE conditions
GROUP BY expression1, expression2, expression_n;
NOT BETWEEN
Es usada para recuperar valores que no estan entre ese rango,es decir, negamos la
a la condicion BETWEEN, en un rango determinado.
Ejemplos
SELECT *
FROM employee
WHERE id NOT BETWEEN 1 AND 3;
HAVING
Es usada en combinaciones con la clausula GROUP BY para restringir los grupos
de filas de retorno para solo cuyos la condicion es TRUE.
Ejemplos:
ROWID
Para cada fila de la base de datos, la pseudocolumna ROWID retorna
la direccion de la fila.
Ejemplos:
SELECT ROWID, last_name
FROM employees
WHERE department_id = 20;
AND OR
En Oracle las condiciones AND y OR pueden ser combinadas en una
sentencia SELECT, INSERT, UPDATE o DELETE.
Cuando combinas estas condiciones, es importante usar soportes, asi la
base de datos tiene un orden de evaluar cada condicion.
Ejemplo:
WHERE condition1
AND condition2,
OR condition_n;
GUID
Si tu quieres generes una nueva Guid(Unica Identificacion) en SQL, podemos usar
la funcion NEWID().
Ejemplo:
SELECT NEWID()
GO
--This will return a new random uniqueidentifies e.g. E75B92A3 - 3299 - 4406 - A913C5CA196B3CAB
ALL
Es un operador el cual selecciona al conjunto total de una consulta.
Ejemplo con el operador UNION ALL
SELECT expression1, expression2, expression_n
FROM tables
WHERE conditions
UNION ALL
SELECT expression1, expression2, expression_n
FROM tables
WHERE conditions;
START WITH
ES usado para seleccionar datos que tiene un relacion jerarquica.
Ejemplo:
FROM suppliers
WHERE EXISTS ( SELECT*
FROM orders
WHERE suppliers.supplier_id=orders.supplier_id)
LIKE
Permite usar comodines para realizar un patron de encuentro.
Ejemplo:
SELECT supplier_name
FROM suppliers
WHERE supplier_name LIKE Hew%;
DECODE
Tiene la funcionalidad de una sentencia IF - THEN - ELSE
Ejemplo:
SELECT supplier_name,
DECODE( supplier_id, 100000, IBM
100001, Microsoft,
100002, Hewlett Packard,
Gateway) result
FROM suppliers;