图书目录

目 录 

第 1章初识 MySQL 1 

11 数据库基础 1 

111 什么是数据库 1 

112 表 2 

113 数据类型 2 

114 主键 2 

12 数据库技术构成 2 

121 数据库系统 3 

122 SQL语言 3 

123 数据库访问技术 4 

13 什么是 MySQL 5 

131 客户机-服务器软件 5 

132 MySQL版本  6 

133 MySQL的优势  7 

14 MySQL工具 7 

141 mysql命令行实用程序 7 

142 MySQL Workbench8 

15 如何学习 MySQL 8 

第 2章  MySQL的安装与配置10 

21 Windows平台下安装与配置 MySQL 55 10 

211 安装 MySQL 55  10 

212 配置 MySQL 55  16 

22 启动服务并登录 MySQL数据库 23 

221 启动 MySQL服务  23 

222 登录 MySQL数据库  24 

223 配置 Path变量  26 

23 更改 MySQL的配置 28 

231 通过配置向导来更改配置 28 

232 手工更改配置 30 

11 数据库基础avi/6分钟 

12 数据库技术构成avi/8分钟 

13 什么是 MySQLavi/8分钟 

14 MySQL工具avi/3分钟 

15 如何学习 MySQLavi/2分钟 

21 Windows平台下安装与配置 MySQL 55avi/20分钟 

22 启动服务并登录 MySQL数据库avi/8分钟 

23 更改 MySQL的配置avi/8分钟 

24 MySQL常用图形管理工具avi/4分钟 

25 Linux平台下安装与配置 MySQL 55avi/8分钟

24 MySQL常用图形管理工具 32 

25 Linux平台下安装与配置 MySQL 5533 

251 Linux操作系统下的 MySQL版本介绍 33 

252 安装和配置 MySQL的 RPM包 35 

253 安装和配置 MySQL的源码包  38 

26 专家点拨 39 

点拨 1:MySQL必须注册为系统服务吗?  39

点拨 2:MySQL安装失败?  40 

27 经典习题 40 

第 3章数据库的基本操作41 

31 创建数据库 41 

32 删除数据库 42 

33 数据库存储引擎 43 

331 MySQL存储引擎简介  43 

332 InnoDB存储引擎 44 

333 MyISAM存储引擎 45 

334 MEMORY存储引擎 45 

335 存储引擎的选择 46 

34 综合案例——数据库的创建和删除47 

35 专家点拨 49 

点拨:如何查看默认存储引擎? 49 

36 经典习题 49 

第 4章数据表的基本操作50 

41 创建数据表 50 

411 创建表的语法形式 50 

412 使用主键约束 52 

413 使用外键约束 53 

414 使用非空约束 54 

415 使用唯一性约束 55 

416 使用默认约束 56 

417 设置表的属性值自动增加 56 

42 查看数据表结构 57 

421 查看表基本结构语句 DESCRIBE  57 

422 查看表详细结构语句           SHOW CREATE TABLE 58 

31 创建数据库avi/5分钟 

32 删除数据库avi/3分钟 

33 数据库存储引擎avi/10分钟 

34 综合案例——数据库的创建和删除avi/3分钟 

41 创建数据表avi/21分钟 

42 查看数据表结构avi/7分钟 

43 修改数据表avi/26分钟 

44 删除数据表avi/8分钟 

45 综合案例——数据表的基本操作avi /10分钟

43 修改数据表 60 

431 修改表名 60 

432 修改字段的数据类型 61 

433 修改字段名 62 

434 添加字段 63 

435 删除字段 65 

436 修改字段的排列位置 66 

437 更改表的存储引擎 68 

438 删除表的外键约束 69 

44 删除数据表 70 

441 删除没有被关联的表 71 

442 删除被其他表关联的主表 71 

45 综合案例——数据表的基本操作73 

46 专家点拨 82 点拨 1:表删除操作须谨慎。 82点拨 2:每一个表中都要有一个主键吗? 82点拨 3:并不是每个表都可以任意选择存储引擎。 83点拨 4:带 AUTO_INCREMENT约束的字段值是从 1开始的吗? 83 

47 经典习题 83 

第 5章数据类型和运算符85 

51 MySQL数据类型介绍 85 

511 整数类型 85 

512 浮点数类型和定点数类型 87 

513 日期与时间类型 89 

514 字符串类型 102 

515 二进制类型 107 

52 如何选择数据类型 110 

53 常见运算符介绍 112 

531 运算符概述 112 

532 算术运算符 112 

533 比较运算符 114 

