本书重点阐述了SQL Server 2005的基础知识,前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表、主键、索引等项目,在表之间建立恰当的关系,并掌握如何备份和还原数据库;之后以前面建立的示例数据库为基础,深入讲解各种数据操作的方法,从数据检索、插入、更新、删除,到函数、触发器、存储过程的使用;最后,概略讲述了SQL Server Reporting Services。书中还针对数据安全性方面的操作和细节提供了大量的例子。\r\n 本书适合希望使用SQL Server 2005的开发和管理人员阅读,也可作为高等学校相关课程的教材。
第1章 SQL Server 2005概述和安装\r\n 1.1 为什么选择SQL Server 2005\r\n 1.2 SQL Server的发展\r\n 1.3 硬件要求\r\n 1.4 示例\r\n 1.5 安装\r\n 1.6 标准安装\r\n 1.7 安全性\r\n 1.8 小结\r\n第2章 SSMS\r\n 2.1 SSMS概览\r\n 2.2 SSMS的选项\r\n 2.3 查询编辑器\r\n 2.4 外围应用配置器工具\r\n 2.5 小结\r\n第3章 设计和创建数据库\r\n 3.1 数据库的定义\r\n 3.2 SQL Server中的数据库\r\n 3.3 决定数据库系统类型\r\n 3.4 收集数据 \r\n 3.5 决定要存储在数据库中的信息\r\n 3.6 外部信息和忽略的信息\r\n 3.7 建立关系\r\n 3.8 规范化\r\n 3.9 创建示例数据库\r\n 3.10 小结\r\n第4章 安全 \r\n 4.1 登录名\r\n 4.2 角色\r\n 4.3 架构\r\n 4.4 在解决方案中进行下去之前\r\n 4.5 小结\r\n第5章 定义表\r\n 5.1 什么是表\r\n 5.2 定义表:SSMS \r\n 5.3 列不仅仅是简单的数据仓库 \r\n 5.4 在SQL Server中存储图像和大型文本 \r\n 5.5 在SSMS中创建表 \r\n 5.6 通过查询编辑器定义表 \r\n 5.7 定义表:使用模板 \r\n 5.8 创建模板和修改模板\r\n 5.9 ALTER TABLE命令\r\n 5.10 定义其余的表 \r\n 5.11 设置主键 \r\n 5.12 创建关系\r\n 5.13 使用SQL语句ALTER TABLE\r\n 5.14 小结 \r\n第6章 创建索引和数据库关系图\r\n 6.1 什么是索引\r\n 6.2 确定是什么导致了好的索引 \r\n 6.3 确定是什么导致了坏的索引 \r\n 6.4 针对性能对索引进行回顾 \r\n 6.5 创建索引 \r\n 6.6 删除索引\r\n 6.7 在查询编辑器中修改索引\r\n 6.8 为数据库生成关系图\r\n 6.9 小结\r\n第7章 数据库的备份、还原和维护\r\n 7.1 事务日志 \r\n 7.2 备份策略 \r\n 7.3 当可能发生错误\r\n 7.4 让数据库脱机 \r\n 7.5 备份数据\r\n 7.6 还原数据库 \r\n 7.7 分离和附加数据库\r\n 7.8 为数据库生成SQL脚本\r\n 7.9 维护数据库\r\n 7.10 小结 \r\n第8章 操作数据 \r\n 8.1 T-SQL的INSERT命令的语法\r\n 8.2 SQL命令INSERT \r\n 8.3 DBCC CHECKIDENT\r\n 8.4 列约束\r\n 8.5 同时处理多条记录\r\n 8.6 检索数据\r\n 8.7 使用SSMS检索数据\r\n 8.8 SELECT语句\r\n 8.9 指定列\r\n 8.10 第一批搜索\r\n 8.11 改变输出的显示\r\n 8.12 限制搜索:WHERE的使用\r\n 8.13 字符串函数\r\n 8.14 顺序!顺序!\r\n 8.15 LIKE运算符\r\n 8.16 生成数据:SELECT INTO\r\n 8.17 谁能添加、删除或选取数据\r\n 8.18 更新数据\r\n 8.19 事务\r\n 8.20 删除数据\r\n 8.21 截断表(删除表中的所有行)\r\n 8.22 删除表\r\n 8.23 小结\r\n第9章 构建视图\r\n 9.1 什么是视图\r\n 9.2 针对安全而使用查询\r\n 9.3 加密视图定义\r\n 9.4 创建视图:SSMS\r\n 9.5 使用视图来创建视图\r\n 9.6 CREATE VIEW语法\r\n 9.7 创建视图:查询编辑器窗格\r\n 9.8 创建视图:SCHEMABINDING\r\n 9.9 为视图设置索引\r\n 9.10 小结\r\n第10章 存储过程\r\n 10.1 什么是存储过程\r\n 10.2 CREATE PROCEDURE语法\r\n 10.3 返回一系列记录 \r\n 10.4 创建存储过程:SSMS\r\n 10.5 执行存储过程的不同方法\r\n 10.6 使用RETURN\r\n 10.7 控制流程\r\n 10.8 综合应用\r\n 10.9 小结 \r\n第11章 T-SQL基础\r\n 11.1 使用多个表\r\n 11.2 变量 \r\n 11.3 临时表\r\n 11.4 聚合\r\n 11.5 GROUP BY\r\n 11.6 HAVING\r\n 11.7 独特值\r\n 11.8 函数 \r\n 11.9 RAISERROR\r\n 11.10 错误处理\r\n 11.11 @@ERROR\r\n 11.12 TRY...CATCH\r\n 11.13 小结\r\n第12章 高级T-SQL\r\n 12.1 子查询 \r\n 12.2 APPLY运算符\r\n 12.3 公用表表达式\r\n 12.4 透视数据\r\n 12.5 排名函数\r\n 12.6 使用MAX数据类型\r\n 12.7 小结 \r\n第13章 触发器\r\n 13.1 什么是触发器\r\n 13.2 DML触发器\r\n 13.3 针对DML触发器的CREATE TRIGGER语法\r\n 13.4 为什么不使用约束\r\n 13.5 对逻辑表进行删除和插入\r\n 13.6 创建DML FOR触发器\r\n 13.7 检查特定的列\r\n 13.8 DDL触发器 \r\n 13.9 删除DDL触发器\r\n第14章 SQL Server Reporting Services \r\n 14.1 什么是Reporting Services\r\n 14.2 Reporting Services架构:远观\r\n 14.3 Reporting Services架构:更近的观察\r\n 14.4 使用报表向导构建第一个报表\r\n 14.5 构建即席报表\r\n 14.6 小结\r\n附录 术语表
译 者 序
随着网络的飞速发展、信息技术的突飞猛进,作为形形色色网络应用程序的后台,数据库应用程序以难以置信的速度覆盖了各行各业。这些数据库应用程序常常是以关系型数据库系统为支撑的。
在主流的关系型数据库管理系统中,SQL Server 2005是较为易用且功能非常强大的一种,其功能涉及方方面面,要想全面掌握它不是一件容易的事。对于初学者来说,只有围绕某一主线,由浅入深地进行学习,才能快速入门。
本书正是这样一本读物,它适合那些希望使用SQL Server 2005进行开发,但对其尚不了解或者仅对关系型数据库略知一二的人士阅读。
作为一本引领初学者入门的读物,本书的最大特点是侧重阐述基础知识,对于可能会扰乱读者的较为生僻或者繁难的知识点,作者总是点到为止:一方面,不厌其烦地反复讲述基本的图形界面操作方法,以加深读者的印象,让读者在不知不觉中逐渐熟悉基本的操作;另一方面,作者在讲解完图形界面操作步骤之后,会立即给出实现相应功能的T-SQL代码,使读者能够在明了代码执行效果的基础上,更轻松地掌握T-SQL代码,而这些代码正是开发者所必须了解的。此外,作者在讲述基础知识的同时,也不忘从大处着眼,始终让读者以一个完整的数据库(的创建或使用)为考虑问题的出发点。具体来说,本书的前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表、主键、索引等对象,在表之间建立恰当的关系,并掌握如何备份和还原数据库;本书的后半部分将以前面建立的示例数据库为基础,深入讲解各种数据操作的方法,从数据检索、插入、更新、删除,到函数、触发器、存储过程的使用;在本书的最后,概略讲述了SQL Server Reporting Services,以便读者对此有所了解,为进一步深入学习奠定良好的基础。
最后要说明的是,由于译者水平有限,译文中难免有疏漏、谬误,还望大家不吝指正。
译 者
2006年8月
Robin Dewson是著名投资银行雷曼兄弟公司的SQL Server和Visual Basic顾问。他与人合作编写了多部SQL Server方面的著作,包括Amazon畅销书Pro SQL Server2005,他还是ASP Today网站的撰稿人。可以通过robin@fat-belly.com 或www.fat-belly.com与他联系。
本书针对那些想成为开发者、数据库管理员或者兼为两者,但对SQL Server 2005还不熟悉的读者。无论你是否拥有数据库知识、了解桌面数据库(如MS Access),甚至具有基于服务器(如Oracle)的背景,本书都能为你提供SQL Server 2005入门和运行的知识。
从现在开始,你的基础知识将得以扩展,很快从初学者成长为合格的专业开发者。本书面向广大开发者,从喜欢使用图形界面的程序员,到希望成为SQL Server 2005编程语言(T-SQL)高手的程序员。本书将尽可能贴近实际地演示、说明和展开叙述每一种使用SQL Server 2005的方法,以便你能够判断哪种方式最适合自己。
本书针对数据安全性方面的操作和细节提供了大量示例。你还能学到完成某项任务的最佳方法,甚至也能了解在有两个或更多个选择存在时如何做出正确的选择。
一旦阅读完本书,你将能够娴熟地设计和创建坚实可靠的数据库解决方案。
致谢
首先,我要感谢贝德福德橄榄球俱乐部(www.bedfordrugby.co.uk)的那些“无名英雄”,这些年来,是你们让我的星期六变得如此不寻常。从伟大的Colin Jackson(他任橄榄球主管的第一赛季,便使俱乐部摆脱了勉强维持的处境)到参加俱乐部并全力奉献的运动员们,你们使我们在Twickenham的日子变得那么那么的特别。另外,也要感谢我在俱乐部中的许多朋友,如Bernie McGee、Lee Smith、Nigel Rudgard、Nigel和Sarah Crowe以及Sam Roberts(这里仅列出几个名字)。此外,还要感谢我的教练Junior Blues、Alan Grosvenor、Richard Porter和Rob Robson,他们在我需要暂时停止训练以便写作本书以及其他Apress出版社出版的图书时,给予了充分的理解。
接下来,要感谢与我一起工作的同事Martin Price、Henry Williams、Bill Cotton、Rakesh Juneja以及Jack Mason,是你们让我的生活从每天早晨5点就地狱般地开始了(只是玩笑而已!);特别是Anthony Jawad,若非有你,这9年将不可能是这样的。还有Jock,我对你感激不尽。噢,对了,还要感谢我长期饱受煎熬的训练伙伴Andrew Lockwood和Paul Goodwin……我保证要早睡,并且,为了让你们不再受我震天价响的呼噜声折磨而久久不能入眠,我决定要减一点点的体重。
当我需要全神贯注工作时,再没有比音乐更有助益的了,而且,也再没有比来自BBC(www.bbc.co.uk/6Music)的6Music更好的音乐了。特别是每天由以下几位主持所播放的优秀音乐:非常有趣的早餐秀中的Phill Jupitus和Phil Wilding;Gideon Coe和他非常规的幽默;才华横溢的Vic McGlynn,他使我整个下午都保持清醒。
同样,当我需要放松时,要感谢Sandy Hills Amusements(位于Norfolk的Sea Palling)的Debbie和Charlie Roberts给我提供了全英国最好的娱乐休闲活动!此外,还要感谢Axis(www.axis.com)很棒的网络摄影。最后,要感谢Friends Reunited,让我能与大学里最好的朋友Robert “Toad” McMillan取得联系。
这里,还要感谢我的岳母Jean。多谢Lanzarote,她自始至终帮助Julie解决许许多多、形形色色的家庭里和住宅中的事务。当然,也要感谢我已故的岳父David,我们都十分想念David,他所给予我们的宝贵帮助和指引,实在是怎么谢都不够。
还要感谢我的母亲Laura和父亲Scott。多谢你们,从我的ZX80使用电视而使你们不能观看电视,到为我找到大学,如果不是你们这样一如既往、贯穿始终地在我的生命中帮助我,我绝不可能拥有现在这样幸福而绝妙的生活。实在不知道该怎么谢你们,你们真是最好的父母。另外,要谢谢我的姐姐Carol以及她的孩子Eleanor、Erin和Lucas,真希望我们现在就到澳大利亚去。
这里,必须感谢Apress出版社的所有同仁们,特别是Dan Appleman,他使本书得到了众多作家的支持。此外,还要感谢Beth Christmas、Kylie Johnson、Tina Nielsen、Matt Moodie、Nicole Le Clerc、Ami Knox、Kelly Winquist和饱受煎熬的Tony Davis,以及那些在幕后编制索引的人士,等等,正是有了他们提供的宝贵工作,本书才得以出版。
另外,要感谢Cristian Lester在本书第14章中所给予的帮助。由于时间紧迫,第14章只有很少的准备时间,他很爽快地伸出了援助之手。
十分感谢Jasper Smith对本书所做的技术审校。在撰写本书时,很容易出现愚蠢的遗漏或错误,正是由于拥有Jasper这样有才华和知识的人士,才使得本书获得如此成功。
无疑,我还漏掉了许多应该感谢的人,对于他们我十分抱歉。
Robin Dewson
无封面