[MySQL] Não é apenas uma prática abrangente de consulta multi-tabela

prefácio

  Oi pessoal! Terminamos de estudar consultas multitabelas e hoje vamos testar o que aprendemos. Esta edição é principalmente um curso prático para conteúdo relacionado a consultas multitabelas. Você pode tentar digitá-lo sozinho primeiro e pode verificar o código se não puder.

 

 Índice

prefácio

 Índice

questões práticas

1. Consultar o nome, idade, cargo, informações do departamento do funcionário (conexão interna implícita)

2. Consultar o nome, idade, cargo e informações do departamento de funcionários com menos de 30 anos (exibir link interno)

3. Consulte o ID e o nome do departamento do funcionário

4. Consultar todos os funcionários com mais de 40 anos e o nome do departamento a que pertencem; se o funcionário não estiver atribuído a um departamento, também deve ser exibido

# use junção à esquerda

5. Consultar o nível salarial de todos os funcionários

6. Consultar as informações e níveis salariais de todos os funcionários do "Departamento de P&D"

7. Consultar a média salarial dos funcionários do departamento de marketing

8. Consultar informações de funcionários com salário maior que Cen Shen

9. Consultar informações sobre funcionários com salário superior à média

10. Consultar funcionários cujo salário é inferior à média salarial do departamento

11. Consulte todas as informações dos funcionários e conte o número de funcionários do departamento

12. Consulte a seleção de curso de todos os alunos, exiba o nome do aluno, o número do aluno e o nome do curso

 Resumir


questões práticas

1. Consultar o nome, idade, cargo, informações do departamento do funcionário (conexão interna implícita)

select e.name'姓名',age,d.name '部门',job from emp e,dept d where e.dept_id = d.id;

2. Consultar o nome, idade, cargo e informações do departamento de funcionários com menos de 30 anos (exibir link interno)

select e.name '姓名', e.age '年龄', job '职位', d.name '部门'
from emp e
         inner join dept d on e.dept_id = d.id
where e.age < 30;

3. Consulte o ID e o nome do departamento do funcionário

select distinct d.id,d.name from dept d,emp e where e.dept_id=d.id;

  

4. Consultar todos os funcionários com mais de 40 anos e o nome do departamento a que pertencem; se o funcionário não estiver atribuído a um departamento, também deve ser exibido

# use junção à esquerda

select e.name, d.name
from emp e
         left join dept d on e.dept_id = d.id
where e.age > 40;

 Crie uma tabela salarial, insira dados e conclua as seguintes operações necessárias

Criar folha de pagamento

create table salgrade(
gradeint,
losalint,
hisalint
)comment'薪资登记表';

inserir dados 

insert into salgrade values(1,0,2000);
insert into salgrade values(2,2001,5000);
insert into salgrade values(3,5001,8000);
insert into salgrade values(4,8001,10000);
insert into salgrade values(5,10001,15000);
insert into salgrade values(6,15001,100000);

5. Consultar o nível salarial de todos os funcionários

dica:

Tabela: emp e salgrade

Condição de ingresso: emp.salary>=salgrade.losalandemp.salary<=salgrade.hisal

Condição: determine a qual intervalo pertence

select e.*, s.grade
from emp e,
     salgrade s
where e.salary >= s.losal
  and e.salary <= s.hisal;

ou 

select e.*, s.grade
from emp e,
     salgrade s
where e.salary between s.losal and s.hisal;

6. Consultar as informações e níveis salariais de todos os funcionários do "Departamento de P&D"

dica:

Tabela: emp, salgrade, dept

Condição de ingresso: emp.salary>=salgrade.losalandemp.salary<=salgrade.hisal

Condição: dept.name='Departamento de P&D'

select e.*,s.grade from emp e,salgrade s,dept d
where(e.dept_id=d.id)and
(e.salary between s.losal and s.hisal)and d.name='研发部';

7. Consultar a média salarial dos funcionários do departamento de marketing

dica:

Condição de conexão emp.dept_id=dept.id

Condição dept.name='Departamento de Marketing'

função agregada avg()

select avg(e.salary)'平均工资'
from emp e,
dept d
where e.dept_id=d.id
and d.name='市场部';

8. Consultar informações de funcionários com salário maior que Cen Shen

select*
from emp e,
dept d
where e.dept_id=d.id
and e.salary>(select e1.salary from emp e1 where e1.name='岑参');

9. Consultar informações sobre funcionários com salário superior à média

select*
from emp
where emp.salary>(select avg(salary)from emp);

10. Consultar funcionários cujo salário é inferior à média salarial do departamento

select*
from emp e,
     dept d
where e.dept_id = d.id
group by e.dept_id
having e.salary < (select avg(e1.salary) from emp e1);

11. Consulte todas as informações dos funcionários e conte o número de funcionários do departamento

select d.id, d.name, (select count(*) from emp e where e.dept_id = d.id) '人数'
from dept d;

12. Consulte a seleção de curso de todos os alunos, exiba o nome do aluno, o número do aluno e o nome do curso

dica:

表:student_course,student,course

Condição de contato: student.id=student_course.studentidcourse.id=student_course.studentid 

select s.name '姓名', s.no 学号, c.name '课程名称'
from course c,
     student_course sc,
     student s
where s.id = sc.studentid
  and sc.courseid = c.id;

 Resumir

Este é o fim deste exercício, espero que você possa aprender alguma coisa! Quando você se depara com um assunto que não conhece, deve revisar o conhecimento anterior a tempo! Ansioso para vê-lo na próxima vez!

Acho que você gosta

Origin blog.csdn.net/m0_64857213/article/details/131378897
Recomendado
Clasificación