mysql comúnmente utilizado enunciado siete: operaciones de consulta en DQL

1 Operación de acumulación

La estructura de la tabla es la siguiente

Inserte la descripción de la imagen aquí

demanda

Conoce el puntaje, encuentra el peor ranking. Los resultados se clasifican en orden ascendente de calificación.

Declaración SQL:

select grade, sum(number) over(order by grade) as t_rank
from class_grade
order by grade;

Algunos podrían tener una versión de mysql 不支持over()函数, 8.0más que solo soporte.

2 Crea una vista

La estructura de la tabla es la siguiente

Inserte la descripción de la imagen aquí

demanda

Creado 视图actor_name_view, que contiene solo first_namey last_namedos, y dos columnas renombradas first_namecomo first_name_v, last_namecambiado a last_name_v.

Declaración SQL

create view actor_name_view as
select first_name as first_name_v, last_name as last_name_v from actor;

resultado de la operación

Inserte la descripción de la imagen aquí

3 Conexión correcta

La estructura de la tabla es la siguiente

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

demanda

Encuentre que todos los empleados del departamento han sido asignados last_namey first_name, además dept_no, el personal temporal no es una asignación específica del sector.

Declaración SQL

select e.last_name, e.first_name, d.dept_no from dept_emp as d
right join employees as e
on d.emp_no = e.emp_no;

# select e.last_name, e.first_name, d.dept_no from employees as e
# left join dept_emp as d
# on e.emp_no = d.emp_no;

Este tipo de pregunta 左连接se 右连接puede utilizar para obtener el resultado correcto.

resultado de la operación

Inserte la descripción de la imagen aquí

4 Consulta izquierda, condiciones adicionales

La estructura de la tabla es la siguiente

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

demanda

分类为nullLa película idque se va a consultar comienza con 及名称.

Declaración SQL

select f.film_id, f.title from film as f
left join film_category as fc
on f.film_id = fc.film_id
where category_id is NULL;

Análisis, la consulta conjunta de las tres tablas es más complicada. La declaración anterior se puede dividir en dos partes.

select f.film_id, f.title from film as f
left join film_category as fc
on f.film_id = fc.film_id;

El resultado de ejecución de esta parte es
Inserte la descripción de la imagen aquí
y luego usa la condición para filtrar los registros deseados.

Por supuesto, también puede joinusar directamente la subconsulta sin usar la declaración

select film_id, title from film
where film_id not in (select film_id from film_category);

Inserte la descripción de la imagen aquí
Se puede comparar con otro problema que registré .

5 existspalabras clave

La estructura de la tabla es la siguiente

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

demanda

Encuentra toda la información de los empleados que no están asignados a un departamento específico

Declaración SQL

select * from employees
where not exists (select emp_no from dept_emp where employees.emp_no = dept_emp.emp_no);

Inserte la descripción de la imagen aquí
Por supuesto que también puedes usar not inen su lugar

select * from employees where emp_no 
not in (select emp_no from dept_emp);

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Awt_FuDongLai/article/details/114678646
Recomendado
Clasificación