《SQL Server数据库原理及应用教程》从数据库的基本理论知识出发,通过丰富的实例介绍数据库的分析、设计过程以及开发应用等。全书分为3篇。第1篇主要介绍数据库的基本原理与基础知识,SQL Server 2000的特点安装、使用和维护等内容。第2篇为SQL Server 2000数据库管理,包括创建数据库、SQL查询语句、T-SQL、索引与数据的完整性、存储过程和触发器、数据库的安全管理、备份和恢复等内容。第3篇从软件工程的观点讲解Visual Basic/ADO、ASP.NET/ADO.NET开发与编程,给出了SQL Server 数据库在实际应用方面的综合实例。每章还配有一定数量的习题以帮助读者加深理解。
《SQL Server数据库原理及应用教程》可作为普通本科院校相关专业“网络数据库”、“数据库应用”、“电子商务数据库”课程的教材,还可作为网站开发与维护人员参考用书。
数据库技术是计算机技术中至关重要的一个分支,其在国内计算机教育中占有重要的地位。不同的专业,不同的层次,都开设了数据库技术方面的课程,而且全国计算机等级考试一直将数据库应用作为考试科目。在内容编排上,《SQL Server数据库原理及应用教程》从理论到实践、从技术基础到综合实例,循序渐进、由浅入深,重点介绍了数据库系统原理、组成以及数据库系统分析与实现、数据库系统的开发。
在所有科学领域中,计算机技术的发展可以说是日新月异,其变革的影响程度不可估量。其中,以数据库技术的发展和应用尤为突出。数据库技术从20世纪60年代中期产生到现在,不过30多年的时间,就已经有了3次演变,并造就了C.W.Baehman,E.F.Codd和James Gray 3位堪称计算机界的“诺贝尔奖”——图灵奖的得主,发展成了以数据建模和DBMS核心技术为主、包罗丰富、应用领域广泛的一门学科。
20世纪60年代后期,计算机逐渐从科学计算转向数据处理,由于处理的规模增大,相应的数据量随之急剧增加,传统的依赖人工管理数据的方式早已淘汰,而当时的文件系统管理方式也有明显的不足,数据库技术便应时而生。数据库技术所关注的问题简单归纳起来有两点:一是如何减少存储量,二是如何快速检索数据。经过了层次数据库、网状数据库的两次演变后,人们找到了一个相对而言比较优秀的数据库——关系型数据库。关系型数据库借用二维表的概念描述现实生活的各种实体和关系,以关系代数作为理论支持,很好地解决了上述两个问题。因此,数据库技术在实际中得到了极为广泛的应用,几乎所有的DBMS产品,如ORACLE、SOL Server、DB2等核心皆采用关系数据库理论。如今数据库技术仍然在不断地发展创新,并行数据库、分布式数据库、数据仓库和数据挖掘、对象数据库都是从不同角度对数据库技术的拓展。总之,数据库技术是计算机技术中至关重要的一个分支。
数据库技术应用非常普遍,其在国内数据库技术的教学一直备受关注。不同的专业,不同的层次,都开设了数据库技术方面的课程,而且全国计算机等级考试一直将数据库应用作为考试科目。在国内,由于早期数据库的应用采用的是单机形式,当时FoxBase/FoxPro占据了大部分市场,现今步入网络时代,企业的应用需面对更为复杂的情形。因此,功能强大的后台数据库的支持成为至关重要的一环。微软公司推出的SOL Server,由于其功能强大和易操作性而成为了首选;改进后能SOL Server 2000,在Web站点和企业级应用上提供可扩展性和高可靠性。因此,SQL Server近年来在国内的教学和使用上越来越受到人们的重视。
第1篇 数据库基础
第1章 数据库基础概述 2
1.1 数据库系统简介 2
1.2 数据库系统的组成 3
1.2.1 数据库 3
1.2.2 数据库管理系统 3
1.2.3 数据库系统的用户 3
1.2.4 数据库系统的网络结构 4
1.3 关系型数据库 4
1.3.1 关系型数据库定义 4
1.3.2 关系型数据库与表 5
1.3.3 主键与外键 5
1.3.4 字段约束 6
1.3.5 数据完整性 7
1.3.6 表的关联 7
1.4 关系型数据库的设计 9
1.4.1 E-R模型 9
1.4.2 数据库设计过程 10
1.4.3 关系型数据库规范化分析 10
小结 13
习题 13
第2章 SQL Server 2000简介 14
2.1 SQL Server 2000的新特性 14
2.1.1 数据库增强 14
2.1.2 联合数据库服务器 15
2.2 SQL Server 2000的安装 15
2.2.1 安装前的准备事项 15
2.2.2 SQL Server 2000 的硬件和软件安装要求 15
2.2.3 创建SQL Server 2000服务账号 16
2.2.4 SQL Server 2000的安装路径 17
2.2.5 安装SQL Server 2000的步骤 18
2.3 管理SQL Server 2000服务器组件 21
2.3.1 SQL Server 2000服务管理器 21
2.3.2 SQL Server 2000主要的服务器组件简介 22
2.4 SQL Server 2000的通信组件 22
2.4.1 服务器端的网络实用工具 22
2.4.2 客户端网络实用工具 23
2.5 SQL Server 2000主要的管理工具 23
2.5.1 企业管理器 24
2.5.2 查询分析器 24
2.6 注册服务器 25
2.7 一个简单的应用举例 25
小结 27
习题 27
第2篇 数据库管理
第3章 SQL Server数据库管理 30
3.1 SQL Server数据库简介 30
3.1.1 SQL Server数据库 30
3.1.2 设计SQL Server数据库 30
3.1.3 数据库中的对象 31
3.1.4 SQL Server数据库类型 31
3.1.5 文件和文件组 32
3.1.6 日志 32
3.2 创建数据库 33
3.2.1 使用Transact-SQL创建数据库 33
3.2.2 使用企业管理器创建数据库 34
3.3 修改数据库 36
3.3.1 使用Transact-SQL修改数据库 36
3.3.2 使用企业管理器修改数据库 37
3.4 删除数据库 37
3.4.1 使用Transact-SQL删除数据库 37
3.4.2 使用企业管理器删除数据库 38
3.5 查看与设置数据库参数 39
3.5.1 使用sp_helpdb查看数据库信息 39
3.5.2 使用企业管理器查看数据库信息 39
小结 40
习题 40
第4章 表与视图 41
4.1 SQL Server中的数据类型 41
4.1.1 数据类型 41
4.1.2 空值的含义 42
4.2 创建表 43
4.2.1 使用企业管理器创建表 43
4.2.2 使用CREATE TABLE语句创建表 44
4.3 修改表的结构 44
4.3.1 使用企业管理器修改表结构 44
4.3.2 使用ALTER TABLE语句修改表结构 45
4.4 添加表中的记录 46
4.4.1 使用企业管理器添加记录 46
4.4.2 使用INSERT语句添加记录 46
4.5 修改表中的记录 47
4.5.1 使用企业管理器修改记录 47
4.5.2 使用UPDATE语句修改记录 47
4.6 删除表中的记录 48
4.6.1 使用企业管理器删除记录 48
4.6.2 使用DELETE语句删除记录 48
4.7 删除表 49
4.7.1 使用企业管理器删除表 49
4.7.2 使用DROP TABLE语句删除表 50
4.8 视图的概念 50
4.9 创建视图 50
4.9.1 使用企业管理器创建视图 50
4.9.2 使用CREATE VIEW创建视图 52
4.10 管理视图 53
4.10.1 查看和修改视图信息 53
4.10.2 删除视图 54
4.11 通过视图修改基本表中的数据 54
4.11.1 查询操作 55
4.11.2 插入操作 55
4.11.3 修改操作 56
4.11.4 删除操作 56
小结 56
习题 56
第5章 SQL结构化查询语言 57
5.1 SQL基础 57
5.1.1 SQL概述 57
5.1.2 SQL的分类 57
5.2 SELECT查询语句 58
5.2.1 SQL查询分析器 58
5.2.2 查询语句格式 59
5.3 基于单表的查询 59
5.3.1 查询表中指定的字段 60
5.3.2 通配符“*”的使用 60
5.3.3 使用单引号加入字符串 60
5.3.4 使用别名 61
5.3.5 显示表达式的值 61
5.3.6 使用DISTINCT短语消除重复的记录 61
5.3.7 使用WHERE子句查询特定的记录 62
5.3.8 使用ORDER BY子句对查询结果排序 67
5.3.9 SQL的聚合函数 67
5.3.10 使用GROUP BY子句对查询结果进行分组 70
5.3.11 使用HAVING子句筛选结果表 70
5.4 基于多表的连接查询 71
5.4.1 连接谓词 71
5.4.2 以JOIN关键字指定的连接 73
5.5 子查询 76
5.5.1 使用IN或NOT IN的子查询 77
5.5.2 INSERT,DELETE和UPDATE语句中的子查询 78
5.5.3 使用比较运算符的子查询 79
5.5.4 使用EXISTS的子查询 80
5.5.5 相关子查询 81
5.5.6 使用UNION运算符组合多个结果 82
5.5.7 在查询的基础上创建新表 82
小结 83
习题 84
第6章 Transact-SQL 85
6.1 常量 85
6.1.1 关于SQL标识符 85
6.1.2 常量 85
6.2 变量 86
6.2.1 全局变量 86
6.2.2 局部变量 87
6.3 数据类型 88
6.3.1 系统数据类型 88
6.3.2 用户定义数据类型 88
6.4 运算符与表达式 90
6.5 流程控制语句 91
6.5.1 BEGIN…END语句 91
6.5.2 IF…ELSE语句 91
6.5.3 无条件转移(GOTO)语句 92
6.5.4 WHILE,BREAK和CONTINUE语句 92
6.5.5 RETURN语句 93
6.5.6 WAITFOR语句 93
6.6 系统内置函数 93
6.6.1 系统函数 94
6.6.2 日期时间函数 96
6.6.3 字符串函数 96
6.6.4 数据函数 98
6.6.5 集合函数 98
6.7 用户自定义函数 98
6.7.1 用户函数的定义与调用 98
6.7.2 用户定义函数的删除 102
小结 102
习题 103
第7章 索引与数据完整性 104
7.1 索引 104
7.1.1 索引的分类 104
7.1.2 索引的创建 105
7.1.3 索引的删除 108
7.2 数据完整性 109
7.2.1 数据完整性的分类 109
7.2.2 PRIMARY KEY约束 110
7.2.3 FOREIGN KEY约束 111
7.2.4 UNIQUE约束 111
7.2.5 CHECK约束 112
7.2.6 默认值约束 113
小结 115
习题 115
第8章 存储过程和触发器 117
8.1 存储过程概述 117
8.1.1 存储过程的基本概念 117
8.1.2 存储过程的类型 117
8.2 存储过程的创建 118
8.2.1 使用CREATE PROCEDURE语句创建 118
8.2.2 使用企业管理器创建 120
8.2.3 使用向导创建 121
8.3 执行存储过程 122
8.4 存储过程的参数 124
8.4.1 参数传递方式 124
8.4.2 使用默认参数 125
8.4.3 使用带OUTPUT的返回参数 125
8.5 存储过程的返回值 126
8.5.1 RETURN语句 126
8.5.2 捕获存储过程的返回值 127
8.6 存储过程的查看、修改和删除 127
8.6.1 存储过程的查看 127
8.6.2 存储过程的修改 128
8.6.3 存储过程的删除 128
8.7 触发器的概念 129
8.8 触发器的创建 129
8.8.1 使用企业管理器创建触发器 129
8.8.2 使用Transact-SQL语句创建触发器 129
8.9 触发器的使用 131
8.9.1 inserted表和deleted表 131
8.9.2 INSERT触发器和UPDATE触发器 132
8.9.3 DELETE触发器 134
8.10 触发器的修改及删除 134
8.10.1 触发器的修改 134
8.10.2 触发器的删除 135
小结 135
习题 135
第9章 备份恢复 137
9.1 备份和恢复概述 137
9.1.1 备份和恢复需求分析 137
9.1.2 数据库备份的基本概念 137
9.1.3 数据库恢复概念 138
9.2 备份操作和备份命令 138
9.2.1 创建备份设备 138
9.2.2 备份命令 139
9.2.3 使用企业管理器进行备份 140
9.2.4 使用备份向导进行备份 141
9.3 恢复操作和恢复命令 143
9.3.1 检查点 143
9.3.2 数据库的恢复命令 143
9.3.3 使用企业管理器恢复数据库 144
9.4 导入导出 146
9.4.1 导入导出概念 146
9.4.2 使用实用程序导入导出数据 147
小结 147
习题 148
第10章 系统安全管理 149
10.1 SQL Server 2000的身份认证模式 149
10.2 建立和管理用户账号 150
10.2.1 Windows NT认证模式登录账号的建立与删除 150
10.2.2 SQL Server认证模式登录账号的建立与删除 150
10.2.3 通过企业管理器创建和删除登录账号 151
10.3 服务器角色与数据库角色 152
10.3.1 固定服务器角色 152
10.3.2 固定数据库角色 153
10.3.3 用户自定义数据库角色 160
小结 161
习题 161
第3篇 数据库应用开发
第11章 C/S数据库应用开发——Visual Basic/ADO+SQL Server 164
11.1 ODBC概述 164
11.1.1 ODBC体系结构 164
11.1.2 配置ODBC数据源 165
11.2 OLE DB和ADO概述 167
11.2.1 OLE DB体系结构 167
11.2.2 ADO对象模型 168
11.2.3 使用ADO的简单流程 169
11.3 使用ADO数据控件访问SQL Server数据库 169
11.3.1 在Visual Basic工程中添加ADO数据控件 170
11.3.2 使用ADO数据控件连接SQL Server数据库 170
11.3.3 ADO数据控件在程序中的操作方法 173
11.3.4 数据绑定控件的使用 174
11.4 使用ADO对象访问SQL Server数据库 179
11.4.1 引用ADO对象库 179
11.4.2 使用Connection对象 180
11.4.3 使用Recordset对象处理数据 182
11.4.4 使用Command对象 188
11.5 开发实例——基于VB的学生信息管理系统 191
11.5.1 需求分析 191
11.5.2 系统设计 192
11.5.3 数据库设计 192
11.5.4 用户登录模块的创建 194
11.5.5 学生信息管理系统主窗体的创建 196
11.5.6 子模块的编制 199
11.5.7 系统编译与发行 203
小结 204
习题 204
第12章 B/S数据库应用开发技术——ASP.NET/ADO.NET+SQL Server 205
12.1 ASP.NET概述 205
12.1.1 ASP.NET开发环境 205
12.1.2 创建第一个ASP.NET Web应用程序 209
12.1.3 ASP.NET语法 210
12.2 ADO.NET数据访问技术 215
12.2.1 ADO.NET简介 215
12.2.2 利用Select语句查询记录 217
12.2.3 用Insert语句插入记录 221
12.2.4 利用Update语句更新记录 223
12.2.5 利用Delete语句删除记录 224
12.3 采用数据绑定技术访问数据库 225
12.3.1 SqlDataSource数据源控件 225
12.3.2 使用GridView数据绑定控件存取数据库 226
12.3.3 使用DateList数据绑定控件存取数据库 238
12.3.4 使用Repeater数据绑定控件存取数据库 249
小结 252
习题 252
第13章 B/S数据库应用开发综合实例——基于ASP.NET的学生管理系统 253
13.1 系统需求分析 253
13.2 总体设计 254
13.3 数据库分析、设计与实现 254
13.4 编写公用模块 258
13.5 学生管理界面 261
13.6 课程管理界面 284
13.7 成绩管理界面 285
13.8 教师管理界面 286
13.9 班级管理界面 286
小结 287
习题 287
附录 289
附录A 数据库表结构 289
附录B 常用语句 292
附录C 常用函数 294
参考文献 299
第1章 数据库基础概述
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理体制系统的核心。数据库技术研究解决计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余,实现数据共享,保障数据安全以及高效地检索数据和处理数据。
随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络信息化管理系统的基础。本章主要介绍数据库系统的发展与组成,数据库的模型,数据库系统的网络结构,以及关系型数据库的分析与设计等内容,是学习和掌握现代数据库技术的基础。
1.1 数据库系统简介
随着计算机技术的发展,计算机的主要功能已从科学计算转变为事务处理。据统计,目前全世界80%以上的计算机主要从事事务处理工作。在进行事务处理时,并不要求复杂的科学计算,主要是从大量有关数据中提取所需信息。因此,在进行事务处理时,必须在计算机系统中存人大量数据。为了有效地使用存放在计算机系统中的大量有关数据,必须采用一整套严密合理的存取数据、使用数据的方法。
数据管理是指对数据的组织、存储、维护和使用等。随着计算机技术的发展,数据管理的方法也在发展,大体上可将其分为3个阶段:人工管理阶段、文件管理阶段和数据库系统阶段。
人工管理阶段大致在20世纪50年代中期之前。那时,数据包含在程序中,用户必须考虑存储、使用数据的一切工作。因此,该阶段的数据管理是最低级的数据管理。
文件管理阶段大致从20世纪50年代后期开始,至20世纪60年代末。它是通过文件系统来管理和使用数据的。用户不必考虑数据在计算机系统中的实际存储方法(称为物理结构),只须考虑数据问的关系(称为逻辑结构)。文件系统中的文件属于个别程序所有。因此,文件管理阶段比人工管理阶段有了进步。但是,它仍然存在很严重的缺陷。例如,数据不能为有关用户共享,数据和程序间有着很大的依赖性等,从而造成数据的重复,冗余度既大,又极易造成数据的不一致性(修改数据时,相同重复数据未同时全部得到修改)。为了克服文件系统的缺点,产生了数据库系统。