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
3. Consulte o ID e o nome do departamento do funcionário
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
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!