图书目录

目    录

课题一  认识和使用数据库

任务1  认识数据库及其应用 2

1.1  场景引入 2

1.2  了解数据库的一些应用 2

1.3  了解数据库管理系统的概念 3

1.4  认识应用程序与数据库管理系统

之间的关系 3

1.5  认识一个真实的数据库 4

1.6  了解数据库定义 7

1.7  独立实践 7

1.7.1  任务 7

1.7.2  安装 SQL Server 2008 8

1.7.3  打开SSMS并连接到数据库

引擎 12

1.7.4  显示“已注册的服务器” 13

1.7.5  注册本地服务器 13

1.7.6  启动数据库引擎 13

1.7.7  连接对象资源管理器 14

1.7.8  附加数据库 14

1.7.9  使用 SSMS编写代码 15

任务2  认识SQL 17

2.1  场景引入 17

2.2  了解SQL的作用 17

2.3  查询单一表中的数据 17

2.3.1  从单一的表中选择特定列 17

2.3.2  从单一的表中选择所有列 18

2.3.3  使用 DISTINCT 消除

重复项 19

2.3.4  使用 TOP 和 PERCENT 

限制结果集 19

2.3.5  独立实践 20

2.4  简单条件查询 21

2.4.1 实例研究 21

2.4.2  独立实践 24

2.5  复杂条件查询 24

2.5.1  使用AND和OR逻辑

运算符 24

2.5.2  AND 和 OR 的优先级 25

2.5.3  独立实践 27

2.6  创建查询列的别名 27

2.7  创建计算列的查询 28

2.7.1  创建计算列的查询 28

2.7.2  数学运算符和文本运算符 29

2.7.3  独立实践 30

2.8  排序 30

2.8.1  单列排序 30

2.8.2  多列排序 31

2.8.3  降序排序 31

2.8.4  使用计算列排序 32

2.8.5  独立实践 34

任务3  使用关系(表)存储用户数据 35

3.1  场景引入 35

3.2  理解关系模型 35

3.2.1  理解关系模型的概念 35

3.2.2  理解关键字 36

3.2.3  理解域 36

3.3  使用数据类型 37

3.4  实现关系 41

3.4.1  创建数据库 41

3.4.2  删除数据库 41

3.4.3  重命名数据库 42

3.4.4  创建表 42

3.4.5  修改表 43

3.4.6  独立实践 46

3.5  操作表的数据 47

3.5.1  添加数据 47

3.5.2  修改数据 50

3.5.3  删除数据 52

3.5.4  独立实践 53

任务4  设置列的属性和约束 55

4.1  场景引入 55

4.2  设置列的属性 55

4.2.1  设置默认值 55

4.2.2  设置精度和小数位数 59

4.2.3  创建标识符列 60

4.2.4  使用空值 64

4.2.5  独立实践 65

4.3  创建约束 65

4.3.1  创建PRIMARY KEY 约束 65

4.3.2  创建UNIQUE约束 67

4.3.3  创建CHECK约束 69

4.3.4  比较列约束和表约束 71

4.3.5  独立实践 72

  

课题二  设计数据库

任务5  使用实体-联系模型进行数据

建模 74

5.1  场景引入 74

5.2  确定实体 75

5.3  标识实体的属性 75

5.3.1  简单属性和复合属性 75

5.3.2  单值属性和多值属性 76

5.3.3  派生属性 76

5.3.4  属性的域 76

5.3.5  关键字 76

5.4  标识实体间的联系 77

5.4.1  联系的类型 77

5.4.2  1对1联系(1∶1) 77

5.4.3  1对多联系(1∶*) 77

5.4.4  多对多联系(*∶*) 77

5.5  画出实体-联系图 77

5.5.1  实体类的图形化表示 78

5.5.2  关系的图形化表示 78

5.5.3  属性的图形化表示 79

5.6  实例研究 80

5.6.1  标识实体类 80

5.6.2  标识实体类间的关系 80

5.6.3  标识实体的属性 82

5.6.4  E-R图 86

5.7  独立实践 86

任务6  将实体-联系模型转变成

数据库设计 89

6.1  场景引入 89

6.2  使用关系模型表示实体类 89

6.3  表的规范化 91

6.3.1  函数依赖和函数依赖传递 91

6.3.2  更新异常 92

6.3.3  规范化的本质 92

6.3.4  第一范式 93

6.3.5  第二范式 93

6.3.6  第三范式 93

6.4  表示HAS-A联系 94

6.4.1  表示1对1联系 94

6.4.2  表示1对多联系 94

6.4.3  表示多对多联系 95

6.5  实例研究 96

6.5.1  将E-R模型映射为表 96

6.5.2  对多值属性的处理 98

6.5.3  再论1对1关系 98

6.6  独立实践 99

  

课题三  实现数据库

任务7  创建数据库和表 102

7.1  场景引入 102

7.2  物理实现数据库 102

7.2.1  理解数据库 102

7.2.2  创建数据库 103

7.2.3  修改数据库 108

7.2.4  独立实践 109

7.3  创建表 109

7.4  实例研究 110

7.5  独立实践 113

任务8  创建表的关系和参照完整性 114

8.1  场景引入 114

8.2  创建表的关系 114

8.2.1  在创建表时创建外键约束 115

8.2.2  给已有的外键创建外键

约束 116

8.2.3  在已有的表中添加外键

并创建外键约束 117

8.2.4  独立实践 117

8.3  创建参照完整性 117

8.3.1  理解参照完整性 117

8.3.2  创建级联删除规则 117

8.3.3  创建级联更新规则 118

8.3.4  对 INSERT 和 UPDATE 

语句忽略外键约束 119

8.3.5  独立实践 119

8.4  实例研究 119

任务9  使用SQL查询数据库 122

9.1  场景引入 122

9.2  创建基本查询 122

9.2.1  创建范围查询 122

9.2.2  列表查询 124

9.2.3  创建模糊查询 124

9.2.4  使用NULL值查询 128

9.2.5  独立实践 128

9.3  创建汇总与分组查询 129

9.3.1  汇总数据 129

9.3.2  创建分组查询 130

9.3.3  独立实践 133

9.4  使用子查询 133

9.4.1  了解子查询的概念 133

9.4.2  查询中列名的限定 134

9.4.3  使用相关子查询 135

9.4.4  使用单行子查询和多行

子查询 136

9.4.5  使用 EXISTS 和NOT 

EXISTS的子查询 138

9.4.6  使用子查询替代表达式 139

9.4.7  在UPDATE、DELETE语句中

使用子查询 140

9.4.8  独立实践 140

9.5  创建连接查询 141

9.5.1  创建内连接查询 141

9.5.2  创建外连接查询 143

9.5.3  创建交叉连接查询 145

9.5.4  创建连接三个或更多的表的

查询 145

9.5.5  独立实践 146

9.6  合并结果集 147

9.6.1  使用UNION进行查询 147

9.6.2  独立实践 147

9.7  更改数据库中的数据 148

9.7.1  使用SELECT和TOP子句

向表中添加数据 148

9.7.2  使用 FROM 和TOP子句

更改数据 152

9.7.3  使用TOP和附加的 FROM

子句删除数据 155

9.7.4  独立实践 158

9.8  实例研究 158

任务10  索引 162

10.1  场景引入 162

10.2  了解索引 162

10.3  了解索引的类型 163

10.3.1  了解聚集索引 163

10.3.2  了解非聚集索引 163

10.3.3  了解唯一索引 164

10.4  创建与删除索引 164

10.4.1  在现有表上创建索引 164

10.4.2  在创建表时创建索引 165

10.4.3  删除索引 166

10.4.4  独立实践 166

10.5  使用索引 167

10.5.1  使用聚集索引 167

10.5.2  使用非聚集索引 167

10.5.3  使用唯一索引 168

10.6  实例研究 168

  

课题四  为数据库创建对象和程序

任务11  创建视图 172

11.1  场景引入 172

11.2  理解视图 172

11.2.1  了解视图的概念 172

11.2.2  理解视图的作用 173

11.3  创建视图 173

11.3.1  创建简单视图 174

11.3.2  使用视图 174

11.3.3  创建具有计算列的视图 175

11.3.4  创建视图列的别名 176

11.3.5  加密视图 177

11.3.6  创建具有数据约束的视图 177

11.3.7  独立实践 178

11.4  修改和重命名视图 179

11.4.1  修改视图 179

11.4.2  重命名视图 180

11.5  通过视图修改数据 180

11.6  比较视图和查询 181

11.7  实例研究 181

任务12  编写批处理和脚本 183

12.1  场景引入 183

12.2  使用变量与系统函数 183

12.2.1  使用变量 183

12.2.2  使用系统函数 185

12.3  编写批处理 187

12.3.1  使用批处理 187

12.3.2  批处理中的错误 188

12.3.3  何时使用批处理 190

12.4  使用脚本 192

12.5  独立实践 193

任务13  存储过程 195

13.1  场景引入 195

