图书目录

目 录

第 1章数据库系统概述 ..................................................................................................... 1 

1.1数据库系统基本概念 ........................................................................................................ 1 

1.2数据管理技术的发展 ........................................................................................................ 1 

1.3数据库三级模式和两种映射 ............................................................................................ 2 

1.4数据模型 ............................................................................................................................ 3 

1.5实体 .................................................................................................................................... 4 

1.5.1  实体和属性 ............................................................................................................. 4 

1.5.2  实体的联系 ............................................................................................................. 5 

1.5.3  1∶1联系 ................................................................................................................ 5 

1.5.4  1∶N联系 ............................................................................................................... 5 

1.5.5  M∶N联系 .............................................................................................................. 6 

1.6数据库类型 ........................................................................................................................ 6 

1.7  E-R方法 ............................................................................................................................. 7 

1.7.1  E-R图 ...................................................................................................................... 7 

1.7.2  E-R图导出数据模型 .............................................................................................. 8  习题 1 ....................................................................................................................................... 10 

第 2章关系数据库理论基础 ............................................................................................ 13 

2.1关系的数学定义和性质 .................................................................................................. 13 

2.1.1  域和域的基数 ....................................................................................................... 13 

2.1.2  笛卡儿积及其基数 ............................................................................................... 13 

2.1.3  关系和二维表 ....................................................................................................... 13 

2.1.4  关系的性质 ........................................................................................................... 14 

2.2关系数据库语言 .............................................................................................................. 14 

2.2.1  数据描述语言 DDL .............................................................................................. 14 

2.2.2  数据操纵语言 DML ............................................................................................. 14 

2.2.3  关系代数 ............................................................................................................... 14 

2.2.4  关系演算 ............................................................................................................... 16 

2.2.5  关系 DML完备性 ................................................................................................ 17 

2.3关系数据库标准语言 —SQL ....................................................................................... 17 

2.3.1  SQL的特点 ........................................................................................................... 17 

2.3.2  SQL数据定义语言 ............................................................................................... 17 

2.3.3  SQL数据操纵语言 ............................................................................................... 18 

2.4关系规范化 ...................................................................................................................... 19 

2.4.1  准备知识 ............................................................................................................... 19 

·IV· 数据库原理及应用 

2.4.2  范式与规范化 ....................................................................................................... 20 

2.4.3  分解关系的基本原则 ........................................................................................... 22  习题 2 ....................................................................................................................................... 22 

第 3章数据库简介 .......................................................................................................... 25 

3.1  SQL 2012的安装、管理、配置 ..................................................................................... 25 

3.1.1  SQL 2012的安装 .................................................................................................. 25 

3.1.2  SQL 2012管理器 .................................................................................................. 32 

3.1.3  SQL服务器配置管理器 ....................................................................................... 34 

3.2  SQL 2012的系统数据库 ................................................................................................. 35 

3.2.1  Master数据库 ....................................................................................................... 35 

3.2.2  Tempdb数据库 ..................................................................................................... 35 

3.2.3  Model数据库 ........................................................................................................ 36 

3.2.4  Msdb数据库 ......................................................................................................... 36 

3.3 SQL Server系统表 .......................................................................................................... 36 

3.4 SQL Server的存储过程 .................................................................................................. 36 

3.5国产数据库简介 .............................................................................................................. 36 

3.5.1  SinoDB的主要功能 ............................................................................................. 37 

3.5.2  SinoDB的特性 ..................................................................................................... 39 

3.6  SinoDB的安装、管理、配置 ........................................................................................ 40 

3.6.1  SinoDB的安装 ..................................................................................................... 40 

3.6.2  SinoDB的基本管理 ............................................................................................. 45 

3.6.3  SinoDB服务配置 ................................................................................................. 47 

3.6.4  SinoDB交互式命令行工具 ................................................................................. 49  习题 3 ....................................................................................................................................... 51 

第 4章  SQL语言基础...................................................................................................... 52 

4.1数据类型 .......................................................................................................................... 52 

4.1.1  整数类型(Int等) .............................................................................................. 52 

4.1.2  实数类型(Float等) .......................................................................................... 52 

