每日面经
- 考察点:数据库与 SQL
- 题目:数据库了解吗?说说左连接,右链接,内链接分别是什么
两个表用 INNER JOIN 连接,条件子句用 ON 连接
# 查询学生对应的课程名称
mysql> SELECT s.sname, c.cname FROM student s INNER JOIN course c ON s.course_id = c.cid;
左外连接
mysql> SELECT s.sname, c.cname FROM student s LEFT JOIN course c on s.course_id = c.cid;
根据表 1 的返回记录来展示结果,如果表 1 的数据在表 2 中没有结果,那么显示为 NULL
右外连接
mysql> SELECT s.sname, c.cname FROM student s RIGHT JOIN course c on s.course_id = c.cid;
同左外连接原理,显示右表的全部记录。
使用外连接查询时,根据需要是否显示那边的全部记录,来选择是用左连接还是右连接。
关系型数据库的表连接,目的是将多个表的信息综合起来展示的一种手段,
通常有内连接,左外连接,右外连接和mysql不支持的全连接
内连接是指在两个表用 SELECT * FROM TABLE_A a INNER JOIN TABLE_B b on a.id = b.id
类似语句,将查询结果会展示两个表格中同时满足双方条件的记录并展示在一起。不能同时满足两个表中条件的数据将完全不展示。
左外连接是用 左边比表格为准去右侧做匹配,会展示所有左表内容和能与之匹配的右表内容,若右表无法和左表匹配则右侧表格的字段显示NULL,SQL语句如下:
SELECT * FROM TABLE_A a LEFT JOIN TABLE_B b on a.id = b.id
右连接和左连接同理,取的基准相反,不另做解释