mysql数据库——内连接和外连接
SQL语句的查询顺序:
select选项,字段别名,数据源(单表,多表和子查询[别名]),where 子句(条件判断:从磁盘上开始),group by子句(分组统计,统计函数,分组排序,多字段分组),having子句(判断结果,针对分组统计结果),order by子句(排序,多字段排序),limit子句(限制记录数,分页操作)
连接查询:将多张表(2张或者大于2张表)进行记录的连接,最终的结果是,字段(列)数一定会增加,记录(行)数有可能变化。
连接的分类:内连接、外连接、自然连接、交叉连接,不等连接。
内连接:[inner] join,从左表中取出每一条记录,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留
基本语法: 左表[inner] join 右表 on 左表.字段=右表.字段;
内连接:
两个表作为条件的记录不一样时:
外连接:左连接和右连接
左接连:
左右表作为相等条件记录不同时:
不同的左表:(相当于左右表换位置)
右连接:
验证上一幅图的疑问
交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到
结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查
询条件的数据行数
自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选
择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的
列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。