Sei sulla pagina 1di 15

Ingeniera en

Informtica

GUIA FINAL SQL

NOMBRE: Martin Gonzalez- David Agero


CARRERA: Ingeniera en Informtica
ASIGNATURA: Diseo de Base de Datos
PROFESOR: Mauricio Torres
FECHA: 8/12/2017
Ingeniera en
Informtica
Todas las consultas deben estar en mayscula, las columnas deben usar alias , los
formatos de nmero asociados a dinero deben llevar el signo "$", y separadores de miles.

TO_CHAR
9 : numero
0 : numero, y si no existe el valor es un 0, especial para evitar prdida de valores no significativos.
, : coma. separador de miles.
. : punto separador de decimales.
D: dia del 1 (domingo) al 7 (sbado). DD : dia del mes (1..31(cuando corresponda))
DAY: monday, ., sunday.
MONTH : january december.
MM: 1 al 12. YY : ao dos cifras. YYYY: ao cuatro cifras HH : hora 1 .. 12.
HH24 : hora 0 -23. MI : minutos SS : segundos.

Conctese a la base de datos. Esquema HR. User: HR password: HR

Al estar ya conectado (recuerde los pasos indicados por el docente en clases, ante cualquier duda indquele
de inmediato), pero antes de empezar a desarrollar su gua realice lo siguiente:

CREATE TABLE PRUEBASQL


AS
SELECT * FROM EMPLOYEES;

Grupo 1) 3 puntos cada consulta.

Aplicacin de consultas sobre una tabla. Uso de funciones y aplicacin de restricciones con clusula
WHERE. Cuando no se especifique los datos a mostrar en la consulta, seleccione los datos ms significativos
de la tabla (al menos 5 de ellos).

1) Muestre el nombre, apellido y salario de todos los empleados que ganan ms de 5000 y su nombre
termina con n o vocal.

SELECT FIRST_NAME NOMBRE, LAST_NAME APELLIDO,


TO_CHAR(SALARY, '$99,999,999') SALARIO
FROM EMPLOYEES
WHERE (SALARY > 5000)
AND (FIRST_NAME LIKE '%n'
OR FIRST_NAME LIKE '%a'
OR FIRST_NAME LIKE '%e'
OR FIRST_NAME LIKE '%i'
OR FIRST_NAME LIKE '%o'
OR FIRST_NAME LIKE '%u');
2) Muestre el nombre completo y el salario de los empleados que llevan ms de 10 aos en la
empresa.

SELECT FIRST_NAME||' '||LAST_NAME AS "NOMBRE COMPLETO",


TO_CHAR(SALARY, '$99,999,999') SALARIO
FROM EMPLOYEES
WHERE MONTHS_BETWEEN(SYSDATE,HIRE_DATE)>120;

3) Muestre el nombre completo, la fecha de contrato de los empleados que llegaron a la empresa
un mircoles.

SELECT FIRST_NAME||' '||LAST_NAME AS "NOMBRE COMPLETO",


NEXT_DAY(HIRE_DATE, 3) AS "FECHA CONTRATO"
FROM EMPLOYEES;

4) Muestre el cdigo del departamento, el nombre y apellido, y el salario de los empleados que ganan
entre 2000 y 8000, ordenados por el departamento en el que trabajan, y dentro del departamento
ordenados por salario.

SELECT DEPARTMENT_ID "CODIGO DEPTO.", FIRST_NAME||' '||LAST_NAME


AS NOMBRE, TO_CHAR(SALARY, '$99,999,999') SALARIO
FROM EMPLOYEES
WHERE SALARY BETWEEN 2000 AND 8000
ORDER BY DEPARTMENT_ID, SALARY;

5) Muestre el nombre del empleado, el salario, aplique un bono en el salario, para las personas que
tienen comisin es de 1000 los que no tienen comisin es de 1500.

SELECT FIRST_NAME NOMBRE, TO_CHAR(SALARY, '$99,999,999')


SALARIO,
CASE WHEN COMMISSION_PCT IS NOT NULL THEN SALARY+1000
ELSE SALARY+1500 END BONO
FROM EMPLOYEES;

6) Indique en un listado quienes tienen comisin y quines no.

SELECT FIRST_NAME NOMBRE, LAST_NAME APELLIDO,


CASE WHEN COMMISSION_PCT IS NOT NULL THEN 'CON COMISION'
ELSE 'SIN COMISION' END COMISION
FROM EMPLOYEES;
7) muestre a todas las personas (nombre, apellido, hire_date) que ingresaron a la empresa en mayo
de cualquier ao.