4.1.3  字符类型(Char等) .......................................................................................... 54 

4.1.4  备注类型(Text等) ........................................................................................... 55 

4.1.5  二进制类型(Image等) .................................................................................... 55 

4.1.6  布尔类型(Bit) .................................................................................................. 56 

4.1.7  日期类型(DateTime) ....................................................................................... 56 

4.1.8  时间戳类型 TimeStamp ........................................................................................ 57 

4.1.9  变体类型 Sql_Variant ........................................................................................... 58 

4.1.10表类型 Table ....................................................................................................... 59 

4.1.11自定义数据类型 ................................................................................................. 59 

4.1.12唯一标识类型 ..................................................................................................... 60 

4.1.13行全局唯一标识列 ............................................................................................. 60 

4.1.14自动编号 Identity列 ........................................................................................... 61 

4.2常量 .................................................................................................................................. 62 

4.2.1  字符串常量 ........................................................................................................... 62 

4.2.2  整数常量 ............................................................................................................... 62 

4.2.3  浮点数常量 ........................................................................................................... 62 

4.2.4  日期常量与语言环境 ........................................................................................... 63 

4.3变量 .................................................................................................................................. 64 

4.3.1  局部变量 ............................................................................................................... 64 

4.3.2  全局变量 ............................................................................................................... 65 

4.4运算符与表达式 .............................................................................................................. 69 

4.4.1  算术运算符 ........................................................................................................... 69 

4.4.2  位运算符 ............................................................................................................... 69 

4.4.3  比较运算符 ........................................................................................................... 69 

4.4.4  逻辑运算符 ........................................................................................................... 72 

4.4.5  字符串连接运算符 ............................................................................................... 72 

4.4.6  运算符的优先顺序 ............................................................................................... 73 

4.5  SQL函数 ......................................................................................................................... 73 

4.5.1  聚合函数 ............................................................................................................... 73 

4.5.2  数据转换函数 ....................................................................................................... 75 

4.5.3  游标函数 ............................................................................................................... 76 

4.5.4  日期和时间函数 ................................................................................................... 77 

4.5.5  数学函数 ............................................................................................................... 78 

4.5.6  元数据函数 ........................................................................................................... 79 

4.5.7  安全函数 ............................................................................................................... 81 

4.5.8  字符串函数 ........................................................................................................... 82 

4.5.9  系统函数 ............................................................................................................... 83 

4.5.10文本和图像函数 ................................................................................................. 86 

4.5.11配置函数 ............................................................................................................. 87 

4.6其他 .................................................................................................................................. 88 

4.6.1  注释语句 ............................................................................................................... 88 

4.6.2  批处理 ................................................................................................................... 88 

4.6.3  显示服务器上库信息 ........................................................................................... 90 

4.6.4  显示当前库的表信息 ........................................................................................... 91  习题 4 ....................................................................................................................................... 91 

第 5章  SQL编程 ............................................................................................................. 93 

5.1流程控制语句 .................................................................................................................. 93 

5.1.1  Select和 Set赋值 ................................................................................................. 93 

5.1.2  Begin…End语句块 .............................................................................................. 93 

5.1.3 If…Else ................................................................................................................. 93 

·VI· 数据库原理及应用 

5.1.4  While循环结构 .................................................................................................... 95 

5.1.5  Case表达式 .......................................................................................................... 96 

5.1.6  WaitFor语句 ......................................................................................................... 97 

5.1.7 Return .................................................................................................................... 98 

5.2游标 .................................................................................................................................. 99 

5.2.1  声明游标 ............................................................................................................... 99 

5.2.2  打开游标 ............................................................................................................. 101 

5.2.3  关闭游标 ............................................................................................................. 101 

5.2.4  释放游标 ............................................................................................................. 102 

5.2.5  使用游标取数 ..................................................................................................... 102 

5.2.6  用游标修改删除记录 ......................................................................................... 104 

5.3事务 ................................................................................................................................ 105 

5.3.1  事务的概念 ......................................................................................................... 105 

5.3.2  事务处理语句 ..................................................................................................... 106  习题 5 ..................................................................................................................................... 109 

第 6章数据定义语言 DDL ............................................................................................ 110 

