内容简介
本书由浅入深,全面细致地讲述了SQL Server 2012的功能特性和开发应用。从SQL Server数据库基础到数据库安全,再到SQL Server开发及数据库性能优化,涵盖SQL Server 2012的所有重要知识点。本书讲解时结合了大量实例,便于读者通过实践更加深刻地理解所学知识。另外,作者专门为本书录制了18小时高清配套教学视频,与本书实例源文件一起收录于配书DVD光盘中。除此外,光盘中还赠送了22小时SQL Server学习视频和3部《程序员面试宝典》电子书,。
本书共22章,分4篇。第1篇SQL Server基础,介绍SQL Server的发展历史、架构、安装及工具等,还介绍了T-SQL基础、数据库基本操作和SQL Server 2012的;第2篇数据安全,介绍SQL Server安全、数据文件安全与灾难恢复、复制;第3篇SQL Server开发,介绍数据库设计、SQL Server与CLR集成、在SQL Server中使用XML、使用ADO.NET、使用SMO编程管理数据库对象、T-SQL语法、Service Broker——异步应用程序平台、空间数据类型、跨实例链接、数据库管理自动化及商务智能;第4篇数据库性能优化,介绍数据存储与索引、数据查询、事务处理和数据库系统调优工具。
本书内容全面,示例精巧而详尽,适合所有想全面学习SQL Server数据库技术的人员阅读,是各个层次的数据库学习人员和广大程序员学习SQL Server的读物,更是IT开发人员的案头必备资料。
目录
第1篇 SQL Server基础
第1章 SQL Server 2012概述( 教学视频:44分钟)
1.1 SQL Server 2012简介 2
1.1.1 SQL Server发展历史 2
1.1.2 SQL Server 2012的特点 4
1.2 SQL Server 2012架构简介 5
1.2.1 SQL Server 2012系统架构 5
1.2.2 SQL Server 2012的协议 6
1.2.3 SQL Server 2012的查询 7
1.2.4 SQL Server 2012的数据操作 7
1.3 SQL Server 2012的安装 9
1.3.1 SQL Server 2012的版本选择 9
1.3.2 SQL Server 2012的安装环境 11
1.3.3 安装配置SQL Server 2012 11
1.4 使用SQL Server Management Studio 15
1.4.1 SQL Server Management Studio简介 15
1.4.2 使用SSMS打开表 16
1.4.3 在SSMS中使用T-SQL 17
1.4.4 使用SSMS管理服务器和脚本 19
1.5 SQL Server 2012的其他工具 20
1.5.1 使用配置管理器配置数据库 20
1.5.2 使用SQL Server Profiler跟踪数据库 24
1.5.3 使用SQL Server 2012联机丛书 25
1.6 SQL Server 2012系统数据库简介 26
1.6.1 系统数据库master——系统表的管理 26
1.6.2 系统数据库model——数据库的模板 27
1.6.3 系统数据库msdb——为SQL Server提供队列和可靠消息传递
1.6.4 系统数据库tempdb——临时工作区 28
1.7 示例数据库 29
1.7.1 安装示例数据库 29
1.7.2 示例数据库AdventureWorks2012 29
1.7.3 示例数据库AdventureWorksDW2012 30
1.8 小结 31
第2章 T-SQL基础( 教学视频:70分钟)
2.1 T-SQL简介 32
2.1.1 SQL背景 32
2.1.2 SQL语言分类 32
2.1.3 语法约定 33
2.2 基本的SQL语句 33
2.2.1 使用SELECT查询数据 34
2.2.2 使用INSERT插入数据 35
2.2.3 使用UPDATE更新数据 36
2.2.4 使用DELETE删除数据 37
2.3 联接查询 38
2.3.1 内联接(INNER JOIN) 39
2.3.2 外联接(OUTER JOIN) 40
2.3.3 联接(FULL JOIN) 41
2.3.4 交叉联接(CROSS JOIN) 41
2.3.5 联接的替代写法 41
2.3.6 联合(UNION) 42
2.4 SQL数据类型 43
2.4.1 数字类型 44
2.4.2 近似数字类型 44
2.4.3 字符串类型 45
2.4.4 Unicode字符串类型 45
2.4.5 二进制串类型 46
2.4.6 日期和时间类型 46
2.4.7 其他数据类型 50
2.5 SQL变量 51
2.6 操作符 52
2.7 流程控制 54
2.7.1 批处理 54
2.7.2 语句块 56
2.7.3 条件语句 56
2.7.4 循环语句 57
2.8 函数 58
2.8.1 函数简介 59
2.8.2 聚合函数 60
2.8.3 日期和时间函数 61
2.8.4 数学函数 62
2.8.5 字符串函数 64
2.8.6 其他常用函数 66
2.9 小结 67
第3章 数据库基本操作( 教学视频:76分钟)
3.1 数据库操作 68
3.1.1 创建数据库 68
3.1.2 修改数据库 70
3.1.3 删除数据库 72
3.2 表操作 72
3.2.1 表简介 72
3.2.2 使用T-SQL创建表 73
3.2.3 使用SSMS创建表 75
3.2.4 创建临时表 76
3.2.5 使用T-SQL修改表 77
3.2.6 使用SSMS修改表 80
3.2.7 删除表 81
3.3 数据完整性 83
3.3.1 实体完整性 83
3.3.2 域完整性 84
3.3.3 引用完整性 85
3.3.4 用户定义完整性 85
3.4 约束操作 85
3.4.1 约束简介 86
3.4.2 NOT NULL约束 86
3.4.3 DEFAULT约束 87
3.4.4 UNIQUE约束 87
3.4.5 PRIMARY KEY主键约束 90
3.4.6 FOREIGN KEY外键约束 92
3.4.7 CHECK约束 97
3.4.8 规则 99
3.4.9 默认值 101
3.4.10 禁用约束 102
3.5 视图 104
3.5.1 视图简介 104
3.5.2 使用T-SQL创建视图 104
摘要与插图
第5 章 SQL Server 2012 安全随着网络时代的到来,越来越多的业务系统运行在互联网上,越来越多的数据都以比特的方式保存在硬盘上,数据的安全成了人们日益关注的一个问题。作为一款强大的企业级数据库管理系统,SQL Server 在安全方面做了很多的工作。本章将主要讲解SQL Server2012 在安全方面的特性。
5.1 新安全机制概论
可将保护SQL Server 视为一系列步骤,它涉及4 方面:平台、身份验证、对象(包括数据)及访问系统的应用程序。本节将从这4 个方面进行简单的介绍。
5.1.1 平台与网络安全性
SQL Server 的平台包括物理硬件和将客户端连接到数据库服务器的联网系统,以及用于处理数据库请求的二进制文件。物理安全性的实践是严格限制对物理服务器和硬件组件的接触。例如,将数据库服务器硬件和联网设备放在限制进入的上锁房间。此外,还可通过将备份媒体存储在安全的现场外位置,限制对其接触。实现物理网络安全先要防止未经授权的用户访问网络。
具体实现包括以下几点。
1.关闭不必要的网络协议
在第1 章讲解SQL Server 2012 的协议中已经讲到,SQL Server 2012 支持4 种不同的协议进行连接。如果资源有限,SQL Server 与应用程序是在同一台服务器上(当然,这是一种不的做法),此时就可以只启用SQL Server 的共享内存协议,而将其他协议关闭。只开启共享内存协议后,没有任何人可以通过网络直接连接SQL Server,当然也就提高了网络安全性。
如果SQL Server 服务器和应用程序服务器是在同一个局域网中(例如服务器之间使用网线直接连接)如图5.1 所示,则对外暴露的只有应用程序服务器,数据库服务器与应用程序服务器在同一个局域网中,此时只需开启命名管道协议即可。
2.指定并限制用于SQL Server的端口
由于网络架构原因或其他因素需要将SQL Server 服务器直接暴露在因特网上,如果使用默认的SQL Server 端口1433 将是十分危险的。黑客通过端口扫描便可断定扫描到的服务器是数据库服务器,通过利用系统漏洞、SQL 注入或利用木马病毒等方法获得了数据库的密码后便可直接通过因特网连接数据库服务器,进行破坏。提高因特网上数据库服务器安全的比较实用的方法就是修改SQL Server 的连接端口。
图5.1 应用程序服务器直连数据库服务器
使用SQL Server 配置管理工具可以修改TCP/IP 协议中使用的端口,将端口改为比较陌生的端口,例如8412,或者修改为其他服务的端口例如443(主要是用于HTTPS 服务)都可以误导入侵者,提高系统的安全性。
3.限制对SQL Server的网络访问
仅仅是对默认端口的修改并不能保证数据库的安全,在黑客得知某端口对应的是数据库服务后仍然可以通过各种手段对数据库资料进行窃取和破坏。对于暴露在因特网上的服务器,都应该使用防火墙来限制网络的访问,提高系统的安全。实际上不仅仅是针对因特网,即使是局域网也有必要使用防火墙来提高系统的安全性。如图5.2 所示为一般大中型企业的服务器网络架构,在企业应用中充斥着各种应用服务器,各种服务器上运行着不同的服务,虽然大部分服务器是统一存放在一个机房中,但是在网络上它们之间是互不相连的。所有的服务器都是通过防火墙再与其他系统或用户进行交互。在防火墙上便可以配置服务器之间的网络访问策略。
通过使用防火墙限制对SQL Server 的网络访问可以很大限度地提高数据库的安全性。例如在图5.2 中的网络架构中,如果数据库只用于网站应用,那么在防火墙上便可以设定只有Web 服务器能够访问数据库服务器。这样即使黑客知道了数据库服务器的地址,知道了开放的端口,哪怕知道了数据库的密码