mysql学生成绩视图_mysql的视图
# 转载请联系
假如你在管理着学生系统,有两张这样的表。
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的视图相关推荐
- mysql学生成绩视图_MySql学习12---视图
一. 视图介绍 1.1 视图的含义 视图是一个虚拟表,是从数据库中一个或多个表中导出来的表.视图还可以从已经存在的视图的基础上定义. 通俗的讲,视图就是一条SELECT语句执行后返回的结果集.所以我们 ...
- mysql创建全外连接的视图_MySQL之视图
SQL语言之视图 前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用,创建和使用视图以及修改视图这些方面讲解视图. 视图是什么 视图View是一种虚拟的表 ...
- mysql left join视图_MySQL之视图
SQL语言之视图 前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用,创建和使用视图以及修改视图这些方面讲解视图. 视图是什么 视图View是一种虚拟的表 ...
- php中使用mysql的视图_MYSQL中视图的用法介绍(代码示例)
本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是视图 执行一条SQL,将结果集保存在一张虚拟表中 (相关 ...
- mysql视图_mysql之视图详解
视图就是一个存在于数据库中的虚拟表. 视图本身没有数据,只是通过执行相应的select语句完成获得相应的数据. 目录 CREATE [OR REPLACE] [ALGORITHM = {UNDEFIN ...
- mysql 5.6物化视图_mysql 物化视图
如何让MySQL使用索引进行视图查询?简短的答案,提供了MySQL可以使用的索引. 在这种情况下,最佳索引可能是"覆盖"索引: ... ON highscores (player, ...
- mysql 学生成绩管理数据库操作案例
1.根据SC数据库用SQL语句完成以下任务. */ use SC; /* 1)没及格的每个学生成绩增加5分. */ update SC set Grade=Grade+5 whereGrade< ...
- jsp+mysql学生成绩管理系统_jsp+servlet+mysql学生成绩管理系统 javaweb成绩管理系统 - 下载 - 搜珍网...
压缩包 : c59896403d8d913d853f6c0910dc71.zip 列表 jsp servlet mysql实现的学生成绩管理系统/ jsp servlet mysql实现的学生成绩管理 ...
- mysql 学生成绩等级_JSP+SSM+Mysql实现的学生成绩管理系统
项目简介 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生成绩管理. 难度等级:中等 技术栈 编辑器 Eclipse Version: ...
最新文章
- 如何使用Intel vtune profilier?
- 未来教育计算机三级课后题答案,未来教育计算机三级课后题答案
- 牛津大学计算机科学研究生几年,2020年牛津大学硕士一般几年毕业
- [0716] Jsoi B Rsss
- 阿里云人脸识别公测使用说明
- 来,一起来实现一个符合Promise/A+的Promose(1.0.1版本)
- 本地连不上远程服务器mysql_mysql本地连不上远程
- Python读取PDF信息插入Word文档
- Docker一站式配置Nginx【图文教程】
- Linux内核数据结构之哈希表
- Django验证码*异步方案Celery之Celery介绍和使用(Celery介绍、创建Celery实例并加载配置、加载Celery配置、定义发送短信任务、启动Celery服务、调用发送短信任务)
- 基于Web的文件管理系统,支持Office、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点
- 量化投资 -- 技术篇(6)投资组合策略性能评价(上)
- Alkyne-PEG-Amine,Alkyne-PEG-NH2 炔基PEG氨基
- 美好只在一瞬间[frwy]
- python英译汉库模块_Python 进阶之路-翻译模块
- c++日志工具之——log4cplus
- css display flew 伸缩盒模型
- BufferedImage是什么意思?
- html5黑板源码,HTML5/Canvas黑板涂鸦动画