534 逻辑运算符 122 

535 位运算符 125 

536 运算符的优先级 128 

54 综合案例——运算符的使用129 

55 专家点拨 131 

51 MySQL数据类型介绍avi/63分钟 

52 如何选择数据类型avi/6分钟 

53 常见运算符介绍avi/55分钟 

54 综合案例——运算符的使用avi /7分钟

点拨 1:MySQL中如何使用特殊字符?  131点拨 2:MySQL中可以存储文件吗?  131点拨 3:MySQL中如何执行区分大小写的字符串比较? 131 

56 经典习题 132 

第 6章  MySQL函数 133 

61 MySQL函数简介 133 

62 数学函数 133 

621 绝对值函数 ABS(x)和返回圆周率的函数 PI() 134 

622 平方根函数 SQRT(x)和求余函数 MOD(x,y) 134 

623 获取整数的函数 CEIL(x)、CEILING(x)和          FLOOR(x) 135 

624 获取随机数的函数 RAND()和 RAND(x) 135 

625 四舍五入函数 ROUND(x)、ROUND(x,y)和           TRUNCATE(x,y) 136 

626 符号函数 SIGN(x) 137 

627 幂运算函数 POW(x,y)、POWER(x,y)和          EXP(x) 138 

628 对数运算函数 LOG(x)和 LOG10(x) 138 

629 角度与弧度相互转换的函数 RADIANS(x) 和 DEGREES(x)  139 

6210 正弦函数 SIN(x)和反正弦函数 ASIN(x)  139 

6211 余弦函数 COS(x)和反余弦函数 ACOS(x) 140 

6212 正切函数、反正切函数和余切函数 140 

63 字符串函数 141 

631 计算字符串字符数的函数和字符串长度的函数 141 

632 合并字符串函数 CONCAT(s1,s2,…)、           CONCAT_WS(x,s1,s2,…) 142 

633 替换字符串的函数 INSERT(s1,x,len,s2) 143 

634 字母大小写转换函数 143 

635 获取指定长度的字符串的函数 LEFT(s,n)和           RIGHT(s,n)  144 

636 填充字符串的函数 LPAD(s1,len,s2)和           RPAD(s1,len,s2)  145 

61 MySQL函数简介avi/2分钟 

62 数学函数avi/24分钟 

63 字符串函数avi/32分钟 

64 日期和时间函数avi/39分钟 

65 条件判断函数avi/7分钟 

66 系统信息函数avi/10分钟 

67 加密函数avi/5分钟 

68 其他函数avi/13分钟 

69 综合案例——MySQL函数的使用avi /9分钟

637 删除空格的函数 LTRIM(s)、RTRIM(s)和          TRIM(s) 145 

638 删除指定字符串的函数 TRIM(s1 FROM s)  146 

639 重复生成字符串的函数 REPEAT(s,n)  147 

6310 空格函数 SPACE(n)和替换函数             REPLACE(s,s1,s2) 147 

6311 比较字符串大小的函数 STRCMP(s1,s2) 148 

6312 获取子串的函数 SUBSTRING(s,n,len)和             MID(s,n,len) 148 

6313 匹配子串开始位置的函数 149 

6314 字符串逆序的函数 REVERSE(s) 149 

6315 返回指定位置的字符串的函数 150 

6316 返回指定字符串位置的函数             FIELD(s,s1,s2,…)  150 

6317 返回子串位置的函数FIND_IN_SET(s1,s2)  151 

6318 选取字符串的函数MAKE_SET(x,s1,s2,…) 151 

64 日期和时间函数 152 

641 获取当前日期的函数和获取当前时间的函数 152 

642 获取当前日期和时间的函数 152 

643 UNIX时间戳函数 153 

644 返回 UTC日期的函数和返回 UTC时间的函数 154 

645 获取月份的函数 MONTH(date)和           MONTHNAME(date) 154 

646 获取星期的函数 DAYNAME(d)、 DAYOFWEEK(d)和 WEEKDAY(d) 155 

647 获取星期数的函数 WEEK(d)和           WEEKOFYEAR(d) 156 

648 获取天数的函数 DAYOFYEAR(d)和           DAYOFMONTH(d) 157 

649 获取年份、季度、小时、分钟和秒钟的函数 157 

6410 获取日期的指定值的函数            EXTRACT(type FROM date)158 

6411 时间和秒钟转换的函数 159 

6412 计算日期和时间的函数 159 

6413 将日期和时间格式化的函数 162 

65 条件判断函数 165 

651 IF(expr,v1,v2)函数 165 

