MySql数据库视图创建与管理_MySQL数据库SQL优化技巧之视图的创建与销毁

本篇主要介绍的是创建简单的视图,和利用视图简化复杂的表连接,以及视图的销毁和使用视图的注意事项。

与前面介绍的创建表、创建索引相似,视图的创建主要是由CREATE VIEW关键字实现的,视图的销毁则是由DROP VIEW关键字实现的。其数据则由SELECT语句定义。语法CREATE VIEW [ (column1,column2……)]ASSELECT FROM [(column1, colum)]为可选项。

97730271152bb2b5e2c24e640040734f.png

缺省时,为子查询结果中的字段名。SELECT语句指明了视图中的字段及其数据。关于视图我们还要强调两点。视图创建后, 在数据字典中只存放视图的定义,而其中的SELECT语句并不执行。只有当用户对视图进行操作时,才按照视图的定义将数据从基本表中取出。

ae92a4e00d80f1fe5ae66073d5edd73d.png

为表中的一-列或者几列信息创建视图,为StudentInfo表中的姓名( sname).生源( address )信息创建一个 视图NameAddress_ View。示例代码如下。CREATE VIEWNameAddress ViewASSELECT sname,address FROM StudentInfo

a445ab0da71eda86a95e75b003f3c594.png

用户可以通过创建视图进行数据查询。例如,一个表有50列,有成千上万行,而用户只需要使用表中的两列数据,这时,我们可以为这两列创建一个视图,在视图中查询注意需要的数据,这样会大大提高查询效率。

创建与表具有不同字段名的视图前面实例创建的视图,并没有特别指明视图的字段名,系统就默认为与表相同的字段名。实际上,创建视图时,我们也可以为表中的数据定义新的字段名。

6b851baa53390ab0203bc9baea4a97a3.png

比如为表创建具有不同字段名的视图并查看其信息为StudentInfo 表中所有男同学的sname、 address 字段创建一-个 视图NewColumnName_View,这两个字段的字段名定义为Boy_ Name和Boy_ _Address代码如下CREATE VIEW NewColumnName_View (Boy_ Name, Boy_ Address,sex)ASSELECT sname, address, sexFROM StudentInfoWHEREsex =,男'

db9359318c02b1de780f35342e9eba8f.png

实际应用时,我们要注意新定义的字段名与表中数据的对应关系。利用视图简化表的复杂连接视图的一个重要用途就是进行复杂的SQL数据处理。通过创建视图,我们可以实现多表之间的复杂连接。将频繁使用的连接定义成视图后,用户就不必每次使用时都要指定复杂的连接条件了。

比如3个相互关联的表学生信息表(StudentInfo)、招生信息表( RecruitInfo)和院系信息表(Department)。在实际应用中,用户一次查询的记录往往分别存储在这3个不同的表中,如查询“李山”同学所在的系以及高考时所在地区的录取分数线信息。

d4baaa9f2eb6e6c5a153bb6e52bb9e44.png

这时,需要的3个字段sname、dname 和dnum分别在这3个不同的表中。如果我们采用连接表的方式查询,每次查询不同的同学都需要通过复杂的连接条件连接一次表, 显然效率低下;而如果为sname、dname和dnum这3个字段的记录创建一个视图,我们只需要进行一次表的连接,而后相关的查询只要访问视图就可以了,明显提高了查询效率。

ae473d952569d8a125115de42b5da8c8.png

创建一视图Join_ View, 包含StudentInfo表中的姓名(sname) 字段、RecruitInfo 表中的系名(dname) 以及Department表中的录取分数(dnum) 的信息。示例代码如下。CREATE VIEW Join ViewASSELECTsname,dname, scoreFROMStudentInfo,Department, RecruitInfoWHERE StudentInfo.address = RecruitInfo. AddressANDStudentInfo.dno = Depar tment . dno

ab52956624793dc0b552df77c9b87202.png

创建了视图Join_ View 后,用户以后需要对姓名(sname)、 所在系名(dname) 以及所在的录取分数(dnum)的信息查询,只要对视图Join_ _View进行操作就可以了,而不必每次都对表进行连接。 只需要使用select * from join view查看就行。

视图的销毁在SQL中,我们可以通过DROP VIEW关键字销毁创建的视图。语法如下。DROP VIEW view_ name销毁视图,只需在DROP VIEW关键字后写入视图的名称即可。

d128d8a334b6ae70eea69a01badac2f8.png

