Ejemplo de Consultas SQL y definiciones

October 12, 2017 | Author: Marely Laredo Reyes | Category: Sql, Data, Computer Data, Data Management, Data Management Software
Share Embed Donate


Short Description

Descripción: Consultas, SQL, ejemplos, definición, UNSMS, Base de datos...

Description

Consultas SQL y definiciones 1.-Crear una consulta que permita mostrar el apellido y salario de los empleados que ganan más de 12 000 select *from employees; SELECT e.last_name, e.salary FROM employees e where e.salary > 12000; 2.- Crear una consulta que permita mostrar el apellido y el número de departamento del empleado No. 176 select e.last_name , d.department_id from employees e , departments d where e.department_id = d.department_id and e.employee_id = 176;

3.-Crear una consulta que permita mostrar el apellido y salario de los empleados que su salario no está en el rango de 5000 y 12 000 select e.last_name, e.salary from employees e where not(e.salary>= 500 and 12000>=e.salary); 4.- Crear una consulta que permita mostrar el apellido, el código de trabajo (job_id), de los empleados que empezaron a laborar entre el 20 de febrero de 2003 y el 1 de mayo de 2005, ordénelo de forma ascendente por fecha select e.last_name , jb.job_id , e.hire_date from employees e, jobs jb where jb.job_id = e.job_id and (e.hire_date between '20/02/03' and '01/05/05') order by hire_date asc; 5.-Crear una consulta que permita mostrar el apellido y el número de departamento de los empleados de los departamentos 20 y 50, en orden alfabético select e.last_name, e.department_id from employees e where (e.department_id=20 or e.department_id=50) order by e.last_name;

6.- Muestre el apellido y la comisión (en soles) de los empleados; cuyos salarios se encuentren entre 5000 y 12 000 y además 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 contratación de los empleados que entraron en el año 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 código 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 comisión, ordénelo 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, código 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 código, 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 más de 5 años en la empresa.

CREATE VIEW SUELDO_EMPLEADO as SELECT CONCAT(employee_id,CONCAT(first_name, last_name)) AS NOMBRE_COMPLETO , (salary + salary*commission_pct/100) AS SALARIO_TOTAL FROM EMPLOYEES WHERE CEIL(MONTHS_BETWEEN(sysdate,EMPLOYEES.hire_date)) > 60; 14.-Construya una vista llamada datos_empleado que permita mostrar el código, nombre completo, correo electrónico, cargo, nombre del departamento y nombre del jefe de todos los empleados que fueron contratados en el mes actual.

CREATE VIEW DATOS_EMPLEADO as SELECT CONCAT(employee_id,CONCAT(e1.first_name, e1.last_name)), e1.email, e1.job_id, d.department_name, e2.first_name FROM (EMPLOYEES e1 INNER JOIN EMPLOYEES e2

ON CEIL(MONTHS_BETWEEN(sysdate, e1.hire_date)) 0 AND DEPARTMENT_ID NOT IN (80,50); 30.-Construya una sentencia que muestre lo siguiente para cualquier empleado

Código 123

Empleado juan Perez

Nombre_jefe Luis Casas

SELECT E.EMPLOYEE_ID CODIGO, E.FIRST_NAME ||' '|| E.LAST_NAME "EMPLEADO", M.FIRST_NAME ||' '|| M.LAST_NAME "NOMBRE JEFE" FROM EMPLOYEES E, EMPLOYEES M WHERE E.MANAGER_ID = M.EMPLOYEE_ID; 31.-Para cada empleado, visualice su número, apellido, salario y salario incrementado en el 15 % y expresado como número entero. Etiquete la columna como New Salary. SELECT EMPLOYEE_ID NUMERO, LAST_NAME APELLIDO, SALARY SALARIO, ROUND(SALARY*1.15) "NEW SALARY" FROM EMPLOYEES; 32.-Escriba una consulta que muestre los apellidos de los empleados con la primera letra en mayúsculas y todas las demás en minúsculas, así como la longitud de los nombres, para todos los empleados cuyos nombres comienzan por J, A o M. Asigne a cada columna la etiqueta correspondiente. Ordene los resultados según los apellidos de los empleados. SELECT INITCAP(LAST_NAME) APELLIDO, LENGTH(FIRST_NAME) "LONGITUD DEL NOMBRE" FROM EMPLOYEES WHERE SUBSTR(FIRST_NAME,1,1) IN ('J','A','M'); 33.-Para cada empleado, muestre su apellido y calcule el número de meses entre el día de hoy y la fecha de contratación.Etiquete la columna como MONTHS_WORKED. Ordene los resultados según el número de meses trabajados. Redondee el número de meses hacia arriba hasta el número entero más próximo. SELECT LAST_NAME APELLIDO, CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) "MONTHS WORKED" FROM EMPLOYEES ORDER BY CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE));

