子查询: 首先来看一下子查询,所谓的子查询就是一个查询语句在嵌套一个查询语句。 关于子查询这里需要注意两点: 1:内层查询必须使用()括起来。 2:在执行的时候,先执行内层查询,得到结果后将此结果返回给外层查询,最后再执行外层查询。 下面来看两个实例以便我们更好的理解。 实例1:显示a表和b表中都有的员工信息 select * from a where 姓名 in (select 姓名 from b) 实例2:显示a表中有b表中没有的员工信息 select * from a where 姓名 not in (select * from b)
多表操作:
来说一下多表连接的方法。有两种方法笛卡尔乘积和join on连接。下面详细的介绍这两种连接方法。 1:笛卡尔乘积(交叉连接) 语法: Select 字段名列表 from 表名1,表名2 …… [where条件] (默认产生的记录总数=两个数记录乘积) 实例:显示员工表和公司表中员工的正确信息 select 员工表.姓名,性别,年龄,公司名称,地址 from 员工表,公司表 where 员工表.姓名=公司表.姓名 2:join in连接 Join on连接可以分为一下几种连接: 内连接:inner join 必须是满足条件的记录 左外连接:left join 显示左表所有的记录,如果右表没有与之相对应记录则相应字段为空 右外连接:right join显示右表所有的记录,如果左表没有与之相对应记录则相应字段为空 全外连接:显示所有记录,如果另一个表中没有与之相应得记录,则相应字段为空
内连接语法: Select 字段名列表 from 表名1 inner join 表名2 on 条件 实例:以内连接显示员工表和公司表的正确信息 select 员工表.姓名,性别,年龄,公司名称,地址 from 员工表 inner join 公司表 on 员工表.姓名=公司表.姓名
左外连接语法: Select 字段名列表 from 表名1 left join 公司表 on 条件 实例:用左外连接显示员工表和公司表的信息 右外连接和左外连接用法本质是一样的在这就不多介绍,按着葫芦画瓢就OK了。
全外连接: 现在看全外连接我们通过个实例来了解它。 实例:用全外连接显示三个表的数据 select 员工表.姓名,性别,年龄,公司名称,地址,网址 from 员工表 full join 公司表 on 员工表.姓名=公司表.姓名 full join 网址表 on 公司表.公司名称=网址表.公司名
好了多表操作就说这些了。
联合: 联合的作用是显示几个表的内容在一个表上。 注意: 1:每个select语句字段必须要一致 2:如果字段名不同,则以第一个select语句为准 3:要合并的数据类型必须兼容,即类型可以不同,但必须可以转换 实例:显示软件班和网络班的信息在一个表上 select * from 软件班 union select * from 网络班 ・重复的记录只显示一条,如果显示所有要用:all,例如上面的实例要显示全部则改为: select * from 软件班 union all select * from 网络班
本篇文章又要到了画句号的时候,本片文章讲的都是对多个表进行操作的的内容,灵活运用对多表的操作将大大提高工作效率。