8.2.1 设计用户视图
创建视图用CREATE VIEW语句,在SQL Server 中,CREATE VIEW的语法格式是:
其中,< view_attribute > ::={ ENCRYPTION | SCHEMABINDING | VIEW_METADATA }
参数说明:
■ database_name
表示数据库名称,我们可定义ERM系统的数据库名称为“ERM”。
■ owner
表示所有者名称,通常为“dbo”。
■ view_name
表示视图的名称。通常以“vw”为前缀。
■ column
表示视图中的列名。只有在下列情况下,才必须命名 CREATE VIEW 中的列:①当列是从算术表达式、函数或常量派生的;②两个或更多的列可能会具有相同的名称(通常是因为联接);③ 视图中的某列被赋予了不同于派生来源列的名称。如果未指定 column,则视图列将获得与 SELECT 语句中的列相同的名称。
■ n
表示可以指定多列的占位符。
■ AS
表示视图要执行的操作。
■ select_statement
这是定义视图的 SELECT 语句。该语句可以使用多个表或其他视图。若要从创建视图的SELECT子句所引用的对象中选择,必须具有适当的权限。
在select_statement中可以使用函数。select_statement 可使用多个由 UNION 或UNION ALL 分隔的 SELECT 语句。
■ WITH CHECK OPTION
表示强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准则,即保证只能修改满足定义视图条件的数据记录。
■ WITH ENCRYPTION
表示SQL Server 加密包含 CREATE VIEW 语句文本的系统表列。使用 W ITH
ENCRYPTION可防止将视图作为 SQL Server 复制的一部分发布。
下面我们给出在PowerDesinger中创建的ERM系统的两个视图:
(1)供应商有效供货商品
供应商有效供货商品视图包含的列为:供应商编号、供应商简称、商品编号、商品名称、颜色、尺码、单位、单价和最小订购数量。其中,“供应商编号、供应商简称”来自“供应商(tbSupplier)”表,“商品名称、颜色、尺码、单位”来自“商品(tbCommodity)”表,“商品编号、单价、最低订购数量”来自“供应商商品(tbSupplierCommodity)”表。3个表之间是通过“商品编号、供应商编号”建立关联的。
创建该视图的命令如下:
视图中的条件“(b.CommodityNo NOT EXISTS SELECT d.CommodityNo FROM tbStopSupply d)”是用于提取正在供货的商品,它涉及“供应商停止供货商品(tbStopSupply)”表,这个条件的效率实际上很低,我们可以在“供应商商品(tbSupplierCommodity)”表中添加“有效性(CommodityValid)”列来提高效率。如果CommodityValid为1表示该商品未停止供货,那么,条件“(b.CommodityNo NOT EXISTS SELECT d.CommodityNo FROM tbStopSupply d)”可简化为“b.CommodityValid = '1'”。这样,创建供应商有效供货商品视图的命令可改进如下:
(2)分店仓库存货数量
分店仓库存货数量视图包含的列为:仓库编号、仓库名称、仓位编号、仓位名称、商品编号、商品名称、颜色、尺码、单位和当前库存量。其中,“仓库名称”来自“仓库(tbWarehouse)”表,“仓库编号、仓位名称”来自“仓位(tbApartment)”表,“商品名称、颜色、尺码、单位”来自“商品(tbCommodity)”表,“仓位编号、商品编号、当前库存量”来自“仓库存货(tbGoods)”表。4个表之间是通过“商品编号、仓位编号、仓库编号”建立关联的。
创建该视图的命令如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。