SELECT FIRST_NAME NOMBRE, LAST_NAME APELLIDO, HIRE_DATE "FECHA


CONTRATO"
FROM EMPLOYEES
WHERE HIRE_DATE LIKE '%/05/%';

8) Muestre a todas las personas (nombre, apellido) cuyo largo del nombre es mayor que el del
apellido.
SELECT FIRST_NAME AS NOMBRE, LAST_NAME AS APELLIDO
FROM EMPLOYEES
WHERE LENGTH(FIRST_NAME) > LENGTH(LAST_NAME);

9) muestre a todas las personas (nombre y apellido) y cuanto deben recibir por sueldo en forma anual.

SELECT FIRST_NAME NOMBRE, LAST_NAME APELLIDO,


TO_CHAR(SALARY*12, '$99,999,999') AS "SALARIO ANUAL"
FROM EMPLOYEES;

10) muestre el nombre de las personas de la siguiente forma. si se llama Juan Prez, debe decir, JUEZ,
Mara Pereira, debe decir, MARA.

SELECT UPPER(SUBSTR(FIRST_NAME,1,2))||UPPER(SUBSTR(LAST_NAME,-
> 2,2)) AS NOMBRE
2 FROM EMPLOYEES;

11) Muestre el nombre de todos los empleados, si y solo si, estas son mujeres y tienen los ojos azules.

12) muestre el apellido del empleado que tiene 6 dedos en un pie.

Grupo 2) 5 puntos cada consulta.

Aplicacin de consultas a ms de una tabla. Utilice cualquier tipo de JOIN. Internos o externos. Cuando no
se especifique los datos a mostrar en la consulta, seleccione los datos ms significativos de la tabla.

1) Muestre el nombre de los empleados y el departamento en que trabajan.

SELECT E.FIRST_NAME NOMBRE, E.LAST_NAME APELLIDO,


D.DEPARTMENT_NAME DEPARTAMENTO
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
ORDER BY D.DEPARTMENT_NAME;

2) muestre todos los cargos que existen en la empresa, por cada cargo muestre los nombres y
apellidos de los empleados.

SELECT E.FIRST_NAME NOMBRE, E.LAST_NAME APELLIDO, J.JOB_TITLE


CARGO
FROM EMPLOYEES E INNER JOIN JOBS J
ON (E.JOB_ID = J.JOB_ID)
ORDER BY J.JOB_TITLE;

3) muestre todos los departamentos que estn en frica.


SELECT D.DEPARTMENT_NAME DEPARTAMENTO, R.REGION_NAME REGION
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON(E.DEPARTMENT_ID=D.DEPARTMENT_ID)
INNER JOIN LOCATIONS L ON(L.LOCATION_ID=D.LOCATION_ID)
INNER JOIN COUNTRIES C ON(C.COUNTRY_ID=L.COUNTRY_ID)
INNER JOIN REGIONS R ON(R.REGION_ID=C.REGION_ID)
WHERE R.REGION_NAME LIKE 'Middle East And Africa';

4) muestre a todos los departamentos que estn en Asia o Amrica.


SELECT D.DEPARTMENT_NAME DEPARTAMENTO, R.REGION_NAME REGION
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON(E.DEPARTMENT_ID=D.DEPARTMENT_ID)
INNER JOIN LOCATIONS L ON(L.LOCATION_ID=D.LOCATION_ID)
INNER JOIN COUNTRIES C ON(C.COUNTRY_ID=L.COUNTRY_ID)
INNER JOIN REGIONS R ON(R.REGION_ID=C.REGION_ID)
WHERE R.REGION_NAME IN('Asia','Americas');

5) muestre los departamentos y su locacin.

SELECT D.DEPARTMENT_NAME DEPARTAMENTO,


L.STREET_ADDRESS||', '||L.CITY||
CASE WHEN L.STATE_PROVINCE IS NULL THEN ''
ELSE ', '||L.STATE_PROVINCE
END AS LOCACION
FROM DEPARTMENTS D INNER JOIN LOCATIONS L
ON (D.LOCATION_ID = L.LOCATION_ID);
6) Muestre el nombre del jefe y el nombre del departamento.

SELECT DISTINCT M.FIRST_NAME||' '||M.LAST_NAME JEFE,


