精华内容
下载资源
问答
  • 创建视图有什么用
    千次阅读
    2020-04-28 15:21:03

    很多地方都没解释清楚这个问题,有代表性的就是这个 博客 。

    论坛 上有人解释了,但是年代久远,我这里把它捞出来。答主是 这位 。内容如下:

    创建排序视图的企图本身就是错误的,因为视图表示一个表,而表是不会对行排序的。众所周知,在SQL Server 2000中追求排序视图的开发人员会利用貌似系统漏洞的一个技巧。

    利用这个漏洞可以创建一个非常可笑的视图,在该视图中,指定TOP 100 PERCENT以及一个ORDER BY子句,就像这样:

    ALTER VIEW dbo.VcustsWithOrders

    AS

    SELECT TOP (100) PERCENT

    Country, CustomerID, CompanyName, ContactName, ContactTitle,

    Address, City, Region, PostalCode, Phone, Fax

    FROM Customers AS C

    WHERE EXISTS

    (SELECT * FROM dbo.Orders AS O

    WHERE O.CustomerID = C.CustomerID)

    ORDER BY Country;

    GO

    这些语句最终的执行结果有两列 country ,怎么排序呢?会引起混乱。视图不允许排序的根源就是在后续处理中会引起混乱,不能用 distinct 应该也一样。总之,把视图当成基本表来约束就很安全。

    还有一个例子是从 StackExchange (链接)来的:

    If a view was allowed to be sorted then what should be the order of the result here?

    CREATE VIEW dbo.V1
    AS
    SELECT number
    FROM SomeTable
    ORDER BY number ASC

    GO

    CREATE VIEW dbo.V2
    AS
    SELECT number
    FROM SomeTable
    ORDER BY number DESC

    GO

    SELECT *
    FROM dbo.V1
    JOIN dbo.V2
    ON V1.number = V2.number
    ————————————————
    版权声明:本文为CSDN博主「0XIX0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ddzr972435946/article/details/102814602

    更多相关内容
  • 1、视图的作用 视图的作用: 第一点:使用视图,...任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视 图,以后他在查询数据时,只需select * from view_caigou 就 可以啦。 第二点:使用视图,可...

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

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

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

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

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

    解释:
    因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以
    将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集
    合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改
    和删除,可以保证数据的安全性。

    第四点:可以合并分离的数据,创建分区视图(//目前我没用到)

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

    2、Sql server中创建视图和创建表是一样的
    2.1)创建表是这样的

    --------创建表-------
    –判断是否存在–
    if exists (select * from sysobjects where name = ‘Tab_EdsProd’)
    drop table Tab_EdsProd
    go
    –创建表
    create table Tab_EdsProd
    (
    Mid int identity(1,1) primary key,
    Code varchar(10) null,
    Name varchar(20) null
    )
    –添加数据–
    insert into Tab_EdsProd(Code,Name) values(‘001’,‘张三’);
    insert into Tab_EdsProd(Code,Name) values(‘002’,‘李四’)
    –查询数据–
    select * from Tab_EdsProd

    2.3)创建视图是这样的

    --------创建视图-------
    –判断是否存在–
    if exists (select * from sysobjects where name = ‘View_EdsProd’)
    drop view View_EdsProd
    go
    –创建视图
    create view View_EdsProd
    as
    select * from Tab_EdsProd where Mid>1
    go
    –使用视图–
    select *from View_EdsProd
    在这里插入图片描述

    如何创建的视图不允许更改,可以加上 with encryption

    --------创建加密视图-------
    –判断是否存在–
    if exists (select * from sysobjects where name = ‘View_Jm_EdsProd’)
    drop view View_Jm_EdsProd
    go
    –创建视图
    create view View_Jm_EdsProd
    with encryption
    as
    select * from Tab_EdsProd where Mid>1
    go
    –使用视图–
    select *from View_Jm_EdsProd

    加上with encryption 不可修改视图
    在这里插入图片描述
    参考文档:
    https://www.cnblogs.com/xielong/p/8584736.html

    视图定义来源于
    http://blog.csdn.net/u014242422/article/details/53266859
    平时多记记,到用时才能看看,记录你的进步,分享你的成果

    展开全文
  • 存储过程创建视图

    2017-11-06 16:16:45
    用存储过程创建视图用存储过程创建视图用存储过程创建视图用存储过程创建视图用存储过程创建视图
  • SQL语句创建视图什么不能order by

    千次阅读 2019-10-30 10:46:10
    很多地方都没解释清楚这个问题,代表性的就是这个博客。 论坛上人解释了,但是年代久远,我这里把它捞出来。答主是这位。...利用这个漏洞可以创建一个非常可笑的视图,在该视图中,指定TOP100PERC...

    很多地方都没解释清楚这个问题,有代表性的就是这个 博客 。

    论坛 上有人解释了,但是年代久远,我这里把它捞出来。答主是 这位 。内容如下:

    创建排序视图的企图本身就是错误的,因为视图表示一个表,而表是不会对行排序的。众所周知,在SQL Server 2000中追求排序视图的开发人员会利用貌似系统漏洞的一个技巧。

    利用这个漏洞可以创建一个非常可笑的视图,在该视图中,指定TOP 100 PERCENT以及一个ORDER BY子句,就像这样:

    ALTER VIEW dbo.VcustsWithOrders

    AS

    SELECT TOP (100) PERCENT

    Country, CustomerID, CompanyName, ContactName, ContactTitle,

    Address, City, Region, PostalCode, Phone, Fax

    FROM Customers AS C

    WHERE EXISTS

    (SELECT * FROM dbo.Orders AS O

       WHERE O.CustomerID = C.CustomerID)

    ORDER BY Country;

    GO

    这些语句最终的执行结果有两列 country ,怎么排序呢?会引起混乱。视图不允许排序的根源就是在后续处理中会引起混乱,不能用 distinct 应该也一样。总之,把视图当成基本表来约束就很安全。

    还有一个例子是从 StackExchange (链接)来的:

    If a view was allowed to be sorted then what should be the order of the result here?

    CREATE VIEW dbo.V1
    AS
      SELECT number
      FROM   SomeTable
      ORDER  BY number ASC
    
    GO
    
    CREATE VIEW dbo.V2
    AS
      SELECT number
      FROM   SomeTable
      ORDER  BY number DESC
    
    GO
    
    SELECT *
    FROM   dbo.V1
           JOIN dbo.V2
             ON V1.number = V2.number 
    展开全文
  • Delphi创建视图

    2021-05-11 13:42:03
    摘要:Delphi源码,报表打印,视图 Delphi创建视图,输入视图即可创建视图,根据数据库创建的,测试的数据库文件,在Database文件夹下。 运行环境:Windows/Delphi7
  • oracle - 主键创建视图

    千次阅读 2021-05-04 06:20:37
    最简单的答案就是你的语法不正确。您必须指定DISABLE。...它指定在创建视图时是否考虑主键。 rely的反义词是norely。上创建一个视图约束了很大的限制,并因为它依赖于下面的表格是不是真的值得的,因为...

    最简单的答案就是你的语法不正确。您必须指定DISABLE。

    NOVALIDATE禁用主键的验证,在视图中这是默认设置,因此会自动包含;但是如果使用它会更清晰,因为在可爱的双重否定中,disable novalidate禁用禁用主键的功能。

    rely是可选的;它指定在创建视图时是否考虑主键。 rely的反义词是norely。

    有上创建一个视图约束了很大的限制,并因为它依赖于下面的表格是不是真的值得的,因为已经@RC指出。但是,如果你需要它的文档只有在这里你去:

    SQL> create table tmp_test (a number(10), b varchar2(120));

    Table created.

    SQL>

    SQL> insert into tmp_test

    2 select level, 'b'

    3 from dual

    4 connect by level <= 20

    5 ;

    20 rows created.

    SQL> commit ;

    Commit complete.

    SQL>

    SQL> alter table tmp_test

    2 add constraint tmp_test_pk

    3 primary key (a)

    4 using index;

    Table altered.

    SQL>

    SQL> create or replace view v_tmp_test (a, b

    2 , constraint v_tmp_test_pk primary key (a) rely disable novalidate) as

    3 select a, b

    4 from tmp_test

    5 ;

    View created.

    SQL>

    视图约束

    Oracle不强制视图约束。但是,视图 上的操作受底层 基表中定义的完整性约束的约束。这意味着您可以通过对基表的约束对视图 强制执行约束。

    上查看约束笔记查看约束的表 约束的一个子集,并受到以下限制:

    只能指定唯一,主键和外键约束 的看法。但是,您可以使用WITH CHECK OPTION 子句定义视图,该操作等同于为 视图指定检查约束。

    只有在DISABLE NOVALIDATE模式下才支持视图约束。您 不能指定任何其他模式。声明视图约束时,必须指定关键字DISABLE 。您无需明确指定NOVALIDATE ,因为它是默认值。

    RELY和NORELY参数是可选的。查看约束,因为 它们未被强制执行,通常用RELY参数指定为 使它们更有用。 RELY或NORELY关键字必须在 DISABLE关键字之前。有关更多信息,请参阅“RELY条款”。

    因为视图约束不是直接执行的,所以不能指定 INITIALLY DEFERRED或DEFERRABLE。

    您无法指定references_clause的using_index_clause,exceptions_clause 子句或ON DELETE子句。

    您无法定义对象列的属性的视图约束。

    展开全文
  • mysql视图的作用

    千次阅读 2022-05-13 11:29:35
    mysql视图的作用
  • navicat怎么创建视图

    千次阅读 2021-01-18 23:19:32
    下面是本人学习使用navicat for mysql 创建视图的图文记录,感兴趣的小伙伴可以看一看。下面正式开始1、打开navicat for mysql软件之后打开相应的数据库。然后点击视图。2、点击新建视图。这里的话你可以通过sql语句...
  • MySQL如何创建视图和用户

    千次阅读 2021-11-30 09:11:55
    目录 一.视图 1.1 概念 1.2 使用 ... 1.3 视图的规则和限制 ... 2.1.2 创建用户 2.1.3 删除用户 2.1.4 修改密码 2.2 数据库权限 2.2.1 给用户授权 2.2.2 回收权限 一.视图 1.1 概念 ...
  • 为了在登录时只用一个登录页面做到验证三种实体用户的账号密码和角色,就创建了这个视图 create view login AS select sno as username,password as password,role as role from students union all select tno as ...
  • 创建视图SQL:在SQL Server中创建视图

    万次阅读 2020-07-17 13:42:32
    可以通过说出CREATE VIEW后跟一个具有WITH视图属性的名称来创建视图: ENCRYPTION – Using this attribute prevents the view from being published as part of SQL Server replication 加密 –使用此属性可防止...
  • MySQL数据库创建视图

    千次阅读 2021-01-18 19:16:12
    我有以下几张表:-------image表--------org表-----------user表---------album表----我要将以上四张表关联,可以sql的join连接语句,但是会很麻烦,现在在mysql中创建一个视图会很方便的解决这四个表连接...
  • Sql server中 如何sql语句创建视图

    千次阅读 2021-04-06 17:58:23
    任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视 图,以后他在查询数据时,只需select * from view_caigou 就 可以啦。 第二点:使用视图,可以简化数据操作。 解释:我们在使用查询时,在很...
  • oracle的视图是一个很有用的工具,在很多应用中的应用到。 在oracle视图中,对于简单视图,oracle 允许进行 dml 操作 ,...答案是,如果你在创建视图时,使用where 子句限制时没有使用到 with check option 子句 时,
  • 创建视图时select语句哪些限制

    千次阅读 2021-08-23 09:46:59
    创建视图有如下限制: SELECT语句可以在where 语句中包含子查询,但FROM子句中的不能包含子查询。 SELECT语句不能引用任何变量,包括局部变量,用户变量和会话变量。 SELECT语句不能引用准备语句的参数。 ...
  • 在Navicat中如何创建视图

    千次阅读 2021-11-07 12:20:19
    新建数据库 打开数据库连接之后,点击“新建... ... 选中新建好的数据库,右键“打开数据库”。 使用sql语言建表 ...结果框显示新建表成功。... 选中表右键,点击“刷新”按钮,在图形界面中显示“product”表创建成功。 ...
  • 在mybatis中怎么创建视图

    千次阅读 2020-08-06 10:30:33
    xml文件中的代码: <insert id="createView"> create...from grid_user where "createDate"=CURRENT_DATE </update> 运行截图: 注:使用insert标签和update标签都可以,虽然会返回false,但是数据库中视图创建成功。
  • Mysql 开启视图权限与创建视图教程

    千次阅读 2021-02-06 23:32:39
    不废话直接上代码:开启视图权限:root登录服务器,运行命令,注意username和data修改grant create view on username.* to data@'%';grant show view on username.* to data@'%';GRANT ALL PRIVILEGES ON 用户名.* TO ...
  • mysql如何创建视图

    千次阅读 2021-01-12 11:53:41
    在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。...mysql视图可以使用SQL CREATE VIEW命令创建。 SQL CREATE VIEW 语法: CREATE VIEW view_name AS SELECT column_name(s) FROM table_name
  • mysql创建视图(navicat)

    千次阅读 2021-02-07 07:56:22
    为了避免复杂的数据库级联,可以采用视图的方式,将多个表中的字段加到视图中。这样在查询或修改数据时,只需查询或... 2、切换到“定义”选项卡,可以看到创建视图的实际sql语句。`info` join `user` 表示:info表...
  • [数据库]创建视图的几点好处

    千次阅读 2019-09-16 12:38:32
    视图的好处,可以主要分为四点: 我简单的说一下,希望你能明白。 第一点: ...任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视 图,以后他在查询数据时,只需select * from view_...
  • mysql怎么创建视图?(图文+视频)

    千次阅读 2021-01-19 05:20:55
    本篇文章主要给大家介绍mysql怎么创建视图的。首先大家就要知道什么是视图?视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。那么这种说法对于新手来说,可能会比较抽象,但是我们在之前的文章中,...
  • mysql多表查询并创建视图

    千次阅读 2021-01-19 03:03:04
    匿名用户1级2016-12-03 回答MySQL在多个数据表上创建视图在MySQL中,使用CREATE VIEW语句也可以在两个或两个以上的数据表上创建视图。实例在department表和worker表上创建一个名为worker_view1的视图。1. 创建视图的...
  • SQL语句--创建视图

    千次阅读 2021-03-02 17:45:21
    SQL语句–创建视图 写这个创建视图的语句 首先我们要写出 相关内容的查询语句 eg: select* from Student t1 inner join Teacher t2 on t1.no=t2.no where t2.Tname='Mimo_YY' 然后写外框架,即完成 create VIEW ...
  • 数据库的表,库,视图等的创建,查询,修改等
  • 查询视图的sql语句(mysql创建视图sql语句)2020-07-24 12:07:14共10个回答两种方式,一种是直接在sqlserver的列表中找到,另一种写语句的方式查询.方法一:1、登陆sqlservermanagerstudio.2、在左边的树找到自己要查询...
  • DB2 创建视图view

    千次阅读 2019-04-10 18:58:55
    业务时候需要查询很多表,如果在存储过程编写,造成存储过程代码显得臃肿,不不方便查看,阻碍新来的同事查看逻辑...第一创建视图: create view ve_imonthncome as ( select * from vi_inconmAwhere 1=1 uni...
  • ORACLE 创建视图索引序列

    千次阅读 2021-05-07 11:25:54
    并没有真实的数据虚表作用限制对数据的操作复杂查询变简单提供相同数据的不同显示UNION ALL直接添加到一起UNION添加到一起并去重*/--赋予scott用户创建视图的权限sqlplus / as sysdba;GRANT CREATE VIEW TO SCOTT;--...
  • SQL语法——创建视图、可更新视图

    千次阅读 2022-04-16 22:32:34
    使用MERGE算法,MySQL首先将输入查询与SELECT定义视图的语句组合成单个查询。然后MySQL执行组合查询以返回结果集。 如果SELECT语句包含聚合函数,例如 MIN,MAX,SUM,COUNT,AVG 或DISTINCT,G

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 571,595
精华内容 228,638
关键字:

创建视图有什么用