第1章 数据库及基本操作 1
1.1数据库基础知识 1
1.1.1数据库的应用 1
1.1.2数据库相关术语 1
1.1.3 SQL简介 2
1.1.4数据库的类型 2
1.2主要关系型数据库管理系统简介 3
1.2.1 MySQL 3
1.2.2 SQL Server 3
1.2.3 Oracle 4
1.3在MySQL中执行SQL语句 4
1.3.1安装MySQL 4
1.3.2使用命令行执行SQL语句 5
1.3.3使用Workbench执行SQL语句 6
1.4在SQL Server中执行SQL 8
1.4.1 SQL Server 2017的安装 8
1.4.2使用SQL Server管理工具创建数据库 9
1.4.3使用SQL Server管理工具执行SQL语句 10
1.5在Oracle 12c中执行SQL语句 12
1.5.1安装Oracle 12c 12
1.5.2使用SQL Developer执行SQL语句 13
1.5.3使用SQL Plus执行SQL语句 16
第2章SQL语言基础 18
2.1 SQL概述 18
2.1.1 SQL的历史 18
2.1.2 SQL的特点 18
2.1.3 SQL的功能 19
2.2 SQL语言的组成 19
2.2.1数据定义语言——DDL 20
2.2.2数据查询语言——DQL 20
2.2.3数据操纵语言——DML 20
2.2.4数据控制语言——DCL 20
2.3探索SQL环境 21
2.3.1了解SQL执行环境 21
2.3.2了解SQL数据库的层次结构 21
2.3.3在SQL环境中命名对象 22
第3章 数据表 23
3.1数据类型 23
3.1.1 SQL常用数据类型 23
3.1.2 MySQL中的数据类型 24
3.1.3 SQL Server中的数据类型 26
3.1.4 Oracle中的数据类型 28
3.2数据表基础 30
3.2.1数据表中的记录和字段 30
3.2.2表结构 30
3.3表逻辑设计 31
3.3.1 E-R模型图 31
3.3.2规范化与范式 32
3.4表的创建(CREATE TABLE) 33
3.4.1使用CREATE TABLE语句创建表 33
3.4.2创建带有主键的表 34
3.5表结构的修改(ALTER TABLE) 35
3.5.1 ALTER TABLE语句格式 35
3.5.2 增加新字段 36
3.5.3增加带有默认值的新字段 38
3.5.4修改字段的类型和宽度 39
3.5.5删除字段 40
3.5.6删除带有默认值的字段 41
3.5.7更改主键 42
3.6表的删除、截断与重命名 43
3.6.1删除表 43
3.6.2截断表 44
3.6.3重命名表 44
3.7创建与删除数据库 44
3.7.1创建数据库 44
3.7.2删除数据库 45
3.7.3创建本书使用的数据表 45
第4章 索引 49
4.1索引基础 49
4.1.1使用索引的原因 49
4.1.2索引的种类 49
4.2索引的创建和使用 50
4.2.1创建索引前应当注意的内容 50
4.2.2创建索引的SQL语句 51
4.2.3创建和使用非聚簇索引 52
4.2.4创建和使用唯一索引 55
4.3索引的删除 56
第5章 查询数据——SELECT语句 58
5.1 SELECT语句的组成结构 58
5.1.1最基本的语法格式 58
5.1.2带有主要子句的语法格式 59
5.1.3 SELECT各子句的执行顺序 59
5.1.4关于SELECT语句的一些说明 60
5.2查询数据 60
5.2.1查询单字段的方法 60
5.2.2去除重复信息——DISTINCT 61
5.2.3查询多字段 62
5.2.4查询所有字段 63
5.2.5根据现有字段值计算新字段值 63
5.2.6命名新列(别名)——AS 64
5.2.7将查询结果保存为新表 65
5.2.8连接字段 67
5.3排序数据 69
5.3.1按单字段排序 69
5.3.2设置排序方向 69
5.3.3按多字段排序 70
5.3.4按字段位置排序 71
第6章 条件查询 73
6.1条件表达式 73
6.1.1指针与字段变量的概念 73
6.1.2条件表达式 73
6.2使用WHERE关键字设置查询条件 75
6.2.1 WHERE子句用法 76
6.2.2查询数值数据 77
6.2.3查询字符型数据 78
6.2.4查询日期数据 79
6.2.5按范围查询数据(BETWEEN) 80
6.2.6查询空值 81
6.3排序条件查询的结果 82
6.4查询前n条记录 82
第7章 高级条件查询 84
7.1组合WHERE子句 84
7.1.1 AND运算符 84
7.1.2 OR运算符 85
7.1.3 AND与OR的优先顺序问题 86
7.2使用IN运算符 87
7.2.1使用IN运算符 87
7.2.2使用IN运算符的优点 89
7.3 NOT运算符 90
7.4实现模糊查询 92
7.4.1 LIKE运算符 92
7.4.2“%”通配符 93
7.4.3使用“%”通配符查询日期型数据 95
7.4.4“”通配符 96
7.4.5正则表达式 98
7.4.6定义转义字符 99
第8章SQL函数的使用 101
8.1 SQL函数的说明 101
8.2 SQL Server的函数 101
8.2.1类型转换函数 101
8.2.2日期函数 104
8.2.3数学函数 107
8.2.4字符函数 109
8.3 Oracle的函数 112
8.3.1类型转换函数 112
8.3.2日期函数 116
8.3.3数值函数 119
8.3.4字符函数 119
8.4 MySQL的函数 120
8.4.1类型转换函数 120
8.4.2日期函数 121
8.4.3数值函数 123
8.4.4字符函数 124
8.5将NULL更改为其他值的函数 124
8.5.1 SQL Server的ISNULL()函数 125
8.5.2 Oracle的NVL()函数 126
8.5.3 MySQL的IFNULL()函数 126
8.6 IF…ELSE逻辑函数 126
8.6.1 DECODE()函数 126
8.6.2 CASE()函数 127
第9章 聚合函数与分组数据 129
9.1聚合函数 129
9.1.1使用COUNT()函数求记录个数 129
9.1.2使用SUM()函数求某字段的和 131
9.1.3使用AVG()函数求某字段的平均值 133
9.1.4使用MAX()、MIN()函数求最大、最小值 133
9.1.5统计汇总相异值(不同值)记录 134
9.1.6聚合函数对NULL值的处理 134
9.2数据分组 136
9.2.1将表内容按列分组 136
9.2.2聚合函数与分组配合使用 138
9.2.3查询数据的直方图 139
9.2.4排序分组结果 139
9.2.5反转查询结果 140
9.2.6使用HAVING子句设置分组查询条件 141
9.2.7 HAVING子句与WHERE子句的区别 142
第10章 多表连接查询 144
10.1将数据存储在多个不同表的原因 144
10.2范式 145
10.3连接查询 146
10.3.1连接两表的方法 146
10.3.2使用笛卡尔积解决录入难题 148
10.3.3使用两表连接查询数据 150
10.3.4多表连接查询 150
10.3.5使用表别名简化语句 151
10.3.6使用INNER JOIN连接查询 153
10.4高级连接查询 154
10.4.1自连接查询 154
10.4.2内连接查询 156
10.4.3外连接查询 158
10.4.4交叉连接查询 160
10.4.5连接查询中使用聚合函数 161
10.5组合查询 162
10.5.1使用组合查询 163
10.5.2使用UNION的规则 165
10.5.3使用UNION解决不支持全外连接的问题 166
10.5.4使用UNION得到复杂的统计汇总样式 167
10.5.5排序组合查询的结果 168
第11章 子查询 170
11.1返回单值的子查询 170
11.1.1使用返回单值的子查询 170
11.1.2子查询与聚合函数的配合使用 171
11.2返回一列值的子查询 174
11.2.1使用IN的子查询 174
11.2.2使用NOT IN的子查询 175
11.3相关子查询 175
第12章 视图 177
12.1视图基础 177
12.1.1视图引例 177
12.1.2使用视图的原因以及注意问题 179
12.1.3视图的规则和限制 180
12.2视图的创建 181
12.2.1创建视图的SQL语句 181
12.2.2利用视图提高数据安全性 183
12.2.3利用视图得到汇总数据 184
12.2.4利用视图简化计算字段的使用 185
12.2.5利用视图简化多表连接 187
12.3视图的删除 188
第13章 插入数据 189
13.1直接向表插入数据 189
13.1.1插入完整的行 189
13.1.2向日期时间型字段插入数据 190
13.1.3将数据插入到指定字段 191
13.1.4将查询结果插入表 194
13.1.5 INSERT SELECT与SELECTINTO的区别 195
13.2通过视图插入数据 196
13.2.1通过视图插入数据 196
13.2.2使用带有WITH CHECK OPTION选项的视图 198
第14章 更新和删除数据 200
14.1更新表中的数据 200
14.1.1更新单个字段的数据 200
14.1.2更新多个字段的数据 202
14.1.3使用子查询更新数据 203
14.1.4使用表连接更新数据 204
14.1.5使用UPDATE语句删除指定字段的数据 204
14.2删除表中的数据 206
14.2.1使用DELETE语句删除指定记录 206
14.2.2在DELETE语句中使用多表连接 207
14.2.3使用DELETE语句删除所有记录 209
14.2.4使用TRUNCATE语句删除所有记录 209
14.3通过视图更新表 210
14.3.1不能用于更新的视图 210
14.3.2通过视图更新表数据 211
14.3.3通过视图删除表数据 212
第15章 管理数据库的安全 214
15.1 MySQL数据库安全 214
15.1.1权限相关的表 214
15.1.2用SQL语句创建用户与授权 215
15.1.3 MySQL Workbench创建用户与授权 217
15.2 Oracle数据库用户管理 219
15.2.1创建用户 219
15.2.2修改用户 221
15.2.3给用户授予CREATE SESSION权限 221
15.2.4给用户授予SELECT权限 223
15.2.5给用户授予INSERT、UPDATE和DELETE权限 224
15.2.6给用户授予系统权限 228
15.2.7给所有用户授予权限 228
15.2.8查看用户拥有的权限 229
15.2.9取消用户的指定权限 230
15.2.10删除用户 231
15.3 Oracle数据库角色管理 231
15.3.1角色的概念 231
15.3.2创建角色——CREATE ROLE 231
15.3.3给角色授权——GRANT 232
15.3.4将角色授予用户——GRANT 233
15.3.5查看角色的权限 235
15.3.6取消角色——REVOKE 236
15.3.7删除角色——DROP ROLE 237
15.3.8 Oracle中系统预定义的角色 237
15.4 SQL Server安全管理 237
15.4.1 SQL Server的安全认证模式 238
15.4.2向SQL Server添加安全账户 238
15.4.3从SQL Server删除安全账户 241
15.4.4 SQL Server权限管理 242
15.4.5 SQL Server角色管理 244
第16章 完整性控制 248
16.1了解完整性约束 248
16.1.1数据的完整性 248
16.1.2完整性约束的类型 249
16.2与表有关的约束 249
16.2.1字段约束与表约束的创建 250
16.2.2非空约束——NOT NULL 250
16.2.3唯一约束——UNIQUE 252
16.2.4主键约束——PRIMARY KEY 253
16.2.5外键约束——FOREIGN KEY 256
16.2.6校验约束——CHECK 258
16.3扩展外键约束的内容 259
第17章 存储过程和函数 263
17.1存储过程基础 263
17.1.1存储过程基础 263
17.1.2存储过程的优点 264
17.2在MySQL中创建和使用存储过程 265
17.2.1创建存储过程的语法 265
17.2.2调用存储过程 266
17.2.3创建带输出参数的存储过程 266
17.2.4删除存储过程 267
17.3在SQL Server中创建和使用存储过程 267
17.3.1 SQL Server的系统存储过程 267
17.3.2创建存储过程的语法 268
17.3.3调用语句EXECUTE的语法 270
17.3.4创建简单存储过程 270
17.3.5创建带输入参数的存储过程 271
17.3.6给输入参数设置默认值 272
17.3.7创建带输出参数的存储过程 273
17.3.8创建有多条SQL语句的存储过程 274
17.3.9删除存储过程 275
17.4在SQL Server中创建和使用函数 276
17.4.1标量值函数 277
17.4.2表值函数 278
17.4.3删除用户定义函数 280
17.5 SQL Server几个系统存储过程的使用 281
17.5.1使用sp_ rename重命名对象 281
17.5.2使用sp_depends显示引用对象 281
17.5.3使用sp_help显示对象信息 282
17.5.4使用sp_helptext显示对象的源码 282
17.6 Oracle中的存储过程和函数 283
17.6.1在Oracle中使用存储过程 283
17.6.2在Oracle中使用函数 284
17.6.3在Oracle中使用user source获取信息 285
第18章SQL触发器 286
18.1 SQL触发器基础 286
18.2在SQL Server中创建和使用触发器 286
18.2.1创建触发器的语法 286
18.2.2使用INSERT触发器 288
18.2.3使用DELETE触发器 289
18.2.4使用UPDATE触发器 291
18.2.5使用INSTEAD OF触发器 293
18.2.6使用条件插入触发器 294
18.2.7删除触发器 297
18.3在Oracle中创建和使用触发器 297
18.3.1创建触发器的语法 297
18.3.2行级触发器 298
18.3.3语句级触发器 299
18.3.4判断所执行的数据修改操作 300
18.3.5系统触发器 300
18.3.6追踪数据库启动与关闭信息 301
18.3.7追踪用户DDL操作信息 303
18.3.8禁用和删除触发器 306
18.3.9从user_triggers中查询触发器信息 307
18.4在MySQL中创建和使用触发器 307
18.4.1创建触发器的语法 307
18.4.2使用INSERT触发器 308
18.4.3删除触发器 309
第19章 控制流语句 310
19.1 SQL Server的控制流语句 310
19.1.1 BEGIN…END语句 310
19.1.2 IF…ELSE语句 310
19.1.3 WHILE语句 311
19.1.4 BREAK命令 312
19.1.5 CONTINUE命令 313
19.1.6 WAITFOR语句 313
19.2 Oracle的控制流语句 314
19.2.1 IF…THEN…ELSE语句 314
19.2.2 IF…THEN…ELSIF语句 315
19.2.3 LOOP语句 315
19.2.4 WHILE语句 316
19.2.5 FOR语句 316
19.3 MySQL的控制流语句 316
19.3.1 IF…THEN…ELSE语句 317
19.3.2 LOOP语句 317
19.3.3 REPEAT语句 318
19.3.4 WHILE语句 318
19.4控制流语句的应用 319
19.4.1判断数据库对象是否存在 319
19.4.2向日志表循环插入日期数据 322
19.4.3使用游标和循环提取数据 324
第20章 事务处理 327
20.1事务基础 327
20.1.1事务的概念 327
20.1.2事务的案例 327
20.1.3事务的ACID特性 328
20.2控制事务处理 328
20.2.1开始事务处理 328
20.2.2使用ROLLBACK撤销事务 329
20.2.3使用COMMIT提交事务 332
20.2.4根据判断提交或撤销事务 334
20.2.5 Oracle的语句级事务处理 337
20.2.6使用保存点 338
20.3并发事务 340
20.3.1并发事务处理 340
20.3.2事务锁 341
20.3.3事务隔离级别 342
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《AutoCAD 2018自学视频教程 标准版 中文版》CAD/CAM/CAE技术联盟 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《看视频零基础学英语拼读》宋德伟编著 2019
- 《小提琴入门新教程 第3册》王中男著 2018
- 《小提琴入门新教程 第2册》王中男编著 2017