mysql视图的作用是什么及怎么创建
本篇内容介绍了“mysql视图的作用是什么及怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
常见的数据库对象
视图的作用
1、视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图2、视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是SQL中的一个重要概念3、视图建立在已有表的基础上,视图赖以建立的这些表称为基表4、视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化,反之亦然5、向视图提供数据内容的语句为SELECT语句,可以将视图理解为存储起来的SELECT语句6、在数据库中,视图不会保存数据,数据真正保存在数据表中。当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化;反之亦然7、视图,是向用户提供基表数据的另一种表现形式。通常情况下,小型项目的数据库可以不使用视图,但是在大型项目中,以及数据表比较复杂的情况下,视图的价值就凸显出来了,它可以帮助我们把经常查询的结果集放到虚拟表中,提升使用效率。理解和使用起来都非常方便
格式
CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEW视图名称[(字段列表)]AS查询语句[WITH[CASCADED|LOCAL]CHECKOPTION]
代码案例
#针对于单表#方式1:视图中的字段与基表的字段有对应关系CREATEVIEWvu_emp1ASSELECTemployee_id,last_name,salaryFROMemps;#确定视图中字段名的方式1:CREATEVIEWvu_emp2ASSELECTemployee_idemp_id,last_namelname,salary#查询语句中字段的别名会作为视图中字段的名称出现FROMempsWHEREsalary>8000;#确定视图中字段名的方式2:CREATEVIEWvu_emp3(emp_id,NAME,monthly_sal)#小括号内字段个数与SELECT中字段个数相同ASSELECTemployee_id,last_name,salaryFROMempsWHEREsalary>8000;#方式2:视图中的字段在基表中可能没有对应的字段CREATEVIEWvu_emp_salASSELECTdepartment_id,AVG(salary)avg_salFROMempsWHEREdepartment_idISNOTNULLGROUPBYdepartment_id;#针对于多表CREATEVIEWvu_emp_deptASSELECTe.employee_id,e.department_id,d.department_nameFROMempseJOINdeptsdONe.`department_id`=d.`department_id`;#利用视图对数据进行格式化CREATEVIEWvu_emp_dept1ASSELECTCONCAT(e.last_name,'(',d.department_name,')')emp_infoFROMempseJOINdeptsdONe.`department_id`=d.`department_id`;#基于视图创建视图CREATEVIEWvu_emp4ASSELECTemployee_id,last_nameFROMvu_emp1;
查看视图
#语法1:查看数据库的表对象、视图对象SHOWTABLES;#语法2:查看视图的结构DESCRIBEvu_emp1;#语法3:查看视图的属性信息SHOWTABLESTATUSLIKE'vu_emp1';#语法4:查看视图的详细定义信息SHOWCREATEVIEWvu_emp1;
"更新"视图中的数据
#一般情况,可以更新视图的数据#更新视图的数据,会导致基表中数据的修改UPDATEvu_emp1SETsalary=20000WHEREemployee_id=101;#同理,更新表中的数据,也会导致视图中的数据的修改UPDATEempsSETsalary=10000WHEREemployee_id=101;#删除视图中的数据,也会导致表中的数据的删除DELETEFROMvu_emp1WHEREemployee_id=101;#不能更新视图中的数据#更新失败,avg_sal只是1个平均数,基表中不存在该字段UPDATEvu_emp_salSETavg_sal=5000WHEREdepartment_id=30;#删除失败,可能基表中不存在department_idDELETEFROMvu_emp_salWHEREdepartment_id=30;
修改视图,会覆盖原有的视图
#方式1CREATEORREPLACEVIEWvu_emp1ASSELECTemployee_id,last_name,salary,emailFROMempsWHEREsalary>7000;#方式2ALTERVIEWvu_emp1ASSELECTemployee_id,last_name,salary,email,hire_dateFROMemps;
删除视图
#方式1DROPVIEWvu_emp4;#方式2DROPVIEWIFEXISTSvu_emp2,vu_emp3;
“mysql视图的作用是什么及怎么创建”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。