《SQL Server数据库应用基础(第2版)》以创建一个“学生信息管理系统”的数据库为例,循序渐进地讲解Microsoft SQL Server 2008数据库应用基础,特别介绍数据库表的数据操作、结构化查询语句、存储过程和触发器等知识。
《SQL Server数据库应用基础(第2版)》内容简明扼要,对每一项重要内容都给出了一个图文并茂的示例并加上了注意点,充分考虑SQL Server 2008数据库管理系统初学者的实际需要,保证初学者从知识的起点开始,逐步掌握SQL Server数据库管理和开发的基础知识。本书每一章的最后都有相应的选择题与上机题,书的附录中给出了每章的实验练习题,可以帮助读者检验对每章的学习效果。
《SQL Server数据库应用基础(第2版)》特别把T-SQL高级编程单独列为一章,强调T-SQL编程在后续章节的重要性。
《SQL Server数据库应用基础(第2版)》可以作为高职高专院校学生和教师学习SQL Server数据库管理系统的教学用书和参考书,也适合SQL Server数据库管理系统的初、中级读者使用。
《SQL Server 数据库应用基础与实现》一书自2008年出版以来,被众多高职院校选用为教材,多次重印,深受广大读者好评。本书是根据近几年来数据库新技术高职教育的发展,学生教育教学质量的要求、素质整体下降的形势,对第1版教材进行了修订,并更名为《SQL Server数据库应用基础(第2版)》。
主要修订内容如下:
(1)教材使用的数据库管理系统(DBMS)升级为SQL Server 2008,所有插图都在SQL Server 2008中截取,所有程序代码都在SQL Server 2008中执行通过,并可移植到SQL Server 2005中。
SQL Server 2005与SQL Server 2008的基本内容、基本要求没有太大区别,在教学过程中,SQL Server 2008仅在智能提示方面占有优势,在各操作界面上增加了一个“调试”主菜单项,实际上SQL Server 2005足够我们管理数据库。
SQL Server 2008对运行环境的配置要求较高,在Windows XP下安装SQL Server 2008前,需预先安装.NET Framework 3.5、Windows Installer 4.5,还需安装Microsoft Visual Studio 2008 SP1版本的软件。现在,大多数学校计算机的配置没有达到此要求,所以本教材虽然采用SQL Server 2008讲解,但所有程序代码都可以在SQL Server 2005上运行无误。
(2)采用Camel(骆驼)标识符命名规则,修改了后台使用的“学生信息管理系统”数据库名称为StuInfo并修改了表中的字段名。
(3)删除了在实际教学中不易懂、应用不强的知识。
① 删除了第4章4.2节的使用修改表命令删除表的结构,把4.3节表中数据操作合并到第2章,成为第2章2.4节;
② 删除了第7章7.3节用户自定义函数;
③ 删除了第9章事务;
④ 删除了第12章数据源的连接;
⑤ 删除了实验四(2)、实验四(3)、实验九、实验十一(1)和实验十一(2)。
(4)对第1版书稿进行了全面审订与校对,使用的文字描述更准确、结构更合理;纠正了原教材的小错误和插图,力争消除原则性错误。
(5)对习题也做了适当增加、删除和修改,使之与教材章节内容更加符合。
第2版的章节及主要内容如下。
第1章:介绍数据库的基础知识,包括数据库的发展历史、数据数据库的几个重要概念、数据库的创建与管理。
第2章:介绍数据库中表的管理,包括数据库中表结构的建立、数据完整性知识的讲解和表中数据“增、删、改”操作的讲解。
第3章:T-SQL语言简介,包括变量、数据类型、运算符、T-SQL常用函数。
第4章:查询,包括数据库表的查询知识。
第5章:视图与索引,包括视图与索引的创建、修改等操作。
第6章:T-SQL高级编程,包括T-SQL控制语句的讲解和游标知识的学习。
第7章:存储过程,包括存储过程的创建、执行和删除等操作。
第8章:触发器,包括触发器概念、作用和三种触发器的创建等知识的讲解。
第9章:数据库备份和权限管理,包括数据库的磁盘备份、导入与导出数据操作、用户权限的管理知识。
第10章:数据库的设计,包括数据库的设计、范式、数据冗余和数据库的设计与实现知识。
由于第1版部分作者的工作原因,修订工作主要由汤承林、吴文庆、郜继红等人完成。全书的框架结构由汤承林拟定,郜继红对书中的代码和插图做了全面的修改和更换。
第2版由江苏淮安信息职业技术学院汤承林副教授和齐齐哈尔工程学院吴文庆副教授担任主编,淮安信息职业技术学院郜继红老师担任副主编。本次修订过程还得到了管曙亮、李焱等老师的帮助和支持,在此表示衷心感谢!
尽管我们在教材编写方面做了大量的探索与尝试,但不足之处在所难免,衷心希望使用本教材的单位和读者能提出改进意见,以便我们在下次修订时完善。
编者
第1章 SQL Server 2008数据库基础
1.1 为什么要学习数据库
1.2 数据库发展简史
1.3 数据库的几个概念及关系
1.4 如何描述数据库
1.4.1 实体与记录
1.4.2 数据库与数据库表
1.4.3 数据冗余和数据完整性
1.5 SQL Server 2008 Management Studio简介
1.6 数据库的创建与管理
1.6.1 创建服务器组
1.6.2 创建服务器注册
1.6.3 服务器启动、暂停和停止
1.6.4 创建数据库
本章小结
习题
第2章 数据库表的建立与删除
2.1 为什么要引入数据库表
2.2 与表相关的几个概念
2.2.1 主关键字、候选关键字和外键
2.2.2 数据完整性
2.3 建立和删除数据库表
2.3.1 以界面方式建立数据库表
2.3.2 以界面方式删除数据库表
2.3.3 以T-SQL语句命令方式建立数据库表
2.3.4 以SQL语句命令方式删除数据库表
2.4 表中数据操作
2.4.1 使用T-SQL语句对数据库表中的数据进行操作
2.4.2 在表设计器中添加、修改和删除数据
2.4.3 使用T-SQL命令insert对表中数据进行插入操作
2.4.4 用T-SQL命令update对表中数据进行修改操作
2.4.5 用T-SQL命令delete对表中记录进行删除操作
本章小结
习题
第3章 T-SQL语言简介
3.1 为什么要学习T-SQL语言
3.1.1 SQL
3.1.2 T-SQL与SQL的区别
3.1.3 T-SQL组成
3.2 数据类型
3.2.1 整数
3.2.2 精确小数
3.2.3 货币数据
3.2.4 近似数字
3.2.5 日期时间数据
3.2.6 字符串
3.2.7 Unicode字符串
3.2.8 二进制数据
3.2.9 其他数据类型
3.3 T-SQL中的常量、变量、批处理、注释和输出语句
3.3.1 常量
3.3.2 局部变量
3.3.3 全局变量
3.3.4 批处理、注释和输出语句
3.4 T-SQL中的运算符及优先级
3.4.1 算术运算符
3.4.2 赋值运算符
3.4.3 字符串连接运算符
3.4.4 比较运算符
3.4.5 逻辑运算符
3.4.6 位运算符
3.4.7 运算符优先级
3.4.8 条件表达式
3.5 T-SQL常用函数的使用
3.5.1 数学函数
3.5.2 日期和时间函数
3.5.3 聚合函数
3.5.4 字符串函数
3.5.5 转换函数
3.5.6 其他系统函数
本章小结
习题
第4章 查询
4.1 引入查询的目的
4.2 使用界面方式查询设计器查询
4.3 select语句
4.3.1 简单查询
4.3.2 选择表中的若干记录
4.3.3 对查询结果排序
4.3.4 使用函数查询
4.3.5 使用聚合函数查询
4.3.6 分组查询
4.3.7 使用into子句定义新表
4.4 连接查询
4.4.1 内连接查询
4.4.2 自连接查询
4.4.3 外连接查询
4.4.4 交叉连接查询
4.5 子查询
4.5.1 简单子查询
4.5.2 带in和not in的子查询
4.5.3 带exists和not exists的子查询
4.5.4 带any或all谓词的子查询
4.5.5 多重嵌套子查询
*4.5.6 相关子查询
*4.6 联合查询
本章小结
习题
第5章 视图与索引
5.1 视图
5.1.1 引入视图的目的
5.1.2 使用视图设计器创建、重命名和删除视图
5.1.3 使用T-SQL命令创建视图和删除视图
5.1.4 利用视图更新、插入和删除记录
5.2 索引
5.2.1 引入索引的目的
5.2.2 索引的类型
5.2.3 创建索引
5.2.4 查看、修改和删除索引
本章小结
习题
第6章 T-SQL高级编程
6.1 学习T-SQL高级编程的目的
6.2 流程控制语句
6.2.1 begin…end块语句
6.2.2 if…else语句
6.2.3 while循环语句
6.2.4 case多分支语句
6.2.5 goto、return语句
6.3 游标的使用
6.3.1 声明游标
6.3.2 打开游标
6.3.3 读取游标
6.3.4 关闭和释放游标
6.3.5 定位、更新和删除游标数据
本章小结
习题
第7章 存储过程
7.1 引入存储过程的目的
7.2 常用的系统存储过程
7.3 存储过程的创建
7.3.1 使用SQL Server的管理平台创建存储过程
7.3.2 使用SQL Server管理平台的存储过程模板创建存储过程
7.3.3 使用T-SQL语句创建存储过程
7.3.4 删除存储过程
7.3.5 存储过程中的错误处理信息
本章小结
习题
第8章 触发器
8.1 引入触发器的目的
8.2 触发器的基本概念
8.2.1 触发器
8.2.2 触发器的作用
8.2.3 inserted表与deleted表的作用
8.2.4 instead of和after触发器
8.2.5 触发器的执行过程
8.3 创建触发器
8.3.1 使用SQL Server管理平台创建触发器
8.3.2 使用SQL Server管理平台实现表之间的级联操作
8.3.3 使用T-SQL语句创建触发器
8.4 触发器的删除
8.4.1 使用SQL Server管理平台的界面方式删除触发器
8.4.2 使用T-SQL语句的命令方式删除触发器
本章小结
习题
第9章 数据库备份和权限管理
9.1 数据库备份
9.1.1 数据库备份的种类
9.1.2 备份设备
9.1.3 移动数据库
9.1.4 导入和导出数据
9.2 数据库权限管理
9.2.1 安全身份验证
9.2.2 创建登录账户
9.2.3 用户账户管理
9.2.4 权限管理
*9.2.5 角色管理
本章小结
习题
第10章 数据库的设计与实现
10.1 规范数据库设计
10.2 数据库设计的步骤
10.2.1 需求分析阶段的数据库设计
10.2.2 绘制E-R图
10.2.3 将E-R图转换为表
10.3 数据规范化
10.3.1 问题的提出
10.3.2 规范设计要求
10.3.3 规范化与数据冗余的关系
10.4 数据库的实现
10.4.1 创建数据库
10.4.2 创建数据库表
10.4.3 创建视图
10.4.4 创建存储过程
10.4.5 创建触发器
本章小结
习题
附录A 实验内容
实验一 注册服务器与创建数据库
实验二 创建表
实验三 表中数据的操作
实验四 创建并执行T-SQL脚本
练习1
练习2
练习3
练习4
练习5
实验五 查询数据库(1)
实验六 查询数据库(2)
实验七 查询数据库(3)
实验八 创建和使用视图与索引
练习1
练习2
练习3
练习4
实验九 实现存储过程
练习1
练习2
练习3
练习4
实验十 触发器
练习1
练习2
练习3
参考文献