4.视图

  • 计算机数据库中的视图是一个虚拟表,其内容由查询定义;
  • 不是数据表,因为它不能存储数据;
  • 只是一个或多个数据表中数据的逻辑显示。
  • 本质:一条被命名的SQL语句。

视图好处:

  • 对机密数据提供安全保护,限制对数据的访问;
  • 简化复杂的查询;
  • 提供数据的独立性;
  • 分解复杂的查询需求,创建多个视图获取数据。将视图联合起来就能得到需要的结果了。
  • 提供对相同数据的不同显示。

语法:

CREATE OR REPLACE VIEW view1 AS subquery; #subquery为查询语句

建立好的视图与普通数据表没什么区别了,增删改查均可以。但通常我们不允许改变视图的数据。

  • MySQL等大部分数据库在创建视图时加入with check option语句,表示创建的视图不允许修改。(此时若修改视图数据,SQL不报错,但无法真正修改)
  • Oracle使用with read only。

删除视图:

drop view 视图名;

视图缩减业务逻辑

       视图用来隐藏复杂的业务逻辑,从join连接查询产生一个view。先使用视图完成一定的逻辑,再在视图的基础上完成另外的逻辑。 通常,视图完成的逻辑都是相对比较基础的逻辑。

Note:

  •  尽量使用视图完成读操作;
  •  对视图的修改,也是对基表的修改,会即时生效; 
  •   删除视图时,不会销毁实体表内的数据;
  •  如果做的是外部接口,一个数据库多个应用,针对每一个应用,采用不同的视图接口。
时间: 2024-09-19 09:49:26

4.视图的相关文章

sql-数据库视图里要创建一个计算的字段,如何避免被除数为零

问题描述 数据库视图里要创建一个计算的字段,如何避免被除数为零 数据库视图里要创建一个字段,是个除法,但被除数可能为零,我按照网上讲的CASE WHEN方法改了之后,总提示我表达式无效或缺少,我贴出来我的代码 ROUND(CASE WHEN V_RECOMMAND_CANDIDATE.vote_total > 0 THEN ((CAST(RECOMMAND_CANDIDATE_1.vote_agree AS FLOAT) / V_RECOMMAND_CANDIDATE.vote_total *

MFC框架下 单文档视图中多视图切换问题

问题描述 MFC框架下 单文档视图中多视图切换问题 在MainFrm.cpp 里对主视图进行了切分 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs CCreateContext* pContext){ // TODO: Add your specialized code here and/or call the base class // CRect rc; // 获取框架窗口客户区的CRect对象 GetClientRect(&rc);

转圈圈定制加载中视图

// // HYCircleLoadingView.h // HYCircleLoadingViewExample // // Created by Shadow on 14-3-7. // Copyright (c) 2014年 Shadow. All rights reserved. // #import <UIKit/UIKit.h> /*! * @brief 圆形转圈圈加载等待视图 * @author huangyibiao */ @interface HYBCircleLoading

PPT幻灯片默认视图模式怎么设置

    PPT幻灯片默认视图模式怎么设置         1.启动PowerPoint 2013,单击"文件"标签打开"文件"窗口,在左侧的列表中选择"选项"选项,如图1所示. 图1 选择"选项"选项 2.此时将打开"PowerPoint选项"对话框,在左侧列表中选择"高级"选项.在右侧的"用此视图打开全部文档"下拉列表中选择需要使用的视图方式,如图2所示.然后单击&

mysql索引与视图

  原始表student字段: ? 1 2 3 4 5 6 7 8 9 10 11 12 mysql> select column_name,data_type     -> from information_schema.columns     -> where table_name = 'student'; +-------------+-----------+ | column_name | data_type | +-------------+-----------+ | stu

Excel2007教程:放大或缩小窗口以显示最佳视图

Excel2007基础教程:放大或缩小窗口以显示最佳视图 通常,用户在屏幕上看到的每个窗口显示都是100% .可以改变缩成5分此:从10% (非常小)到400% ( 特大型).使用小缩放百分比有助于您获得工作表鸟瞰图,从而了解其是如何布置的.如果您的视力不如以前好,难以解读较小类型的窗口,则放大窗口会对您有所 帮助.调整窗格并不改变字体大小,所以对打印输出没有影响. 参考: Excel 包含有关改变打印输出尺寸的单独选项(使用"页面布局"."调整为合适大小"功能区组

B2C网站搜索结果是列表视图还是栅格视图?

从眼睛跟踪轨迹和搜索引擎行为研究得知,当出现一个搜索结果列表时,人们通常只点击第一个结果–只注意大约前三个结果.很少会去下一页点击(十个结果以上). 网上商店通常显示的搜索结果是列表视图或者栅格视图(栅格视图在分类结果页里更常见).有些网上商店给访客提供两种选择间的切换(像Home Depot,Walmart和QVC). 但哪种排版展示是最佳的呢?那种视图你该作为默认显示的呢? 有许多的问题测试可以回答: 那种视图你该作为默认显示的呢? 那种视图能鼓励顾客看更多的产品呢? 那种视图能让顾客更舒适

SQL Server Replication 中关于视图的点滴

    在服务器A数据库TEST新建了一个本地发布(Local Publications)RPL_GES_MIS_TEST,在服务器B数据库RPL_TEST上创建了一个本地订阅(Local Subscriptions),它订阅了了这个发布RPL_GES_MIS_TEST.如下截图所示,本地发布只有DB_OBJECTS .Location两个表 假设现在有一个需求,我们需要同步一个视图V_DB_OBJECTS(当然实际情况应该比这个复杂,有可能视图是多个表关联,测试场景我们先简化一下),视图代码如

【物化视图】几种物化视图日志分析

物化视图日志在建立时有多种选项:ROWID.PRIMARY KEY和OBJECT ID三种类型,同时还可以指定SEQUENCE或明确指定列名. 上面这些情况产生的物化视图日志的结构都不相同. 所有物化视图都会包括的列: SNAPTIME$$:用于表示刷新时间. DMLTYPE$$:用于表示DML操作类型,I表示INSERT,D表示DELETE,U表示UPDATE. OLD_NEW$$:用于表示这个值是新值还是旧值.N(EW)表示新值,O(LD)表示旧值,U表示UPDATE操作. CHANGE_V

IOS开发之视图和视图控制器

        视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西.在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多.在UIKit框架中都有一个UIWindow来容纳我们的View.应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类.UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示.窗口是用来显示视图的,下面我们将会结