6.1数据库管理 .................................................................................................................... 110 

6.1.1  创建数据库 ......................................................................................................... 110 

6.1.2  按默认值创建数据库 ......................................................................................... 111 

6.1.3  指定位置创建数据库 ......................................................................................... 112 

6.1.4  修改数据库名 ..................................................................................................... 112 

6.1.5  修改数据库排序规则 ......................................................................................... 113 

6.1.6  库添加或修改文件 ............................................................................................. 114 

6.1.7  库添加或修改文件组 ......................................................................................... 115 

6.1.8  删除数据库 ......................................................................................................... 116 

6.1.9  数据库的分离 ..................................................................................................... 116 

6.1.10数据库的附加 ................................................................................................... 117 

6.2表的管理 ........................................................................................................................ 117 

6.2.1  使用 SSMS创建表 ............................................................................................. 118 

6.2.2  使用 SQL语句创建表 ........................................................................................ 119 

6.2.3  SSMS表设计器修改表 ...................................................................................... 119 

6.2.4  用 SQL语句修改表 ............................................................................................ 120 

6.2.5  删除表 ................................................................................................................. 121 

6.3约束 ................................................................................................................................ 121 

6.3.1  主键约束 ............................................................................................................. 121 

6.3.2  外建约束 ............................................................................................................. 123 

6.3.3  唯一约束 ............................................................................................................. 125 

6.3.4  检查约束 ............................................................................................................. 126 

6.3.5  非空约束 ............................................................................................................. 127 

6.3.6  默认值 ................................................................................................................. 127 

6.3.7  临时禁止与强制约束 ......................................................................................... 128 

6.4创建分组表 .................................................................................................................... 129 

6.5创建分区表 .................................................................................................................... 130 

6.5.1  创建分区函数 ..................................................................................................... 130 

6.5.2  创建分区架构 ..................................................................................................... 132 

6.5.3  创建分区架构表 ................................................................................................. 132 

6.6视图 ................................................................................................................................ 135 

6.6.1  创建视图 ............................................................................................................. 135 

6.6.2  创建加密视图 ..................................................................................................... 136 

6.6.3  创建检查视图 ..................................................................................................... 137 

6.6.4  创建集群视图 ..................................................................................................... 139 

6.6.5  只读与可修改视图 ............................................................................................. 143 

6.6.6  修改视图和删除视图 ......................................................................................... 144 

6.7索引 ................................................................................................................................ 144 

6.7.1  创建索引 ............................................................................................................. 144 

6.7.2  修改索引 ............................................................................................................. 146 

6.7.3  删除索引 ............................................................................................................. 147 

6.7.4  sp_helpindex查索引 ........................................................................................... 147 

6.7.5  sys.indexes查索引 .............................................................................................. 147  习题 6 ..................................................................................................................................... 148 

第 7章数据操纵语言 DML ............................................................................................ 159 

7.1查询语句( Select) ...................................................................................................... 159 

7.1.1  无表查询 ............................................................................................................. 160 

7.1.2  指定要检索的列 ................................................................................................. 160 

7.1.3  剔除重复行 Distinct ........................................................................................... 161 

7.1.4  查询结果另存 ..................................................................................................... 161 

7.2条件子句( Where) ..................................................................................................... 162 

7.2.1  基本条件 ............................................................................................................. 162 

7.2.2  Null条件 ............................................................................................................. 163 

7.2.3  Between条件 ...................................................................................................... 164 

7.2.4  In表达式条件 ..................................................................................................... 165 

7.2.5  Like条件 ............................................................................................................. 165 

7.2.6  Exists条件 .......................................................................................................... 168 

7.2.7  限定条件 All或 ANY ........................................................................................ 169 

7.2.8  字符串排序规则 ................................................................................................. 171 

7.3分组与排序子句 ............................................................................................................ 173 

7.3.1  分组(Group By) ............................................................................................. 173 

7.3.2  分组筛选(Having) ......................................................................................... 176 

·VIII· 数据库原理及应用 

7.3.3  排序(Order By) .............................................................................................. 177 

7.3.4  排序与 Top子句 ................................................................................................. 178 

