TECNOLOGICO NACIONAL DE MEXICO
INSTITUTO TECNOLOGICO DE CHILPANCINGO
FERNANDO DE JESUS OLEA VALADEZ N°: 15520325
EMANUEL CARLOS FLORES N° 13520558
PROFESOR: MARIO HERNANDEZ HERNANDEZ
INGENIERIA INFORMATICA
SQL CONSULTAS COMPLETA
TALLER DE BASE DE DATOS
2.1 Muestre todos los datos de la tabla DEPT.
Resultado
2.2 Cree una consulta para mostrar las columnas ename, job, hiredate
y el número de empleado, con el número de empleado en la primer columna.
SELECT EMPNO,ENAME,JOB,HIREDATE
FROM EMP;
Resultado
2.3 Cree una consulta que muestre los puestos sin repetirse de la tabla EMP.
Resultado
2.5 Cargue el script 2.2 y cambia el nombre de las columnas como se muestra
en el ejemplo.
SELECT EMPNO "Emp#", ENAME AS Employee,JOB as Job,HIREDATE
as "Hire Date"
FROM EMP;
Resultado
2.6 Muestre el nombre concatenado al puesto (job) separado por una coma y
un espacio, y nombre la columna “Employee and Title”
Resultado
3.1 Haga una consulta para desplegar el nombre y salario de los empleados
que ganen más de $2,850.
SELECT ENAME, SAL
FROM EMP
where SAL > 2850;
Resultado
3.2 Cree un query para mostrar el nombre del empleado y departamento para
el empleado 7566
Resultado
3.3 Modifique el query 3.1 para desplegar el nombre y salario para todos los
empleados cuyo salario esté fuera del rango de $1,500 y $2,850.
SELECT ENAME, SAL
FROM EMP
WHERE SAL NOT BETWEEN 1500 AND 2850;
Resultado
3.4 Muestre el nombre de empleado, puesto y fecha de ingreso de aquellos
empleados que hayan ingresado entre el 20 de Febrero de 1981 y el 1° de Mayo
de 1981.
Resultado
3.5 Muestre el nombre de empleado y número del departamento para aquellos
empleados que se encuentren en los departamentos 10 o 30 ordenados
alfabéticamente por nombre.
SELECT ENAME, deptno
FROM EMP
WHERE deptno= '10' || deptno = '30'
order by ENAME;
Resultado
3.6 Modifique el script 3.3 para listar el nombre y el salario de los empleados que
ganen más de $1,500 y estén en los departamentos 10 o 30. Etiquete las
columnas como Employee y Month Salary, respectivamente.
Resultado
3.7 Muestre el nombre y fecha de ingreso de cada empleado que haya
Ingresado en 1982.
SELECT ENAME, HIREDATE
FROM EMP
WHERE HIREDATE >= '1982-01-01' AND HIREDATE <='1982-12-31';
Resultado
3.8 Muestre el nombre y el puesto de cada empleado que no sean empleados
de alguien.
Resultado
3.9 Muestre el nombre, el salario y la comisión de los empleados que ganan
comisión. Ordene los datos en forma descendente por salario y comisión.
SELECT ENAME, SAL, COMM
FROM EMP
WHERE COMM is not null
order by SAL AND COMM DESC;
Resultado
3.10 Muestre el nombre de los empleados cuya letra sea una A.
Resultado
3.11 Muestre el nombre de los empleados que tengan dos L en su nombre.
SELECT ENAME
FROM EMP
WHERE ENAME LIKE "%LL%";
Resultado
3.12 Muestre el nombre, puesto y salario de aquellos empleados cuyo puesto
sea CLERK o ANALYST y su salario no sea $1,000, $3,000 o $5,000. Ordene la
salida por salario descendente.
Resultado
3.13 Modifique el script 3.6 para mostrar el nombre, salario, el 30% del salario y
comisión para aquellos que su pago de comisión sea mayor que el 30% de su
salario.
SELECT ename,sal, (SAL*.30) as '30%',
COMM from emp
WHERE COMM >= (SAL*.30);
Resultado
4.1 Haga una consulta para desplegar la fecha actual.
Resultado
4.2 Cree un query para mostrar el número de empleado, el nombre,salario y el
salario incrementado en 15%.
Resultado
4.3 Modifique el query 4.2 para agregar una columna adicional, en la que
obtenga el monto del incremento del salario.
Resultado
4.5 Muestre el nombre de empleado y número de meses trabajados hasta la
fecha, para aquellos que pertenecen al departamento 30, ordenado por los
meses trabajados y por nombre.
Select ENAME , date_format(HIREDATE, '%d - %b - %y') as 'Feche de
ingreso',curdate() as 'Fecha actual',
timestampdiff (month,hiredate,curdate()) AS 'Months Workerd'
FROM EMP
WHERE DEPTNO = '30'
order by ename ;
Resultado
4.6 Haga una consulta que dibuje una gráfica mostrando el nivel de
ingresos del empleado, como se muestra.
Resultado
4.7 Escriba una consulta que muestre el nombre “tipo oración” (la primer letra
mayúscula y el resto en minúsculas) y la longitud del nombre, para aquellos
empleados cuyo nombre empiece ya sea con J, A o M.
SELECT concat(upper(left(ename,1)),lower(substring(ename, 2)))Name,
CHARACTER_LENGTH (ENAME)Length
FROM EMP
WHERE ename LIKE'J%'OR ename Like 'A%'OR ename LIKE'M%';
Resultado
4.8 Muestre el nombre, la fecha de ingreso en formato (dd/mm/yyyy)
y el nombre del día en el que ingresó.
Resultado
4.9 Haga una consulta que muestre la comisión de los empleados. Si el
empleado no tiene muestre el mensaje “No commission”.
SELECT ENAME,
If null(COMM, 'NO COMMISSION') AS
COMM FROM EMP;
Resultado
5.1 Haga una consulta para desplegar el nombre, número de
departamento y el nombre del departamento para todos los
empleados.
Resultado
5.2 Haga una lista única de todos los puestos que hay en el departamento 30.
Select emp.JOB, dept.loc, emp.deptno
from emp, dept
where emp.DEPTNO = dept.deptno and loc = 'chicago';
Resultado
5.3 Escriba un query para mostrar el nombre del empleado, nombre
del departamento y localización para todos los empleados que ganan
una comisión, aunque esta sea 0.
Resultado
5.4 Muestre el nombre de empleado y nombre del departamento para todos los
empleados que tengan una A en su nombre.
select emp.ename, dept.dname
from emp, dept
where emp.DEPTNO = dept.deptno and ename Like "%A%";
Resultado
5.5 Escriba un query que muestre el nombre, el puesto, el número y
el nombre del departamento para aquellos empleados que trabajen
en DALLAS.
Resultado
5.6 Muestre el nombre y número de empleado junto con el nombre y número de
su “jefe”, ordene la salida por el nombre del jefe en descendente, etiquete las
columnas como se muestra en el ejemplo.
Select e.ename'Employee',e.empno'Emp#',ee.ename 'Manger',
ee.mgr'Mgr#'
From emp e, emp ee
where e.mgr = ee.EMPNO
Order by ee.ename DESC;
Resultado
5.8 Cree un query que muestre el nombre del empleado, número de
departamento y los nombres de todos los empleados que trabajan en el mismo
departamento para un empleado dado. De nombres apropiados a las columnas,
ordenarlo por número y nombre de empleado.
Select e.deptno, e.ename'Employee',e.empno'Emp#',ee.ename 'Manger',
ee.mgr'Mgr#'
From emp e, emp ee
where e.mgr = ee.EMPNO
Order by e.deptno;
Resultado
5.9 Haga un query que muestre el nombre, el puesto, el nombre de depto.,
salario y el nivel del salario de todos los empleados.
(Nota: utilice la tabla SALGRADE para obtener el nivel del salario)
SELECT emp.ENAME, emp.JOB, dept.dname, emp.SAL, salgrade.GRADE
from emp inner join dept on emp.deptno = dept.deptno,
salgrade where emp.SAL between salgrade.LOSAL and
salgrade.HISAL;
Resultado
5.10 Cree un query para mostrar el nombre y la fecha de ingreso para aquellos
empleados que hayan sido contratados antes del empleado
BLAKE.
SELECT ENAME , HIREDATE from emp where HIREDATE <
(select HIREDATE from emp where ENAME= 'blake');
6.1. ¿Las funciones de grupo funcionan con varios renglones para
Generar un solo Resultado?
Resultado: Verdadero
6.2.¿Las funciones de grupo incluyen valores nulos en los cálculos?
Respuesta: Falso
6.3. ¿La cláusula WHERE elimina renglones antes de ser incluidos
en el agrupamiento?
Resultado: Verdadero
6.4. Muestre el salario mayor, menor, suma y promedio de todos los
empleados. Redondee los resultados como se muestra. Guarde el archivo
s06q04.sql
Select max(SAL) as 'Maximum', min(SAL) as 'Minimum',
sum(SAL) as 'Sum', round (avg(SAL),0) 'Average'
from emp;
6.5. Modifique el archivo s06q04.sql para mostrar el salario mayor,
menor, suma y Promedio por cada tipo de puesto. Guarde el archivo
s06q05.sql
Resultado
6.6. Escriba un query que muestre el número de personas con el mismo
puesto.
Select job 'JOB' , count(Job) 'COUNT'
from emp
group by (job);
Resultado
6.7. Determine el número de jefes que existen.
Resultado
6.8. Escriba un query que muestre la diferencia entre el salario mayor y el
mínimo.
SELECT truncate((max(SAL)) - min(SAL),0) as 'DIFERENCE'
from emp;
Resultado
6.9. Despliegue el número de jefe y el salario de su empleado que gane menos.
Excluya aquellos cuyo manager sea desconocido.
Excluya aquellos grupos cuyo salario mínimo sea menor a $1000. Ordene la
salida en forma descendente por salario.
Resultado
6.10. Escriba un query para mostrar el nombre del departamento, la localidad,
total de empleados asignados y el promedio salarial para los empleados
asignados a ese departamento. Ordene el resultado por Salario en forma
descendente.
SELECT d.dname, d.loc, count(e.EMPNO) as 'Number of people',
round(avg(e.SAL),2) as 'Salary' from dept d join emp e
where d.deptno = e.deptno
group by (d.dname) order by (Salary) desc;
Resultado
6.11. Modifique el query 10, incluya a todos los posibles departamentos.
Resultado
7.1. Escriba un query para mostrar el nombre del empleado y la fecha de
ingreso para todos los empleados que se encuentren en el mismo
departamento que Blake. Excluya a Blake.
SELECT ename, date_format(HIREDATE,'%d/%d/%Y') AS
'HIREDATE'
from emp
where deptno = 30 and ename <> 'BLAKE';
Resultado
7.2. Cree un query para mostrar el número de empleado y el nombre
y salario, para todos los empleados que ganen más del salario
promedio. Ordene el resultado en orden descendente por salario.
Resultado
7.3. Escriba un query que despliegue el número de empleado y el nombre para
todos los empleados que trabajen en un departamento con un empleado cuyo
nombre tenga una T en su nombre. Guarde su instrucción SQL como
s07q03.sql.
SELECT ENAME, EMPNO, dname
from emp, dept
where emp.DEPTNO = dept.deptno and
dname like "%T%";
Resultado
7.4. Muestre el nombre de empleado, número de departamento, y puesto para
aquellos empleados cuyo departamento esté localizado en Dallas.
Resultado
7.5. Muestre el nombre del empleado y salario para todos los empleados que
reportan a King.
Select ename,SAL,mgr 'Mgr#'
From emp
where mgr <> 7831;
Resultado
7.6. Muestre el número de departamento, nombre del puesto para todos los
empleados del departamento Sales.
Resultado
7.7. Modifique el archivo s07q03.sql para desplegar el número de empleado,
nombre y salario para aquellos empleados que ganen más del salario promedio
y que trabajen en un departamento con un empleado cuyo nombre tenga una T
en su nombre. Guarde el archivo como s07q07.sql
SELECT ENAME, EMPNO, dname, round(avg(SAL),2) as 'Salary'
from emp, dept
where emp.DEPTNO = dept.deptno and
dname like "%T%";
RESULTADO
7.8. Cree un query para desplegar a los empleados que ganen un salario
mayor al salario de todos los que tengan el puesto
CLERK. Ordene los resultados por salario del mayor al menor.
Resultado