• Sql Server 使用视图


    --视图

    --视图是虚拟的表。视图不存放数据, 视图只包含使用时动态检索数据的查询。

    /*为什么使用视图

    1.重复使用sql语句。
    2.简化复杂的SQL操作,在编写查询后 可以方便的重用他而不必知道其基本查询细节。
    3.使用表的一部分而不是整个表。 避免冗余。
    4.保护数据。可以授权用户访问表的特定部分权限,而不是整个表的访问权限。
    5.更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。
    6.视图极大的简化了复杂的SQL语句的使用,利用视图,可一次性编写基础的sql。然后根据需要多次使用。
    (性能问题:因为视图本身不包含数据,每次使用视图时都必须处理查询执行时需要的所有检索。如果你使用了复杂的视图或者嵌套了视图,性能可能会下降的很厉害。)
    */

    /* 视图的规则和限制
    1.视图名称和表名称一样,不可以重复。
    2.视图创建的数量没有限制。
    3.需要DBMS中不允许视图查询使用order by(ORDER BY)。
    4.创建视图必须有足够的权限。权限一般是数据库管理员授权。
    5.视图可以嵌套,即可以利用从其他视图中检索的查询来构建视图。
    6.视图不能索引,也不能有关联的触发器或默认值。


    /*
    go
    create view Productcustomers AS
    select cust_name ,cust_contact,prod_id from Customers,OrderItems,Orders where Customers.cust_id=Orders.cust_id and Orders.order_num=OrderItems.order_num ;
    go

    select * from products where vend_id in ('DLL01','BRS01');

    SELECT cust_name,cust_contact FROM Productcustomers WHERE prod_id='rgan01';

    SELECT * FROM Products;
    SELECT * FROM OrderItems;
    go
    CREATE VIEW test01 AS SELECT ORDERITEMS.prod_id, PROD_NAME,PROD_PRICE ,ORDER_NUM ,ITEM_PRICE FROM Products,OrderItems WHERE Products.prod_id=OrderItems.prod_id;
    go

    go
    CREATE VIEW test02 AS SELECT ORDERITEMS.prod_id, PROD_NAME,PROD_PRICE ,ORDER_NUM ,ITEM_PRICE FROM Products,OrderItems WHERE Products.prod_id=OrderItems.prod_id;
    go

    DROP VIEW TEST02;
    select * from test01;

    --go 语句用来分隔, 每个被go分隔的语句都是一个单独的事务,与其他事务不互相收影响。 一个语句失败不会影响其他语句。
    go
    select * from sysobjects where id=a
    go
    select getdate()
    go

  • 相关阅读:
    zabbix邮件报警
    简单的带权随机算法
    一、向量
    C#遍历DataSet
    旅游(二)——广州
    旅游(一)——潮州
    LoRa术语
    Linux基础(一)
    Git(二)_基本命令
    Git使用(一)——Cygwin
  • 原文地址:https://www.cnblogs.com/java-263/p/13649292.html
Copyright © 2020-2023  润新知