使用视图的几点原则一.般情况下,创建和使用视图应遵循以下几点原则。和表一样,视图必须有唯一的名字。不仅视图之间不允许有相同的名字,并且试图与表也不允许拥有相同的名字。视图的创建个数不受限制, 用户可以创建任意多个视图。用户要创建视图,必须从数据库管理员那里得到创建权限。视图可以嵌套, 即可以创建视图的视图。一些数据库管理系统(如SQL Server) 禁止用户在查询语句中使用ORDER BY子句。

<p> <span style="color:#E53333;font-size:24px;"><strong>主要内容</strong></span> </p> <p> 掌握MyBatis的常用配置,MyBatis的Mapper映射文件的编写,包含select, update, insert和delete,MyBatis映射文件 </p> 之parameters和@Param注解,MyBatis映射文件的resultMap的使用,MyBatis映射之association(一对一)配置与使用,<br /> MyBatis映射之collection(一对多)配置与使用,MyBatis映射之association与collection的复杂使用(一对一与一对多同时使用<br /> ),MyBatis动态SQL之if,choose, when, otherwise,where,set,foreach,分页查询,主键回填,日志配置等技术;掌握<br /> SpringMVC的项目整合配置,@Controller,@RequestMapping,@Resource,@PathVariable,@ResponseBody,<br /> @ModelAttribute,@CookieValue,@Transactional等注解的使用,json数据传值,国际化,拦截器,权限控制,生成日志,文<br /> 件上传下载,日期格式转换等。<br /> <br /> <span style="font-size:24px;color:#E53333;"><strong>开发技术:</strong></span>java,jsp,mysql,MyBatis,jquery,ajax,json,springmvc<br /> <span style="font-size:24px;color:#E53333;"><strong>运行环境</strong>:</span>jdk1.7及以上版本,tomcat7.0及以上版本,mysql5.5及以上版本<br /> <p> <span style="font-size:24px;color:#E53333;"><strong>开发工具: </strong></span>本项目开发工具是Eclipse,也支持myEclipse,Intellij Idea等其他版本开发工具 </p> <p> <span style="font-size:24px;color:#E53333;"><strong>适用人群:</strong></span> </p> <p> 零基础开始讲解MyBatis,SpringMVC,通过项目实战达到精通各种技术的能力,包括权限控制 </p> <div> <br /> </div> <br /> <br />
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-size:13.5pt;font-family:'微软雅黑',sans-serif;color:#3598db;">【为什么要学习这门课】</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;">Linux</span><span style="font-family:'微软雅黑',sans-serif;color:#222226;">创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap. Show me the code. </span></span><span style="font-family:微软雅黑, sans-serif;color:#e03e2d;background-color:#ffffff;">冗谈不够,放码过来!</span><span style="font-family:'微软雅黑',sans-serif;color:#222226;">代码阅读是从基础到提高的必由之路。 </span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;">YOLOv5</span><span style="font-family:'微软雅黑',sans-serif;color:#222226;">是最近推出的轻量且高性能的实时目标检测方法。<span>YOLOv5</span>使用<span>PyTorch</span>实现,含有很多业界前沿和常用的技巧,可以作为很好的代码阅读案例,让我们深入探究其实现原理,其中不少知识点的代码可以作为相关项目的借鉴。</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-size:13.5pt;font-family:'微软雅黑',sans-serif;color:#3598db;">【课程内容与收获】</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;">本课程将详细解析<span>YOLOv5</span>的实现原理和源码,对关键代码使用<span>PyCharm</span>的<span>debug</span>模式逐行分析解读。 本课程将提供注释后的<span>YOLOv5</span>的源码程序文件。</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;"> <img src="https://img-bss.csdnimg.cn/202012061533559839.jpg" alt="课程内容" /></span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-size:13.5pt;font-family:'微软雅黑',sans-serif;color:#3598db;">【相关课程】</span> </p> <p style="margin-left:0cm;"> 本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括: </p> <p> 《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》 </p> <p> Ubuntu系统 <strong><a href="https://edu.csdn.net/course/detail/30793"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/30793</span></a></strong> </p> <p> Windows系统 <strong><a href="https://edu.csdn.net/course/detail/30923"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/30923</span></a></strong> </p> <p> 《YOLOv5(PyTorch)目标检测:原理与源码解析》<strong><a href="https://edu.csdn.net/course/detail/31428"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/31428</span></a></strong> </p> <p> 《YOLOv5(PyTorch)目标检测实战:Flask Web部署》<strong><a href="https://edu.csdn.net/course/detail/31087"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/31087</span></a></strong> </p> <p> 《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》<strong><a href="https://edu.csdn.net/course/detail/32303"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/32303</span></a></strong> </p>
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页