1 Opération d'accumulation
La structure du tableau est la suivante
demande
Connaissez le score, trouvez le pire classement. Les résultats sont triés par ordre croissant de notes.
Instruction SQL:
select grade, sum(number) over(order by grade) as t_rank
from class_grade
order by grade;
Certains pourraient la version mysql 不支持over()函数
, 8.0
plus qu'un simple support.
2 Créer une vue
La structure du tableau est la suivante
demande
Créé 视图actor_name_view
, contenant seulement first_name
et last_name
deux, et deux colonnes rebaptisés first_name
comme first_name_v
, last_name
changé à last_name_v
.
Instruction SQL
create view actor_name_view as
select first_name as first_name_v, last_name as last_name_v from actor;
résultat de l'opération
3 Connexion droite
La structure du tableau est la suivante
demande
Trouver tous les employés du département ont été affectés last_name
et first_name
ainsi dept_no
, y compris le personnel temporaire n'est pas une allocation sectorielle.
Instruction 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;
Ce type de question 左连接
peut 右连接
être utilisé pour obtenir le résultat correct.
résultat de l'opération
4 Requête de gauche, conditions supplémentaires
La structure du tableau est la suivante
demande
分类为null
Le film id
à interroger commence par 及名称
.
Instruction 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;
Analyse, la requête conjointe des trois tables est plus compliquée. La déclaration ci-dessus peut être divisée en deux parties.
select f.film_id, f.title from film as f
left join film_category as fc
on f.film_id = fc.film_id;
Le résultat en cours de cette partie est
, puis utilisez la condition pour filtrer les enregistrements souhaités.
Bien sûr, vous pouvez également join
utiliser directement la sous-requête sans utiliser l' instruction
select film_id, title from film
where film_id not in (select film_id from film_category);
Cela peut être comparé à un autre problème que j'ai enregistré .
5 exists
mots-clés
La structure du tableau est la suivante
demande
Retrouvez toutes les informations des collaborateurs qui ne sont pas affectés à un service spécifique
Instruction SQL
select * from employees
where not exists (select emp_no from dept_emp where employees.emp_no = dept_emp.emp_no);
Bien sûr, vous pouvez également utiliser à la not in
place
select * from employees where emp_no
not in (select emp_no from dept_emp);