×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787302645610
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:356
  • 出版时间:2023-10-01
  • 条形码:9787302645610 ; 978-7-302-64561-0

本书特色

MySQL数据库从入门到实战,全面掌握MySQL的使用技能和解决实际问题的能力!本书涵盖MySQL基础知识、操作技巧、高级函数、索引、分区、视图、存储过程、事务隔离、备份还原、主从复制等全方位内容,结合大量实例讲解,适合IT从业人员、数据库管理员、开发人员阅读。
作者是知名的少数跨多领域(JAVA/.NET/Python)的IT布道师和国内资深架构师,对平台中间件如Kafka、Nginx、ElasticSearch、Redis、MongoDB等有深入的研究和见解。

内容简介

MySQL数据库是目前全球流行的数据库之一。《MySQL 8.0从入门到实战》从入门到实战,系统全面、由浅入深地介绍MySQL数据库应用的各个方面。全书分为8个部分,共18章。第1部分(第1~3章)介绍MySQL的基础知识,包括初识MySQL、数据库设计和数据类型;第2部分(第4~6章)介绍MySQL的基本操作,包括SQL基础操作、MySQL连接查询和数据复制、MySQL基础函数;第3部分(第7、8章)介绍MySQL高级查询函数,包括MySQL高级函数和窗口函数;第4部分(第9、10章)介绍MySQL数据表分区,包括MySQL表分区和分区管理;第5部分(第11、12章)介绍视图、存储过程、字符集排序规则的说明和使用,包括MySQL视图和存储过程、游标和字符集排序规则;第6部分(第13~15章)介绍MySQL数据查询优化,包括MySQL索引、InnoDB事务模型和锁使用、InnoDB内存结构解析和优化;第7部分(第16、17章)介绍MySQL数据运维和读写分离架构,包括MySQL数据备份和还原、MySQL主从架构;第8部分(第18章)介绍MySQL数据操作实战。每一部分和章节都是相对独立的主题,读者可以有选择性地单独阅读。此外,《MySQL 8.0从入门到实战》附有函数速查表,方便读者在实际工作中快速查找函数。《MySQL 8.0从入门到实战》适合想要从事大数据开发和提升自身技能的IT从业人员、数据库管理员、开发人员等阅读。通过丰富的理论知识和大量的实例,本书将帮助读者更好地应对在实际工作中遇到的与MySQL相关的问题。

目录