652 IFNULL(v1,v2)函数 166 

653 CASE函数 166 

66 系统信息函数 167 

661 获取 MySQL版本号、连接数和数据库名的函数 167 

662 获取用户名的函数 169 

663 获取字符串的字符集和排序方式的函数 170 

664 获取最后一个自动生成的 ID值的函数 170 

67 加密函数 172 

671 加密函数 PASSWORD(str)  172 

672 加密函数 MD5(str)  173 

673 加密函数 ENCODE(str,pswd_str)  173 

674 解密函数 DECODE(crypt_str,pswd_str) 174 

68 其他函数 174 

681 格式化函数 FORMAT(x,n)  174 

682 不同进制的数字进行转换的函数 174 

683 IP地址与数字相互转换的函数 175 

684 加锁函数和解锁函数 176 

685 重复执行指定操作的函数 177 

686 改变字符集的函数 177 

687 改变数据类型的函数 178 

69 综合案例——MySQL函数的使用 178 

610 专家点拨 182 点拨 1:如何从日期时间值中获取年、月、日等部分日期或时间值? 182点拨 2:如何改变默认的字符集? 182 

611 经典习题 183 

第 7章查询数据 184 

71 基本查询语句 184 

72 单表查询 186 

721 查询所有字段 186 

722 查询指定字段 187 

723 查询指定记录 189 

724 带 IN关键字的查询 190 

725 带 BETWEEN AND的范围查询 191 

71 基本查询语句avi/6分钟 

72 单表查询avi/47分钟 

73 使用集合函数查询avi/13分钟 

74 连接查询avi/14分钟 

75 子查询avi/17分钟 

76 合并查询结果avi/5分钟 

77 为表和字段取别名avi/8分钟 

78 使用正则表达式查询avi/19分钟 

79 综合案例——数据表查询操作avi /14分钟

726 带 LIKE的字符匹配查询  192 

727 查询空值 194 

728 带 AND的多条件查询 195 

729 带 OR的多条件查询 196 

7210 查询结果不重复 197 

7211 对查询结果排序 198 

7212 分组查询 201 

7213 使用 LIMIT限制查询结果的数量  205 

73 使用集合函数查询 206 

731 COUNT()函数 206 

732 SUM()函数 208 

733 AVG()函数 208 

734 MAX()函数 209 

735 MIN()函数 210 

74 连接查询 211 

741 内连接查询 211 

742 外连接查询 213 

743 复合条件连接查询 215 

75 子查询 216 

751 带 ANY、SOME关键字的子查询 216 

752 带 ALL关键字的子查询 216 

753 带 EXISTS关键字的子查询 217 

754 带 IN关键字的子查询 218 

755 带比较运算符的子查询 220 

76 合并查询结果 221 

77 为表和字段取别名 223 

771 为表取别名 223 

772 为字段取别名 225 

78 使用正则表达式查询 226 

781 查询以特定字符或字符串开头的记录 227 

782 查询以特定字符或字符串结尾的记录 227 

783 用符号""来替代字符串中的任意一个字符 228 

784 使用"*"和"+"来匹配多个字符 228 

785 匹配指定字符串 229 

786 匹配指定字符中的任意一个 230 

787 匹配指定字符以外的字符 231 

788 使用{n,}或者{n,m}来指定字符串连续出现的次数 231 

79 综合案例——数据表查询操作232 

710 专家点拨 239 点拨 1:DISTINCT可以应用于所有的列吗? 239点拨 2:ORDER BY可以和 LIMIT混合使用吗? 239点拨 3:什么时候使用引号? 239点拨 4:在 WHERE子句中必须使用圆括号吗? 239点拨 5:为什么使用通配符格式正确,却没有查找出符合条件的记录? 239 

711 经典习题 239 

第 8章插入、更新与删除数据 241 

81 插入数据 241 

811 为表的所有字段插入数据 241 

812 为表的指定字段插入数据 243 

813 同时插入多条记录 244 

814 将查询结果插入到表中 246 

82 更新数据 247 

83 删除数据 249 

84 综合案例——记录的插入、更新和删除251 

85 专家点拨 255 点拨 1:插入记录时可以不指定字段名称吗? 255点拨 2:更新或者删除表时必须指定 WHERE 子句吗? 255 

86 经典习题 255 

第 9章索引 257 

91 索引简介 257 

911 索引的含义和特点 257 

912 索引的分类 258 

913 索引的设计原则 258 

92 创建索引 259 

921 创建表的时候创建索引 259 

922 在已经存在的表上创建索引 264 

93 删除索引 270 