13.2  了解存储过程 195

13.3  创建简单的存储过程 196

13.3.1  创建并使用存储过程 196

13.3.2  独立实践 196

13.4  创建带参数的存储过程 196

13.4.1  创建使用参数的简单存储

 过程 197

13.4.2  创建使用参数默认值的

 存储过程 197

13.4.3  执行存储过程 198

13.4.4  使用包含通配符的参数

 默认值创建存储过程 199

13.4.5  独立实践 200

13.5  创建复杂存储过程 200

13.5.1  使用变量、IF语句和RETURN

 语句 200

13.5.2  使用IF…ELSE语句 202

13.5.3  在存储过程中调用其他存储

 过程 204

13.5.4  创建使用输出参数返回数据的

 存储过程 205

13.5.5  独立实践 207

13.6  修改和删除存储过程 208

13.6.1  修改存储过程 208

13.6.2  查看存储过程的定义 209

13.6.3  删除存储过程 209

13.6.4  独立实践 209

13.7  实例研究 209

任务14  创建DML触发器和用户定义

 函数 217

14.1  场景引入 217

14.2  了解DML触发器种类 217

14.2.1  了解AFTER 触发器 217

14.2.2  了解INSTEAD OF触发器 217

14.3  创建DML触发器 217

14.3.1  创建AFTER 触发器 218

14.3.2  查看、禁用和删除DML

 触发器 218

14.3.3  了解Inserted和Deleted表 220

14.3.4  AFTER 触发器实例研究 220

14.3.5  独立实践 222

14.4  创建INSTEAD OF 触发器 222

14.4.1  一个应用实例研究 222

14.4.2  独立实践 224

14.5  比较触发器与约束 224

14.6  修改和重命名触发器 225

14.6.1  修改触发器 225

14.6.2  重命名触发器 225

14.6.3  删除触发器 226

14.7  实例研究 226

14.8  创建用户定义函数 228

14.8.1  创建标量函数 228

14.8.2  创建表值函数 230

14.8.3  独立实践 232

任务15  创建游标和控制SQL

 程序流 233

15.1  场景引入 233

15.2  了解为何要使用游标 233

15.3  创建游标 233

15.3.1  实例研究 234

15.3.2  独立实践 236

15.4  控制SQL程序流 236

15.4.1  使用WHILE 236

15.4.2  使用BREAK和

 CONTINUE 238

15.4.3  使用CASE 239

15.4.4  独立实践 242

15.5  创建更新游标 242

15.6  在其他SQL语句中使用游标中的

 数据 244

15.7  独立实践 246

任务16  创建事务与锁 247

16.1  场景引入 247

16.2  理解事务 248

16.3  使用BEGIN和COMMIT 248

16.4  使用ROLLBACK 

 TRANSACTION 251

16.5  使用SAVE TRANSACTION 252

16.6  使用嵌套事务 254

16.7  独立实践 256

16.8  使用包含回滚或提交的存储过程

 和触发器 256

16.8.1  使用包含回滚的触发器 256

16.8.2  使用包含回滚的存储过程 258

16.8.3  独立实践 260

  

课题五  运行与管理数据库

任务17  实现数据库安全性 262

17.1  场景引入 262

17.2  了解安全机制 262

17.2.1  平台与网络安全性 263

17.2.2  主体与数据库对象安全性 263

17.2.3  应用程序安全性 264

17.3  创建登录账户 264

17.3.1  创建使用 Windows 身份

 验证的 SQL Server 登录

 账户 265

17.3.2  创建使用 SQL Server 身份

 验证的 SQL Server 登录

 账户 266

17.3.3  修改登录账户 267

17.3.4  使用内置 SQL Server 系统

 管理员账户 268

17.3.5  独立实践 270

17.4  创建数据库用户 270

17.4.1  创建SQL Server 登录的

 数据库用户 271

17.4.2  创建Windows登录的

 数据库用户 271

17.4.3  修改数据库用户 272

17.4.4  删除数据库用户 273

17.4.5  使用内置数据库用户 273

17.4.6  独立实践 274

17.5  授予权限 274

17.5.1  授予用户对象权限 275

17.5.2  授予语句权限 279

17.5.3  独立实践 280

17.6  使用和创建角色 280

17.6.1  使用服务器角色 281

17.6.2  使用和创建数据库角色 282

17.6.3  向数据库角色添加和删除

 用户 287

17.6.4  独立实践 290

任务18  维护数据库 291

18.1  场景引入 291

18.2  了解数据库备份和还原的概念 291