D.DEPARTMENT_NAME DEPARTAMENTO
FROM EMPLOYEES M INNER JOIN EMPLOYEES E
ON (E.MANAGER_ID = M.EMPLOYEE_ID)
INNER JOIN DEPARTMENTS D
ON (D.DEPARTMENT_ID = M.DEPARTMENT_ID)
ORDER BY D.DEPARTMENT_NAME, JEFE;

7) Muestre los nombres de las locaciones con sus respectivos nombres de regiones, si pertenecen a la
regin 1, 2 o 4.

SELECT L.STREET_ADDRESS||', '||L.CITY||


CASE WHEN L.STATE_PROVINCE IS NULL THEN ''
ELSE ', '||L.STATE_PROVINCE
END AS LOCACION,
R.REGION_NAME AS REGION
FROM LOCATIONS L INNER JOIN COUNTRIES C
ON (L.COUNTRY_ID = C.COUNTRY_ID)
INNER JOIN REGIONS R
ON (C.REGION_ID = R.REGION_ID)
WHERE R.REGION_ID IN (1,2,4);

8) Muestre los nombres de los departamentos que tienen su base de operaciones en reino unido.

SELECT D.DEPARTMENT_NAME DEPARTAMENTO, C.COUNTRY_NAME PAIS


FROM DEPARTMENTS D INNER JOIN LOCATIONS L ON
(L.LOCATION_ID=D.LOCATION_ID)
INNER JOIN COUNTRIES C ON (C.COUNTRY_ID=L.COUNTRY_ID)
WHERE COUNTRY_NAME LIKE 'United Kingdom';

9) muestre el cargo de cada jefe.

SELECT W.LAST_NAME AS EMPLEADO,


M.LAST_NAME AS JEFE, J.JOB_TITLE AS "CARGO DEL JEFE"
FROM EMPLOYEES W INNER JOIN EMPLOYEES M
ON (W.MANAGER_ID = M.EMPLOYEE_ID)
INNER JOIN JOBS J
ON (M.JOB_ID = J.JOB_ID)
ORDER BY W.LAST_NAME;
10) muestre los empleados y su cargo, para cada uno de los que trabajan en los departamentos de Sales
y Executive.

SELECT E.LAST_NAME EMPLEADO, J.JOB_TITLE CARGO


FROM EMPLOYEES E INNER JOIN DEPARTMENTS D ON
(D.DEPARTMENT_ID=E.DEPARTMENT_ID)
INNER JOIN JOBS J ON (J.JOB_ID=E.JOB_ID);

11) una todas las tablas de todas las bases de datos de todos los esquemas de todos los computadores
del mundo, utilice el usuario: "illuminati_john" password "New Order".

12) una utilizando un inner full cross join del modo natural outer la tabla de locaciones (locations) y
empleados (employees). no use las manos.

Grupo 3) 5 puntos cada consulta.

Consultas con aplicacin de GROUP BY, y uso de Restricciones HAVING. Cuando no se especifique los datos
a mostrar en la consulta, seleccione los datos ms significativos de la tabla.

1) Muestre la cantidad de empleados por cada cargo.

SELECT J.JOB_TITLE CARGO, COUNT(LAST_NAME) "CANT. EMPLEADOS"


FROM EMPLOYEES E INNER JOIN JOBS J ON(J.JOB_ID=E.JOB_ID)
GROUP BY J.JOB_TITLE;

2) Muestre el total de empleados que trabajan en Asia.

SELECT COUNT(LAST_NAME) "TOTAL EMPLEADOS", R.REGION_NAME REGION


FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON(E.DEPARTMENT_ID=D.DEPARTMENT_ID)
INNER JOIN LOCATIONS L ON(L.LOCATION_ID=D.LOCATION_ID)
INNER JOIN COUNTRIES C ON(C.COUNTRY_ID=L.COUNTRY_ID)
INNER JOIN REGIONS R ON(R.REGION_ID=C.REGION_ID)
WHERE R.REGION_NAME LIKE 'Asia'
GROUP BY R.REGION_NAME;

3) Muestre los departamentos que tienen el pago menor al departamento de Sales.

SELECT D.DEPARTMENT_NAME AS DEPARTAMENTOS


FROM DEPARTMENTS D INNER JOIN EMPLOYEES E
ON (D.DEPARTMENT_ID = E.DEPARTMENT_ID)
GROUP BY D.DEPARTMENT_NAME
HAVING MIN(E.SALARY)<(SELECT MIN(E.SALARY)
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
WHERE D.DEPARTMENT_NAME = 'Sales');

