mysql中的视图指什么?
答:视图: view, 是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表, 虚拟表的结构来源不是自己定义, 而是从对应的基表中产生(视图的数据来源)。
视图的关键字是什么?
答:view。
视图的意义?
答:
1. 视图可以节省SQL语句。将一条复杂的查询语句使用视图进行保存,以后可以直接对视图进行操作
2. 隐藏基表,保证数据安全。视图操作是主要针对查询的, 如果对视图结构进行处理(删除), 不会影响基表数据(相对安全).
3. 可有选择的对外提供数据。视图往往是在大项目中使用, 而且是多系统使用: 可以对外提供有用的数据, 但是隐藏关键(无用)的数据。
4. 对外提供友好型服务。不同的视图提供不同的数据, 对外好像专门设计。
5. 视图可以更好(容易)的进行权限控制
什么是单表视图?
答:基表只有一个。
什么是多表视图?
答:基表至少两个。
视图对外提供的主要功能是什么?
答:查询。视图是一张虚拟表,按照对表的查询来查询视图就好了。一般情况下,我们会限制对视图的增、删、改操作。
视图本身有数据吗?
答:没有。我们可以把视图理解为一个没有存货的经销商,客户去经销商处买商品,经销商本身没有商品,而是到供应商处拿到商品,然后再卖给客户。
既然视图本身没有数据,那么我们可以对视图进行增、删、改、查操作吗?为什么?
答:可以。视图没有数据,但是视图对应的基表有数据,我们对视图进行增、删、改、查操作,实际上是对视图对应的基表进行增、删、改、查操作。
什么是视图算法?
答:系统对视图以及外部查询视图的Select语句的一种解析方式.
视图算法分几种?
答:视图算法分为三种
Undefined: 未定义(默认的), 这不是一种实际使用算法, 是一种推卸责任的算法: 告诉系统,视图没有定义算法, 系统自己看着办
Temptable: 临时表算法: 系统应该先执行视图的select语句,后执行外部查询语句
Merge: 合并算法: 系统应该先将视图对应的select语句与外部查询视图的select语句进行合并,然后执行(效率高: 常态)
如何创建一个视图?
答:create view 视图名字 as select语句; -- select语句可以是普通查询;可以是连接查询; 可以是联合查询; 可以是子查询.
如何删除一个视图?
答:drop view 视图名;
如何修改一个视图?
答:Alter view 视图名字 as 新的select语句;
例子:alter view my_view1 as select id,name,sex from my_student;
如何查看一个视图?
答:视图是一张虚拟表,像查看表一样查看视图就好了。
Show tables;
Desc table 视图名;
Show create table 视图名;
Select * from 视图名;
如何向视图中增、删、改、查数据?
答:用的时候看讲义。