94 综合案例——创建索引 271 

95 专家点拨 274 点拨 1:索引对数据库性能如此重要,应该如何 

81 插入数据avi/19分钟 

82 更新数据avi/5分钟 

83 删除数据avi/4分钟 

84 综合案例——记录的插入、更新和删除avi/7分钟 

91 索引简介avi/9分钟 

92 创建索引avi/26分钟 

93 删除索引avi/4分钟 

94 综合案例——创建索引avi/7分钟

使用它? 274

点拨 2:尽量使用短索引。 275 

96 经典习题 275 

第 10章存储过程和函数 276 

101 创建存储过程和函数 276 

1011 创建存储过程 276 

1012 创建存储函数 279 

1013 变量的使用 280 

1014 定义条件和处理程序 281 

1015 光标的使用 284 

1016 流程控制的使用 285 

102 调用存储过程和函数 290 

1021 调用存储过程 290 

1022 调用存储函数 291 

103 查看存储过程和函数 292 

1031 SHOW STATUS语句查看存储过程和函数的状态 292 

1032 SHOW CREATE语句查看存储过程和函数的定义 293 

1033 从 information_schemaRoutines表中查看存储过程和函数的信息 293 

104 修改存储过程和函数 295 

105 删除存储过程和函数 297 

106 综合案例——创建存储过程和函数297 

107 专家点拨 301 点拨 1:MySQL存储过程和函数有什么区别?  301点拨 2:存储过程中的代码可以改变吗? 301点拨 3:存储过程中可以调用其他存储过程吗? 301点拨 4:存储过程的参数不要与数据表中的字段名相同。 301点拨 5:存储过程的参数可以使用中文吗? 301 

108 经典习题 302 

第 11章视图 303 

111 视图概述 303 

1111 视图的含义 303 

101 创建存储过程和函数avi/39分钟 

102 调用存储过程和函数avi/7分钟 

103 查看存储过程和函数avi/7分钟 

104 修改存储过程和函数avi/6分钟 

105 删除存储过程和函数avi/3分钟 

106 综合案例——创建存储过程和函数avi/8分钟 

111 视图概述avi/5分钟 

112 创建视图avi/11分钟

1112 视图的作用 304 

112 创建视图 305 

1121 创建视图的语法形式 305 

1122 在单表上创建视图 305 

1123 在多表上创建视图 307 

113 查看视图 308 

1131 DESCRIBE语句查看视图基本信息  308 

1132 SHOW TABLE STATUS语句查看视图基本信息 308 

1133 SHOW CREATE VIEW语句查看视图详细信息 310 

1134 在 views表中查看视图详细信息  310 

114 修改视图 312 

1141 CREATE OR REPLACE VIEW语句修改视图 312 

1142 ALTER语句修改视图 313 

115 更新视图 314 

116 删除视图 317 

117 综合案例——视图应用 318 

118 专家点拨 327 点拨 1:MySQL中视图和表的区别以及联系是什么? 327 

119 经典习题 327 

第 12章  MySQL函数 328 

121 创建触发器 328 

1211 创建只有一个执行语句的触发器 328 

1212 创建有多个执行语句的触发器 329 

122 查看触发器 332 

1221 SHOW TRIGGERS语句查看触发器信息  332 

1222 在 triggers表中查看触发器信息  334 

123 触发器的使用 335 

124 删除触发器 336 

125 综合案例——触发器使用336 

126 专家点拨 339 

点拨 1:使用触发器时须特别注意。 339

点拨 2:及时删除不再需要的触发器。 339 

127 经典习题 339 

113 查看视图avi/6分钟 

114 修改视图avi/4分钟 

115 更新视图avi/4分钟 

116 删除视图avi/2分钟 

117 综合案例——视图应用avi/11分钟

121 创建触发器avi/15分钟 

122 查看触发器avi/5分钟 

123 触发器的使用avi/4分钟 

124 删除触发器avi/2分钟 

125 综合案例——触发器使用avi/4分钟 

第 13章  MySQL用户管理 340 

131 权限表 340 

1311 user表 340 

1312 db表和 host表 343 

1313 tables_priv表和 columns_priv表 345 

1314 procs_priv表  346 

132 账户管理 346 

1321 登录和退出 MySQL服务器  346 

1322 新建普通用户 348 

1323 删除普通用户 352 

1324 root用户修改自己的密码 354 

1325 root用户修改普通用户密码 355 

1326 普通用户修改密码 357 

1327 root用户密码丢失的解决办法 357 

133 权限管理 359 

