Preguntas de prueba de SQL básico para ingenieros intermedios

1. Verifique el nombre completo, el correo electrónico y el número de teléfono del empleado.

SELECT
concat(first_name,',',last_name),email,phone_int
 //将employees表的所有员工的last_name和first_name拼接起来作为Name
FROM employees;

2. Consultar el nombre completo, salario mensual y salario anual de todos los empleados (salario mensual * 12)

SELECT
first_name,last_name,salary,salary*12 
FROM employees;

3. Consultar el nombre completo, salario mensual y bonificación de fin de año de todos los empleados (salario anual * comisión_pct)

SELECT
first_name,last_name,salary,salary*12*ifnull(commission_pct,0)
//IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。否则,IFNULL函数返回第二个参数。
//佣金百分比 (CommissionPCT)但是佣金百分比,数据库里employees表里的一个列。
 FROM employees;

4. Compruebe qué departamentos y puestos tienen empleados

SELECT DISTINCT department_id,job_id from employees WHERE department_id is not null
//SELECT DISTINCT用于返回唯一不同的值

5. Consultar la información de los empleados que se incorporaron a la empresa después de 1999

SELECT first_name,last_name,hire_date FROM employees WHERE year(hire_date) >= '1999'

Seis, consulta la información del jefe de la empresa.

SELECT first_name,last_name FROM employees WHERE manager_id IS NULL

7. Consultar toda la información de los empleados, ordenar por departamento y salario anual en orden descendente;

SELECT first_name,last_name,salary*12 as total FROM employees ORDER BY department_id,total DESC
//ORDER BY 关键字用于对结果集按照一个列或者多个列进行排列。
//ORDER BY 关键字默认按照升序进行排序。DESC降序

8. Cifre el nombre de usuario, conserve los primeros 3 dígitos del nombre completo del empleado y reemplace los 4 dígitos del medio con *. Si hay caracteres adicionales en el nombre, guárdelo;

SELECT concat(RPAD(substring(concat(first_name,last_name),1,3),7,'*'),
SUBSTRING(concat(first_name,last_name),8)) 
FROM employees

9. Calcule el nombre del empleado y su salario completo;

SELECT first_name,last_name,salary,salary*12*(1+ifnull(commission_pct,0)) FROM employees

10. Consultar la identificación de departamento del empleado, si no hay departamento, imprimir "Departamento no asignado"

SELECT first_name,last_name,ifnull(department_id,'未分配部门') FROM employees

11. Consultar el salario medio de cada departamento

SELECT department_id,AVG(salary) FROM employees WHERE department_id is not null GROUP BY department_id 

12. Consultar los departamentos con salario promedio superior a 8000 y su salario promedio

SELECT department_id,AVG(salary) FROM employees WHERE department_id is not null GROUP BY department_id HAVING AVG(salary)>=8000

Trece, consulta la cantidad de veces que los empleados han cambiado de trabajo

SELECT employee_id,COUNT(employee_id) FROM job_history GROUP BY employee_id

14. Consultar cuántas personas ingresaron a la empresa en 1995, 96, 97 y 98

SELECT year(hire_date),count(employee_id)
FROM employees
WHERE YEAR(hire_date) in ('1995','1996','1997','1998')
GROUP BY YEAR(hire_date)

15. Escriba el nombre del empleado, la identificación del empleado y el departamento al que pertenece el empleado.

SELECT first_name,last_name,department_name FROM employees e JOIN departments d ON e.department_id = d.department_id

16. Salida de información del empleado, incluido el ID del empleado, el nombre,

    department_id,  department_name   location_id     city
SELECT e.employee_id,e.first_name,d.department_id,d.department_name,l.location_id,l.city
FROM employees e JOIN departments d ON e.department_id = d.department_id JOIN locations l ON d.location_id = l.location_id

17. Todos los salarios en la tabla EMPLOYEES están entre el salario más bajo y el salario más alto en la tabla JOB_GRADES.

SELECT e.first_name,e.last_name,e.salary
FROM employees e,job_grades j
WHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal
SELECT e.first_name,e.last_name,e.salary
FROM employees e JOIN job_grades j ON e.salary BETWEEN j.lowest_sal AND j.highest_sal

18. Consultar el nombre, departamento, dirección y ciudad de todos los empleados con bonificaciones.

SELECT e.employee_id,e.first_name,d.department_id,d.department_name,l.location_id,l.city
FROM employees e JOIN departments d ON e.department_id = d.department_id JOIN locations l ON d.location_id = l.location_id
WHERE e.commission_pct IS NOT NULL

19. Consultar la información del gerente del empleado cuyo apellido es 'Ki'

SELECT first_name,last_name FROM employees WHERE employee_id IN (SELECT manager_id FROM employees WHERE last_name LIKE 'Ki%')
//IN操作符允许where子句中规定多个值
//LIKE操作符用于WHERE子句中搜索列中的指定模式

Veinte, consulta la información del empleado con el salario más bajo de la empresa

SELECT first_name,last_name,salary FROM employees WHERE salary = (SELECT MIN(salary) FROM employees)

21. Consultar al empleado con el salario más alto de todos los empleados de la empresa desde 1999

SELECT first_name,last_name,hire_date,salary
FROM employees WHERE salary=
(SELECT MAX(salary) FROM employees WHERE year(hire_date)='1999')
AND year(hire_date) = '1999'
//WHERE子句用于过滤记录

.22. Consultar la información de los empleados que han realizado ST_CLERK

SELECT e.first_name,e.last_name,j.job_id FROM employees e JOIN job_history j ON e.employee_id = j.employee_id WHERE j.job_id = 'ST_CLERK'

Supongo que te gusta

Origin blog.csdn.net/weixin_44051191/article/details/109294387
Recomendado
Clasificación