SQL SERVER 视图操作数据库
视图操作
视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。与真实的表一样,视图也包括几个被定义的数据列和多个数据行,但这些数据实际上是被其引用的其他表中的数据。因此,视图不是真实存在的基础表,而是一个虚拟的表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。视图被定义后便存储在数据库中,与其相对应的数据并没有象表那样在数据库中保存一份拷贝,对视图的操作与对表的操作一样,可以查询、修改和删除。当对通过视图看到的数据进行修改时,相应的表中数据也会发生变化;同理,基表中的数据变化时也会自动反映到视图中来。
视图可以是基表的一部分,视图的构成也可以是多个基表的联合,它存储了要执行检索的查询语句的定义, 以便在引用该视图时使用,在视图中最多可以定义一个或者多个基表1024个字段,所能定义的记录数只受表中被引用的记录数的限制。视图可以用来访问整个表,表的一部分或者多个表的连接,取决于视图的基表定义,基表的定义可以是基表中字段的子集或者记录的子集、两个或者多个基表的联合或者连接、基表的统计汇总、视图的视图以及视图和基表的混合。
使用视图可以简化和定制不同用户对数据库的不同要求,可以屏蔽数据的复杂性,用户不必了解数据库的结构,简化数据权限管理和重新组织数据输出到应用程序中。使用视图的优点和作用还有:
(1)视图可以使用户只关心需要的数据和所负责的特定任务;
(2)视图大大地简化了用户对数据的操作。因在定义视图时,可以把经常使用的连接、投影和查询语句定义为视图,只要一条简单的查询视图语句即可,可以隐藏表与表之间的复杂连接操作。
(3)视图可以让不同的用户以不同的方式看到不同或者相同的数据集。不同用户对数据库的操作要求不同,即使使用相同的数据,也可能有不同的操作。这样可以使用视图了实现。
(4)在某些情况下,由于表中数据量太大,因此在表的设计时常将表进行水平或者垂直分割,但表的结构变化对应用程序产生不良的影响。而使用视图可以重新组织数据,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。
(5)视图提供了一个简单而有效的安全机制。通过视图用户只能查看和修改所能看到的数据。其他数据库或者表既不可见也不可访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。
一、创建视图
SQL Serv
相关文档:
今天写一个商品的修改功能时遇到的问题
商品中重量 weight 的数据库(SQL Server2005)类型定义为 float
在mappings 中转换为c#类型的一句为
<result property="Goods_Weight" column="Goods_Weight" type="float" dbType="float"/>
按理说这个 float 是一样的,转换完全不会出现问题,
实际程序运行时,系统报错
......
1,一个完整的PL/SQL 语句由三个部分组成。
declare
声明部分,定义变量,数据类型,异常,局部子程序等。
&nb ......
SQL获取所有数据库名、表名、储存过程以及参数列表
1.获取所有数据库名:
(1)、Select Name from Master..SysDatabases order by Name
2.获取所有表名:
(1)、Select Name from SysObjects Where XType=''U'' orDER BY Name
XType='' ......
例如:
普遍的SQL语句:
update book set bookname='sssss' where bookId=1;
在PL/SQL 中执行:
declare
v_book ......
最近遇到一个问题,在操作SQL更新账户余额时,常常发现更新后的余额与实际的不相符,马上想到了是不是存在并发更新,一查果然如此。之前也曾遇到过这样的问题,当时没太在意,现在是解决的时候了。用Mysql模拟了一下这个过程:创建两张表,paralltable和parallalter,每次根据paratable表更新parallalte ......