视图的sqlSQL Server有一个名为“View”的对象,它允许您将数据拉到一起以创建与现有表中的表库数据集。您无法操纵您可以使用真实表格的数据。但是,如果您经常返回相同的数据,则可以将此数据设置为视图。在您的前端应用程序(例如网站或报告)中,此视图对象以与您使用表的方式相同。视图提高常用查询的性能,聚合大数据集,统一复杂查询并限制用户访问“真实”表。

了解有关SQL查询和使用UDEMY.com的类进行编程。

创建一个视图

视图存储在与其相关的每个数据库中。假设您想为一个名为“store”的电子商务数据库创建一个视图。您将在这个数据库中创建您的视图。打开SQL Server Management Studio并通过单击数据库名称旁边的加号展开数据库。

右键单击“视图”图标并选择“新视图”。SQL Server有一个图形界面,可以帮助您创建视图而不是使用复杂的SQL编码来创建它们。以下窗口显示:

查看-In-SQL

窗口默认为表列表。视图由表,其他视图,函数和同义词组成。通常,您将使用表和视图来创建视图。由于视图与表类似,因此您的视图将查询另一个视图,就像它是表数据集一样。在上面的视图中,您可以看到类似于电子商务存储的表列表。单击视图中要包含的每个表,然后单击“添加”。请注意,Designer在SQL Server Management Studio中将表添加到工作区。

单击“关闭”以关闭表窗口。您可以始终重新打开它并通过右键单击设计器并选择“添加表”来添加更多表格。现在您已准备好创建您的视图并与设计师一起使用。设计者窗口工作区看起来像以下图片:

视图 - 平SQL-2

请注意设计器如何在订单表和客户表之间建立链接。这个链接表明这两个表之间有一个关系。SQL Server是一个关系数据库,所以在大多数表中都有主键和外键的关系。在上面的示例中,CustomerId是客户表的主键。CustomerId作为外键存储在订单表中。有了主键和外键关系,设计器就会自动知道要将这两个表链接在一起。

使用udemy.com的课程了解SQL,数据库和结构化数据。

如果您在Designer的GUI下注意到,Management Studio也为您提供基本的SQL查询。在此示例中,“内部连接”语句是为该关系编写的。您注意到没有过滤器或“其中”子句。如果您现在运行此视图,所有客户和链接订单显示。如果您通常在SQL查询中使用此语句,则实际上可以使用此视图。但是,这个基本很少用于观点。视图为您提供创建大数据集的优势,因此您可以在数据集中具有10个,20个或更多列。由于您使用类似表的视图,因此您可以在查询此视图的SQL语句中写下您的“where”子句。

从表中指定列,拖放到中心面板的每个列。不要重复列。例如,不要从订单和客户表中拖放CustomerID列。这些列具有相同的数据,因此您只需要使用列一次。

注意上图中的中间面板。如果您使用Microsoft Access,您会注意到其格式类似于Access设计器。可以设置表列的数据类型。如果您在视图上使用函数或聚合函数,这是有用的。例如,假设您想要将所有客户的订单历史记录相加,这样您就可以查看客户向您订购的总金额。这使用了“sum”SQL聚合函数。SQL将尝试“猜测”列的数据类型,但您也可以在此面板中手动设置它。对于总收入或累加货币列,您可能希望使用money或decimal数据类型。您应该将数据类型与源列的数据类型匹配,以避免任何转换错误。例如,如果将数据类型设置为整数,但在列中使用了小数,那么在运行视图代码时SQL将返回一个错误。

您还可以在此面板中对您的视图进行排序。排序视图如果要使用原始数据显示关于报告的信息,则非常有用。您可以在多个列中排序。您还可以根据升序(这是默认值)或降序排序。“ASC”用于升序,“DESC”用于降序。

最后,如何查询新视图?在上面的示例中,视图基本上是客户和订单的列表。当您希望向客户显示当前和过去的订单列表时,您可以在前端代码中使用这种类型的查询。例如,假设客户Id 5想要查看他的所有订单。下面的代码使用上面的视图向客户显示订单列表:

从V_CustomersArders中选择*,其中CustomerId = 5

在上面的代码中,视图的名称是“v_CustomersAndOrders”。通常,视图的前缀是某种指示,如“视图”或“v_”。视图的数据集返回所有客户和订单,但是上面的查询只将结果数据集过滤为Id为5的客户。如果您在视图中对数据集进行了排序,那么数据就已经被排序了。如果不是,您必须在前端查询中对结果进行排序。

创建视图后,您可以在代码中自由使用它们,甚至可以在Management Studio工作区中使用它们。查看在数据库中提高性能,以获取大型数据集,因此在需要一次返回几列时,请结合视图。

在Udemy.com上学习如何更有效地使用SQL中的一个类。

SQL中的顶级课程

SQL和PostgreSQL:完整的开发人员指南
斯蒂芬格莱德里
4.7 (1,463)
评价最高
完整的SQL Bootcamp 2021:从零到英雄
何塞Portilla
4.7 (99,199)
畅销书
终极MySQL训练营:从SQL初学者到专家
Colt Steele,Ian Schoonover
4.6 (54389)
畅销书
SQL - 用于数据分析和商业智能的MySQL
365职业
4.6 (27815)
畅销书
高级SQL: SQL专家认证准备课程
Oracle Master Training•全球100,000多名学生,Code Star Academy
4.5 (2208)
完整的SQL和数据库训练营:零到精通[2021]
Andrei Neagoie, Mo Binni
4.6 (1474)
SQL for初学者:使用MySQL和数据库设计学习SQL
Tim Buchalka的学习编程学院,Jon Avis - SQL讲师
4.5 (11,354)
SQL & PostgreSQL初学者:成为一个SQL专家
Jon Avis - SQL教练
4.6 (3,235)
畅销书
SQL编程基础知识
全球学院
4.4 (112)

更多SQL课程

SQL学生也学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示