2017年3月28日

4.4.2创建视图

摘要: 视图与表相似,用户可以像表那样在视图中进行选择,有时还可以更新或删除值。视图存储在数据库中,但它们并不真正保存数据。视图只是一个经过优化的select查询,与每次要选择数据时都编写建立的查询相比,执行起来更为高效。当然,视图还可以做一些非常有趣的事情,这里不打算深入讲解(和实际存储数据一样)。例如它 阅读全文

posted @ 2017-03-28 14:11 水碧 阅读(148) 评论(0) 推荐(0) 编辑

4.4.1创建表

摘要: 在当前数据库中添加一个新表,最简单的格式是,先指定表的名字,然后在括号中指定表的新列及其数据类型。以下是一个例子: create table Appointment( AppointmentID int, Description varchar(50), StartDateTime datetime 阅读全文

posted @ 2017-03-28 14:01 水碧 阅读(119) 评论(0) 推荐(0) 编辑

4.4数据定义语言

摘要: 如果读者用过Management Studio、Visual Studio、Access或其他工具创建、设计SQL Server数据库,就肯定会接触到数据定义语言(DDL)——也许不是直接使用DDL,而是使用这些用户界面工具来管理数据库对象。几乎所有的数据库维护操作都会首先被编写成脚本,而后才能被执 阅读全文

posted @ 2017-03-28 13:56 水碧 阅读(229) 评论(0) 推荐(0) 编辑

4.3.11 版本控制

摘要: 管理脚本时,最大的挑战是如何追踪一个文件的多个版本。应用程序开发的自然顺序是首先设计功能的原型,然后不断重复的设计、测试和调试,直到功能稳定为止。在进行任何改变之前,保存一份能工作的SQL脚本与程序源代码的副本是很重要的,因为对查询和编程对象增加功能几乎都会对系统的功能产生副作用,至少在短期内是这样 阅读全文

posted @ 2017-03-28 12:10 水碧 阅读(186) 评论(0) 推荐(0) 编辑

4.3.10 管理脚本

摘要: 最好指定一个文件夹来保存脚本文件。我通常会为每个数据库项目或者应用程序创建一个文件夹,并定期将这些文件夹中的脚本文件备份、存档。和程序源代码一样,我把脚本看得跟金子一样贵重,尤其是数据库中的编程对象(视图、函数和存储过程),都应做成脚本,保存在CD或者受保护的网络文件夹中。在出现错误时,将对数据库恢 阅读全文

posted @ 2017-03-28 11:45 水碧 阅读(144) 评论(0) 推荐(0) 编辑

4.3.9 生成脚本

摘要: 脚本表示为完成某个任务而使用的一串SQL语句组合,脚本可以只有一条查询语句,也可以由多个查询和命令组成,来创建整个数据库。SQLServer客户端和管理工具(Management Studio 和Visual Studio)可以为任何对象或对象组合生成脚本,甚至可以生成重建整个数据库的脚本。 脚本通 阅读全文

posted @ 2017-03-28 11:42 水碧 阅读(127) 评论(0) 推荐(0) 编辑

4.3.8 使用模板

摘要: Management Studio包含一个非常有用、但常被忽略的功能——模板。模板为多种数据库对象脚本的编写提供了起点。SQL Server自带许多模板,自己添加也很容易。我们在第3章已经学习了如何使用Management Studio中的脚本模板功能。事实上,模板只是一个包含了SQL命令与对象名占 阅读全文

posted @ 2017-03-28 11:38 水碧 阅读(130) 评论(0) 推荐(0) 编辑

4.3.7 注释脚本

摘要: 在编写SQL脚本时,编写者当然理解脚本的含义,因为编程需要在一定的环境中完成。我在完成一个项目时,一直在思考这个项目,几乎所有的一切在那一刻都是有意义的。有一次,我为咨询客户开发了一个数据库应用程序,几个人花了几个月的时间编写了查询与程序代码。后来,他们要求我创建一些新的报表。当我阅读这个项目的代码 阅读全文

posted @ 2017-03-28 11:28 水碧 阅读(247) 评论(0) 推荐(0) 编辑

4.3.6 对象的界定通过编写接口来访问带这类命名结构的表会出问题。如前所述,SQL Server的灵活性不应用作编写错误代码或创建问题对象的借口。 注意在使用Management Studio的脚本工具时,SQL Server会界定所有的对象。这不是因为这么做是必须的,也不是编写代码的最佳方式,而是因为在界定符中封装所有的对象,比编写脚本引擎来查找需要界定的对象更容易。

摘要: 如前所述,在创建对象时,最好避免使用内嵌的空格或保留字作为对象名,但设计人员可能并没有遵守这个最佳实践原则。例如,我当前使用的数据库中有一个审核表名为Transaction,但是Transaction明显是一个保留字,不应用作表的名称。更糟糕的是,这个表中有一个Timestamp列和LineNo列。 阅读全文

posted @ 2017-03-28 11:27 水碧 阅读(356) 评论(0) 推荐(0) 编辑

4.3.5 命名规范

摘要: 一些本来很简单的事物却被人为地变得极度复杂、令人迷惑,这似乎是一个普遍的现象。在创建数据库时,对象应按照某种合理的命名规范来命名。命名规范没有业内通用的标准,人们对于什么是合理的命名规范意见不一。大多数人认为这是简单的常识,于是他们不在此花太多精力。但问题是,没有通用的命名规范,每个人都认为自己的命 阅读全文

posted @ 2017-03-28 11:17 水碧 阅读(175) 评论(0) 推荐(0) 编辑

4.3.4 查询语法基础(2)

摘要: 从指定了别名的表中引用列会导致混乱,这与代码编写者有关。正是的规则是只存在模糊的列,或者多个表中都有的列才需要表别名。所以在技术上,可以把查询变为: 注意在这个例子中,对OrderDate、OrderQty和UnitPrice列没有加上它们的源表。这不是好的编程方式,因为如果不熟悉数据库结构,就很难 阅读全文

posted @ 2017-03-28 11:15 水碧 阅读(222) 评论(0) 推荐(0) 编辑

4.3.4 查询语法基础(1)

摘要: “查询”这个术语有点误导作用。一般常把查询看做一个问题,人们常常把“查询”与T-SQL中的select语句联系起来。但无论T-SQL包含select、update、delete还是insert语句,都是一个查询。查询更像一个句子,而且必须是一个完整的语句,至少要有名词和动词。sql语义规则定义了一个 阅读全文

posted @ 2017-03-28 11:01 水碧 阅读(169) 评论(0) 推荐(0) 编辑

导航