MySQL受保护的视图怎么编辑问题。求解。

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
那海蓝蓝,从事数据库研发、数据库测试与技术管理等工作10余年,对数据库的内核有一点研究,长于PostgreSQL和MySQL等开源数据库的内核与架构。
------------------------------------------
详情参见: http://blog.163.com/li_hx/blog/static//
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&1 首先,视图本质上,就是一个“查询”,而且是一个“有名字的查询”,名字是谁?--视图的名称。这就引申出另外一些概念,什么是查询?SQL标准做出如下定义:
1.1 base table:基表
SQL-data consists entirely of table variables,called base tables.
SQL-data构成的完整的表变量的组合,称为基表。即SQL-data的集合。
思考一个问题,CREATE TABLE+INSERT语句建表并插入一些数据后,其生成物,是否可以称为“base table”?
1.2 query,查询
An operation that references zero or more base tables and returns a table is called a query.
引用零个基表(如SELECT 1;则是引用零个基表)或多个基表(多表连接操作)的操作(查询操作)并且返回一个“table”,这样的操作称为“query”(查询)。可见query是一个“过程”且有结果,而非一个“查询语句”(SELECT statement)。
1.3 视图的值,是此有名字的查询操作的执行结果。
2 table,表。回答1.1中的问题,base table 和table是有区别的。
A table has an ordered collection of one or more columns and an unordered collection of zero or more rows.
从上面的定义可以看出,table除了SQL-data外,还有“zero or more rows”,即数据。
3 那么,什么是SQL-data?
SQL-data is data described by SQL-schemas — data that is under the control of an SQL-implementation in an SQL-environment.
SQL-schemas和SQL-implementation以及SQL-environment的定义参见SQL标准(如果展开,越展越多)。我们可以简单认为SQL-data就是描述“字段”的数据。所以SQL-data可以用以表述表的定义,即base table。
4 与view相似的一个概念,称为“派生表”,其SQL标准的定义如下:
The result of a query is called a derived table.
一个查询的结果被称为派生表。即派生表也是一个有结果的查询。而视图是查询的一种,视图的值是查询的结果,那么派生表和视图之间有什么差别呢?从形式上看,二者差别仅在于是否有名字。
一个新的问题随之而来:Q1 在MySQL中,视图和派生表有差别吗?他们的处理方式一样吗?
阅读(1108)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'MySQL--视图优化(一)',
blogAbstract:'& 一 什么是视图 \r\n这个标题似乎有点简单了,一些人会想: 作为一名数据库从业者,作为一名经验丰富的DBA,天天与视图打交道, 怎么能不知道什么是视图呢?\r\n\r\n请在继续阅读之前,微闭双目,休息之余想一想, 什么是视图? 思索之后,且与如下标准定义做个比较。\r\n\r\nSQL标准定义是如下定义视图的:\r\n\r\n',
blogTag:'查询优化,mysql,sql优化',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'那海蓝蓝,从事数据库研发、数据库测试与技术管理等工作10余年,对数据库的内核有一点研究,长于PostgreSQL和MySQL等开源数据库的内核与架构。\n------------------------------------------\n详情参见: http://blog.163.com/li_hx/blog/static//',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}在Navicat for MySQL中打开视图时,提示视图没有主键的问题
时间: 15:54:24
&&&& 阅读:2032
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&一直把视图理解为一个select语句而已,视图一般就是用于查询,不会通过视图来更新表或视图本身的数据,所以视图根本不需要什么主键。今天自己建了一个视图view_test:
drop view if exists view_test
create view view_test
select a.c1,a.c2,
b.c1,b.c2,
c.c1,c.c2,
from table_A a
join teble_B b on a.c3=b.c3
join table_C c on b.c4=c.c4
join table_D d on c.c5=d.c5
where d.c6 in (
select c6 from table_E
where c5=(select c5 from table_D where c7=‘123321‘)
order by a.c1
在Navicat of MySQL中打开这个视图的时候,弹出如下的提示(网上的图,图中第一行的v_sys_user就是自己创建的视图名称),说这个视图没有主键,但是能正常查询出视图的结果。
这里查到,说用了join或者where子查询里如果用了From子句中的表的话就会报这个提示,于是我把where子句去掉,改成:
drop view if exists view_test
create view view_test
select a.c1,a.c2,
b.c1,b.c2,
c.c1,c.c2,
from table_A a
join teble_B b on a.c3=b.c3
join table_C c on b.c4=c.c4
join table_D d on c.c5=d.c5
order by a.c1
结果还是报相同的提示框,后来不小心忽略了 "order by a.c1" 这一行执行上述语句,打开的时候,就没这个提示了,再把where子句加回来,但把order by语句去掉,打开也不会报错,说明问题出在order by子句,而不是什么where 或者join.只要去掉order by语句就好了。
另外,报错的视图语句(包含order by语句),在Navicat for MySQL中打开会报提示,但用MySQL Workbench打开就不会,说明这并不是说明大问题。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/aaronhoo/p/5741303.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!正文 mysql实例 创建一个可更新的视图
mysql实例 创建一个可更新的视图
发布时间: & 编辑:www.jquerycn.cn
本文介绍一个mysql的例子,实现一个可更新的视图view,有需要的朋友研究下吧。
mysql& CREATE TABLE Employee(
&&& -&&&&& id&&&&&&&&&&& int,
&&& -&&&&& first_name&&& VARCHAR(15),
&&& -&&&&& last_name&&&& VARCHAR(15),
&&& -&&&&& start_date&&& DATE,
&&& -&&&&& end_date&&&&& DATE,
&&& -&&&&& salary&&&&&&& FLOAT(8,2),
&&& -&&&&& city&&&&&&&&& VARCHAR(10),
&&& -&&&&& description&& VARCHAR(15)
Query OK, 0 rows affected (0.03 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&& values (1,'Jason',&&& 'Martin',& '',& '', 1234.56, 'Toronto',& 'Programmer');
Query OK, 1 row affected (0.00 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(2,'Alison',&& 'Mathews',& '', '', 6661.78, 'Vancouver','Tester');
Query OK, 1 row affected (0.00 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(3,'James',&&& 'Smith',&&& '', '', 6544.78, 'Vancouver','Tester');
Query OK, 1 row affected (0.02 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(4,'Celia',&&& 'Rice',&&&& '', '', 2344.78, 'Vancouver','Manager');
Query OK, 1 row affected (0.00 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(5,'Robert',&& 'Black',&&& '', '', 2334.78, 'Vancouver','Tester');
Query OK, 1 row affected (0.00 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(6,'Linda',&&& 'Green',&&& '', '', 4322.78,'New York',& 'Tester');
Query OK, 1 row affected (0.00 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(7,'David',&&& 'Larry',&&& '', '', 7897.78,'New York',& 'Manager');
Query OK, 1 row affected (0.00 sec)
mysql& insert into Employee(id,first_name, last_name, start_date, end_Date,&& salary,& City,&&&&&& Description)
&&& -&&&&&&&&&&&&&&& values(8,'James',&&& 'Cat',&&&& '',& '', 1232.78,'Vancouver', 'Tester');
Query OK, 1 row affected (0.00 sec)
mysql& select * from E
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id&& | first_name | last_name | start_date | end_date&& | salary& | city&&&&& | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
|&&& 1 | Jason&&&&& | Martin&&& |
| 1234.56 | Toronto&& | Programmer& |
|&&& 2 | Alison&&&& | Mathews&& |
| 6661.78 | Vancouver | Tester&&&&& |
|&&& 3 | James&&&&& | Smith&&&& |
| 6544.78 | Vancouver | Tester&&&&& |
|&&& 4 | Celia&&&&& | Rice&&&&& |
| 2344.78 | Vancouver | Manager&&&& |
|&&& 5 | Robert&&&& | Black&&&& |
| 2334.78 | Vancouver | Tester&&&&& |
|&&& 6 | Linda&&&&& | Green&&&& |
| 4322.78 | New York& | Tester&&&&& |
|&&& 7 | David&&&&& | Larry&&&& |
| 7897.78 | New York& | Manager&&&& |
|&&& 8 | James&&&&& | Cat&&&&&& |
| 1232.78 | Vancouver | Tester&&&&& |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
8 rows in set (0.00 sec)
mysql& CREATE OR REPLACE VIEW myView AS --创建可更新视图view
&&& -& SELECT id, first_name, city FROM employee
&&& -& WHERE id = 3 WITH LOCAL CHECK OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql& SELECT * FROM myV
+------+------------+-----------+
| id&& | first_name | city&&&&& |
+------+------------+-----------+
|&&& 3 | James&&&&& | Vancouver |
+------+------------+-----------+
1 row in set (0.02 sec)
mysql& UPDATE myView SET first_name = 'David';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1& Changed: 1& Warnings: 0
mysql& SELECT * FROM myV
+------+------------+-----------+
| id&& | first_name | city&&&&& |
+------+------------+-----------+
|&&& 3 | David&&&&& | Vancouver |
+------+------------+-----------+
1 row in set (0.00 sec)
mysql& select *
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id&& | first_name | last_name | start_date | end_date&& | salary& | city&&&&& | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
|&&& 1 | Jason&&&&& | Martin&&& |
| 1234.56 | Toronto&& | Programmer& |
|&&& 2 | Alison&&&& | Mathews&& |
| 6661.78 | Vancouver | Tester&&&&& |
|&&& 3 | David&&&&& | Smith&&&& |
| 6544.78 | Vancouver | Tester&&&&& |
|&&& 4 | Celia&&&&& | Rice&&&&& |
| 2344.78 | Vancouver | Manager&&&& |
|&&& 5 | Robert&&&& | Black&&&& |
| 2334.78 | Vancouver | Tester&&&&& |
|&&& 6 | Linda&&&&& | Green&&&& |
| 4322.78 | New York& | Tester&&&&& |
|&&& 7 | David&&&&& | Larry&&&& |
| 7897.78 | New York& | Manager&&&& |
|&&& 8 | James&&&&& | Cat&&&&&& |
| 1232.78 | Vancouver | Tester&&&&& |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
8 rows in set (0.00 sec)
mysql& drop view myV --删除mysql视图
Query OK, 0 rows affected (0.00 sec)
mysql& drop table E
Query OK, 0 rows affected (0.00 sec)
您可能感兴趣的文章:2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2011年 总版技术专家分年内排行榜第四2010年 总版技术专家分年内排行榜第九2009年 总版技术专家分年内排行榜第八
2011年10月 总版技术专家分月排行榜第一
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2016年10月优秀小版主
匿名用户不能发表回复!|}

我要回帖

更多关于 视图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信