数据库中的视图有什么用,我们为什么要用视图?

数据库中的视图有什么用,我们为什么要用视图?,第1张

用来进行数据展示和分析。使用视图可以定制用户数据,聚焦特定的数据。

视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。

视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。

视图可以在以下几个方面使程序与数据独立:

如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。

如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。

如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。

 在Android中,定义外观最简单的方式是直接设置属性在视图对象上。由于要对整个应用程序设置样式,这种方法就显得不是很方便了。因此,我们可以创建

样式来绑定视图属性。但要注意的是,样式只能设置在xml里。这意味着,我们在创建/加载视图的时候,只能一次设置一个样式。下面是如何在res

/values/styles.xml文件中给TextView设置属性的示例。

<style name="CustomText" parent="<a href="http" target="_blank" rel="nofollow">@android</a>:style/TextAppearance.Medium">

<item name="android:textSize">20sp</item><item name="android:textColor">#008</item>

</style>

我们引用@style/CustomText样式应用在我们的layout.xml文件中。该样式引用了一个父样式

@android:style/TextAppearance.Medium。由于开始样式引自android: 命名空间,那么我们这个样式默认也随android平台。

创建主题绑定样式

假设我们要改变我们所有TextView的文字大小和颜色,并且不需要明确设置每一个TextView。这是一个非常常见的情况,幸运的

是,Android提供了一个非常强大的主题机制。从本质上讲,主题就是样式资源本身,使用“key”指向具体的样式。一个视图对象基于这个key可以查

看到具体的样式。下面是一个简单的例子,在res/values/themes.xml文件:

<style name="Theme.MyApp" parent="<a href="http" target="_blank" rel="nofollow">@android</a>:style/Theme.Holo">

<item name="android:textAppearance">@style/CustomText</item>

</style>

如上所述,主题是样式资源本身,所以我们声明一个Theme.App继承自Android平台提供的holo主题。我们将我们的CustomText样式

指定到android:textAppearance属性。属性就是一个预定义的“变量”,它可以被其他资源元素引用。事实上,它也可以创建自定义属性在

res/values/attr.xml文件。

现在有趣的事情来了。我们的主题Theme.MyApp不仅可以通过AndroidManifest.xml的设置应用到Activity上,它也可以在

运行时在代码中设置。你将不得不重新启动当前Activity(或使用ContextWrapper应用UI的主题部分),但它使主题更加动态。

什么情况下会用到视图?

比如说一个比较复杂的查询不想每次都写很多语句,就可以写个视图。下次查询的时候是需要使用select * from视图名就可以了。

或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。

视图的好处,可以主要分为四点: 

第一点: 使用视图,可以定制用户数据,聚焦特定的数据。

解释:

在实际过程中,公司有不同角色的工作人员。

以销售公司为例:, 采购人员,可以需要一些与其有关的数据,而与他无关的数据,对没有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视图,以后他在查询数据时,只select   *   from   view_caigou   就可以了。

第二点:使用视图,可以简化数据 *** 作。 

解释:

在使用查询时,在很多时候要使用聚合函数,同时还要显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,则可以创建视图。以后要用的话,只需要select   *   from   view1就可以了。

第三点:使用视图,基表中的数据就有了一定的安全性

因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,故可以将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改 

和删除,可以保证数据的安全性。 

第四点:可以合并分离的数据,创建分区视图

随着社会的发展,公司业务量不断的扩大,一个大公司,下属都设有很多的分公司,为了管理方便,需要统一表的结构,定期查看各公司业务情况,而分别看各个公司的数据很不方便,没有很好的可比性,如果将这些数据合并为一个表格里,就方便多了,这时就可以使用union关键字, 将各分公司的数据合并为一个视图。 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11955328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存