1331 MySQL的各种权限  359 

1332 授权 361 

1333 收回权限 363 

1334 查看权限 364 

134 访问控制 365 

1341 连接核实阶段 365 

1342 请求核实阶段 365 

135 综合案例——综合管理用户权限366 

136 专家点拨 370 点拨1:已经将一个账户的信息从数据库中完全删除,为什么该用户还能登录数据库? 370点拨 2:应该使用哪种方法创建用户? 370 

137 经典习题 371 

第 14章数据备份与还原 372 

141 数据备份 372 

1411 使用 mysqldump命令备份 372 

1412 直接复制整个数据库目录 379 

1413 使用 mysqlhotcopy工具快速备份 380 

142 数据还原 380 

1421 使用 mysql命令还原 380 

1422 直接复制到数据库目录 381 

131 权限表avi/11分钟 

132 账户管理avi/39分钟 

133 权限管理avi/15分钟 

134 访问控制avi/5分钟 

135 综合案例——综合管理用户权限avi /10分钟 

141 数据备份avi/15分钟 

142 数据还原avi/7分钟 

143 数据库迁移avi/6分钟 

144 表的导出和导入avi/31分钟 

145 综合案例——数据的备份与恢复avi /7分钟

1423 mysqlhotcopy快速恢复 381 

143 数据库迁移 382 

1431 相同版本的 MySQL数据库之间的迁移  382 

1432 不同版本的 MySQL数据库之间的迁移  382 

1433 不同数据库之间的迁移 383 

144 表的导出和导入 383 

1441 用 SELECT…INTO OUTFILE导出文本文件 383 

1442 用 mysqldump命令导出文本文件 387 

1443 用 mysql命令导出文本文件 389 

1444 使用 LOAD DATA INFILE方式导入文本文件 393 

1445 使用 mysqlimport命令导入文本文件 395 

145 综合案例——数据的备份与恢复397 

146 专家点拨 402 点拨 1:mysqldump备份的文件只能在 MySQL中使用吗? 402点拨 2:如何选择备份工具? 402点拨 3:使用 mysqldump备份整个数据库成功,把表和数据库都删除了,但使用备份文件却不能恢复数据库? 402 

147 经典习题 403 

第 15章  MySQL日志 404 

151 日志简介 404 

152 二进制日志 405 

1521 启动和设置二进制日志 405 

1522 查看二进制日志 406 

1523 删除二进制日志 408 

1524 使用二进制日志还原数据库 410 

1525 暂时停止二进制日志功能 411 

153 错误日志 411 

1531 启动和设置错误日志 411 

1532 查看错误日志 412 

1533 删除错误日志 413 

154 通用查询日志 413 

1541 启动和设置通用查询日志 413 

1542 查看通用查询日志 413 

151 日志简介avi/2分钟 

152 二进制日志avi/20分钟 

153 错误日志avi/7分钟 

154 通用查询日志avi/6分钟 

155 慢查询日志avi/5分钟 

156 综合案例——MySQL日志的综合管理avi/16分钟

1543 删除通用查询日志 414 

155 慢查询日志 415 

1551 启动和设置慢查询日志 415 

1552 查看慢查询日志 415 

1553 删除慢查询日志 416 

156 综合案例——MySQL日志的综合管理416 

157 专家点拨 422 

点拨 1:平时应该打开哪些日志? 422

点拨 2:如何使用二进制日志? 422

点拨 3:如何使用慢查询日志? 423 

158 经典习题 423 

第 16章性能优化 424 

161 优化简介 424 

162 优化查询 425 

1621 分析查询语句 425 

1622 索引对查询速度的影响 428 

1623 使用索引查询 429 

1624 优化子查询 432 

163 优化数据库结构 432 

1631 将字段很多的表分解成多个表 432 

1632 增加中间表 433 

1633 增加冗余字段 435 

1634 优化插入记录的速度 435 

1635 分析表、检查表和优化表 437 

164 优化 MySQL服务器 439 

1641 优化服务器硬件 439 

1642 优化 MySQL的参数  439 

165 综合案例——全面优化 MySQL服务器441 

166 专家点拨 443 点拨 1:是不是索引建立得越多越好? 443点拨 2:为什么查询语句中的索引没有起作用? 443点拨 3:如何使用查询缓冲区? 443 

167 经典习题443 

161 优化简介avi/3分钟 

162 优化查询avi/19分钟 

163 优化数据库结构avi/17分钟 

164 优化 MySQL服务器avi/4分钟 

165 综合案例——全面优化 MySQL 服务器avi/5分钟