34. -Muestre el apellido de cada empleado, así como la fecha de contratación y la fecha de revisión de salario, que es el primer lunes después de cada seis meses de servicio. Etiquete la columna REVIEW. Formatee las fechas para que aparezca en un formato similar a “Monday, the Thirty-First of July, 2000”. SELECT LAST_NAME APELLIDO,TO_CHAR(HIRE_DATE,'DD')||' '|| TO_CHAR(HIRE_DATE,'DAY MONTH YYYY') "FECHA DE CONTRATACION", TO_CHAR(NEXT_DAY(ADD_MONTHS(HIRE_DATE,6),'LUNES'),'DD')||' '|| TO_CHAR(NEXT_DAY(ADD_MONTHS(HIRE_DATE,6),'LUNES'),'DAY MONTH YYYY') "REVIEW" FROM EMPLOYEES;

35.-Muestre el apellido, la fecha de contratación y el día de la semana en el que comenzó el empleado. Etiquete la columna DAY. Ordene los resultados por día de la semana, comenzando por el lunes. SELECT LAST_NAME APELLIDO, HIRE_DATE FECHA, TO_CHAR (HIRE_DATE, 'DAY') "DAY" FROM EMPLOYEES ORDER BY TO_CHAR(HIRE_DATE, 'DAY');

36.Cree una consulta que muestre el apellido y las comisiones de los empleados. Si un empleado no gana comisión, 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 función DECODE O CASE, escriba una consulta que muestre el grado de todos los empleados basándose en el valor de la columna JOB_ID, según 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

SELECT EMPLOYEE_ID CODIGO, LAST_NAME APELLIDO,

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:

SELECT expression1, expression2, … expression_n aggregate_function ( expression ) FROM tables WHERE conditions GROUP BY expression1, expression2, … expression_n HAVING condition; NOT IN Es usado para ayudar a reducir la necesidad de multiples condiciones OR en una sentencia SELECT, UPDATE, or DELETE. EJEMPLO: expression NOT IN (value1, value2, … value_n); DISTINCT ES usado para quitar duplicados desde el conjunto de resultados de una sentencia SELECT. Ejemplo: SELECT DISTINCT expressions FROM tables WHERE conditions; NOT LIKE Permite usar comodines para realizar un patron de encuentro. Ejemplo: expression NOT LIKE pattern [ESCAPE ‘escape_character’ ] LEVEL En Oracle, el termino LEVEL, se refiere a una pseudocolumna en Oracle que es usad en una consulta jerarquica para identificar el nivel de jerarquia en formato numerico. Ejemplo: SELECT EMPNO, MGR_ID, LEVEL FROM EMPLOYEES E START WITH MGR_ID IS NULL CONNECT BY PRIOR EMPNO = MGR_ID;

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:

SELECT .. start with initial-condition connect by nocycl recurse-condition ANY Es usado para comparar un valor de una lista de subconsulta. Es necesario ser precedido por =,>, ANY (2000, 3000, 4000); CASE Tiene la funcionalidad de una sentencia IF-THEN-ELSE. Ejemplo: CASE [ expression ] WHEN condition_1 THEN result_1 WHEN condition_2 THEN result_2 …. WHEN condition_n THEN result_n ELSE result END BETWEEN Es usado para recuperar valores entre un rango en una declaracion SELECT, INSERT, UPDATE o DELETE. Ejemplo: SELECT * FROM employees WHERE employee_id BETWEEN 25 AND 100; IN Es usado para ayudar a reducir la necesidad de multiples condiciones OR en una sentencia SELECT, INSERT, UPDATE o DELETE. Ejemplo: SELECT* FROM customers WHERE customer_name IN (‘IBM’, ‘Hewlett Packard’, ‘Microsoft’); EXISTS Es usada en combinacion con subconsultas y es considerado ser encontrado, si la subconsult retorna almenos una fila. Ejemplo: SELECT *

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;

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF