MYSQL培训经典教程

MYSQL培训经典教程

目 录<br><br>第一章MYSQL入门与初步 1<br>1.1 MYSQL简介 2<br>1.1.1 MySQL是什么? 2<br>1.1.2 我需要MySQL吗? 3<br>1.1.3 我需要付钱吗? 4<br>1.1.4 如何得到MySQL? 4<br>1.1.5总结 5<br>1.2 关系数据库管理系统 5<br>1.2.1 关系数据库系统 6<br>1.2.2 数据库系统的发展 7<br>1.2.3 与数据库系统通讯 8<br>1.2.4 MySQL的体系结构 8<br>1.2.5总结 8<br>1.3 MYSQL使用的SQL语言 9<br>1.3.1 表、列和数据类型 9<br>1.3.2函数 9<br>1.3.3 SQL的语句 9<br>1.3.4总结 10<br>1.4 MYSQL数据处理 10<br>1.4.1 MySQL的数据 10<br>1.4.1.1、字符串值 10<br>1.4.1.2数字值 11<br>1.4.1.3十六进制值 12<br>1.4.1.4日期和时间值 12<br>1.4.1.4 NULL值 12<br>1.4.2列类型概述 12<br>1.4.3 数字列类型 14<br>1.4.3.1整数类型 15<br>1.4.3.2浮点数类型 16<br>1.4.4 日期和时间类型 18<br>1.4.4.1 Y2K问题和日期类型 18<br>1.4.4.2 DATETIME,DATE和TIMESTAMP类型 18<br>1.4.4.3 TIME类型 19<br>1.4.4.4 YEAR类型 20<br>1.4.5 字符串类型 20<br>1.4.5.1 CHAR和VARCHAR类型 21<br>1.4.5.2 BLOB和TEXT类型 23<br>1.4.5.3 ENUM和SET类型 24<br>1.4.6总结 26<br>第二章 MySQL的安装 27<br>2.1 MYSQL系统的安装布局 28<br>2.1.1 二进制安装 28<br>2.1.2 RPM安装 28<br>2.1.3 源代码安装 28<br>2.1.4总结 29<br>2.2 安装MYSQL系统的分发 29<br>2.2.1 在Windows下的安装一个二进制分装 29<br>2.2.2 在Windows NT/2000下安装成系统服务 29<br>2.2.3 在Linux下安装一个RPM分发 31<br>2.2.4 在Linux下安装二进制分发 31<br>2.2.5 在Linux下安装源代码分发 32<br>2.2.6 总结 32<br>2.3 安装后期的的设置与测试 33<br>2.3.1建立启动MySQL的帐户 33<br>2.3.2 初始化授权表 33<br>2.3.3 测试服务器是否工作 34<br>2.3.4 自动运行和停止MySQL 36<br>2.3.5 更改root用户的密码 38<br>2.3.6 修改选项文件 38<br>2.3.7总结 41<br>2.4 系统的升级 41<br>2.4.1 备份数据库与其他配置文件 41<br>2.4.2 重新安装二进制分发 41<br>2.4.3重新安装源代码分发 41<br>2.4.4 升级一个RPM分发 42<br>2.4.5 检查数据库是否工作及完整 42<br>2.4.6总结 42<br>2.5在同一台机器上运行多个MYSQL服务器 42<br>2.5.1使用重新编译的方法 42<br>2.5.2使用指定服务器参数的方法 43<br>2.5.3有关选项文件的问题 44<br>2.5.4 总结 44<br>第三章 数据库的基本操作 46<br>3.1 MYSQL的启动与终止 47<br>3.1.1 直接运行守护程序 47<br>3.1.2 使用脚本mysql.server启动关闭数据库 48<br>3.1.3 使用mysqladmin实用程序关闭、重启数据库 49<br>3.1.4 启动或停止NT平台上的系统服务 50<br>3.1.5 使用选项文件提供服务器的参数 51<br>3.1.6 总结 51<br>3.2 MYSQL与客户机的连接 51<br>3.2.1建立和中止与服务器的连接 52<br>3.2.2利用选项文件简化连接 53<br>3.2.3 利用 mysql 的输入行编辑器 54<br>3.2.4 批处理模式连接 55<br>3.2.5 总结 56<br>3.3 有关数据库的操作 56<br>3.3.1 用SHOW显示已有的数据库 56<br>3.3.2 用Create Dabase 创建数据库 57<br>3.3.3 用DROP DATABASE删除数据库 57<br>3.3.4 使用mysqladmin工具创建和删除 58<br>3.3.5 直接在数据库目录中创建或删除 58<br>3.3.6 用USE选用数据库 58<br>3.3.7 总结 58<br>3.4 有关数据表的操作 59<br>3.4.1 用SHOW/ DESCRIBE语句显示数据表的信息 59<br>3.4.2 使用mysqlshow 工具得到信息 60<br>3.4.3 用CREATE TABLE 语句创建数据表 60<br>3.4.4利用 SELECT 的结果创建表 62<br>3.4.5 用ALTER TABLE语句修改表的结构 63<br>3.4.6 用DROP TABLE 语句删除数据表 64<br>3.4.7 总结 64<br>3.5 向数据表插入行记录 64<br>3.5.1 使用INSERT语句插入新数据 64<br>3.5.2 使用INSERT…SELECT语句插入从其他表选择的行 65<br>3.5.3 使用replace、replace…select语句插入 66<br>3.5.4 使用LOAD语句批量录入数据 66<br>3.5.5 总结 68<br>3.6 查询数据表中的记录 69<br>3.6.1 普通查询 69<br>3.6.2 条件查询 71<br>3.6.3 查询排序 73<br>3.6.4 查询分组与行计数 75<br>3.6.5 查询多个表 77<br>3.3.6总结 78<br>3.7 修改、删除数据记录 79<br>3.7.1 用update修改记录 79<br>3.7.2 用delete删除记录 79<br>3.7.3 总结 79<br>第四章 MYSQL高级特性 81<br>4.1 集合函数 82<br>4.1.1 行列计数 82<br>4.1.2统计字段值的数目 82<br>4.1.3 计算字段的平均值 83<br>4.1.4 计算字段值的和 84<br>4.1.5 计算字段值的极值 84<br>4.1.6 总结 86<br>4.2 操作日期和时间 86<br>4.2.1 返回当前日期和时间 86<br>4.2.2 自动记录数据的改变时间 88<br>4.2.3 返回日期和时间范围 90<br>4.2.5 比较日期和时间 92<br>4.3 字符串模式匹配 93<br>4.3.1 标准的SQL模式匹配 93<br>4.3.2 扩展正则表达式模式匹配 94<br>4.3.3 总结 96<br>4.4 深入SELECT的查询功能 96<br>4.4.1 列和表的别名 96<br>4.4.1.1列的别名 96<br>4.4.1.2 在子句中使用列的别名 98<br>4.4.1.3表的别名 98<br>4.4.2 取出互不相同的记录 99<br>4.4.3 NULL值的问题 100<br>4.4.4 大小写敏感性 102<br>4.4.5 检索语句与多个表的连接 102<br>4.4.5.1 全连接 103<br>4.4.5.2 左连接 105<br>4.4.6 总结 108<br>4.5 索引属性 108<br>4.5.1 索引的特点 108<br>4.5.2 用Alter Table语句创建与删除索引 109<br>4.5.3 用CREATE\DROP INDEX创建索引 110<br>4.5.4 在创建表时指定索引 111<br>4.5.5 总结 113<br>第五章 数据库的备份与恢复 114<br>5.1 数据库目录 115<br>5.1.1 数据目录的位置 115<br>5.1.2 数据库的表示法 116<br>5.1.3 数据库表的表示法 117<br>5.1.4 MySQL的状态文件 118<br>5.1.5 总结 120<br>5.2 重定位数据库目录的内容 120<br>5.2.3 重定位方法 120<br>5.2.1 重定位数据目录 121<br>5.2.2 重定位数据库 121<br>5.2.3 重定位数据库表 122<br>5.2.4 重定位状态文件 122<br>5.2.5 总结 123<br>5.3 备份和恢复数据表的方法 123<br>5.3.1 使用SQL语句备份和恢复 123<br>5.3.2使用mysqlimport恢复数据 125<br>5.3.3 使用mysqldump备份数据 126<br>5.3.4 用直接拷贝的方法备份恢复 129<br>5.3.5 总结 129<br>5.4 使用更新日志文件 130<br>5.4.1 启用日志 130<br>5.4.2 重写日志 130<br>5.4.3 恢复日志内容 130<br>5.4.4 总结 131<br>5.5 使用MYSQL内建复制功能 131<br>5.5.1 配置主服务器 131<br>5.5.2 配置从服务器 132<br>5.5.3 创建相互的主从关系 133<br>5.5.4 总结 133<br>5.5 总结:备份恢复数据的一般步骤 133<br>第六章 数据库的维护与修复 136<br>6.1 数据库表的检查、修复与优化 137<br>6.1.1 数据库表的维护工具 137<br>6.1.2 检查数据库表 138<br>6.1.3 修复数据库表 139<br>6.1.4优化数据库表 140<br>6.1.5指定维护过程中使用的内存 141<br>6.1.6总结 141<br>6.2 避免与 MYSQL 服务器交互作用 142<br>6.2.1锁定表的的方法 142<br>6.2.2 检查表的锁定协议 143<br>6.2.3 修复表的锁定协议 143<br>6.2.4 总结 144<br>6.3日志文件维护 144<br>6.3.1如何使用新的更新日志 144<br>6.3.2如何使用新的常规日志 145<br>6.3.3 总结 145<br>6.4 建立日常维护规范 145<br>6.4.1 建立一个数据库表维护规范 145<br>6.4.2 创建一个适用于定期维护的脚本 145<br>6.4.3 在unix中用cron定期检查表 146<br>6.3.4 在系统启动期间检查表 147<br>6.3.5 总结 148<br>第七章 数据库安全 149<br>7.1 MYSQL的权限系统 150<br>7.1.1授权表的结构 150<br>7.1.1.1授权表user、db和host的结构和作用 150<br>7.1.1.2授权表tables_priv和columns_priv的结构和作用 151<br>7.1.2用户的权限 152<br>7.1.2.1数据库和表的权限 152<br>7.1.2.2管理权限 153<br>7.1.3授权表列的内容 153<br>7.1.3.1作用域列内容 153<br>7.1.3.2授权表User、Db和Host的权限列的内容 155<br>7.1.3.3授权表tables_priv和columns_priv的权限列的内容 155<br>7.1.4权限系统工作原理 155<br>7.1.4.1权限系统工作的一般过程 155<br>7.1.4.2存取控制, 阶段1:连接证实 156<br>7.1.4.3存取控制,阶段2:请求证实 159<br>7.1.5 总结 161<br>7.2 设置用户与并授权 162<br>7.2.1使用SHOW GRANTS语句显示用户的授权 162<br>7.2.2 使用GRANT语句创建用户并授权 162<br>7.2.2.1 GRANT语句的语法 162<br>7.2.2.2创建用户并授权的实例 164<br>7.2.3 直接修改授权表创建用户并授权 164<br>7.2.4 总结 165<br>7.3 撤销用户与授权 165<br>7.3.1 使用REVOKE语句撤销授权 165<br>7.3.2 直接修改授权表撤销用户或授权 166<br>7.3.3 总结 167<br>7.4 设置密码 167<br>7.4.1 使用myadmin实用程序 167<br>7.4.2使用语句SET PASSWORD 168<br>7.4.3 直接修改授权表 168<br>7.4.4 重新设置一个遗忘的root口令 168<br>7.4.5 总结 169<br>7.5 权限修改何时生效 169<br>7.5.1 服务器重新启动的情况 170<br>7.5.2 被服务器立即应用的情况 170<br>7.5.3 直接修改授权表的情况 170<br>7.5.4 对现有客户连接的影响情况 170<br>7.5.5 总结 170<br>7.6 授权原则 170<br>7.6.1 只有root用户拥有授权表的改写权 170<br>7.6.2 关于用户、口令及主机的设置 171<br>7.6.3 授予用户合适的权限 171<br>7.6.4 MySQL权限系统无法完成的任务 173<br>7.6.5 总结 173<br>7.7 MYSQL的其它安全问题 173<br>7.7.1 不在客户机的命令行上提供密码 173<br>1可以在命令行上提供密码 173<br>7.7.2 使用SSH加密客户机连接 174<br>7.7.3不要使用Unix的root用户运行MySQL守护进程 174<br>7.7.4数据库目录的安全 174<br>7.7.4.1可能的安全漏洞 174<br>7.7.4.2在Unix设置合适的数据库目录权限 175<br>7.7.4.3在NT系统中设置合适的数据库目录权限 175<br>7.7.5影响安全的mysqld选项 175<br>7.7.6 总结 176<br>第八章 数据库优化 177<br>8.1 索引的使用 178<br>8.1.1索引对单个表查询的影响 178<br>8.1.2索引对多个表查询的影响 180<br>8.1.3多列索引对查询的影响 181<br>8.1.4索引的作用 182<br>8.1.5 索引的弊端 182<br>8.1.6 选择索引的准则 183<br>8.1.7 总结 184<br>8.2 数据类型的问题 184<br>8.2.1 有助于效率的类型选择 184<br>8.2.2 有关BLOB和TEXT类型 185<br>8.2.3 使用ANALYSE过程检查表列 186<br>8.2.3 总结 187<br>8.3 SQL查询的优化 187<br>8.3.1 使用EXPLAIN语句检查SQL语句 187<br>8.3.2 SELECT 查询的速度 188<br>8.3.2.1 MySQL怎样优化WHERE子句 188<br>8.3.2.2 MySQL怎样优化LEFT JOIN 190<br>8.3.2.3 MySQL怎样优化LIMIT 190<br>8.3.4 记录转载和修改的速度 191<br>8.3.4.1 INSERT查询的速度 191<br>8.3.4.2 UPDATE查询的速度 193<br>8.3.4.3 DELETE查询的速度 193<br>8.3.4索引对有效装载数据的影响 193<br>8.3.5 总结 194<br>8.4 数据库表的处理 194<br>8.4.1 选择一种表类型 194<br>8.4.1.1 静态(定长)表的特点 195<br>8.4.1.2 动态表的特点 196<br>8.4.1.3 压缩表的特点 196<br>8.4.1.4 内存表的特点 197<br>8.4.2 数据库表的数量的问题 197<br>8.4.3 数据库表级锁定的问题 198<br>1、对此一个主要的问题如下: 198<br>2、INSERT DELAYED 在客户机方的作用 199<br>8.4.4 对表进行优化 200<br>8.4.5 总结 201<br>8.5 服务器级优化 201<br>8.5.1 磁盘问题 201<br>8.5.2硬件问题 202<br>8.5.3 服务器参数的选择 202<br>8.5.4编译和链接怎样影响MySQL的速度 203<br>8.5.5 总结 203<br>思考题答案 206<br>附录一 MYSQL 语言参考 217<br>1.1 数据类型参考:怎么写字符串和数字 217<br>1.1.1 字符串 217<br>1.1.2 数字 219<br>1.1.3 十六进制值 219<br>1.1.4 NULL值 219<br>1.1.5 数据库、表、索引、列和别名的命名 220<br>1.1.5.1 名字的大小写敏感性 221<br>1.2 用户变量 222<br>1.3 列类型 222<br>1.3.1 列类型存储需求 225<br>数字类型 226<br>日期和时间类型 226<br>串类型 226<br>1.3.2 数字类型 227<br>1.3.3 日期和时间类型 229<br>1.3.3.1 Y2K问题和日期类型 230<br>1.3.3.2 DATETIME, DATE和TIMESTAMP类型 230<br>1.3.3.3 TIME类型 233<br>1.3.3.4 YEAR类型 234<br>1.3.4 字符串类型 234<br>1.3.4.1 CHAR和VARCHAR类型 234<br>1.3.4.2 BLOB和TEXT类型 235<br>1.3.4.3 ENUM类型 236<br>1.3.4.4 SET类型 237<br>1.3.5 为列选择正确的类型 238<br>1.3.6 列索引 238<br>1.3.7 多列索引 239<br>1.3.8 使用来自其他数据库引擎的列类型 239<br>1.4 用在SELECT和WHERE子句中的函数 240<br>1.4.1 分组函数 240<br>1.4.2 常用的算术操作 241<br>1.4.3 位函数 242<br>1.4.4 逻辑运算 242<br>1.4.5 比较运算符 243<br>1.4.6 字符串比较函数 246<br>1.4.7 类型转换运算符 248<br>1.4.8 控制流函数 248<br>1.4.9 数学函数 249<br>1.4.10 字符串函数 255<br>1.4.11 日期和时间函数 262<br>1.4.12 其他函数 269<br>1.4.13 与GROUP BY子句一起使用的函数 272<br>1.5 CREATE DATABASE句法 274<br>1.6 DROP DATABASE句法 274<br>1.7 CREATE TABLE句法 274<br>1.1.1 隐含的列说明改变 279<br>1.8 ALTER TABLE句法 280<br>1.9 OPTIMIZE TABLE句法 282<br>1.10 DROP TABLE句法 283<br>1.11 DELETE句法 283<br>1.12 SELECT句法 284<br>1.13 JOIN句法 286<br>1.14 INSERT句法 287<br>1.15 REPLACE句法 290<br>1.16 LOAD DATA INFILE句法 291<br>1.17 UPDATE句法 296<br>1.18 USE句法 297<br>1.20 KILL句法 298<br>1.22 EXPLAIN句法(得到关于SELECT的信息) 303<br>1.23 DESCRIBE句法 (得到列的信息) 307<br>1.24 LOCK TABLES/UNLOCK TABLES句法 308<br>1.25 SET OPTION句法 309<br>1.26 GRANT和REVOKE句法 310<br>1.27 CREATE INDEX句法 313<br>1.29 注释句法 314<br>1.30 CREATE FUNCTION/DROP FUNCTION句法 315<br> <br>2.1 各种MYSQL程序概述 318<br>myisamchk 318<br>make_binary_release 318<br>msql2mysql 318<br>mysql 318<br>mysqlaccess 319<br>mysqladmin 319<br>mysqlbug 319<br>mysqld 319<br>mysqldump 319<br>mysqlimport 319<br>mysqlshow 319<br>mysql_install_db 319<br>replace 319<br>safe_mysqld 319<br>2.2 MYSQLADMIN 319<br>2.3 MYSQLDUMP 320<br>2.4 MYSQLIMPORT 323<br>2.5 MYISAMPACK 324<br>2.6 MYISAMCHK 332
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值