0% encontró este documento útil (0 votos)
40 vistas

Ruben Duran SQL

El documento describe una práctica de SQL en la que se crea una base de datos llamada talleroperaciones con dos tablas (dept y emp) y se insertan datos en ellas. Luego, se realizan varias consultas SQL sobre estas tablas para obtener, filtrar y ordenar datos de los departamentos y empleados.

Cargado por

Ruben Duran
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas

Ruben Duran SQL

El documento describe una práctica de SQL en la que se crea una base de datos llamada talleroperaciones con dos tablas (dept y emp) y se insertan datos en ellas. Luego, se realizan varias consultas SQL sobre estas tablas para obtener, filtrar y ordenar datos de los departamentos y empleados.

Cargado por

Ruben Duran
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

PRACTICA #1 SQL

Rubén Alexis Duran Morillo


140143179
[email protected]
A. SE CREA LA BASE DE DATOS: create database talleroperaciones.

B. USO LA BASE DE DATOS: use talleroperaciones.

C. CREO LA TABLA DEPT:


create table dept(
deptno int not null primary key,
dname varchar(14),
loc varchar(13)
);
D. CREO LA TABLA EMPLEADOS:
create table emp(
empno int not null primary key,
ename varchar(10),
job varchar(9),
mgr int,
hiredate date,
sal float,
comm float,
deptno int);

E. INSERTO DATOS DE DEPARTAMENTOS:


insert into dept (deptno, dname, loc) values
(10,'accounting','new york'),
(20,'research','dallas'),
(30,'sales','chicago'),
(40,'operations','boston');

F. INSERTO DATOS DE EMPLEADOS:


insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values
(7369,'smith','clerk',7902,'1980-12-17',800,null,20),
(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30),
(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30),
(7566,'JONES','MANAGER',7839,'1981-04-02',2975,Null,20),
(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30),
(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,Null,30),
(7780,'CLARK','MANAGER',7839,'1981-06-09',2450,null,10),
(7788,'SCOTT','ANALIST',7566,'1982-12-09',3000,null,20),
(7839,'KING','PRESIDENT',null,'1981-11-17',5000,null,10),
(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30),
(7876,'ADAMS','CLERK',7788,'1983-01-12',1100,null,20),
(7900,'JAMES','CLERK',7698,'1981-12-03',950,null,30),
(7902,'FORD','ANALYST',7566,'1981-12-03',3000,null,20),
(7934,'MILLER','CLERK',7782,'1982-01-23',1300,null,10);

1. Obtener todos los datos de todos los empleados.


select * from emp

2. Obtener todos los datos de todos los departamentos.


select * from dept

3. Obtener todos los datos de los administrativos (su trabajo es, en inglés, ’CLERK’).
select * from emp where job='clerk'
4. IDEM, pero ordenado por el nombre.
SELECT empno, ename FROM emp ORDER BY ename asc;

5. Obtén el mismo resultado de la pregunta anterior, pero modificando la sentencia


SQL.
SELECT empno, ename, sal FROM emp ORDER BY ename ASC;
6. Obtén el número (código), nombre y salario de los empleados.
SELECT empno, ename, sal FROM emp;

7. Lista los nombres de todos los departamentos.


SELECT dname FROM dept

8. IDEM, pero ordenándolos por nombre.


SELECT deptno, dname FROM dept order by dname

9. IDEM, pero ordenándolo por la ciudad (no se debe seleccionar la ciudad en el


resultado).
SELECT deptno, dname FROM dept order by loc asc;
10. IDEM, pero el resultado debe mostrarse ordenado por la ciudad en orden inverso.
SELECT deptno, loc FROM dept order by loc DESC;

11. Obtener el nombre y empleo de todos los empleados, ordenado por salario.
SELECT ename, job FROM emp order by sal;

12. Obtener el nombre y empleo de todos los empleados, ordenado primero por su
trabajo y luego por su salario.
SELECT ename, job FROM emp order by job, sal;

13. IDEM, pero ordenando inversamente por empleo y normalmente por salario.
SELECT empno, ename, job, sal FROM emp ORDER BY job DESC, sal;

14. Obtén los salarios y las comisiones de los empleados del departamento 30.
SELECT sal, comm, ename FROM emp where deptno='30';
15. IDEM, pero ordenado por comisión.
SELECT empno, ename, comm FROM emp ORDER BY comm;

