【MySQL】内连接和外连接 自然连接 using
SQL99语法的七种Join
内连接
SQL92语法实现2张表的内连接:
#练习:查询所有的员工的last_name , department_name信息 SELECT employee_id, department_name FROM employees e,departments d WHERE e.`department_id`=Id.`department_id`;
SQL99语法实现2张表的内连接:
SELECT last_name , department_name FROM employees e
JoIN departments d ON e.`department_id` = d.`department_id`;
SQL99语法实现3张表的内连接:
SELECT last_name , department_name , city FROM employees e
JOIN departments d ON e.`department_id` = d.`department_id` JOIN locations l ON d.`location_idT` = l.`location_id`;
外连接
MysQL不支持sQL92语法中外连接的写法!支持SQL99
SQL99语法中使用Join ...ON的方式实现多表的查询。这种方式也能解决外连接的问题。MySQL是支持此种方式! SQL99语法如何实现多表的查询。
练习查询所有的员工的last_name , department_name信息
左外连接: SELECT last_name , department name FROM employees e LEFT OUTER JOIN departments d ON e.`department_id` = d.`department_id `; #右外连接: SELECT last_narje , department name FROM employees e RIGHT OUTER JOIN departments d ON e.`department_idT = d.`department_id`;
#满外连接: Mysql 不支持满外连接 oracel 支持
SELECT last_narje , department name
FROM employees e
Full OUTER JOIN departments d ON e.`department_idT = d.`department_id`;
Mysql 实现满外连接的效果 需要用UNnion,将一下两个图UNion再一起,就实现了满外连接
SQL99语法的新特性1:自然连接
SQL99语法的新特性2:USING
你能看出与自然连接NATURALJOIN 不同的是,USING指定了具体的相同的字段名称,你需要在USING的括号()中填入要指定的同名字段。同时使用JOIN...USING可以简化JOIN ON的等值连接。它与下面的SQL查询结果是相同的:
编程是个人爱好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix