# 转载请联系

假如你在管理着学生系统,有两张这样的表。

mysql> select * fromstudent;+-----+-----------+--------+-------+--------------+--------------------+

| id | name | gender | birth | department | address |

+-----+-----------+--------+-------+--------------+--------------------+

| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 |

| 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 |

| 903 | 张三 | 女 | 1990 | 中文系 | 湖南省永州市 |

| 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 |

| 905 | 王五 | 女 | 1991 | 英语系 | 福建省厦门市 |

| 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |

+-----+-----------+--------+-------+--------------+--------------------+

6 rows in set (0.00sec)

mysql> select * fromscore;+----+--------+-----------+-------+

| id | stu_id | c_name | grade |

+----+--------+-----------+-------+

| 1 | 901 | 计算机 | 98 |

| 2 | 901 | 英语 | 80 |

| 3 | 902 | 计算机 | 65 |

| 4 | 902 | 中文 | 88 |

| 5 | 903 | 中文 | 95 |

| 6 | 904 | 计算机 | 70 |

| 7 | 904 | 英语 | 92 |

| 8 | 905 | 英语 | 94 |

| 9 | 906 | 计算机 | 90 |

| 10 | 906 | 英语 | 85 |

+----+--------+-----------+-------+

10 rows in set (0.00 sec)

一张是学生信息表,一张是成绩表。由于要经常查看或处理某一个学生的全部信息,必须要把这两张表连接在一起。但是每一次查看或处理都要用SQL语句把两张表连接在一起,SQL语句又这么长,新建一个表包含这两个内容吧,又浪费空间。这时候视图就有用了。

视图是什么?

视图就是一个能够把复杂SQL语句的功能封装起来的一个虚表。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);

方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

创建视图

create view 视图名称 as select语句 # 为了方便辨认,视图名称通常用v_开头

示例:

mysql> create view v_studentinfo as select student.*,c_name,grade from student inner join score on student.id=score.stu_id;

查看视图

mysql> select * fromv_studentinfo;+-----+-----------+--------+-------+--------------+--------------------+-----------+-------+

| id | name | gender | birth | department | address | c_name | grade |

+-----+-----------+--------+-------+--------------+--------------------+-----------+-------+

| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 计算机 | 98 |

| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 英语 | 80 |

| 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 | 计算机 | 65 |

| 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 | 中文 | 88 |

| 903 | 张三 | 女 | 1990 | 中文系 | 湖南省永州市 | 中文 | 95 |

| 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 计算机 | 70 |

| 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 英语 | 92 |

| 905 | 王五 | 女 | 1991 | 英语系 | 福建省厦门市 | 英语 | 94 |

| 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 | 计算机 | 90 |

| 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 | 英语 | 85 |

+-----+-----------+--------+-------+--------------+--------------------+-----------+-------+

删除视图

drop view视图名称;drop view v_studentinfo;

视图的优点

1. 简化查询操作

对于复杂的查询,往往是有多个数据表进行关联查询而得到,对于这个复杂的查询结果保存为一个视图,便于下一次查询时简化查询操作。

2. 逻辑上的独立性,屏蔽了真实表结构更改带来的影响

视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

3. 视图能够对机密数据提供一定安全保护

因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以将基表中重要的字段信息,可以不通过视图给用户。

视图的缺点

1. 性能差

对视图(select)的查询最终转换为对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,也会花费一定时间。

2. 额外增加数据库的复杂度

假如有50张基表,如果有特定需要,可能会新建50张视图,这样数据库就太多表了,太复杂了。

说在后面

视图的确有很多优点,但是因为性能差这一个致命缺点,所以现在用的特别少。

mysql学生成绩视图_mysql的视图相关推荐

  1. mysql学生成绩视图_MySql学习12---视图

    一. 视图介绍 1.1 视图的含义 视图是一个虚拟表,是从数据库中一个或多个表中导出来的表.视图还可以从已经存在的视图的基础上定义. 通俗的讲,视图就是一条SELECT语句执行后返回的结果集.所以我们 ...

  2. mysql创建全外连接的视图_MySQL之视图

    SQL语言之视图 前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用,创建和使用视图以及修改视图这些方面讲解视图. 视图是什么 视图View是一种虚拟的表 ...

  3. mysql left join视图_MySQL之视图

    SQL语言之视图 前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用,创建和使用视图以及修改视图这些方面讲解视图. 视图是什么 视图View是一种虚拟的表 ...

  4. php中使用mysql的视图_MYSQL中视图的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是视图 执行一条SQL,将结果集保存在一张虚拟表中 (相关 ...

  5. mysql视图_mysql之视图详解

    视图就是一个存在于数据库中的虚拟表. 视图本身没有数据,只是通过执行相应的select语句完成获得相应的数据. 目录 CREATE [OR REPLACE] [ALGORITHM = {UNDEFIN ...

  6. mysql 5.6物化视图_mysql 物化视图

    如何让MySQL使用索引进行视图查询?简短的答案,提供了MySQL可以使用的索引. 在这种情况下,最佳索引可能是"覆盖"索引: ... ON highscores (player, ...

  7. mysql 学生成绩管理数据库操作案例

    1.根据SC数据库用SQL语句完成以下任务. */ use SC; /* 1)没及格的每个学生成绩增加5分. */ update SC set Grade=Grade+5 whereGrade< ...

  8. jsp+mysql学生成绩管理系统_jsp+servlet+mysql学生成绩管理系统 javaweb成绩管理系统 - 下载 - 搜珍网...

    压缩包 : c59896403d8d913d853f6c0910dc71.zip 列表 jsp servlet mysql实现的学生成绩管理系统/ jsp servlet mysql实现的学生成绩管理 ...

  9. mysql 学生成绩等级_JSP+SSM+Mysql实现的学生成绩管理系统

    项目简介 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生成绩管理. 难度等级:中等 技术栈 编辑器 Eclipse Version: ...

最新文章

  1. 如何使用Intel vtune profilier?
  2. 未来教育计算机三级课后题答案,未来教育计算机三级课后题答案
  3. 牛津大学计算机科学研究生几年,2020年牛津大学硕士一般几年毕业
  4. [0716] Jsoi B Rsss
  5. 阿里云人脸识别公测使用说明
  6. 来,一起来实现一个符合Promise/A+的Promose(1.0.1版本)
  7. 本地连不上远程服务器mysql_mysql本地连不上远程
  8. Python读取PDF信息插入Word文档
  9. Docker一站式配置Nginx【图文教程】
  10. Linux内核数据结构之哈希表
  11. Django验证码*异步方案Celery之Celery介绍和使用(Celery介绍、创建Celery实例并加载配置、加载Celery配置、定义发送短信任务、启动Celery服务、调用发送短信任务)
  12. 基于Web的文件管理系统,支持Office、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点
  13. 量化投资 -- 技术篇(6)投资组合策略性能评价(上)
  14. Alkyne-PEG-Amine,Alkyne-PEG-NH2 炔基PEG氨基
  15. 美好只在一瞬间[frwy]
  16. python英译汉库模块_Python 进阶之路-翻译模块
  17. c++日志工具之——log4cplus
  18. css display flew 伸缩盒模型
  19. BufferedImage是什么意思?
  20. html5黑板源码,HTML5/Canvas黑板涂鸦动画

热门文章

  1. 在Angular中添加第三方库jQuery、bootstrap
  2. python程序设计实验七_Python程序设计实验报告七:组合数据类型
  3. spring mvc请求的时候是如何找到正确的Controller
  4. Unity Shader 记录
  5. List 中的元素排序
  6. linux源代码剖析之一
  7. arcgis怎么只显示一个图斑_森林监测、图斑核查必备技能
  8. C#------如何获取本机IP地址
  9. PHP利用memcache缓存技术提高响应速度
  10. FPGA实现VGA显示(一)——————屏幕驱动及color_bar显示