目 录
第1篇 SQL语言入门
第1章 SQL语言基础 2
视频讲解:28分钟
1.1 SQL语言概述 2
1.1.1 SQL概述 2
1.1.2 SQL语言的组成 3
1.1.3 SQL语句结构 4
1.1.4 SQL语句分类 5
1.2 数据类型 5
1.2.1 整数数据类型 5
1.2.2 浮点数据类型 6
1.2.3 字符数据类型 7
1.2.4 日期和时间数据类型 8
1.2.5 货币数据类型 9
1.2.6 二进制数据类型 9
1.2.7 文本和图像数据类型 9
1.2.8 用户自定义数据类型 10
1.3 常量 11
1.3.1 数值常量 11
1.3.2 字符串常量 12
1.3.3 日期和时间常量 12
1.4 变量 12
1.4.1 局部变量 12
1.4.2 全局变量 14
1.5 运算符 16
1.5.1 算术运算符 16
1.5.2 赋值运算符 17
1.5.3 逻辑运算符 18
1.6 实践与练习 19
第2章 SQL查询基础 20
视频讲解:48分钟
2.1 简单查询 20
2.1.1 SELECT语句基本结构 21
2.1.2 单列查询 21
2.1.3 多列查询 22
2.1.4 查询所有的列 22
2.1.5 别名的应用 23
2.1.6 使用TOP查询前若干行 25
2.1.7 删除重复列 26
2.2 计算列查询 28
2.2.1 连接列值 28
2.2.2 查询中使用计算列 28
2.2.3 查询中使用表达式 29
2.3 条件查询 30
2.3.1 WHERE子句 31
2.3.2 使用“=”查询数据 31
2.3.3 使用“>”查询数据 31
2.3.4 使用“<”查询数据 32
2.3.5 使用“>=”查询数据 32
2.3.6 使用“<=”查询数据 33
2.3.7 使用“!>”查询数据 33
2.3.8 使用“!<”查询数据 33
2.3.9 使用“!=”和“<>”查询数据 34
2.4 范围查询 34
2.4.1 查询两数之间的数据 35
2.4.2 查询两个日期之间的数据 35
2.4.3 在BETWEEN中使用日期函数 35
2.4.4 查询不在两数之间的数据 36
2.5 逻辑查询 37
2.5.1 使用AND运算符 37
2.5.2 使用OR运算符 37
2.5.3 使用NOT运算符 38
2.5.4 使用OR、AND和NOT运算符 39
2.6 实践与练习 39
第3章 复杂查询 40
视频讲解:73分钟
3.1 模糊查询 40
3.1.1 LIKE谓词 40
3.1.2 “%”通配符的使用 41
3.1.3 “_”通配符的使用 42
3.1.4 “[ ]”通配符的使用 42
3.1.5 “[^]”通配符的使用 43
3.1.6 ESCAPE转义字符 44
3.2 IN运算符 44
3.2.1 使用IN查询数据 45
3.2.2 在IN中使用算术表达式 45
3.2.3 在IN中使用列名 46
3.2.4 使用NOT IN查询数据 46
3.2.5 使用TOP和NOT IN查询数据 47
3.3 行查询 48
3.3.1 随机查询 48
3.3.2 结果集中添加行号 48
3.3.3 隔行查询 49
3.3.4 分页查询 50
3.4 空值判断 51
3.4.1 查询空值 51
3.4.2 查询非空值 52
3.4.3 对空值进行处理 52
3.5 对结果集操作 53
3.5.1 利用结果集创建永久表 53
3.5.2 利用结果集创建临时表 54
3.6 复杂条件查询 54
3.6.1 查询表中的第n行数据 54
3.6.2 查询考试成绩最高的分数 55
3.6.3 查询各部门人数 56
3.6.4 查询各部门基本工资最低的员工 56
3.7 实践与练习 57
第4章 数据排序 58
视频讲解:63分钟
4.1 数值数据排序 58
4.1.1 按升序和降序排列 58
4.1.2 按列别名排序 60
4.1.3 在ORDER BY子句中使用表达式 61
4.1.4 按空值排序 61
4.1.5 对多列排序 64
4.1.6 对数据表中的指定行数进行排序 65
4.2 字符串排序 68
4.2.1 按字符串中的子串排序 68
4.2.2 按字符串中的数值排序 71
4.3 汉字排序 72
4.3.1 汉字排序规则简介 72
4.3.2 按笔画排序 73
4.3.3 按拼音排序 73
4.4 按列的编号排序 74
4.5 随机排序 75
4.6 实践与练习 75
第5章 SQL函数的使用 76
视频讲解:59分钟
5.1 聚合函数 76
5.1.1 聚合函数概述 76
5.1.2 SUM(求和)函数 77
5.1.3 AVG(平均值)函数 77
5.1.4 MAX(最大值)函数和MIN(最小值)
函数 78
5.1.5 COUNT(统计)函数 80
5.1.6 DISTINCT(取不重复记录)函数 80
5.2 数学函数 81
5.2.1 数学函数概述 81
5.2.2 ABS(绝对值)函数 82
5.2.3 PI(圆周率)函数 82
5.2.4 POWER(乘方)函数 82
5.2.5 RAND(随机浮点数)函数 83
5.2.6 ROUND(四舍五入)函数 83
5.2.7 SQUARE(平方)函数和SQRT(平
方根)函数 84
5.2.8 三角函数 85
5.3 字符串函数 86
5.3.1 字符串函数概述 87
5.3.2 ASCII(获取ASCII码)函数 87
5.3.3 CHARINDEX(返回字符串的起始
位置)函数 89
5.3.4 LEFT(取左边指定个数的字符)函数 89
5.3.5 RIGHT(取右边指定个数的字符)函数 90
5.3.6 LEN(返回字符个数)函数 91
5.3.7 REPLACE(替换字符串)函数 91
5.3.8 REVERSE(反转字符串)函数 92
5.3.9 STR函数 92
5.3.10 SUBSTRING(取字符串)函数 93
5.4 日期和时间函数 94
5.4.1 日期和时间函数概述 94
5.4.2 GETDATE(返回当前系统日期和
时间)函数 94
5.4.3 DAY(返回指定日期的天)函数 94
5.4.4 MONTH(返回指定日期的月)函数 95
5.4.5 YEAR(返回指定日期的年)函数 95
5.4.6 DATEDIFF(返回两个日期之间的
间隔)函数 96
5.4.7 DATEADD(添加日期时间)函数 97
5.5 实践与练习 98
第2篇 SQL语言进阶
第6章 分组统计 100
视频讲解:6分钟
6.1 GROUP BY子句 100
6.1.1 使用GROUP BY子句创建分组 100
6.1.2 使用GROUP BY子句创建多列分组 101
6.1.3 对表达式进行分组统计 102
6.1.4 在SQL查询语句中GROUP BY子句的
NULL值处理 103
6.1.5 对统计结果排序 103
6.1.6 在WHERE子句中使用GROUP BY
子句 104
6.1.7 GROUP BY子句的特殊用法 105
6.2 HAVING子句 105
6.3 实践与练习 107
第7章 子查询 108
视频讲解:70分钟
7.1 简单子查询 108
7.1.1 SELECT 列表中的子查询 109
7.1.2 多列子查询 110
7.1.3 比较子查询 111
7.1.4 在子查询中使用聚合函数 112
7.2 多行子查询 112
7.2.1 使用IN操作符的多行子查询 112
7.2.2 使用NOT IN子查询实现差集运算 113
7.2.3 通过量词实现多行子查询 114
7.2.4 使用ALL操作符的多行子查询 115
7.2.5 使用ANY/SOME操作符的多行子查询 115
7.2.6 FROM子句中的子查询 116
7.3 相关子查询 116
7.3.1 使用IN引入相关子查询 117
7.3.2 使用NOT IN引入相关子查询 117
7.3.3 在HAVING子句中使用相关子查询 118
7.4 嵌套子查询 119
7.4.1 简单的嵌套子查询 119
7.4.2 复杂的嵌套查询 120
7.4.3 在UPDATE中使用子查询 121
7.4.4 在INSERT中使用子查询 122
7.4.5 在DELETE中使用子查询 123
7.5 实践与练习 123
第8章 多表查询 124
视频讲解:43分钟
8.1 多表连接 124
8.1.1 笛卡儿乘积 124
8.1.2 通过WHERE子句连接多表 126
8.1.3 通过FROM子句连接多表 126
8.1.4 在多表连接中设置连接条件 127
8.1.5 在多表连接中返回某个表的所有列 127
8.1.6 通过设置表别名提高SQL可读性 128
8.2 内连接 129
8.2.1 等值连接 129
8.2.2 不等值连接 129
8.2.3 自然连接 130
8.2.4 复杂的内连接查询 130
8.3 外连接 131
8.3.1 左外连接 131
8.3.2 右外连接 132
8.3.3 全外连接 132
8.3.4 通过外连接进行多表联合查询 133
8.4 其他连接 134
8.4.1 自连接 134
8.4.2 交叉连接 134
8.5 实践与练习 135
第9章 添加数据 136
视频讲解:39分钟
9.1 插入单行记录 136
9.1.1 INSERT语句基本语法 137
9.1.2 插入整行数据 137
9.1.3 插入NULL值 138
9.1.4 插入唯一值 138
9.1.5 插入特定字段数据 139
9.1.6 插入默认值 140
9.1.7 插入日期数据 141
9.1.8 通过视图插入行 141
9.1.9 向表中插入记录时任意指定的不同的
字段顺序 142
9.1.10 插入的数据类型值与实际中的数据类型
不匹配时,系统将输出 错误提示 143
9.1.11 向表中插入字段的个数少于表中实际
字段的个数,有时会出错 143
9.2 插入多行记录 144
9.2.1 插入多行记录的语法格式 144
9.2.2 使用VALUES关键字插入多行数据 144
9.2.3 使用SELECT语句插入数据 145
9.3 表中数据的复制 146
9.3.1 基本语法 146
9.3.2 表中数据的复制应用 146
9.4 实践与练习 147
第10章 修改和删除数据 148
视频讲解:64分钟
10.1 UPDATE语句的基本语法 148
10.2 使用UPDATE语句更新列值 150
10.3 利用子查询更新行中的值 151
10.3.1 语法格式 151
10.3.2 利用子查询返回的行数不多于一行
(只返回一个值) 152
10.3.3 利用子查询返回多行(返回多个值) 153
10.3.4 利用内连接查询来更新数据表中的信息 153
10.4 依据外表值更新数据 154
10.5 分步更新表中的数据 155
10.6 修改指定字段的数据值 156
10.6.1 修改指定datetime类型字段内的
数据 156
10.6.2 修改指定int类型字段内的数据 156
10.6.3 修改指定varchar类型字段内的数据 157
10.6.4 修改指定float类型字段内的数据 157
10.7 使用DELETE语句删除数据 158
10.7.1 使用DELETE语句删除所有数据
(省略WHERE子句) 158
10.7.2 使用DELETE语句删除多行数据 159
10.7.3 使用DELETE语句删除单行数据
(WHERE子句不能省) 159
10.8 删除重复行 160
10.8.1 删除完全重复行 160
10.8.2 删除部分重复行 161
10.9 使用TRUNCATE TABLE语句
删除数据 162
10.10 使用DELETE语句中带有的TOP
子句 162
10.11 实践与练习 163
第3篇 SQL高级应用
第11章 视图 166
视频讲解:14分钟
11.1 视图概述 166
11.2 视图创建 167
11.3 视图重命名 169
11.4 视图修改 169
11.5 视图定义信息查询 171
11.6 视图删除 172
11.7 实践与练习 173
第12章 存储过程 174
视频讲解:27分钟
12.1 存储过程概述 174
12.1.1 存储过程的概念 174
12.1.2 存储过程的作用和功能 175
12.1.3 存储过程的优点 176
12.2 创建存储过程 177
12.2.1 CREATE PROCEDURE语句 177
12.2.2 创建具有回传参数的存储过程 178
12.2.3 使用RETURN语句从存储过程中
返回值 180
12.3 管理存储过程 181
12.3.1 执行存储过程 182
12.3.2 执行具有回传参数的存储过程 183
12.3.3 查看存储过程 184
12.3.4 修改存储过程 185
12.3.5 删除存储过程 186
12.3.6 存储过程的重新编译 187
12.4 实践与练习 188
第13章 触发器 189
视频讲解:31分钟
13.1 触发器概述 189
13.1.1 触发器的概念 189
13.1.2 触发器的优点 189
13.1.3 触发器的种类 190
13.2 创建触发器 191
13.2.1 创建简单的触发器 191
13.2.2 创建具有触发条件的触发器 195
13.2.3 创建INSTEAD OF触发器 197
13.2.4 创建列级触发器 199
13.3 管理触发器 201
13.3.1 查看触发器 201
13.3.2 修改触发器 201
13.3.3 重命名触发器 202
13.3.4 禁用和启用触发器 203
13.3.5 删除触发器 204
13.4 应用触发器 204
13.4.1 应用触发器添加数据 204
13.4.2 应用触发器修改数据 205
13.4.3 应用触发器删除数据 207
13.5 实践与练习 207
第14章 游标 208
视频讲解:59分钟
14.1 游标概述 208
14.1.1 游标的实现 209
14.1.2 游标的类型 209
14.2 创建游标 210
14.2.1 声明游标 210
14.2.2 打开游标 211
14.2.3 读取游标中数据 212
14.2.4 嵌套游标 213
14.2.5 关闭并释放游标 214
14.3 游标属性 216
14.3.1 获取游标状态 216
14.3.2 获取游标行数 217
14.4 游标操作 218
14.4.1 基于游标定位修改数据 218
14.4.2 基于游标定位删除数据 220
14.4.3 在游标中包含计算列 220
14.4.4 将游标中的数据进行排序显示 221
14.5 动态游标 222
14.5.1 声明游标变量 222
14.5.2 使用游标变量 223
14.6 实践与练习 223
第15章 索引 224
视频讲解:23分钟
15.1 索引概述 224
15.1.1 索引的基本概念 224
15.1.2 索引的分类 226
15.1.3 创建索引的原则 226
15.2 创建索引 227
15.2.1 创建简单的非簇索引 227
15.2.2 创建多字段非簇索引 229
15.2.3 创建唯一索引 230
15.2.4 创建簇索引 231
15.3 维护索引 232
15.3.1 查看是否需要维护索引 232
15.3.2 重构索引 233
15.3.3 整理索引碎片 234
15.3.4 删除索引 235
15.4 实践与练习 236
第16章 事务 237
视频讲解:26分钟
16.1 事务的概念 237
16.2 显式事务与隐式事务 238
16.2.1 显式事务 239
16.2.2 隐式事务 240
16.2.3 API中控制隐式事务 240
16.2.4 事务的COMMIT和ROLLBACK 241
16.3 使用事务 241
16.3.1 开始事务 241
16.3.2 结束事务 242
16.3.3 回滚事务 242
16.3.4 事务的工作机制 243
16.3.5 自动提交事务 244
16.3.6 事务的并发问题 244
16.3.7 事务的隔离级别 245
16.4 锁 248
16.4.1 锁机制 248
16.4.2 锁模式 248
16.4.3 锁的粒度 250
16.4.4 查看锁 251
16.4.5 死锁 251
16.5 实践与练习 252
第17章 管理数据库与数据表 253
视频讲解:19分钟
17.1 数据库管理 253
17.1.1 创建数据库 253
17.1.2 修改数据库 256
17.1.3 删除数据库 259
17.2 数据表管理 260
17.2.1 创建数据表 260
17.2.2 查看数据表 265
17.2.3 修改数据表 267
17.2.4 删除数据表 271
17.3 实践与练习 272
第18章 数据库安全 273
视频讲解:30分钟
18.1 数据库安全概述 273
18.2 数据库登录管理 273
18.2.1 选择验证模式 274
18.2.2 管理登录账号 274
18.2.3 更改登录验证方式 279
18.2.4 设置密码 280
18.3 权限管理 281
18.4 实践与练习 282
附录A 安装SQL Server数据库 283
附录B 安装Oracle数据库 293
附录C 安装MySQL数据库 296
