本文共 1508 字,大约阅读时间需要 5 分钟。
内连接是数据库查询中最常见的连接类型,用于将两个或多个表中的数据联合起来。内连接的特点是只返回两个表中都存在的记录。
隐式内连接是指在查询中未明确使用INNER JOIN或JOIN关键字,而是通过设置WHERE子句中的条件来实现的连接。这种方式虽然简单,但不够直观。
select student.id, teacher.t_id from student, teacher;
select s.id, t.t_id from student s, teacher t where s.teacher_id = t.t_id;
注意事项:
INNER JOININNER JOIN是显式内连接的语法,用于明确指定连接条件并保留只有两个表中都存在的记录。
select * from tb_emp einner join tb_dept d on e.dept_id = d.id;
注意事项:
INNER JOIN可以省略,但使用JOIN关键字时可以更灵活地指定连接条件。外连接允许查询结果中包含只存在于一个表中的记录,同时还可以关联到另一个表的数据。
LEFT JOIN)左外连接可以在查询中包含左表的所有记录,即使右表没有对应的记录。
select * from tb_emp eleft outer join tb_dept d on e.dept_id = d.id;
RIGHT JOIN)右外连接则可以包含右表的所有记录,即使左表没有对应的记录。
select * from tb_emp eright join tb_dept d on e.dept_id = d.id;
自连查询是指一个表连接到另一个表,两个表都是同一个表。在实际应用中,常用于关联到同一记录的相关信息。
select a.name, b.name from tb_emp ajoin tb_emp b on a.manager_id = b.id;
子查询是一种复杂的查询方式,通常用于一个查询的结果作为另一个查询的条件。
select * from tb_emp where dept_id = (select id from tb_dept where name = '市场部');
注意事项:
组合查询可以将多个查询的结果合并到一起,通常使用UNION或UNION ALL关键字。
select name from tb_emp where salary > 8000UNIONselect * from tb_emp where age > 40;
注意事项:
UNION时,确保两个查询返回的字段完全一致,否则可能会导致错误。UNION ALL与UNION的区别在于是否保留重复记录。OUTER JOIN与LEFT JOIN的区别。转载地址:http://dchfk.baihongyu.com/