1.
首先查询select
select_priv,create_view_priv
from
mysql.user
where
user
='root'
2.
创建视图create
view
depart_view
as
select
*
from
depart
3.
查询试图结构:desc
depart_view
4.
第二钟创建视图:create
view
depart_view2(id,name)
as
select
id,name
from
depart
以上是单表上创建视图;
5.
多表的视图创建:create
algorithm=merge
view
student_view1(id,name,sex)
as
select
worker.id,name,sex
from
worker,student
where
worker.id
=
student.w_id
with
local
check
option
6.
查看视图的方法:
1、describe
student_view1
2、show
create
view
student_view1
3、show
table
status
like
'视图名'
;
所有视图定义都存在information_schema数据库下的views表中。查询views表,可以查看到数据库中所有视图的详细信息。查询的语句如下:select
*
from
information_schema.views
这个视图没有主键;更新表时将会使用下列虚拟语句:update v_sys_user set 更新的列=更新的值 where 列1=列1的旧值 and 列2=列2的旧值 and ... limit 1(这个的意思就是,如果视图是可更新视图,在表格窗口中更改某列值时会使用类似上边的语句来完成,where后是所有的列必须等于旧值)
(1) 若视图是基于多个表使用联接 *** 作而导出的,那么对这个视图执行更新 *** 作时,每次只能影响其中的一个表。(2) 若视图导出时包含有分组和聚合 *** 作,则不允许对这个视图执行更新 *** 作。
(3) 若视图是从一个表经选择、投影而导出的,并在视图中包含了表的主键字或某个候选键,这类视图称为‘行列子集视图’。对这类视图可执行更新 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)