4) muestre el mximo y mnimo sueldo pagado por cargo.

SELECT TO_CHAR(MAX(SALARY), '$99,999,999') MAXIMO,


TO_CHAR(MIN(SALARY), '$99,999,999') MINIMO, J.JOB_TITLE CARGO
FROM EMPLOYEES E INNER JOIN JOBS J ON(E.JOB_ID=J.JOB_ID)
GROUP BY J.JOB_TITLE;

5) Muestre el total en sueldo por regin.

SELECT TO_CHAR(SUM(SALARY), '$99,999,999') "TOTAL SUELDO",


R.REGION_NAME REGION
FROM EMPLOYEES E RIGHT OUTER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
RIGHT OUTER JOIN LOCATIONS L
ON (L.LOCATION_ID = D.LOCATION_ID)
RIGHT OUTER JOIN COUNTRIES C
ON(C.COUNTRY_ID = L.COUNTRY_ID)
RIGHT OUTER JOIN REGIONS R
ON(R.REGION_ID = C.REGION_ID)
GROUP BY R.REGION_NAME;

6) Muestre la cantidad de departamentos que hay por pas.

SELECT COUNT(DEPARTMENT_NAME) "CANT. DEPTOS.", C.COUNTRY_NAME


PAIS
FROM DEPARTMENTS D INNER JOIN LOCATIONS L
ON(L.LOCATION_ID=D.LOCATION_ID)
INNER JOIN COUNTRIES C ON(C.COUNTRY_ID=L.COUNTRY_ID)
GROUP BY C.COUNTRY_NAME;

7) muestre las regiones ordenada por la cantidad de departamentos.

SELECT R.REGION_NAME REGIONES, COUNT(D.DEPARTMENT_ID) "CANTIDAD


DEPTOS."
FROM REGIONS R FULL OUTER JOIN COUNTRIES C
ON (R.REGION_ID = C.REGION_ID)
FULL OUTER JOIN LOCATIONS L
ON (C.COUNTRY_ID = L.COUNTRY_ID)
FULL OUTER JOIN DEPARTMENTS D
ON (L.LOCATION_ID = D.LOCATION_ID)
GROUP BY R.REGION_NAME
ORDER BY COUNT(D.DEPARTMENT_ID);

8) Muestre el promedio de los sueldos pagados por departamento y por cargo.

SELECT TO_CHAR(AVG(E.SALARY), '$99,999,999') "PROMEDIO SUELDO",


D.DEPARTMENT_NAME DEPARTAMENTO, J.JOB_TITLE CARGO
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
INNER JOIN JOBS J
ON (E.JOB_ID = J.JOB_ID)
GROUP BY D.DEPARTMENT_NAME, J.JOB_TITLE;

9) Muestre el total de jefes que existen en la empresa.

SELECT DISTINCT M.LAST_NAME AS JEFES


FROM EMPLOYEES W INNER JOIN EMPLOYEES M
ON (W.MANAGER_ID = M.EMPLOYEE_ID)
ORDER BY M.LAST_NAME;

10) muestre la cantidad de empleados sin comisin en cada cargo.

SELECT COUNT(E.LAST_NAME) AS "CANT. EMPLEADOS", J.JOB_TITLE AS


CARGO
FROM EMPLOYEES E INNER JOIN JOBS J
ON (E.JOB_ID = J.JOB_ID)
WHERE COMMISSION_PCT IS NULL
GROUP BY J.JOB_TITLE;

11) agrupe a todos los empleados por edad, y cumpleaos, agregue el campo regalo con valor no nulo
a esos empleados, no olvide de enviar la tarjeta.

12) cree un grupo que determine cuantos sobrevivirn al ao 2025, especficamente holocausto
zombie, descarte a Steven King, este ya recibi un aviso de que su bnker est listo.

Grupo 4) 5 puntos cada consulta.

Resuelva las consultas planteadas utilizando todo lo aprendido, eso significa que tambin debe usar
variables de sustitucin. Cuando no se especifique los datos a mostrar en la consulta, seleccione los datos
ms significativos de la tabla.
1) muestre todos los empleados y el departamento, de los que ganan ms que <inserte cualquier
apellido de empleado aqu>.

SELECT E.LAST_NAME AS EMPLEADOS, D.DEPARTMENT_NAME AS


DEPARTAMENTO
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
WHERE SALARY > (SELECT SALARY FROM EMPLOYEES WHERE
UPPER(LAST_NAME) = UPPER('&APELLIDO'))
ORDER BY DEPARTMENT_NAME;