16. (A) Obtén las comisiones de todos los empleados. (b) Obtén las comisiones de los
empleados de forma que no se repitan.
SELECT DISTINCT comm FROM emp ORDER BY comm;
17. Obtén el nombre de empleado y su comisión SIN FILAS repetidas.
SELECT DISTINCT ename, comm FROM emp;

18. Obtén los nombres de los empleados y sus salarios, de forma que no se repitan filas.
SELECT DISTINCT ename, sal FROM emp;

19. Obtén las comisiones de los empleados y sus números de departamento, de forma
que no se repitan filas:
select distinct comm, deptno from emp
20. Obtén los nuevos salarios de los empleados del departamento 30, que resultaran de
sumar a su salario una bonificación de 1000. Muestra también los nombres de los
empleados:
select empno, sal, comm, sal+comm from emp
where comm is not null
order by empno

21. Lo mismo que la anterior, pero mostrando también su salario original, y haz que la
columna que almacena el nuevo salario se denomine NUEVO SALARIO.

22. Halla los empleados que tienen una comisión superior a la mitad de su salario:

select ename from emp


where comm >sal/2
23. Halla los empleados que no tienen comisión, o que la tengan menor o igual que el 25
% de su salario:
select ename from emp
where comm is null
or
comm <= (0.25*sal)

24. Obtén una lista de nombres de empleados y sus salarios, de forma que en la salida
aparezca en todas las filas \Nombre:" y \Salario:" antes del respectivo campo. Hazlo
de forma que selecciones exactamente tres expresiones:

SELECT 'nombre:'ename,'salario:',sal from emp;


25. Hallar el código, salario y comisión de los empleados cuyo código sea mayor que
7500:
select empno, sal, comm from emp
where empno >7500
26. Obtén todos los datos de los empleados que estén (considerando una ordenación
ASCII por nombre) a partir de la J, inclusive:
select * from emp

27. Obtén el salario, comisión y salario total (salario + comisión) de los empleados con
comisión, ordenando el resultado por número de empleado:
28. Lista la misma información, pero para los empleados que no tienen comisión:

select empno, sal, comm, sal from emp


where comm is null
order by empno
29. Muestra el nombre de los empleados que, teniendo un salario superior a 1000,
tengan como jefe al empleado cuyo código es 7698:
select ename from emp
where sal>1000 and mgr=7698

30. Halla el conjunto complementario del resultado del ejercicio anterior:

select ename from emp


where not (sal>1000 and mgr=7698)
31. Indica para cada empleado el porcentaje que supone su comisión sobre su salario,
ordenando el resultado por el nombre del mismo:
select ename, (comm/sal)*100 from emp

32. Hallar los empleados del departamento 10 cuyo nombre no contiene la cadena LA:
select ename from emp
where deptno=10

33. Obtén los empleados que no son supervisados por ningún otro:

select ename from emp


where mgr is null
34. Obtén los nombres de los departamentos que no sean Ventas (SALES) ni
investigación (RESEARCH). Ordena el resultado por la localidad del departamento:
select dname from dept
where dname not in ('SALES','RESEARCH')
order by loc

35. Deseamos conocer el nombre de los empleados y el código del departamento de los
administrativos (CLERK) que no trabajan en el departamento 10, y cuyo salario es
superior a 800, ordenado por fecha de contratación:
select ename, deptno from emp
where job = 'CLERK' and deptno<>10
order by hiredate

Para los empleados que tengan comisión, obtén sus nombres y el cociente entre su salario y
su comisión (excepto cuando la comisión sea cero), ordenando el resultado por nombre:
select ename, sal/comm from emp
where comm>0
order by 1

1. Lista toda la información sobre los empleados cuyo nombre completo tenga
exactamente 5 caracteres:
select * from emp
where ename like 5

2. Lo mismo, pero para los empleados cuyo nombre tenga al menos cinco letras:
select * from emp
where ename like '5%'

3. Halla los datos de los empleados que, o bien su nombre empieza por A y su salario es
superior a 1000, o bien reciben comisión y trabajan en el departamento 30:
select * from empwhere (ename like 'A %' and sal>1000)
or (comm is not null and deptno=30)
4. Halla el nombre, el salario y el sueldo total de todos los empleados, ordenando el
resultado primero por salario y luego por el sueldo total. En el caso de que no tenga
comisión, el sueldo total debe reflejar solo el salario:
select ename, sal, coalesce(sal+comm, sal) from emp
order by 2,3

También podría gustarte