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 una mesa de empleados empleados con el siguiente perfil:
Hay un perfil dept_manager de tabla de líder de departamento de la siguiente manera:
Requisitos de escritura:
Encuentre todos los empleados emp_no que no sean jefes de departamento. El ejemplo anterior da como resultado:
Ideas para resolver problemas:
Código de resolución de problemas:
# 解法一:
select employees.emp_no from employees
left join dept_manager
on employees.emp_no=dept_manager.emp_no
where dept_no is null;
# 解法二:
select employees.emp_no from employees
where emp_no not in (
select emp_no from dept_manager);
Resumen de comparación:
- Esta pregunta examina principalmente el uso de combinaciones de tablas múltiples, donde el filtrado de condiciones y las subconsultas, que son relativamente simples
Pregunta 2 (Dificultad: Fácil)
Hay una mesa de empleados empleados con el siguiente perfil:
Requisitos de escritura:
Encuentre toda la información de los empleados en la tabla de empleados cuyo emp_no sea un número impar y cuyo apellido no sea Mary, y organícelos en orden inverso por fecha_contratación. Los resultados de la consulta del ejemplo anterior son los siguientes:
Ideas para resolver problemas:
Código de resolución de problemas:
# 解法一:
select * from employees
where emp_no % 2
and last_name <> 'Mary'
order by hire_date desc;
# 解法二:
select * from employees
where emp_no & 1
and last_name != 'Mary'
order by hire_date desc;
Resumen de comparación:
- Juicio no es igual a usar <> o !=
- El método para juzgar números pares e impares primero piensa en dividir 2 y tomar el resto como 1, pero de hecho, es más inteligente usar operaciones con bits. La regla es:
1 & número impar = 1; 1 & número par = 0 . Por lo tanto, para juzgar si un número (la premisa es un número entero) es par o impar, puede usar directamente un número determinado y 1 para realizar un AND bit a bit. - Para obtener información detallada sobre el desarrollo, consulte la publicación del blog
Pregunta 3 (Dificultad: Fácil)
Existe un perfil de salarios escala salarial de la siguiente manera:
Requisitos de escritura:
Obtenga el emp_no del empleado con el segundo salario más alto y su salario correspondiente.Si hay varios empleados con el segundo salario más alto, genere todos los emp_no y el salario del empleado correspondiente, y clasifíquelos en orden ascendente de emp_no.
Ideas para resolver problemas:
Código de resolución de problemas:
select emp_no, salary from salaries
where salary = (
select distinct salary from salaries
order by salary desc limit 1, 1)
order by emp_no;
Resumen de los puntos clave:
- Preste atención a las limitaciones del uso límite, donde el uso de + subconsulta es más completo
Pregunta 4 (Dificultad: Fácil)
La tabla de empleados existente es la siguiente:
Requisitos de escritura:
Concatene el apellido y el nombre de todos los empleados en la tabla de empleados como Nombre, separados por un espacio. (Nota: sqllite, la concatenación de cadenas es el símbolo ||, no admite la función concat, mysql admite la función concat).
Ideas para resolver problemas:
Código de resolución de problemas:
select CONCAT(e.last_name,' ',e.first_name) as 'Name'
from employees as e;
Resumen de los puntos clave:
- Investigue principalmente el uso de la función concat. La función de la función concat es: concatenar varias cadenas en una cadena, sintaxis: concat(str1, str2,...) El resultado devuelto es la cadena generada por los parámetros de conexión, si hay es uno El parámetro es nulo, el valor de retorno es nulo .
Pregunta 5 (Dificultad: Fácil)
El tema ha ejecutado primero la siguiente declaración:
Requisitos de escritura:
Para el lote de actores de tabla, inserte los siguientes datos (¡no puede haber 2 declaraciones de inserción!)
Código de resolución de problemas:
insert into actor
VALUES(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33');
Resumen de comparación:
- Examine principalmente el uso de insertar para insertar datos.
Método 1: insertar en el nombre de la tabla (nombre del campo,...) valores (valor 1,...);
método 2: insertar en el conjunto del nombre de la tabla campo=valor,campo=valor ,.. .; - El Modo 1 admite la inserción de varias filas a la vez, la sintaxis es la siguiente: insertar en el nombre de la tabla (nombre del campo, ..) valores (valor, ..), (valor,...),...; y admite subconsultas , la sintaxis es la siguiente: insertar en la instrucción de consulta de nombre de tabla;