2) muestre todos los cargos que tienen ms de <inserte nmero cualquiera aqu> empleados.

SELECT J.JOB_TITLE AS CARGO


FROM JOBS J INNER JOIN EMPLOYEES E
ON (J.JOB_ID = E.JOB_ID)
GROUP BY J.JOB_TITLE
HAVING COUNT(E.LAST_NAME) > &CANTIDAD;

3) muestre los empleados que pertenecen al cargo ms utilizado del departamento <inserte un
nombre de departamento aqu>.

SELECT E.LAST_NAME AS EMPLEADOS, E.JOB_ID AS CARGO,


D.DEPARTMENT_NAME AS DEPARTAMENTO
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
GROUP BY E.JOB_ID;

4) muestre los pases que tienen ms empleados de <inserte nombre de regin cualquiera aqu>.

SELECT COUNT(E.LAST_NAME) AS "CANT EMPLEADOS", C.COUNTRY_NAME


AS "PAIS"
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON(E.DEPARTMENT_ID=D.DEPARTMENT_ID)
INNER JOIN LOCATIONS L ON(L.LOCATION_ID=D.LOCATION_ID)
INNER JOIN COUNTRIES C ON (C.COUNTRY_ID=L.COUNTRY_ID)
INNER JOIN REGIONS R ON(R.REGION_ID=C.REGION_ID)
WHERE R.REGION_NAME LIKE '&PAIS'
GROUP BY C.COUNTRY_NAME;
5) muestre todos los departamentos cuyo sueldo sea mayor que cualquier sueldo del cargo que
incluya la palabra <inserte una palabra aqu>.

SELECT D.DEPARTMENT_NAME DEPARTAMENTO


FROM DEPARTMENTS D INNER JOIN EMPLOYEES E
ON (D.DEPARTMENT_ID = E.DEPARTMENT_ID)
INNER JOIN JOBS J
ON (E.JOB_ID = J.JOB_ID)
GROUP BY D.DEPARTMENT_NAME
HAVING SUM(E.SALARY) > (SELECT SUM(E.SALARY)
FROM EMPLOYEES E INNER JOIN JOBS J
ON (E.JOB_ID = J.JOB_ID)
WHERE UPPER(J.JOB_TITLE) LIKE
UPPER('%&PALABRA%'));

6) muestre todos los departamentos que tengan ms de <inserte un nmero cualquiera aqu>
miembros.

SELECT D.DEPARTMENT_NAME AS DEPARTAMENTOS


FROM DEPARTMENTS D INNER JOIN EMPLOYEES E
ON (D.DEPARTMENT_ID = E.DEPARTMENT_ID)
GROUP BY D.DEPARTMENT_NAME
HAVING COUNT(E.LAST_NAME) > &CANTIDAD;

7) Muestre todos los empleados que ganan ms que el sueldo promedio de <inserte un nombre de
departamento cualquiera aqu>.

SELECT LAST_NAME EMPLEADOS


FROM EMPLOYEES
WHERE SALARY > (SELECT AVG(E.SALARY)
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
GROUP BY D.DEPARTMENT_NAME
HAVING UPPER(D.DEPARTMENT_NAME) =
UPPER('&DEPARTAMENTO'));

8) muestre el nombre de los jefes que tiene ms de <inserte un nmero cualquiera aqu> empleados.

SELECT M.LAST_NAME AS "JEFE", COUNT(E.LAST_NAME) AS "CANTIDAD


EMPLEADOS"
FROM EMPLOYEES E INNER JOIN EMPLOYEES M
ON(E.MANAGER_ID=M.EMPLOYEE_ID)
GROUP BY M.LAST_NAME
HAVING COUNT(E.LAST_NAME)>&INGRESE_CANT;
9) muestre todas las locaciones que pertenezcan a la regin con ms de <inserte un nmero
cualquiera aqu> departamentos.

SELECT L.STREET_ADDRESS || ', ' || L.CITY || ', ' ||


L.STATE_PROVINCE AS LOCALIZACION
FROM DEPARTMENTS D INNER JOIN LOCATIONS L ON(D.LOCATION_ID =
L.LOCATION_ID)
INNER JOIN COUNTRIES C ON(L.COUNTRY_ID = C.COUNTRY_ID)
INNER JOIN REGIONS R ON(C.REGION_ID = R.REGION_ID)
GROUP BY L.STREET_ADDRESS,L.CITY,L.STATE_PROVINCE
HAVING COUNT(D.DEPARTMENT_NAME) > &CANTIDAD_DEPTO;

