本书全面系统地介绍了SQL Server 2012的管理操作和应用开发, 以学生成绩数据库为主线, 将基础知识和实际应用有机结合起来。全书共18章, 第1-15章介绍SQL Server 2012服务器端数据库的管理和操作; 第16-18章介绍以SQL Server数据库为后端平台、Java EE为前端开发平台的应用开发。
实例丰富、图文并茂、注重实用性。
起点低,能够全面提升学生的综合应用能力和动手编程能力。
每章都有大量示范性设计实例。
SQL Server是微软公司推出的功能完备的关系数据库管理系统,以其具有大型数据库技术和易于使用的特点被众多院校列为必修课程。SQL Server 2012是微软公司21世纪初具有重要意义的数据库新产品,具有更高的性能、更强的处理能力,在高稳定性、高可用性和可靠性等方面有了进一步的提升,已成为企业级数据库管理系统软件的首选产品。
本书以功能强大的关系数据库SQL Server 2012作为平台,以学生成绩数据库为主线,全面系统地介绍了SQL Server 2012的管理操作和应用开发,将基础知识和实际应用有机结合起来。第1章至第15章介绍SQL Server 2012服务器端数据库的管理和操作,主要内容有数据库系统和数据库设计、SQL Server概述、创建和修改数据库、创建和使用表、T-SQL基础、视图、索引、数据完整性、T-SQL程序设计、存储过程、触发器、事务和锁、系统安全管理、备份和恢复、SQL Server的自动化管理;第16章至第18章介绍以SQL Server数据库为后端平台、Java EE为前端开发平台的应用开发,主要内容有Java EE开发环境、Java EE项目开发基础、基于Java EE和SQL Server的学生成绩管理系统开发。
第2版所做重要改进如下:
* 从SQL Server 2008升级到SQL Server 2012,使用SQL Server 2012调试通过了所有实例的源代码,重新制作有关SQL Server 2012的插图。
* 在教材配套素材中,增加了习题参考答案,重新制作电子课件。
* 为适应升级到SQL Server 2012,改写了第2章的内容和其他章节有关内容,重要章节增加应用举例,各章末增加小结。
本书亮点如下:
* 方便教学,资源配套。本书免费提供教学课件、所有实例的源代码,章末习题有选择题、填空题、问答题和应用题等类型,书末附习题答案,以供教学参考。
* 理论与实践相结合。以SQL Server 2012作为平台,培养学生掌握基本知识和数据库管理、操作、T-SQL语言编程能力。
* 在数据库设计中,着重培养学生掌握基本知识和画出合适的E-R图和将E-R图转换为关系模式的能力。
* 详细介绍T-SQL中的数据查询语言,着重培养学生编写T-SQL查询语句的能力。
* 通过T-SQL程序设计、游标、用户定义函数、存储过程和触发器等章节的论述和应用举例,着重培养学生数据库语言编程能力。
* 基于Java EE和SQL Server数据库的学生成绩管理系统开发等章节可作为教学和实训的内容,培养学生开发一个简单应用系统的能力。
本书全部代码已通过SQL Server 2012测试,考虑到部分院校由于设备条件等因素,有一个从SQL Server 2008到 SQL Server 2012的过程,全部代码(除个别实例外)也可用SQL Server 2008运行。
本书可作为大学本科、高职高专及培训班课程的教学用书,也可作为计算机应用人员和计算机爱好者的自学参考书。
本书由赵明渊主编,参加本书编写的有贾宇明、成和平、何明星、王俊峰、杜亚军、夏军飞、谭向军、胡宇、傅翀、周亮宇、赵凯文、程小菊、邓铠凌、王成均。对于帮助完成基础工作的同志,在此表示感谢!
由于作者水平有限,不当之处,敬请读者批评指正。
编 者
2017年5月
第1章 数据库系统和数据库设计 1
1.1 数据库系统 1
1.1.1 数据库和数据库管理系统 1
1.1.2 数据模型 2
1.1.3 关系数据库 3
1.1.4 数据库系统的模式与组成 5
1.2 数据库设计 5
1.2.1 需求分析 6
1.2.2 概念结构设计 6
1.2.3 逻辑结构设计 8
1.2.4 物理结构设计 10
1.2.5 数据库的实施 10
1.2.6 数据库的运行和维护 10
1.3 应用举例 10
1.4 小结 11
习题1 12
第2章 SQL Server概述 14
2.1 SQL Server简介 14
2.2 SQL Server的安装 15
2.2.1 SQL Server 2012的安装 15
2.2.2 SQL Server 2008的安装 21
2.3 服务器组件和管理工具 25
2.3.1 服务器组件 25
2.3.2 管理工具 25
2.4 SQL Server Management Studio环境 27
2.5 小结 30
习题2 30
第3章 创建和修改数据库 32
3.1 SQL Server数据库的基本概念 32
3.1.1 逻辑数据库 32
3.1.2 物理数据库 34
3.2 创建SQL Server数据库 34
3.2.1 创建数据库 35
3.2.2 修改数据库 37
3.2.3 删除数据库 38
3.3 小结 40
习题3 40
第4章 创建和使用表 42
4.1 表的基本概念 42
4.1.1 表和表结构 42
4.1.2 数据类型 43
4.1.3 表结构设计 48
4.2 创建SQL Server表 49
4.2.1 创建表 49
4.2.2 修改表 54
4.2.3 删除表 57
4.3 操作SQL Server表数据 57
4.4 小结 59
习题4 60
第5章 T-SQL基础 63
5.1 SQL和T-SQL 63
5.1.1 SQL语言 63
5.1.2 T-SQL概述 64
5.2 T-SQL中的数据定义语言 66
5.2.1 数据库操作语句 66
5.2.2 数据表操作语句 72
5.3 T-SQL中的数据操纵语言 77
5.3.1 插入语句 77
5.3.2 修改语句 80
5.3.3 删除语句 81
5.4 T-SQL中的数据查询语言 81
5.4.1 投影查询 81
5.4.2 选择查询 84
5.4.3 连接查询 86
5.4.4 统计计算 91
5.4.5 排序查询 94
5.4.6 子查询 95
5.4.7 SELECT查询的其他子句 98
5.5 综合训练 105
5.6 小结 107
习题5 108
第6章 视图 111
6.1 创建视图 111
6.1.1 使用图形界面方式创建视图 111
6.1.2 使用T-SQL语句创建视图 113
6.2 查询视图 114
6.3 更新视图 116
6.3.1 可更新视图 116
6.3.2 插入数据 117
6.3.3 修改数据 117
6.3.4 删除数据 118
6.4 修改视图定义和重命名视图 118
6.4.1 修改视图定义 118
6.4.2 重命名视图 122
6.5 查看视图信息 123
6.5.1 使用图形界面方式查看视图信息 123
6.5.2 使用系统存储过程查看视图信息 124
6.6 删除视图 124
6.6.1 使用图形界面方式删除视图 124
6.6.2 使用T-SQL语句删除视图 124
6.7 小结 125
习题6 126
第7章 索引 127
7.1 索引的分类 127
7.2 索引的创建 128
7.2.1 使用图形界面方式创建索引 128
7.2.2 使用T-SQL语句创建索引 131
7.3 查看和修改索引属性 132
7.3.1 使用图形界面方式查看和修改索引属性 132
7.3.2 使用系统存储过程查看索引属性 134
7.3.3 使用T-SQL语句修改索引属性 135
7.4 索引的删除 136
7.4.1 使用图形界面方式删除索引 136
7.4.2 使用T-SQL语句删除索引 136
7.5 小结 137
习题7 138
第8章 数据完整性 139
8.1 数据完整性概述 139
8.2 域完整性 140
8.2.1 CHECK约束 141
8.2.2 DEFAULT约束 143
8.3 实体完整性 144
8.3.1 使用图形界面方式创建与删除PRIMARY KEY约束、UNIQUE约束 144
8.3.2 使用T-SQL语句创建与删除PRIMARY KEY约束、UNIQUE约束 145
8.4 参照完整性 146
8.4.1 使用图形界面方式创建与删除表间参照关系 147
8.4.2 使用T-SQL语句创建与删除表间参照关系 149
8.5 规则 150
8.5.1 创建规则 151
8.5.2 查看规则 152
8.5.3 绑定规则 152
8.5.4 验证规则的作用 153
8.5.5 解除规则 154
8.5.6 删除规则 154
8.6 默认值 155
8.6.1 创建默认值 155
8.6.2 查看默认值 156
8.6.3 绑定默认值 156
8.6.4 验证默认值的作用 156
8.6.5 解除默认值 157
8.6.6 删除默认值 157
8.7 综合训练 158
8.8 小结 160
习题8 160
第9章 T-SQL程序设计 163
9.1 数据类型 163
9.1.1 系统数据类型 163
9.1.2 用户自定义数据类型 164
9.1.3 用户自定义表数据类型 167
9.2 标识符、常量和变量 167
9.2.1 标识符 167
9.2.2 常量 168
9.2.3 变量 169
9.3 运算符与表达式 171
9.3.1 算术运算符 172
9.3.2 位运算符 172
9.3.3 比较运算符 172
9.3.4 逻辑运算符 173
9.3.5 字符串连接运算符 174
9.3.6 赋值运算符 174
9.3.7 一元运算符 174
9.3.8 运算符的优先级 174
9.4 流程控制语句 175
9.4.1 BEGIN…END语句 175
9.4.2 IF…ELSE语句 176
9.4.3 WHILE、BREAK和CONTINUE语句 177
9.4.4 GOTO语句 179
9.4.5 RETURN语句 179
9.4.6 WAITFOR语句 180
9.4.7 TRY…CATCH语句 180
9.5 系统内置函数 180
9.6 用户定义函数 189
9.6.1 用户定义函数的定义和调用 190
9.6.2 用户定义函数的删除 196
9.7 游标 196
9.7.1 游标的概念 196
9.7.2 游标的基本操作 197
9.7.3 游标的使用 200
9.8 综合训练 201
9.9 小结 202
习题9 203
创建和修改数据库
本章要点:
* SQL Server数据库的基本概念。
* 创建SQL Server数据库。
如果要使用SQL Server设计和实现信息系统,首先要设计和实现数据的表示和存储,即创建数据库,数据库是SQL Server用于组织和管理数据的基本对象,SQL Server能够支持多个数据库。本章介绍SQL Server数据库的基本概念、创建SQL Server数据库等内容。从本章起以后各章,SQL Server都是指SQL Server 2012。
3.1 SQL Server数据库的基本概念
数据库是SQL Server存储和管理数据的基本对象,本节从逻辑数据库和物理数据库两个角度进行讨论。
3.1.1 逻辑数据库
从用户的观点看,组成数据库的逻辑成分称为数据库对象,SQL Server数据库由存放数据的表以及支持这些数据的存储、检索、安全性和完整性的对象所组成。
1. 数据库对象
SQL Server的数据库对象包括表(table)、视图(view)、索引(index)、存储过程(stored procedure)、触发器(trigger)等,下面介绍常用的数据库对象。
* 表:表是包含数据库中所有数据的数据库对象,由行和列构成,它是最重要的数据库对象。
* 视图:视图是由一个表或多个表导出的表,又称为虚拟表。
* 索引:为加快数据检索速度并可以保证数据唯一性的数据结构。
* 存储过程:为完成特定功能的T-SQL语句集合,编译后存放于服务器端的数据库中。
* 触发器:它是一种特殊的存储过程,当某个规定的事件发生时该存储过程自动执行。
2. 系统数据库和用户数据库
SQL Server的数据库有两类,一类是系统数据库,另一类是用户数据库。
1)系统数据库
SQL Server在安装时创建4个系统数据库,即master、model、msdb和tempdb。系统数据库存储有关SQL Server的系统信息,当系统数据库受到破坏时SQL Server将不能正常启动和工作。
* master数据库:它是系统最重要的数据库,记录了SQL Server的系统信息,例如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQL Server的运行。
* model数据库:为创建数据库提供模板。
* msdb数据库:该数据库是代理服务数据库,为调度信息、作业记录等提供存储 空间。
* tempdb数据库:它是一个临时数据库,为临时表和临时存储过程提供存储空间。
2)用户数据库
用户数据库是由用户创建的数据库,本书所创建的数据库都是用户数据库,用户数据库和系统数据库在结构上是相同的。
3. 完全限定名和部分限定名
在T-SQL中引用SQL Server对象对其进行查询、插入、修改、删除等操作,所使用的T-SQL语句需要给出对象的名称,用户可以使用完全限定名和部分限定名。
1)完全限定名
完全限定名是对象的全名,SQL Server创建的每个对象都有唯一的完全限定名,它由4个部分组成,即服务器名、数据库名、数据库架构名和对象名,其格式如下:
server.database.scheme.object
例如,DELL-PC.stsc.dbo.student即为一个完全限定名。
2)部分限定名
使用完全限定名往往很烦琐且没有必要,经常省略其中的某些部分。在对象全名的4个部分中,前3个部分均可被省略,当省略中间的部分时圆点符“.”不可省略。这种只包含对象完全限定名中的一部分的对象名称为部分限定名。
在部分限定名中,未指出的部分使用以下默认值。
……