7.4多表查询 ........................................................................................................................ 179 

7.4.1  交叉连接 Cross Join ........................................................................................... 179 

7.4.2  内连接[Inner] Join .............................................................................................. 180 

7.4.3  左外连接 Left Join .............................................................................................. 181 

7.4.4  右外连接 Right Join ............................................................................................ 182 

7.4.5  全外连接 Full Join .............................................................................................. 182 

7.4.6  多表并集 Union .................................................................................................. 183 

7.4.7  多表交集 Intersect .............................................................................................. 185 

7.4.8  多表差集 Except ................................................................................................. 185 

7.5子查询 ............................................................................................................................ 186 

7.5.1  标量值子查询 ..................................................................................................... 186 

7.5.2  All或 Any子查询 .............................................................................................. 187 

7.5.3  IN子查询条件 .................................................................................................... 187 

7.5.4  From子句使用子查询........................................................................................ 188 

7.5.5  Exists(子查询) ............................................................................................... 188 

7.6添加数据 ........................................................................................................................ 188 

7.6.1  使用 SSMS添加数据 ......................................................................................... 188 

7.6.2  基本 Insert语句 .................................................................................................. 189 

7.6.3  子查询多行 Insert ............................................................................................... 190 

7.6.4  Values多行 Insert ............................................................................................... 190 

7.6.5  存储过程多行 Insert ........................................................................................... 191 

7.6.6  视图插入行 ......................................................................................................... 191 

7.7删除数据 ........................................................................................................................ 192 

7.7.1  使用 SSMS删除数据 ......................................................................................... 192 

7.7.2  基本 Delete语句 ................................................................................................. 192 

7.7.3  带 Top的 Delete语句 ........................................................................................ 193 

7.7.4  带子查询 Delete语句 ......................................................................................... 194 

7.7.5  删除主键被引用记录 ......................................................................................... 194 

7.7.6  清除整个表 ......................................................................................................... 195 

7.8修改数据 ........................................................................................................................ 196 

7.8.1  基本 Update语句 ................................................................................................ 196 

7.8.2  带 Top的 Update语句 ....................................................................................... 196 

7.8.3  多值 Update语句 ................................................................................................ 197 

7.8.4  带子查询 Update语句 ........................................................................................ 199 

7.8.5  多表 Update语句 ................................................................................................ 200 

7.8.6  父表修改主键 ..................................................................................................... 201 

7.8.7  Update控制登录次数 ......................................................................................... 203 

7.8.8  置空值或默认值 ................................................................................................. 204  习题 7 ..................................................................................................................................... 205 

第 8章存储过程、函数与触发器................................................................................... 229 

8.1存储过程的使用和管理 ................................................................................................ 229 

8.1.1  创建存储过程 ..................................................................................................... 229 

8.1.2  执行存储过程 ..................................................................................................... 230 

8.1.3  带默认值的存储过程 ......................................................................................... 231 

8.1.4  带编号的存储过程组 ......................................................................................... 232 

8.1.5  用@局部变量调用存储过程 .............................................................................. 232 

8.1.6  带返回状态存储过程 ......................................................................................... 233 

8.1.7  查询存储过程名 ................................................................................................. 234 

8.1.8  删除存储过程 ..................................................................................................... 234 

8.1.9  修改存储过程 ..................................................................................................... 235 

8.1.10存储过程改名 ................................................................................................... 235 

8.1.11 RaisError抛出消息 ........................................................................................... 235 

8.1.12添加删除错误消息 ........................................................................................... 239 

8.1.13 Try…Catch异常处理 ....................................................................................... 240 

8.2自定义函数的使用和管理 ............................................................................................ 241 

8.2.1  创建返回标量值函数 ......................................................................................... 242 

8.2.2  创建内联表值函数 ............................................................................................. 243 

8.2.3  创建多语句表值函数 ......................................................................................... 244 

8.2.4  修改和删除函数 ................................................................................................. 245 

8.2.5  查询自定义函数名 ............................................................................................. 245 

8.2.6  树型结构数据处理 ............................................................................................. 246 

8.3触发器的使用和管理 .................................................................................................... 252 

8.3.1  创建 DML触发器 .............................................................................................. 252 