18.2.1  理解数据库备份类型 291

18.2.2  理解恢复模式 294

18.3  开始备份准备工作 294

18.3.1  切换数据库的恢复模式 294

18.3.2  创建备份设备 295

18.3.3  独立实践 297

18.4  创建数据库备份 297

18.4.1  创建完整数据库备份 297

18.4.2  创建差异数据库备份 298

18.4.3  创建新媒体集并追加

 备份集 300

18.4.4  独立实践 302

18.5  创建事务日志备份 302

18.5.1  事务日志备份 302

18.5.2  独立实践 304

18.6  实现数据库还原 304

18.6.1  设计简单恢复模式下还原

 数据库方案 304

18.6.2  还原完整数据库备份 305

18.6.3  还原差异数据库备份 306

18.6.4  设计完全恢复模式下还原

 数据库方案 308

18.6.5  还原事务日志备份 309

18.6.6  独立实践 313

18.7  分离和附加数据库 314

18.7.1  分离数据库 314

18.7.2  附加数据库 314

18.7.3  独立实践 315

  

  

  

课题六  操作SSMS实现数据库和维护数据库

任务19  创建数据库和表 318

19.1  场景引入 318

19.2  创建数据库 318

19.2.1  创建简单数据库 318

19.2.2  创建指定数据和事务日志

 文件的数据库 318

19.2.3  创建多个数据和事务日志

 文件的数据库 320

19.2.4  创建自定义文件组的

 数据库 321

19.3  修改数据库 322

19.3.1  重命名数据库 322

19.3.2  删除数据库 323

19.3.3  修改数据库文件大小 323

19.3.4  向数据库中添加数据

 或日志文件 324

19.3.5  查看数据库 324

19.4  创建与修改表 325

19.4.1  创建表 325

19.4.2  修改表 325

19.5  操作表的数据 328

19.5.1  添加数据 328

19.5.2  修改数据 329

19.5.3  从表中删除行 329

19.6  设置列的属性和约束 330

19.6.1  设置默认值 330

19.6.2  设置精度和小数位数 331

19.6.3  创建标识符列 331

19.7  独立实践 332

任务20  创建约束和表的关系 333

20.1  场景引入 333

20.2  创建约束 333

20.2.1  创建PRIMARY KEY 

 约束 333

20.2.2  创建UNIQUE约束 335

20.2.3  创建CHECK约束 336

20.2.4  创建表约束 337

20.2.5  独立实践 338

20.3  创建表的关系 338

20.3.1  创建表的关系 338

20.3.2  创建级联规则 339

20.3.3  修改关系属性 340

20.3.4  独立实践 340

任务21  实现数据库安全性 341

21.1  场景引入 341

21.2  创建登录账户 341

21.2.1  创建使用 Windows 身份

 验证的 SQL Server 登录

 账户 341

21.2.2  创建使用 SQL Server 身份

 验证的 SQL Server 登录

 账户 343

21.2.3  修改登录账户 343

21.2.4  独立实践 346

21.3  创建数据库用户 346

21.3.1  创建SQL Server 登录的

 数据库用户 346

21.3.2  创建Windows登录的

 数据库用户 347

21.3.3  修改数据库用户 347

21.3.4  删除数据库用户 348

21.3.5  独立实践 348

21.4  授予权限 348

21.4.1  授予用户对象权限 348

21.4.2  授予语句权限 354

21.4.3  独立实践 355

21.5  使用和创建角色 355

21.5.1  使用服务器角色 355

21.5.2  创建和使用数据库角色 357

21.5.3  向数据库角色添加和删除

 用户 365

21.5.4  独立实践 367

任务22  维护数据库 369

22.1  场景引入 369

22.2  开始备份准备工作 369

22.2.1  查看和切换数据库的恢复

 模式 369

22.2.2  创建备份设备 369

22.2.3  查看逻辑备份设备 370

22.2.4  删除逻辑备份设备 370

22.2.5  独立实践 371

22.3  创建数据库备份 371

22.3.1  创建完整数据库备份 371

22.3.2  创建差异数据库备份 373

22.3.3  创建新媒体集并追加

 备份集 374

22.3.4  独立实践 377

22.4  创建事务日志备份 378

22.5  实现数据库还原 380

22.5.1  还原完整数据库备份 380

22.5.2  还原差异数据库备份 382

22.5.3  还原事务日志备份 384

22.5.4  独立实践 391

22.6  附加和分离数据库 391

22.6.1  分离数据库 391

22.6.2  附加数据库 393

22.6.3  独立实践 393