第1部分 MySQL基础 第1章 初识MySQL 2 1.1 MySQL是什么 2 1.2 MySQL 8安装和配置 3 1.2.1 安装版本的选择 3 1.2.2 在Windows平台下安装和配置MySQL 3 1.2.3 在Linux平台下安装和配置MySQL 10 1.2.4 在Docker平台下安装和配置MySQL 14 1.3 如何学习MySQL 18 1.4 本章练习 19 第2章 数据库设计 20 2.1 关系数据库设计理论三大范式 20 2.2 连接数据库和基本信息查询 24 2.2.1 连接数据库 24 2.2.2 基本信息查询 25 2.3 创建数据库和表 28 2.3.1 创建数据库 29 2.3.2 创建表 30 2.4 本章练习 31 第3章 MySQL数据类型 32 3.1 数字数据类型 32 3.2 日期和时间数据类型 36 3.3 字符串数据类型 37 3.4 JSON数据类型 43 3.5 本章练习 48 第2部分 MySQL基本操作 第4章 MySQL基础操作 50 4.1 数据库操作 50 4.2 数据表操作 52 4.2.1 创建数据表 52 4.2.2 数据表的修改与删除 54 4.2.3 约束 55 4.3 数据查询 57 4.4 数据插入 58 4.5 where(筛选) 59 4.6 and和or(与和或) 60 4.7 between(范围查找) 61 4.8 distinct(去重关键字) 62 4.9 update(修改或更新) 62 4.10 delete(删除) 64 4.11 like(模糊匹配) 65 4.12 order by(排序) 67 4.13 group by(分组) 68 4.14 with rollup(分组统计再统计) 69 4.15 having(分组筛选) 69 4.16 union和union all(组合查询) 70 4.17 本章练习 72 第5章 MySQL连接查询和数据复制 74 5.1 连接查询分类 74 5.2 inner join(内连接) 75 5.3 left join(左连接) 76 5.4 right join(右连接) 77 5.5 in和not in(多关键字筛选) 78 5.6 exists和not exists(是否返回结果集) 79 5.7 复制表 80 5.8 临时表 81 5.9 本章练习 82 第6章 MySQL基础函数 83 6.1 MySQL字符串函数 83 6.1.1 character_length(s):返回字符串长度 83 6.1.2 concat(s1,s2,,sn):字符串合并 84 6.1.3 format(x,n):数字格式化 84 6.1.4 lpad(s1,len,s2):字符串填充 84 6.1.5 field(s,s1,s2,):返回字符串出现的位置 84 6.1.6 insert(s1,x,len,s2):替换字符串 85 6.1.7 lcase(s):把字符串中的所有字母转换为小写字母 85 6.1.8 ucase(s):把字符串中的所有字母转换为大写字母 85 6.1.9 strcmp(s1,s2):比较字符串大小 86 6.1.10 replace(s,s1,s2):字符串替换 86 6.1.11 position(s1 in s):获取子字符串在字符串中出现的位置 86 6.1.12 md5(s):字符串加密 86 6.1.13 inet_aton(ip):把IP地址转换为数字 87 6.1.14 inet_ntoa (s):把数字转换为IP地址 87 6.2 MySQL数字函数 87 6.2.1 ceil(x):返回不小于x的*小整数 87 6.2.2 ceiling(x):返回不小于x的*小整数 88 6.2.3 floor(x):返回不大于x的*大整数 88 6.2.4 round(x):返回*接近x的整数 88 6.2.5 max(expression):求*大值 89 6.2.6 min(expression):求*小值 89 6.2.7 sum(expression):求总和 89 6.2.8 avg(expression):求平均值 90 6.2.9 count(expression):求总记录数 90 6.3 MySQL日期函数 91 6.3.1 adddate(d,n):返回指定日期加上指定天数后的日期 91 6.3.2 addtime(t,n):返回指定时间加上指定时间后的时间 91 6.3.3 curdate():返回当前日期 92 6.3.4 datediff(d1,d2):返回两个日期相隔的天数 92 6.3.5 dayofyear(d):返回指定日期是本年的第几天 92 6.3.6 extract(type from d):根据对应格式返回日期 92 6.3.7 now():返回当前日期和时间 93 6.3.8 quarter(d):返回日期对应的季度数 94 6.3.9 second(t):返回指定时间中的秒数 94 6.3.10 timediff(time1, time2):计算时间差 94 6.3.11 date(t):从指定日期时间中提取日期值 95 6.3.12 hour(t):返回指定时间中的小时数 95 6.3.13 time(expression):提取日期时间参数中的时间部分 95 6.3.14 time_format(t,f):根据表达式显示时间 95 6.3.15 year(d):返回指定日期的年份 96 第3部分 MySQL高级查询函数 第7章 MySQL高级函数 98 7.1 cast(x as type):数据类型转换 98 7.2 coalesce(expr1, , exprn):返回**个非空表达式 99 7.3 if(expr,v1,v2):表达式判断 99 7.4 ifnull(v1,v2):null替换 99 7.5 isnull(expression):判断表达式是否为null 100 7.6 nullif(expr1, expr2):字符串相等则返回null 100 7.7 last_insert_id():返回*近生成的自增ID 101 7.8 case expression:表达式分支 101 7.9 本章练习 102 第8章 MySQL窗口函数 103 8.1 窗口函数语法和数据准备 103 8.2 排名函数 105 8.2.1 row_number():顺序排名函数 105 8.2.2 rank():跳级排名函数 106 8.2.3 dense_rank():不跳级排名函数 107 8.3 分析函数 108 8.3.1 lag():前分析函数,返回前n行的值 108 8.3.2 lead():后分析函数,返回后n行的值 109 8.4 头尾函数 109 8.4.1 first_value():头尾函数,返回**个值 109 8.4.2 last_value():头尾函数,返回*后一个值 110 8.5 聚合统计函数 112 8.5.1 sum():聚合统计总和 112 8.5.2 avg():聚合统计平均值 113 8.5.3 max():聚合统计*大值 113 8.5.4 min():聚合统计*小值 114 8.5.5 count():聚合统计总条数 114 8.6 其他函数 115 8.6.1 nth_value():从结果集中的第n行获取值 115 8.6.2 ntile():数据集分桶 117 8.7 本章练习 118 第4部分 MySQL数据表分区 第9章 MySQL表分区 120 9.1 分区介绍 120 9.2 分区类型 121 9.3 范围分区 121 9.4 列表分区 124 9.5 列分区 127 9.5.1 范围列分区 127 9.5.2 列表列分区 132 9.6 哈希分区 134 9.7 键分区 137 9.8 子分区 138 9.9 MySQL分区对null的处理 140 9.10 本章练习 145 第10章 MySQL分区管理 146 10.1 范围分区和列表分区的管理 146 10.1.1 添加和删除分区 146 10.1.2 拆分合并分区 149 10.2 哈希分区和键分区的管理 149 10.3 分区管理和维护操作 150 10.4 分区的限制 152 10.5 分区键与主键、唯一键的关系 153 10.6 本章练习 156 第5部分 视图、存储过程、字符集和排序规则的说明和使用 第11章 MySQL视图和存储过程 158 11.1 视图 158 11.2 存储过程 161 11.2.1 存储过程的创建和调用 162 11.2.2 带参数的存储过程 163 11.2.3 变量 166 11.2.4 注释 167 11.2.5 存储过程的修改和删除 168 11.2.6 存储过程的控制语句 168 11.3 本章练习 171 第12章 MySQL游标、字符集和排序规则 172 12.1 游标 172 12.2 字符集和排序规则 175 12.2.1 MySQL中的字符集和排序规则 175 12.2.2 列字符集和排序规则 177 12.2.3 使用collate查询排序规则 178 12.3 本章练习 178 第6部分 MySQL数据查询优化 第13章 MySQL索引 180 13.1 索引 180 13.2 创建索引的指导原则 183 13.3 B-Tree索引和哈希索引的比较 184 13.4 SQL执行计划分析 185 13.5 MySQL的索引检索原理 200 13.5.1 主键索引 200 13.5.2 普通索引 204 13.5.3 复合索引 206 13.6 索引的使用技巧与SQL优化实战 208 13.7 本章练习 213 第14章 InnoDB存储引擎事务模型和锁的使用 214 14.1 InnoDB存储引擎实践 216 14.2 InnoDB和ACID模型 217 14.2.1 MySQL事务处理的两种方法 218 14.2.2 InnoDB MVCC 219 14.3 锁机制 220 14.3.1 表级锁 221 14.3.2 行级锁 221 14.3.3 共享锁 222 14.3.4 排他锁 223 14.3.5 意向锁 224 14.3.6 乐观锁 225 14.3.7 悲观锁 226 14.3.8 间隙锁 226 14.3.9 记录锁 228 14.3.10 临键锁 228 14.3.11 死锁 229 14.4 事务隔离级别 229 14.5 本章练习 232 第15章 InnoDB内存结构解析和优化 233 15.1 InnoDB内存结构解析和优化实战 233 15.1.1 缓冲池原理和优化 234 15.1.2 变更缓冲区原理与优化 245 15.1.3 自适应哈希索引原理与配置 247 15.1.4 日志缓冲区 248 15.2 InnoDB表实战调优 248 15.2.1 优化InnoDB表的存储 248 15.2.2 InnoDB事务处理优化 250 15.2.3 InnoDB只读事务优化 250 15.2.4 优化InnoDB重做日志 251 15.2.5 InnoDB磁盘I/O优化 255 15.2.6 配置InnoDB线程并发数量 256 15.2.7 配置InnoDB的I/O读写后台线程数量 257 15.2.8 InnoDB的并行读线程数量 257 15.2.9 InnoDB的I/O容量 258 15.3 本章练习 258 第7部分 MySQL数据运维和读写分离架构 第16章 MySQL数据的备份与还原 260 16.1 基准测试 260 16.1.1 Sysbench介绍 261 16.1.2 Sysbench测试实操 262 16.2 备份 266 16.3 还原 267 16.3.1 利用source命令导入数据库 267 16.3.2 利用load data infile导入数据 268 16.3.3 利用mysqlimport导入数据 268 16.4 本章练习 268 第17章 MySQL主从架构 269 17.1 读写分离 269 17.2 MySQL主从复制 270 17.3 MySQL主从复制架构的搭建 271 17.3.1 配置主节点 271 17.3.2 配置从节点 272 17.3.3 主从复制 273 17.4 本章练习 274 第8部分 MySQL操作实战 第18章 MySQL数据操作实战 276 18.1 数据库和数据表的创建与查看 276 18.2 新增、修改、删除表数据 280 18.3 基础查询和where子句查询 281 18.4 like模糊查询 286 18.5 分组查询、聚合函数、排序查询 287 18.6 关联查询 291 18.7 子查询、多表查询 293 18.8 本章练习 296 附录A 函数速查表 299 A.1 MySQL字符串函数 299 A.1.1 ASCII(s):返回字符串的ASCII码 299 A.1.2 char_length(s):返回字符串长度 300 A.1.3 character_length(s):返回字符串长度 300 A.1.4 concat(s1,s2,,sn):字符串合并 300 A.1.5 concat_ws(x, s1,s2,,sn):字符串合并 300 A.1.6 field(s,s1,s2,):返回字符串出现的位置 301 A.1.7 find_in_set(s1,s2):返回字符串的匹配位置 301 A.1.8 format(x,n):数字格式化 301 A.1.9 insert(s1,x,len,s2):替换字符串 302 A.1.10 locate(s1,s):获取字符串出现的位置 302 A.1.11 lcase(s):把字符串中的所有字母转换为小写字母 302 A.1.12 left(s,n):返回字符串的前n个字符 302 A.1.13 lower(s):把字符串中的所有字母转换为小写字母 303 A.1.14 lpad(s1,len,s2):字符串填充 303 A.1.15 ltrim(s):去掉字符串开始处的空格 303 A.1.16 mid(s,n,len):从字符串的指定位置截取子字符串 303 A.1.17 replace(s,s1,s2):字符串替换 304 A.1.18 reverse(s):字符串反转 304 A.1.19 right(s,n):返回字符串后n个字符 304 A.1.20 rpad(s1,len,s2):在字符串中填充相应字符串 305 A.1.21 position(s1 in s):获取子字符串在字符串中出现的位置 305 A.1.22 repeat(s,n):字符串重复拼接 305 A.1.23 substring_index(s, s2, number):返回字符串中第n个出现的子字符串 305 A.1.24 trim(s):去掉字符串开始和结尾处的空格 306 A.1.25 ucase(s):把字符串中的所有字母转换为大写字母 306 A.1.26 rtrim(s):去掉字符串结尾处的空格 306 A.1.27 strcmp(s1,s2):比较字符串的大小 307 A.1.28 substr(s, start, length):从字符串中截取子字符串 307 A.1.29 substring(s, start, length):从字符串中截取子字符串 307 A.1.30 md5(s):字符串加密 308 A.1.31 inet_aton (ip):把IP地址转换为数字 308 A.1.32 inet_ntoa(s):把数字转换为IP地址 308 A.2 MySQL数字函数 309 A.2.1 abs(x):求绝对值 309 A.2.2 sign(x):返回数字符号 309 A.2.3 acos(x):求反余弦值 309 A.2.4 asin(x):求反正弦值 310 A.2.5 atan (x):求反正切值 310 A.2.6 sin(x):求正弦值 310 A.2.7 cos(x):求余弦值 310 A.2.8 cot(x):求余切值 311 A.2.9 tan(x):求正切值 311 A.2.10 degrees(x):将弧度转换为角度 311 A.2.11 radians(x):将角度转换为弧度 312 A.2.12 exp(x):返回e的x次方 312 A.2.13 ceil(x):返回不小于x的*小整数 312 A.2.14 ceiling(x):返回不小于x的*小整数 312 A.2.15 floor(x):返回不大于x的*大整数 313 A.2.16 round(x):返回*接近x的整数 313 A.2.17 greatest(expr1,expr2, ):返回列表中的*大值 313 A.2.18 least(expr1, expr2, expr3, ):返回列表中的*小值 314 A.2.19 ln(x):求自然对数 314 A.2.20 log(x)或log(base, x):求对数 314 A.2.21 log10(x):求以10为底的对数 315 A.2.22 log2(x):求以2为底的对数 315 A.2.23 max(expression):求*大值 315 A.2.24 min(expression):求*小值 316 A.2.25 sum(expression):求总和 316 A.2.26 avg(expression):求平均值 317 A.2.27 count(expression):求总记录数 317 A.2.28 mod(x,y):求余数 317 A.2.29 pow(x,y):求x的y次方 318 A.2.30 sqrt(x):求平方根 318 A.2.31 rand():求随机数 318 A.2.32 truncate(x,y):返回保留到小数点后n位的值 319 A.3 MySQL日期函数 319 A.3.1 adddate(d,n):返回指定日期加上指定天数后的日期 319 A.3.2 addtime(t,n):返回指定时间加上指定时间后的时间 319 A.3.3 curdate():返回当前日期 320 A.3.4 current_date():返回当前日期 320 A.3.5 current_time():返回当前时间 320 A.3.6 current_timestamp():返回当前日期和时间 320 A.3.7 curtime():返回当前时间 321 A.3.8 date(t):从指定日期时间中提取日期值 321 A.3.9 datediff(d1,d2):返回两个日期相隔的天数 321 A.3.10 date_add(d, interval expr type):给指定日期加上一个时间段后的日期 322 A.3.11 date_format(d,f):根据表达式显示日期 322 A.3.12 date_sub(date, interval expr type):从当前日期减去指定的时间间隔 322 A.3.13 day(d):返回日期值中的日值 323 A.3.14 dayname(d):返回指定日期是星期几 323 A.3.15 dayofmonth(d):返回指定日期是本月的第几天 323 A.3.16 dayofweek(d):返回指定日期是所在星期的第几天 323 A.3.17 dayofyear(d):返回指定日期是本年的第几天 324 A.3.18 extract (type from d):根据对应格式返回日期 324 A.3.19 from_days(n):返回元年加n天的日期 325 A.3.20 hour(t):返回指定时间中的小时数 325 A.3.21 last_day(d):返回给定日期所在月份的*后一天 326 A.3.22 localtime():返回当前日期和时间 326 A.3.23 localtimestamp():返回当前日期和时间 326 A.3.24 makedate(year, day-of-year):时间组合天数 326 A.3.25 maketime(hour, minute, second):时间组合 327 A.3.26 microsecond(date):返回时间参数中的微秒数 327 A.3.27 minute(t):返回指定时间中的分钟数 327 A.3.28 monthname(d):返回日期中的月份名称 328 A.3.29 month(d):返回日期中的月份值 328 A.3.30 now():返回当前日期和时间 328 A.3.31 period_add(period, number):日期加月份数 328 A.3.32 period_diff(period1, period2):返回两个时间之间的月份差 329 A.3.33 quarter(d):返回日期对应的季度数 329 A.3.34 second(t):返回指定时间中的秒数 329 A.3.35 sec_to_time(s):秒数转换为时间 329 A.3.36 str_to_date(string, format_mask):把字符串转换为日期 330 A.3.37 subdate(d,n):从指定日期减去指定天数后的日期 330 A.3.38 subtime(t,n):从指定时间减去指定秒数后的时间 330 A.3.39 sysdate():返回当前日期和时间 331 A.3.40 time(expression):提取日期时间参数中的时间部分 331 A.3.41 time_format(t,f):根据表达式显示时间 331 A.3.42 time_to_sec(t):把时间转换为秒数 331 A.3.43 timediff(time1, time2):计算时间差 332 A.3.44 timestamp(expression, interval):指定时间加上时间间隔后的时间 332 A.3.45 to_days(d):计算元年到当前日期的天数 332 A.3.46 week(d):返回指定日期是本年的第几周 333 A.3.47 weekday(d):返回指定日期是星期几 333 A.3.48 year(d):返回指定日期的年份 333 A.4 MySQL高级函数 333 A.4.1 bin(x):返回字符串的二进制编码 333 A.4.2 binary(s):将字符串转换为二进制数 334 A.4.3 case expression:表达式分支 334 A.4.4 cast(x as type):数据类型转换 335 A.4.5 coalesce(expr1,,exprn):返回**个非空表达式 335 A.4.6 connection_id():返回唯一连接ID 335 A.4.7 conv(x,f1,f2):数据进制转换 335 A.4.8 convert(s using cs):求字符串的字符集 336 A.4.9 current_user():返回当前的用户名 336 A.4.10 database():返回当前的数据库名 336 A.4.11 if(expr,v1,v2):表达式判断 337 A.4.12 ifnull(v1,v2):null替换 337 A.4.13 isnull(expression):判断表达式是否为null 337 A.4.14 nullif(expr1, expr2):字符串相等则返回null 338 A.4.15 last_insert_id():返回*近生成的自增ID 338 A.4.16 session_user():返回当前会话的用户名 339 A.4.17 version():返回数据库的版本号 339
展开全部

作者简介

张文亮,是知名的少数跨多领域(JAVA/.NET/Python)的IT布道师和国内资深架构师,对平台中间件如Kafka、Nginx、ElasticSearch、Redis、MongoDB等有深入的研究和见解。授课时善于用生活实例来体现抽象概念,知识点讲解细致透彻,能够构建系统知识体系,深受广大学员喜爱。著作包括《大数据高并发Redis一本通》《ElasticSearch全面解析与开发实践》《大数据之HBase入门与实战调优》等。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航