10) Muestre la desviacin estndar para todos aquellos empleados que estn en el departamento que
tiene un sueldo total mayor a <inserte un nmero cualquiera aqu> pagado de la empresa.

SELECT D.DEPARTMENT_NAME AS "DEPARTAMENTO",


TO_CHAR(SUM(E.SALARY), '$99,999,999') AS "SALARIO DEPARTMENTO",
STDDEV(E.SALARY) AS "DESVIACION ESTANDAR", E.LAST_NAME
AS "APELLIDO"
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON(E.DEPARTMENT_ID=D.DEPARTMENT_ID)
GROUP BY D.DEPARTMENT_NAME, E.LAST_NAME
HAVING SUM(E.SALARY)>&INGRESE;

11) liste a todos los empleados que tienen ms de 5 hijos, dos sobrinos y han sido abuelos en el ltimo
mes y su clave del cajero es <inserte un valor cualquiera aqu>.

12) muestre todos los departamentos donde se ha perdido dinero, y el responsable sigue trabajando,
y que adems se re cuando le preguntan, si y solo si han perdido ms que <inserte un nmero
cualquiera aqu>.
Grupo 5) 2 puntos cada consulta.

Resuelva las siguientes consultas utilizando sentencias del tipo DDL.

1) Inserte un nuevo empleado en la tabla Employees.

INSERT INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME,


EMAIL, PHONE_NUMBER, HIRE_DATE,
JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
VALUES (145, 'Martin', 'Gonzalez', 'LMONT', '192.545.934', SYSDATE,
'AC_ACCOUNT', 7200, NULL,
113, 240)
/

INSERT INTO EMPLOYEES


VALUES (120,'Martin','Gonzalez','LMONT','745.548.3431',TO_DATE ('FEB 03',
1990', 'MON DD, YYYY'),
'SAP_REC',12000,0.4,100,64);

2) Elimine los empleados que pertenecen a los departamentos de Sales, Executive.

DELETE FROM PRUEBASQL


WHERE DEPARTMENT_ID IN ('40', '60')

3) Agregue el campo descuento a los empleados, este es numrico de largo 4.

ALTER TABLE EMPLOYEES


ADD DESCUENTO NUMBER(4);

4) actualice el sueldo para los empleados de cualquier departamento de tecnologas de informacin


en un 50%.

UPDATE PRUEBASQL
SET SALARY = SALARY*1.50
WHERE DEPARTMENT_ID IN(50,24,130);

5) Elimine el campo apellido y salario de la tabla PRUEBASQL.

ALTER TABLE PRUEBASQL


DROP (SALARY,LAST_NAME);
6) agregue una clave primaria a PRUEBASQL por el campo employee_id.

ALTER TABLE PRUEBASQL


MODIFY EMPLOYEE_ID NUMBER(8) PRIMARY KEY;

7) agregue una clave fornea a PRUEBASQL por el campo department_id de Departments.

ALTER TABLE PRUEBASQL


ADD FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENTS;

8) Inserte un empleado en la tabla PRUEBASQL solo con los valores requeridos

INSERT INTO PRUEBASQL (EMPLOYEE_ID, FIRST_NAME, EMAIL,


HIRE_DATE,
JOB_ID)
VALUES (130,'Luis','LMON', '20/03/92','AC_ACCOUNT')

9) para el campo nombre agregue la restriccin NOT NULL.

ALTER TABLE PRUEBASQL


MODIFY FIRST_NAME VARCHAR2(20) NOT NULL;

10) cree una tabla llamada Cargos, debe estar vaca y tener tres campos similares a los campos de la
tabla Jobs.

CREATE TABLE CARGOS(


JOB_ID VARCHAR2(15) NOT NULL,
JOB_TITLE VARCHAR2(30) NOT NULL,
MIN_SALARY NUMBER(8))

11) cree una nueva tabla llamada "El Fin justifica los medios", en ella deje la informacin de la vida de
cada empleado, cuantas veces se ha casado, si tienen amantes, si tienen problemas con la ley, etc.
los datos deben ser reales.

12) actualice el campo edad de empleados, disminyalo en 20 aos, as los empleados se sentirn ms
jvenes y trabajarn mejor, esto debe ser comprobado, en base al contador de alegra de cada
empleado.

Potrebbero piacerti anche