8.3.2  创建 DDL触发器 ............................................................................................... 259 

8.3.3  创建登录触发器 ................................................................................................. 263 

8.3.4  修改和删除触发器 ............................................................................................. 265 

8.3.5  禁用和启用触发器 ............................................................................................. 265 

8.3.6  查询触发器 ......................................................................................................... 265  习题 8 ..................................................................................................................................... 266 

第 9章数据库的安全管理 ............................................................................................. 271 

9.1登录 ................................................................................................................................ 271 

9.1.1  身份验证模式 ..................................................................................................... 271 

9.1.2  设置身份验证模式 ............................................................................................. 272 

9.1.3  SSMS创建登录名 .............................................................................................. 272 

9.1.4  SQL创建登录名 ................................................................................................. 274 

9.1.5  存储过程创建登录名 ......................................................................................... 274 

·X· 数据库原理及应用 

9.1.6  修改和删除登录账号 ......................................................................................... 275 

9.1.7  数据库用户账号 ................................................................................................. 275 

9.2角色 ................................................................................................................................ 277 

9.2.1  固定服务器角色 ................................................................................................. 277 

9.2.2  固定数据库角色 ................................................................................................. 278 

9.2.3  自定义数据库角色 ............................................................................................. 278 

9.2.4  管理角色中的用户 ............................................................................................. 280 

9.3权限管理 ........................................................................................................................ 281 

9.3.1  权限的类型 ......................................................................................................... 281 

9.3.2  SSMS设置权限 .................................................................................................. 282 

9.3.3  SQL设置权限 ..................................................................................................... 284  习题 9 ..................................................................................................................................... 286 

第 10章数据库设计 ...................................................................................................... 288 

10.1  数据库设计概述 .......................................................................................................... 288 

10.1.1  数据库设计特点 ............................................................................................... 288 

10.1.2  数据库设计基本步骤 ....................................................................................... 288 

10.2  系统需求分析 .............................................................................................................. 289 

10.2.1  需求分析任务 ................................................................................................... 289 

10.2.2  需求分析调查 ................................................................................................... 289 

10.2.3  需求分析方法 ................................................................................................... 290 

10.2.4  需求分析报告 ................................................................................................... 297 

10.3  概念结构设计 .............................................................................................................. 297 

10.3.1  概念结构设计的方法 ....................................................................................... 297 

10.3.2  概念结构设计的主要步骤 ............................................................................... 298 

10.3.3  数据抽象 ........................................................................................................... 298 

10.3.4  局部 E-R模型 ................................................................................................... 299 

10.3.5  集成全局 E-R图 ............................................................................................... 301 

10.3.6  整体概念结构验证与评审 ............................................................................... 303 

10.4  逻辑结构设计 .............................................................................................................. 304 

10.4.1  E-R图向关系模型的转换 ................................................................................ 304 

10.4.2  关系模式的优化 ............................................................................................... 306 

10.4.3  设计用户视图 ................................................................................................... 307 

10.5  物理结构设计 .............................................................................................................. 307 

10.5.1  设计物理结构 ................................................................................................... 307 

10.5.2  评价物理结构 ................................................................................................... 307 

10.6  数据库实施、运行与维护 .......................................................................................... 308  习题 10 .................................................................................................................................... 308 

参考文献 .......................................................................................................................... 311 

附录 A 习题数据表 ........................................................................................................ 312 

附习题表(XS、XUESHENG、补考名单、 C、XX) ................................................... 312  附习题表(商品信息、产地商品数、供应商信息) ...................................................... 313  附习题表(PCInfo)........................................................................................................... 313  附习题表(L) .................................................................................................................... 314  附习题表(InputX) ........................................................................................................... 314  附习题表(Book、JieYue、DuZhe、客房、旅客、 Stu、Depart、Class、Student) ... 314  附习题表(score,course,spj,j,p,s,student,teacher) ............................................................ 316  附习题表(Teacher、Course、Student、Elective) ......................................................... 317  附习题表(库 tmg20170110、视图 GroupSize) ............................................................. 318  附习题表(库 tmg20181201、视图 GroupSize) ........................................................... 319