这要具体情况具体处理了,一般来说单表查询是可以进行修改的多表联接查询是不行的比如我们要修改某人的学历,这就需要先用一个查询找到某个人的记录,并显示到编辑界面,然后再进行修改查询与视图是划等号的ACCESS叫查询,SQL server则称视图
你首先要理解什么是查询结果集
查询时实现数据库 *** 作的最主要方法,尽管从查询结果集看到的数据集合与打开的数据表看到的数据集合一样,但实质是完全不同的:
数据表是数据库中存放数据的实体对象,在数据表中看到的是数据的静态物理集合,是实际的数据源表。
查询只是针对数据源的 *** 作命令(程序),在查询结果中看到的是数据的动态逻辑集合,是执行命令对数据表 *** 作的结果,十一哥虚拟的数据表。
视图的概念
我们经常使用SELECT语句,尤其是比较复杂的查询语句,如果每次使用都要重复地输入代码是很麻烦的,如果将该语句保存为一个对象,每次使用时不需要输入代码,只给出对象的名字就能方便地使用,简化查询 *** 作。这个对象就是视图。
视图实际上就是给查询语句指定一个名字,将查询语句定义为一个独立的对象保存。
既然视图是由SELECT查询语句构成的,那么使用视图就可以直接得到SELECT语句的查询结果集,所以我们就可以这样为视图下一个定义:
视图:就是基于一个或多个数据表的动态数据集合,是一个逻辑上的虚拟数据表。
另一方面,视图又具有更强的功能:使用SELECT语句只能在结果集——动态逻辑虚拟表中查看数据,而使用视图不但可以查看数据,而且可以作为SQL语句的数据源,并且可以直接在视图中对数据表进行编辑修改删除——更新数据表中的数据。
为了不影响其他的数据库表,新建一张数据库表t_worker_info,代码如下:
create table t_worker_info(
id int(8) primary key not null auto_increment,
w_id int(10) not null,
w_name varchar(20) not null,
w_age int(3),
w_sex varchar(10),
w_birth varchar(20)
);
创建t_worker_info后,查看一下数据结构,代码如下:
desc t_worker_info;
双击选中的数据库,在Views鼠标右键“Create View”,打开编辑窗口,并在窗口中输入代码,代码如下:
CREATE VIEW `view_worker_info` AS
SELECT FROM t_worker_info;
查看创建视图的基本信息,利用desc或describe语句,代码如下:
desc view_worker_info;
查看视图信息,如存储引擎、数据长度等,如果上述指标都为null,说明视图是虚表,代码如下:
show table status like 'view_worker_info';
查看创建视图的详细信息,需要用到show create view 视图名,代码如下:
show create view view_worker_info;
可编辑的有:
1、数据表对象。以数据视图打开某张数据表,然后就可以直接修改表中的数据了。
2、查询对象。在死ql视图里编写动作查询语句查询、或在查询设计视图设定动作查询、又或者选择已经预先定义好的查询,点击执行查询命令即可修改数据表的记录了。
只要满足下列条件,即可通过视图修改基础基表的数据:
1、任何修改(包括 UPDATE、INSERT 和 DELETE 语句)都只能引用一个基表的列。
2、视图中被修改的列必须直接引用表列中的基础数据。不能通过任何其他方式对这些列进行派生,如通过以下方式:
1)聚合函数:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR 和 VARP。
2)计算。不能从使用其他列的表达式中计算该列。使用集合运算符 UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT 形成的列将计入计算结果,且不可更新。
3、被修改的列不受 GROUP BY、HAVING 或 DISTINCT 子句的影响。
4、TOP 在视图的 select_statement 中的任何位置都不会与 WITH CHECK OPTION 子句一起使用。
上述限制适用于视图的 FROM 子句中的任何子查询,就像其应用于视图本身一样。通常情况下,数据库引擎必须能够明确跟踪从视图定义到一个基表的修改
数据表视图
视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。
视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。视图看上去非常像数据库的物理表,对它的 *** 作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。
以上就是关于可以在delphi对数据库中视图进行修改吗全部的内容,包括:可以在delphi对数据库中视图进行修改吗、数据库视图是什么,有什么用,怎么用、如何在MySQL中利用数据库表创建视图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)