美文网首页
MySQL入门:视图、子查询

MySQL入门:视图、子查询

作者: 我的袜子都是洞 | 来源:发表于2018-12-07 23:33 被阅读69次

视图

将查询的结果创建为一个视图。
在视图中没有数据,只有查询语句,当需要通过查询视图中的数据时,根据查询语句到实际的表中查询到数据并显示。

语法:


创建视图基本语法

创建视图例子:


视图SQL语句

使用:
SELECT * FROM empinfo

视图中没有数据,只有创建视图时的SQL语句定义。
在使用视图时才会去执行SQL语句,查询实际的数据。
将多表查询定义为视图,可以大大方便实际查询的日常使用。
使用视图不方便修改数据,容易出错,视图一般用于查看数据。

子查询

需求:
给在北京工作的员工涨工资10%,更新员工表,但工作地点北京在部门表里,通过部门表查询北京的部门编号,根据查询到的部门编号再到员工表中更新。

在某些情况下,增、删、改、查操作需要其他的SELECT语句结果。这个SELECT查询语句就称为子查询。

下面查询操作的为这三张中数据:
部门表dept


部门表dept

员工表emp


员工表emp

工资等级表salgrade


工资等级表salgrade
  1. 单行单列的子查询结果
    显示在北京上班的员工信息
    查询在北京的部门编号
    SQL语句
查询在北京的部门编号

显示在北京上班的员工信息


SQL语句 显示在北京上班的员工信息
  1. 多行单列的子查询结果
    子查询得到多行单列的多个结果值
    显示在北京和上海的员工的信息
    查询北京和上海的部门编号
    SQL语句
查询北京和上海的部门编号

显示在北京和上海的员工的信息


SQL语句 显示在北京和上海的员工的信息
  1. 多行多列的子查询
    案例:显示每个部门工资最多的员工信息


    SQL语句
显示每个部门工资最多的员工信息

子查询替换
显示员工工资超过北京平均工资的人员信息
找北京的部门编号

SQL语句 找北京的部门编号

找北京部门编号对应的员工的平均工资


SQL语句 找北京部门编号对应的员工的平均工资

显示员工工资超过北京平均工资的人员信息


SQL语句 显示员工工资超过北京平均工资的人员信息

表连接实现:


SQL语句 显示员工工资超过北京平均工资的人员信息

比较表连接和子查询
子查询优点:思路简单理解方便,可以解决连接查询不能解决的问题。
子查询缺点:效率低,多个SQL语句,会多次连接数据库服务器发送多次请求。

表连接查询优点:显示效果好,可以显示多张表中的信息。效率高,请求次数少。
表连接查询缺点:连接情况复杂。

相关文章

网友评论

      本文标题:MySQL入门:视图、子查询

      本文链接:https://www.haomeiwen.com/subject/wphfhqtx.html