MySQL基础教程:从入门到精通

需积分: 10 5 下载量 6 浏览量 更新于2024-09-02 收藏 456KB PDF 举报
"mysql数据库.pdf" 本文档是哈希空间在2020年6月整理的一份关于MySQL数据库的精华指南,涵盖了从基础到进阶的多种操作,旨在帮助用户快速掌握MySQL的基础语句和常见操作。以下是文档的主要内容: 1. MySQL数据库介绍: MySQL是一种广泛使用的开源关系型数据库管理系统,具有高效、稳定和易用的特点。在全球范围内,无论是大型企业还是小型项目,都有大量的应用案例。 2. MySQL下载: 官方下载地址位于https://dev.mysql.com/downloads/installer/,提供不同平台(如Windows、Mac和Linux)的安装程序。例如,Windows用户可以选择MySQL Installer,而Linux用户可以通过包管理器进行安装。 3. MySQL连接数据库: 连接MySQL数据库的方法多样,包括使用图形化工具(如MySQL Workbench)或命令行工具(如mysql客户端)。对于新手,建议阅读相关教程以了解连接过程。 4. SQL基础: - `CREATE DATABASE`:用于创建新的数据库。 - `DROP DATABASE`:用于删除数据库。 - `SHOW DATABASES`:列出所有数据库。 - `USE`:选择要使用的数据库。 - `CREATE TABLE`:创建新表,可以设置自增主键(`AUTO_INCREMENT`)、非空约束(`NOT NULL`)和默认值(`DEFAULT`)等属性。 - `INSERT INTO`:向表中插入数据。 - `SELECT`:查询数据,可以配合`WHERE`、`AND`、`OR`等条件进行过滤,同时处理`NULL`记录。 - `UPDATE`:更新已存在的数据。 - `DELETE`:删除数据,`TRUNCATE`用于清空表数据。 - `ALTER TABLE`:修改表结构,包括添加和删除字段。 5. 索引优化: - 索引类型:有B树索引、哈希索引等,不同类型的索引适用于不同的查询场景。 - `CREATE INDEX`:创建普通索引。 - `CREATE UNIQUE INDEX`:创建唯一索引。 - `DROP INDEX`:删除索引。 - 查看索引:使用`SHOW INDEX FROM`查看表的索引信息。 - 查询执行计划:通过`EXPLAIN`关键字预览SQL语句的执行计划,以分析性能。 6. 数据导入导出: - `mysqldump`:用于备份和迁移数据,可以导出整个数据库或单个表的结构和数据。 - 导出数据:命令行或图形化工具可以完成数据导出。 - 导入数据:可以通过`mysql`命令行工具或`source`命令导入数据。 7. 其他: - 查询正在执行的SQL和终止SQL:这通常涉及到数据库管理系统的监控功能,以控制和优化数据库的运行状态。 这份文档详尽地介绍了MySQL数据库的基础操作,对于初学者来说是一份非常实用的参考资料,可以帮助读者快速上手并掌握MySQL的基本使用技巧。通过学习这份文档,用户可以更好地管理和维护自己的MySQL数据库,提升工作效率。
2009-08-09 上传
解压密码:reply MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。 它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序, 另外,MySQL在UNIX等操作系统上是免费的,在Windows操作系统上,可免费使用其客户机程序和客户机程序库。 本书通过两个实例,详细介绍了MySQL的基本概念、基本技巧、编程方法、管理特点,以及第三方工具(如PHP和Perl)的使用方法。 本书还提供了大量与MySQL有关的因特网站点,以及获得MySQL的技术支持方法。 本书适合数据库、网络开发与管理等人员参考。 目 录 译者序 序 前言 第一部分 MySQL的使用 第1章 MySQL 与 SQL 介绍 1 1.1 MySQL 的用途 1 1.2 一个样例数据库 4 1.2.1 美国历史同盟 4 1.2.2 学分保存方案 6 1.2.3 样例数据库怎样才能满足需求 6 1.3 基本数据库术语 7 1.3.1 基本术语 7 1.3.2 查询语言术语 9 1.3.3 MySQL的体系结构术语 9 1.4 MySQL教程 10 1.4.1 基本要求 10 1.4.2 取得样例数据库的分发包 11 1.4.3 建立和中止服务器的连接 11 1.4.4 发布查询 13 1.4.5 创建数据库 14 1.4.6 创建表 15 1.4.7 增加新记录 26 1.4.8 检索信息 28 1.4.9 删除或更新现有记录 49 1.4.10 改变表的结构 50 1.5 与 mysql 交互的技巧 51 1.5.1 简化连接过程 51 1.5.2 以较少的键入发布查询 53 1.6 向何处去 56 第2章 用 MySQL 处理数据 57 2.1 MySQL 数据类型 58 2.2 MySQL 的列类型 59 2.2.1 列类型概述 59 2.2.2 数值列类型 61 2.2.3 串列类型 69 2.2.4 日期和时间列类型 76 2.3 选择列的类型 81 2.3.1 列中存储何种类型的值 82 2.3.2 列值有特定的取值范围吗 84 2.3.3 性能与效率问题 85 2.3.4 希望对值进行什么样的比较 87 2.3.5 计划对列进行索引吗 87 2.3.6 列类型选择问题的相互关联程度 88 2.4 表达式求值和类型转换 88 2.4.1 撰写表达式 89 2.4.2 类型转换 94 第3章 MySQL SQL 语法及其用法 99 3.1 MySQL 中的SQL特征 99 3.2 MySQL 的命名规则 100 3.2.1 引用数据库的成分 100 3.2.2 SQL语句中的大小写规则 101 3.3 创建、删除和选择数据库 101 3.4 创建、删除、索引和更改表 102 3.4.1 CREATE TABLE语句 102 3.4.2 DROP TABLE 语句 106 3.4.3 创建和删除索引 106 3.4.4 ALTER TABLE语句 109 3.5 获取数据库和表的有关信息 111 3.6 检索记录 112 3.6.1 平凡连接 113 3.6.2 全连接 113 3.6.3 左连接 114 3.7 加注释 115 3.8 解决方案随笔 116 3.8.1 将子选择编写为连接 116 3.8.2 检查表中未给出的值 117 3.8.3 执行UNION操作 118 3.8.4 增加序列号列 119 3.8.5 对某个已有的列进行排序 120 3.8.6 非正常次序的串 120 3.8.7 建立计数表 120 3.8.8 检查表是否存在 121 3.9 MySQL 不支持的功能 121 第4章 查询优化 125 4.1 使用索引 125 4.1.1 索引的益处 125 4.1.2 索引的弊端 127 4.1.3 选择索引 127 4.2 MySQL 查询优化程序 129 4.2.1 优化程序怎样工作 129 4.2.2 忽略优化 131 4.3 列类型选择与查询效率 132 4.4 有效地装载数据 134 4.5 调度与锁定问题 136 4.6 管理员的优化 137 4.6.1 服务器参数 138 4.6.2 硬件问题 138 第二部分 MySQL 编程接口 第5章 MySQL 程序设计介绍 139 5.1 MySQL 可用的 API 142 5.1.1 C API 143 5.1.2 Perl DBI API 143 5.1.3 PHP API 145 5.2 选择API 146 5.2.1 执行环境 146 5.2.2 性能 147 5.2.3 开发时间 149 5.2.4 可移植性 151 第6章 MySQL C API 152 6.1 建立客户机程序的一般过程 153 6.1.1 基本的系统需求 153 6.1.2 编译和连接客户机程序 153 6.2 客户机程序1—连接到服务器 154 6.3 客户机程序2—增加错误检查 156 6.4 客户机程序3—产生连接代码模块 158 6.5 客户机程序4—在运行时获取连接参 数 163 6.5.1 访问选项文件内容 164 6.5.2 分析命令行参数 166 6.6 处理查询 172 6.6.1 处理不返回结果集的查询 173 6.6.2 处理返回结果集的查询 174 6.6.3 通用目标查询处理程序 176 6.6.4 可选择的查询处理方法 178 6.6.5 mysql_store_result()与 mysql_ use _result()的比较 179 6.6.6 使用结果集元数据 181 6.7 客户机程序5—交互式查询程序 184 6.8 其他主题 185 6.8.1 在结果集上执行计算 185 6.8.2 对查询中有疑问的数据进行编码 187 6.8.3 图像数据的处理 188 6.8.4 获取表信息 189 6.8.5 需要避免的客户机程序设计错误 189 第7章 Perl DBI API 192 7.1 Perl 脚本的特点 192 7.2 Perl DBI 基础 193 7.2.1 DBI数据类型 193 7.2.2 一个简单的DBI脚本 193 7.2.3 处理错误 196 7.2.4 处理不返回结果集的查询 199 7.2.5 处理返回结果集的查询 200 7.2.6 引用问题 206 7.2.7 占位符和参数约束 209 7.2.8 指定连接参数 210 7.2.9 调试 213 7.2.10 使用结果集元数据 215 7.3 运行 DBI 218 7.3.1 生成历史同盟目录 218 7.3.2 发送成员资格更新通知 223 7.3.3 历史同盟成员项目编辑 227 7.3.4 寻找共同兴趣的历史同盟成员 231 7.3.5 联机历史同盟目录 232 7.4 在 Web 应用程序中使用 DBI 234 7.4.1 设置CGI脚本的Apache 235 7.4.2 CGI.pm的简要介绍 236 7.4.3 从Web脚本连接到MySQL服 务器 239 7.4.4 samp_db数据库浏览器 240 7.4.5 学分保存方案分数浏览器 243 7.4.6 历史同盟共同兴趣的搜索 246 第8章 PHP API 248 8.1 PHP 脚本的特点 248 8.2 PHP基础 248 8.2.1 使用函数和include 文件 253 8.2.2 一个简单的查询页面 257 8.2.3 处理查询结果 258 8.2.4 处理错误 261 8.2.5 引用问题 262 8.3 运行 PHP 263 8.3.1 输入学生分数 263 8.3.2 美国总统测验 269 8.3.3 历史同盟联机成员项的编辑 271 第三部分 MySQL 管理 第9章 MySQL 管理介绍 277 9.1 管理职责概述 277 9.2 常规管理 278 9.3 安全性 279 9.4 数据库修复和维护 279 第10章 MySQL 数据目录 280 10.1 数据目录的位置 280 10.2 数据目录的结构 281 10.2.1 MySQL服务器怎样提供对数据 的访问 282 10.2.2 数据库的表示法 283 10.2.3 数据库表的表示法 283 10.2.4 数据库和表命名中的操作系统 约束 284 10.2.5 系统性能的数据目录结构的 含义 285 10.2.6 MySQL的状态文件 286 10.3 重定位数据目录的内容 288 10.3.1 重定位方法 288 10.3.2 估计重定位的效果 289 10.3.3 重定位数据目录 289 10.3.4 重定位数据库 290 10.3.5 重定位数据库表 290 10.3.6 重定位状态文件 290 第11章 常规的MySQL 管理 292 11.1 新的 MySQL 安装的安全性 292 11.2 MySQL 服务器的启动和关闭 293 11.2.1 用无特权的用户账号运行MySQL 服务器 293 11.2.2 启动服务器的方法 295 11.2.3 关闭服务器 296 11.2.4 在不连接时收回服务器的控制 297 11.3 用户账号管理 298 11.3.1 创建新用户和授权 298 11.3.2 取消权限和删除用户 302 11.4 日志文件维护 303 11.5 备份和拷贝数据库 305 11.5.1 用mysqldump备份和拷贝数 据库 307 11.5.2 使用直接拷贝数据库备份和 拷贝方法 308 11.5.3 复制数据库 309 11.6 为数据恢复使用备份 309 11.6.1 恢复整个数据库 310 11.6.2 恢复单个的表 310 11.7 优化服务器 311 11.8 运行多个服务器 312 11.8.1 配置和安装多个服务器 313 11.8.2 多个服务器的启动过程 313 11.9 更新 MySQL 313 第12章 安全性 315 12.1 内部安全性:安全数据目录访问 315 12.2 外部安全性:安全网络访问 317 12.2.1 MySQL授权表的结构和内容 317 12.2.2 服务器如何控制客户机的访问 320 12.2.3 授权表应避免的风险 323 12.2.4 不用GRANT建立用户 324 第13章 数据库维护和修复 328 13.1 检查和维护数据库表 328 13.1.1 myisamchk和 isamchk的调用 语法 328 13.1.2 检查表 329 13.1.3 修复表 329 13.1.4 避免与 MySQL 服务器交互 作用 331 13.1.5 快速运行myisamchk和 isamchk 332 13.2 安排预防性的维护 333 13.2.1 用cron定期检查表 334 13.2.2 在系统启动期间检查表 335 第四部分 附 录 附录A 获得和安装软件 337 附录B 列类型参考 349 附录C 运算符和函数参考 356 附录D SQL 语法参考 384 附录E MySQL 程序参考 408 附录F C API 参考 431 附录G Perl DBI API 参考 453 附录H PHP API 参考 465 附录 I 有用的第三方工具 482 附录 J 因特网服务商 484