Introducción: El título proviene de la práctica de programación SQL en línea de Niuke. El contenido del artículo es principalmente para explicar las ideas del blogger, los puntos de vista relevantes y el resumen de los puntos principales al hacer las preguntas. En general, es fácil corregir errores claros, es difícil encontrar errores ocultos y hay un largo camino por recorrer. ¡Lo buscaré!
Pregunta 1 (Dificultad: Fácil)
Hay un perfil de tabla de empleados de la siguiente manera:
Requisitos de escritura:
Encuentre toda la información del último empleado en empleados, el resultado del ejemplo anterior es el siguiente:
Ideas para resolver problemas:
Código de resolución de problemas:
#解法一:
SELECT * FROM employees
ORDER BY hire_date DESC
LIMIT 1;
#解法二:
SELECT * FROM employees
WHERE hire_date = (
SELECT max(hire_date) FROM employees);
Resumen de comparación:
- límite es más conveniente de usar, pero debe tenerse en cuenta que esta situación no se aplica cuando varios datos cumplen el mismo requisito
Pregunta 2 (Dificultad: Fácil)
Hay un perfil de tabla de empleados de la siguiente manera:
Requisitos de escritura:
Encuentre toda la información sobre el penúltimo empleado en la lista de empleados. El resultado del ejemplo anterior es el siguiente:
Nota: Puede haber empleados que comenzaron en la misma fecha, por lo que puede haber más de un empleado con el penúltimo horario de incorporación.
Ideas para resolver problemas:
Código de resolución de problemas:
select * from employees
where hire_date = (
select distinct hire_date from employees
order by hire_date desc limit 2,1
);
Resumen de comparación:
- Frente a la primera pregunta, la segunda pregunta permite la existencia de empleados que se incorporan en la misma fecha, lo que hace inaplicable el límite, que es también el límite del límite.
- Puntos de conocimiento complementarios: la función de la cláusula de límite es limitar el número de resultados de la consulta devueltos. Uso : [select * from table name limit m,n], donde m es el valor de índice del resultado de la consulta, que comienza desde 0 por predeterminado; n es el resultado de la consulta el monto devuelto
Pregunta 3 (Dificultad: Fácil)
Hay una tabla de empleados, los perfiles de los empleados son los siguientes:
Hay una tabla de departamentos, el perfil dept_emp es el siguiente:
Requisitos de escritura:
Encuentre el last_name, first_name y dept_no de todos los empleados que han sido asignados a un departamento. Los empleados de los departamentos no asignados no se muestran. El ejemplo anterior es el siguiente:
Ideas para resolver problemas:
Código de resolución de problemas:
#内联解法
select employees.last_name,employees.first_name,dept_emp.dept_no
from dept_emp
inner join employees
on dept_emp.emp_no=employees.emp_no;
#左连接解法:
select employees.last_name,employees.first_name,dept_emp.dept_no
from dept_emp
left join employees
on dept_emp.emp_no=employees.emp_no
where dept_no is not null;
Resumen de comparación:
- Examine principalmente el uso de la conexión de dos tablas, que es relativamente simple
Pregunta 4 (Dificultad: Fácil)
Existe una escala salarial y los salarios se perfilan de la siguiente manera:
Requisitos de escritura:
Encuentre el número de empleado emp_no con más de 15 registros de salario y su correspondiente número de registro t. El resultado del ejemplo anterior es el siguiente:
Ideas para resolver problemas:
Código de resolución de problemas:
select emp_no, count(*) from salaries
group by emp_no
having count(*)>15;
Resumen de comparación:
- El filtrado después de agrupar utiliza el tener, y el filtrado antes de agrupar utiliza donde
Pregunta 5 (Dificultad: Fácil)
Existe una escala salarial y los salarios se perfilan de la siguiente manera:
Requisitos de escritura:
Averigüe la situación salarial específica de todos los empleados, muestre el mismo salario solo una vez y muéstrelo en orden inverso. El resultado del ejemplo anterior es el siguiente:
Ideas para resolver problemas:
Código de resolución de problemas:
select distinct salary
from salaries
order by salary desc;
Resumen de comparación:
- Examine principalmente el uso de palabras clave distintas y el uso del orden por orden descendente, que es relativamente simple