第一篇 基础知识篇
第1章 数据库开发前奏
1.1 深刻认识——数据库系统
1.1.1 数据库系统的组成
1.1.2 数据库技术的发展史
1.2 变化多端——数据模型
1.2.1 数据模型的概貌
1.2.2 常见的数据模型
1.2.3 关系数据库的规范化
1.2.4 关系数据库的设计原则
1.2.5 实体与关系
1.3 数据库的体系结构
1.3.1 数据库三级模式结构
1.3.2 三级模式之间的映射
1.4 容易理解——关系数据库
1.4.1 Access数据库
1.4.2 SQL Server 2000数据库
1.4.3 SQL Server 2005数据库
1.4.4 SQL Server 2008数据库
1.4.5 Oracle数据库
1.5 小结
1.6 习题
第2章 进入SQL Server 2008的世界
2.1 了解SQL Server 2008的概貌与特性
2.1.1 SQL Server 2008的概貌
2.1.2 SQL Server 2008的特性
2.2 搭建SQL Server 2008开发环境
2.2.1 SQL Server 2008安装必备
2.2.2 SQL Server 2008的安装
2.2.3 SQL Server 2008的卸载
2.3 SQL Server 2008的服务
2.3.1 后台启动SQL Server 2008服务
2.3.2 通过SQL Server配置管理器启动SQL Server 2008服务
2.4 重新生成——注册SQL Server 2008服务器
2.4.1 服务器组的创建与删除
2.4.2 服务器的注册与删除
2.5 小结
第一篇 基础知识篇
第1章 数据库开发前奏
1.1 深刻认识——数据库系统
1.1.1 数据库系统的组成
1.1.2 数据库技术的发展史
1.2 变化多端——数据模型
1.2.1 数据模型的概貌
1.2.2 常见的数据模型
1.2.3 关系数据库的规范化
1.2.4 关系数据库的设计原则
1.2.5 实体与关系
1.3 数据库的体系结构
1.3.1 数据库三级模式结构
1.3.2 三级模式之间的映射
1.4 容易理解——关系数据库
1.4.1 Access数据库
1.4.2 SQL Server 2000数据库
1.4.3 SQL Server 2005数据库
1.4.4 SQL Server 2008数据库
1.4.5 Oracle数据库
1.5 小结
1.6 习题
第2章 进入SQL Server 2008的世界
2.1 了解SQL Server 2008的概貌与特性
2.1.1 SQL Server 2008的概貌
2.1.2 SQL Server 2008的特性
2.2 搭建SQL Server 2008开发环境
2.2.1 SQL Server 2008安装必备
2.2.2 SQL Server 2008的安装
2.2.3 SQL Server 2008的卸载
2.3 SQL Server 2008的服务
2.3.1 后台启动SQL Server 2008服务
2.3.2 通过SQL Server配置管理器启动SQL Server 2008服务
2.4 重新生成——注册SQL Server 2008服务器
2.4.1 服务器组的创建与删除
2.4.2 服务器的注册与删除
2.5 小结
2.6 习题
第3章 如何存储和获取数据——数据库和表
3.1 从头开始——认识数据库
3.1.1 数据库基本概念
3.1.2 数据库常用对象
3.1.3 数据库组成
3.1.4 系统数据库
3.2 向优秀程序员看齐——SQL Server命名规范
3.2.1 标识符
3.2.2 对象命名规则
3.2.3 实例命名规则
3.3 数据库操作
3.3.1 创建数据库
3.3.2 修改数据库
3.3.3 删除数据库
3.4 数据表操作
3.4.1 以界面方式创建、修改和删除数据表
3.4.2 使用CREATE TABLE语句创建表
3.4.3 创建、修改和删除约束
3.4.4 使用ALTER TABLE语句修改表结构
3.4.5 使用DROP TABLE语句删除表
3.5 数据操作
3.5.1 使用INSERT语句添加数据
3.5.2 使用UPDATE语句修改指定数据
3.5.3 使用DELETE语句删除指定数据
3.6 表与表之间的关联
3.6.1 一对一关系
3.6.2 一对多关系
3.6.3 多对多关系
3.7 上机实践
3.7.1 批量插入数据
3.7.2 查看表信息
3.7.3 查询为空/不为空的数据
3.8 小结
3.9 习题
第4章 在“迷宫”中寻找出口——掌握T-SQL与函数
4.1 从哪里开始,到哪里结束——T-SQL语言
4.1.1 T-SQL语言的组成
4.1.2 T-SQL语句结构
4.2 最常用的程序元素——常量与变量
4.2.1 字符串常量
4.2.2 二进制常量
4.2.3 bit常量
4.2.4 日期和时间常量
4.2.5 局部变量
4.2.6 全局变量
4.3 程序员的备忘录——注释符、运算符与通配符
4.3.1 注释符(Annotation)
4.3.2 运算符(Operator)
4.3.3 通配符(Wildcard)
4.4 周而复始——流程控制
4.4.1 BEGIN……END
4.4.2 IF
4.4.3 IF……ELSE
4.4.4 CASE
4.4.5 WHILE
4.4.6 WHILE……CONTINUE……BREAK
4.4.7 RETURN
4.4.8 GOTO
4.4.9 WAITFOR
4.5 程序的灵魂——聚合函数
4.5.1 聚合函数概述
4.5.2 SUM(求和)函数
4.5.3 AVG(平均值)函数
4.5.4 MIN(最小值)函数
4.5.5 MAX(最大值)函数
4.5.6 COUNT(统计)函数
4.5.7 DISTINCT(取不重复记录)函数
4.5.8 查询重复记录
4.6 数字的趣味——数学函数
4.6.1 数学函数概述
4.6.2 ABS(绝对值)函数
4.6.3 PI(圆周率)函数
4.6.4 POWER(乘方)函数
4.6.5 RAND(随机浮点数)函数
4.6.6 ROUND(四舍五入)函数
4.6.7 SQUARE(平方)函数和SQRT(平方根)函数
4.6.8 三角函数
4.7 让字符舞起来——字符串函数
4.7.1 字符串函数概述
4.7.2 ASCII(获取ASCII码)函数
4.7.3 CHARINDEX(返回字符串的起始位置)函数
4.7.4 LEFT(取左边指定个数的字符)函数
4.7.5 RIGHT(取右边指定个数的字符)函数
4.7.6 LEN(返回字符个数)函数
4.7.7 REPLACE(替换字符串)函数
4.7.8 REVERSE(返回字符表达式的反转)函数
4.7.9 STR函数
4.7.10 SUBSTRING(取字符串)函数
4.8 时间如宝——日期和时间函数
4.8.1 日期和时间函数概述
4.8.2 GETDATE(返回当前系统日期和时间)函数
4.8.3 DAY(返回指定日期的天)函数
4.8.4 MONTH(返回指定日期的月份)函数
4.8.5 YEAR(返回指定日期的年份)函数
4.8.6 DATEDIFF(返回日期和时间的边界数)函数
4.8.7 DATEADD(添加日期时间)函数
4.9 转换函数
4.9.1 转换函数概述
4.9.2 CAST函数
4.9.3 CONVERT函数
4.10 元数据函数
4.10.1 元数据函数概述
4.10.2 COL_LENGTH函数
4.10.3 COL_NAME函数
4.10.4 DB_NAME函数
4.11 上机实践
4.11.1 查看商品信息表中价格最贵的记录
4.11.2 使用GROUPING SETS组合多个分组结果集
4.11.3 IF EXISTS语句检测数据是否存在
4.12 小结
4.13 习题
第5章 如何高效地开发程序——SQL查询
5.1 简单明了——SELECT检索数据
5.1.1 SELECT语句的基本结构
5.1.2 WITH子句
5.1.3 SELECT……FROM子句
5.1.4 INTO子句
5.1.5 WHERE子句
5.1.6 GROUP BY子句
5.1.7 HAVING子句
5.1.8 ORDER BY子句
5.1.9 COMPUTE子句
5.1.10 DISTINCT关键字
5.1.11 TOP关键字
5.2 深刻认识——UNION合并多个查询结果
5.2.1 UNION与连接之间的区别
5.2.2 使用UNION ALL合并表
5.2.3 UNION中的ORDER BY子句
5.2.4 UNION中的自动数据类型转换
5.2.5 使用UNION合并不同类型的数据
5.2.6 使用UNION合并有不同列数的两个表
5.2.7 使用UNION进行多表合并
5.3 从外到内——子查询与嵌套查询
5.3.1 什么是子查询
5.3.2 什么是嵌套查询
5.3.3 简单的嵌套查询
5.3.4 带IN的嵌套查询
5.3.5 带NOT IN的嵌套查询
5.3.6 带SOME的嵌套查询
5.3.7 带ANY的嵌套查询
5.3.8 带ALL的嵌套查询
5.3.9 带EXISTS的嵌套查询
5.4 串联一起——连接查询
5.4.1 内部连接
5.4.2 外部连接
5.4.3 交叉连接
5.4.4 连接多表的方法
5.5 上机实践
5.5.1 将学生信息表按学生的姓氏笔画重新排序
5.5.2 利用模糊查询进行区间查询
5.5.3 按照升序排列前三的数据
5.6 小结
5.7 习题
第二篇 核心技术篇
第6章 虚拟世界——视图操作
6.1 什么是视图
6.2 视图的分类与操作
6.2.1 以界面方式操作视图
6.2.2 使用CREATE VIEW语句创建视图
6.2.3 使用ALTER VIEW语句修改视图
6.2.4 使用DROP VIEW语句删除视图
6.3 视图中的数据操作
6.3.1 在视图中浏览数据
6.3.2 向视图中添加数据
6.3.3 修改视图中的数据
6.3.4 删除视图中的数据
6.4 上机实践
6.4.1 使用视图过滤数据
6.4.2 视图定义文本加密
6.4.3 使用sp_helptext获取视图信息
6.5 小结
6.6 习题
第7章 让程序速度加快——索引与数据完整性
7.1 索引的概念
7.2 索引的优缺点
7.2.1 索引的优点
7.2.2 索引的缺点
7.3 索引的分类
7.3.1 聚集索引
7.3.2 非聚集索引
7.4 索引的操作
7.4.1 索引的创建
7.4.2 查看索引信息
7.4.3 索引的修改
7.4.4 索引的删除
7.4.5 设置索引的选项
7.5 索引的分析与维护
7.5.1 索引的分析
7.5.2 索引的维护
7.6 全文索引
7.6.1 使用企业管理器启用全文索引
7.6.2 使用T-SQL语句启用全文索引
7.6.3 使用T-SQL语句删除全文索引
7.6.4 全文目录
7.6.5 全文目录的维护
7.7 数据完整性
7.7.1 域完整性
7.7.2 实体完整性
7.7.3 引用完整性
7.7.4 用户定义完整性
7.8 上机实践
7.8.1 格式化的二进制数据进行全文索引
7.8.2 创建多字段非聚集索引检索数据
7.9 小结
7.10 习题
第8章 一次编写多次调用——存储过程
8.1 存储过程简介
8.1.1 存储过程的概念
8.1.2 存储过程的优点
8.1.3 存储过程的分类
8.2 存储过程的创建
8.2.1 使用向导创建存储过程
8.2.2 使用CREATE PROC语句创建存储过程
8.3 存储过程的管理
8.3.1 执行存储过程
8.3.2 查看存储过程
8.3.3 修改存储过程
8.3.4 重命名存储过程
8.3.5 删除存储过程
8.4 上机实践
8.4.1 执行带回传参数的存储过程
8.4.2 在存储过程中使用事务
8.4.3 创建加密存储过程
8.5 小结
8.6 习题
第9章 “定时炸弹”——触发器
9.1 什么是触发器
9.2 触发器的优点与种类
9.2.1 触发器的优点
9.2.2 触发器的种类
9.3 触发器的创建
9.3.1 创建DML触发器
9.3.2 创建DDL触发器
9.3.3 创建登录触发器
9.4 触发器的管理
9.4.1 查看触发器
9.4.2 修改触发器
9.4.3 重命名触发器
9.4.4 禁用和启用触发器
9.4.5 删除触发器
9.5 上机实践
9.5.1 创建递归触发器实现只允许一次删除一条记录
9.5.2 使用触发器向数据库的表中添加数据
9.6 小结
9.7 习题
第10章 从哪里来到哪里去——游标的使用
10.1 游标的概述
10.1.1 游标的实现
10.1.2 游标的类型
10.2 游标的基本操作
10.2.1 声明游标
10.2.2 打开游标
10.2.3 读取游标中的数据
10.2.4 关闭游标
10.2.5 释放游标
10.3 使用系统过程查看游标
10.3.1 sp_cursor_list
10.3.2 sp_describe_cursor
10.4 上机实践
10.4.1 利用游标在商品表中返回指定商品行数据
10.4.2 只允许用户更新游标中指定列中的值
10.4.3 用索引改变游标中表的行顺序
10.5 小结
10.6 习题
第三篇 高级应用篇
第11章 让程序“听话”——事务与锁
11.1 事务的概念
11.2 显式事务与隐式事务
11.2.1 显式事务
11.2.2 隐式事务
11.2.3 API中控制隐式事务
11.2.4 事务的COMMIT和ROLLBACK
11.3 使用事务
11.3.1 开始事务
11.3.2 结束事务
11.3.3 回滚事务
11.3.4 事务的工作机制
11.3.5 自动提交事务
11.3.6 事务的并发问题
11.3.7 事务的隔离级别
11.4 利于保护——锁
11.4.1 SQL Server锁机制
11.4.2 锁模式
11.4.3 锁的粒度
11.4.4 查看锁
11.4.5 死锁
11.5 分布式事务处理
11.5.1 什么是分布式事务
11.5.2 创建分布式事务
11.5.3 分布式处理协调器
11.6 上机实践
11.6.1 使用事务对表进行添加和查询操作
11.6.2 使用事务完成对表的修改和删除操作
11.7 小结
11.8 习题
第12章 实施管理任务——SQL Server的维护
12.1 脱机与联机数据库
12.1.1 脱机数据库
12.1.2 联机数据库
12.2 分离和附加数据库
12.2.1 分离数据库
12.2.2 附加数据库
12.3 导入导出数据
12.3.1 导入SQL Server数据表
12.3.2 导入其他数据源的数据
12.3.3 导出SQL Server数据表
12.4 备份和恢复数据库
12.4.1 备份类型
12.4.2 恢复模式
12.4.3 备份数据库
12.4.4 恢复数据库
12.5 收缩数据库和文件
12.5.1 自动收缩数据库
12.5.2 手动收缩数据库
12.6 生成与执行SQL脚本
12.6.1 将数据库生成SQL脚本
12.6.2 将数据表生成SQL脚本
12.6.3 执行SQL脚本
12.7 数据库维护计划
12.8 上机实践
12.8.1 查看用户创建的所有数据库
12.8.2 备份数据库
12.9 小结
12.10 习题
第13章 进入“武器库”——SQL Server数据库安全
13.1 数据库安全概述
13.2 登录管理
13.2.1 验证模式
13.2.2 管理登录名
13.2.3 更改登录用户验证方式
13.2.4 密码策略
13.3 用户及权限管理
13.3.1 创建与删除数据库用户
13.3.2 设置服务器角色权限
13.4 上机实践
13.4.1 创建数据库用户账户
13.4.2 设置数据库的访问权限
13.5 小结
13.6 习题
第四篇 项目实战篇
第14章 在线考试系统
14.1 需求分析
14.2 系统设计
14.2.1 系统目标
14.2.2 系统功能结构
14.2.3 系统业务流程图
14.3 系统开发及运行环境
14.4 数据库设计
14.4.1 数据库E-R图
14.4.2 数据表结构
14.4.3 文件夹组织结构
14.5 公共类设计
14.6 登录模块设计
14.6.1 登录模块概述
14.6.2 登录模块技术分析
14.6.3 登录模块实现过程
14.7 随机抽取试题模块设计
14.7.1 随机抽取试题模块概述
14.7.2 随机抽取试题模块技术分析
14.7.3 随机抽取试题模块实现过程
14.7.4 单元测试
14.8 自动评分模块设计
14.8.1 自动评分模块概述
14.8.2 自动评分模块技术分析
14.8.3 自动评分模块实现过程
14.9 后台管理员模块设计
14.9.1 后台管理员模块概述
14.9.2 后台管理员模块技术分析
14.9.3 后台管理员模块实现过程
14.10 试题管理模块设计
14.10.1 试题管理模块概述
14.10.2 试题管理模块技术分析
14.10.3 试题管理模块实现过程
14.10.4 单元测试
14.11 GridView控件应用
14.12 开发技巧与难点分析
14.13 小结
第15章 企业进销存管理系统
15.1 需求分析
15.2 系统设计
15.2.1 系统目标
15.2.2 系统功能结构
15.2.3 系统业务流程图
15.2.4 系统编码规范
15.3 系统开发及运行环境
15.4 数据库与数据表设计
15.4.1 数据库分析
15.4.2 创建数据库
15.4.3 创建数据表
15.5 系统文件夹组织结构
15.6 公共类设计
15.6.1 数据模型公共类
15.6.2 Dao公共类
15.7 登录模块设计
15.7.1 设计登录布局文件
15.7.2 “密码”文本框的回车事件
15.7.3 “登录”按钮的事件处理
15.8 系统主窗体设计
15.8.1 设计菜单栏
15.8.2 设计工具栏
15.8.3 设计状态栏
15.9 进货单模块设计
15.9.1 设计进货单窗体
15.9.2 添加进货商品
15.9.3 进货统计
15.9.4 商品入库
15.10 销售单模块设计
15.10.1 设计销售单窗体
15.10.2 添加销售商品
15.10.3 销售统计
15.10.4 商品销售
15.11 库存盘点模块设计
15.11.1 设计库存盘点窗体
15.11.2 读取库存商品
15.11.3 统计损益数量
15.12 数据库备份与恢复模块设计
15.12.1 设计窗体
15.12.2 文件浏览
15.12.3 备份数据库
15.12.4 恢复数据库
15.13 运行项目
15.14 系统打包发行
15.15 开发常见问题与解决方法
15.15.1 数据库无法访问
15.15.2 打包的JAR文件无法登录
15.15.3 数据库还原不成功
15.15.4 数据库只读
15.15.5 无法打开内部窗体
15.15.6 “关于”界面被其他窗体覆盖
15.15.7 打包JAR文件之后无法运行
15.15.8 程序运行后没有出现闪屏界面
15.16 小结