第1章 数据库基础 1
1.1 数据库存在的必要性 1
1.2 数据库的发展史 2
1.2.1 第一代数据库——层次模型和网状模型 2
1.2.2 第二代数据库——关系型数据库 2
1.2.3 第三代数据库——面向对象数据库 2
1.3 常用数据库简介 3
1.3.1 DBMS和RDBMS的概念 3
1.3.2 Access简介 3
1.3.3 Oracle简介 3
1.3.4 MySQL简介 4
1.3.5 Sybase简介 4
1.3.6 SQL Server简介 5
1.4 数据库的基本概念 5
1.4.1 数据和信息 5
1.4.2 实体和记录 5
1.4.3 数据库和数据库表 5
1.4.4 数据冗余和数据完整性 5
1.5 SQL Server 2005概述 6
1.5.1 SQL Server 2005简介 6
1.5.2 SQL Server 2005的新增功能 6
1.6 安装SQL Server 2005 7
1.6.1 SQL Server 2005版本 7
1.6.2 安装步骤 8
1.7 SQL Server 2005的主要组件 9
1.8 SQL Server Management Studio介绍 9
1.8.1 SSMS简介 10
1.8.2 SSMS的主要工具 10
1.9 SQL Server 2005的使用 11
1.9.1 创建数据库连接 11
1.9.2 创建数据库登录账户 12
1.10 创建和管理SQL Server数据库 13
1.10.1 数据库文件和文件组简介 13
1.10.2 创建数据库 14
1.10.3 数据库管理和维护 15
1.10.4 删除数据库 16
习题 16
第2章 SQL Server数据库表管理 18
2.1 数据库表的相关概念 18
2.1.1 行、列的定义 18
2.1.2 数据完整性 18
2.1.3 主键和外键 19
2.1.4 SQL Server 2005中的特殊表类型 20
2.2 建立数据库表 20
2.2.1 在SSMS中创建表 20
2.2.2 数据类型 21
2.2.3 建立主键 23
2.2.4 空值约束 24
2.2.5 创建默认值 24
2.2.6 设置标识列 24
2.3 创建表间关系 25
2.4 创建检查约束 27
2.5 导入和导出数据 28
2.6 删除表 30
习题 30
第3章 SQL Server数据管理 32
3.1 SQL简介 32
3.1.1 SQL和T-SQL 32
3.1.2 T-SQL的组成 32
3.1.3 T-SQL的语法约定 33
3.2 T-SQL中的条件表达式和逻辑运算符 33
3.2.1 运算符 33
3.2.2 表达式 34
3.2.3 数据类型 34
3.3 使用T-SQL插入数据 35
3.3.1 使用Insert插入数据行 35
3.3.2 一次插入多行数据 36
3.4 使用T-SQL更新数据 36
3.5 使用T-SQL删除数据 37
3.5.1 使用Delete删除数据 37
3.5.2 使用Truncate Table删除数据 38
习题 39
第4章 检索数据 41
4.1 T-SQL查询基础 41
4.1.1 查询和记录集 41
4.1.2 使用Select语句进行查询 42
4.2 在查询中使用函数 44
4.2.1 字符串函数 44
4.2.2 日期函数 45
4.2.3 数学函数 45
4.2.4 系统函数 46
4.3 Top关键字的使用 47
4.4 过滤重复记录DISTINCT关键字的使用 47
习题 48
第5章 复杂查询 49
5.1 模糊查询 49
5.1.1 使用LIKE进行模糊查询 49
5.1.2 使用BETWEEN在某个范围内进行查询 49
5.2 使用聚合函数 50
5.3 分组查询 51
5.3.1 使用分组GROUP BY 51
5.3.2 使用HAVING 51
5.4 多表联接查询 52
5.4.1 使用表的别名和命名列 52
5.4.2 联接概述 52
5.4.3 内部联接查询 52
5.4.4 外部联接查询 55
5.4.5 自联接查询 56
习题 58
第6章 高级查询 59
6.1 子查询概述 59
6.2 无关子查询 59
6.2.1 单行子查询 60
6.2.2 多行子查询 61
6.3 相关子查询 62
6.3.1 EXISTS子查询 62
6.3.2 NOT EXISTS子查询 62
6.4 子查询在INSERT、UPDATE、DELETE中的应用 63
6.4.1 在INSERT中嵌套子查询 63
6.4.2 在UPDATE中嵌套子查询 64
6.4.3 在DELETE中嵌套子查询 64
6.5 集合操作 65
6.5.1 UNION运算符 65
6.5.2 EXCEPT运算符 66
6.5.3 INTERSECT运算符 66
习题 67
第7章 数据库的设计 68
7.1 规范的数据库设计的必要性 68
7.2 设计数据库的方法 69
7.3 E-R模型 71
7.3.1 实体-关系模型介绍 71
7.3.2 将E-R图转化为表 73
7.4 数据规范化 74
7.4.1 设计问题 74
7.4.2 使用范式规范数据 75
7.4.3 规范化和性能的关系 77
习题 77
第8章 数据库的实现 79
8.1 使用SQL语句创建和删除数据库 79
8.1.1 创建数据库 80
8.1.2 删除数据库 82
8.2 使用SQL语句创建和删除表 82
8.2.1 创建表 84
8.2.2 删除表 85
8.3 使用SQL语句创建和删除约束 85
8.3.1 回顾约束类型 85
8.3.2 添加约束 86
8.3.3 删除约束 86
8.4 用SQL语句创建登录 87
8.4.1 创建登录账户 87
8.4.2 创建数据库用户 88
8.4.3 给数据库用户授权 88
习题 89
第9章 T-SQL编程 91
9.1 T-SQL中的数据类型 91
9.2 使用变量 91
9.2.1 局部变量 91
9.2.2 全局变量 92
9.3 输出语句 93
9.4 批处理 94
9.4.1 批处理的语句 94
9.4.2 在SQL中使用注释 95
9.5 逻辑控制语句 96
9.5.1 IF-ELSE条件语句 97
9.5.2 WHILE循环语句 98
9.5.3 CASE多分支语句 99
习题 100
第10章 事务、索引和视图 101
10.1 事务 101
10.1.1 事务的作用 101
10.1.2 事务的概念及特性 103
10.1.3 事务的分类 104
10.1.4 用T-SQL表示事务 105
10.1.5 事务的隔离级别 106
10.2 索引 107
10.2.1 简介 107
10.2.2 索引的概念 107
10.2.3 创建索引 108
10.2.4 索引的类型 109
10.2.5 索引的特性和创建索引的指导原则 111
10.2.6 删除索引 113
10.3 视图 113
10.3.1 视图的概念及优点 113
10.3.2 创建视图 114
10.3.3 视图上的DML操作 116
10.3.4 修改和删除视图 117
习题 117
第11章 存储过程 119
11.1 存储过程介绍 119
11.2 常用的系统存储过程 120
11.3 用户定义的存储过程 122
11.3.1 创建不带输入参数的存储过程 122
11.3.2 创建带输入参数的存储过程 123
11.3.3 创建带输出参数的存储过程 125
11.3.4 修改和删除存储过程 126
11.3.5 错误信息处理 126
习题 129
第12章 触发器 130
12.1 触发器介绍 130
12.2 触发器的作用 130
12.2.1 触发器的特点 130
12.2.2 触发器的作用 131
12.3 触发器的种类 131
12.4 触发器的工作过程 132
12.5 创建触发器 133
12.5.1 使用SSMS创建触发器 133
12.5.2 使用T-SQL语句创建触发器 134
12.5.3 更改和删除触发器 135
12.6 触发器的应用 135
12.6.1 INSERT触发器 136
12.6.2 DELETE触发器 138
12.6.3 UPDATE触发器 140
12.7 基于视图的INSTEAD OF触发器 142
习题 144
实验1 创建数据库 145
实验2 数据库表管理 150
实验3 数据管理 154
实验4 数据查询 158
实验5 复杂查询 161
实验6 高级查询 165
实验7 数据库的设计 170
实验8 数据库的实现 180
实验9 T-SQL编程 184
实验10 事务、索引和视图 188
实验11 存储过程 191
实验12 触发器 195
参考文献 199