收藏 分享(赏)

MySQL经典教程.pdf

上传人:HR专家 文档编号:6298257 上传时间:2019-04-05 格式:PDF 页数:351 大小:4.72MB
下载 相关 举报
MySQL经典教程.pdf_第1页
第1页 / 共351页
MySQL经典教程.pdf_第2页
第2页 / 共351页
MySQL经典教程.pdf_第3页
第3页 / 共351页
MySQL经典教程.pdf_第4页
第4页 / 共351页
MySQL经典教程.pdf_第5页
第5页 / 共351页
点击查看更多>>
资源描述

1、 http:/ 更 改了目录中的错误 版权归原作者前 言 MySQL 是一个广受 Linux 社区人们喜爱的半商业的数据库。 MySQL 是可运行在大多数的 Linux 平台 (i386, Sparc, etc),以及少许非 Linux 甚至非 Unix 平台。 MySQL 的普及很大程度上源于它的宽松,除了略显不寻常的许可费用。 MySQL 的价格随平台和安装方式变化。 MySQL 的 Windows 版本( NT 和 9X)在任何情况下都不免费,而任何 Unix 变种(包括 Linux)的 MySQL 如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方安装则必须付许可费。而且现在

2、已经有了符合 GPL的 MySQL 版本。 MySQL 具有这样明显的优势,并且由于它优异的性能, MySQL 的应用也越来越广泛,使用者也越来越多。但是在市场上,相应的适合培训的教材却屈指可数,广大爱好者苦于资料的缺乏而无法对 MySQL 做进一步的了解。为了适应培训市场的需求,本书定位于具有一定计算机知识读者的培训教材。读者在本书中,可以循序渐进的掌握 MySQL 的安装、使用、管理、备份和安全等多方面的知识。由于内容的翔实和学习内容的由浅入深,本书也适合于个别读者的自学过程。 本书的一大特色是 对于每一项具体的服务器操作,都尽量给出 了多种的解决方案。读者既可以学会如何使用 MySQL,

3、同时也可以通过这样的安排一窥 MySQL 的灵活性,并且可以通过这种举一反三的方法,对 MySQL 系统有一个非常详尽的了解,也能够加深对培训内容的理解和记忆。 此外,每一章的结束,本书都提出若干思考题,基本上都覆盖了该章的内容,可以用来测试培训的效果,也可以用来读者可以用之检测自己的掌握程度。在正文中的例子,读者也不应该忽视,阅读后建议重复正文中所有的例子,再考虑思考题中的内容。 本书结构的这种安排就是最大限度的满足培训教材的要求,同时为普通读者的阅读创造方便, 使本书包含较大的信息量。在通读本书之后,相信读者可以对 MySQL 有了很深的了解,可以独立的对 MySQL 数据库系统进行管理。

4、 编者时间仓促,难免在文中有疏漏之处,如果给您的阅读造成困难,请谅解。 编著者- 3 - 第 XX 章 XXXX 内 容 提 要 本书详细介绍了如何安装、管理、备份、维护和优化一个 MySQL 系统。对于每一件服务器操作都提出了多种的解决方案。对于每一种的方法,虽然不一定都是非常实用的方法,读者能通过这些方法,熟悉 MySQL 的特点和强大的功能。 第一章简单介绍了 MySQL 的历史、特点,同时对 SQL 的语法进行了简单的介绍。如果读者对第一章的内容不能很好的掌握,可以略过不了解的内容,在阅读二、三章之后重新理解其中内容。第二章介绍了如何安装一个 MySQL 系统。第三、四章详细叙述了如何

5、利用 SQL 语言以及其它的客户工具对 MySQL 数 据库中的数据进行操作。第五、六章介绍了数据库目录以及如何备份、恢复和维护数据库安装。第七章介绍了 MySQL 权限系统和如何为数据库创建、撤销授权。第八章则对优化数据库性能的各个方面进行了阐述。 附录一中详细列出了 MYSQL 列类型、函数和 SQL 语句的参考。附录二全面介绍了本书出现的程序的全部选项及其含义。 目 录 第一章 MYSQL 入门与初步 . 1 前 言 . 2 MYSQL入入入 门门门 与与与 初初初 步步步 . 1 1.1 MYSQL 简介 2 1.1.1 MySQL 是什么 ? 2 1.1.2 我需要 MySQL 吗

6、? . 3 1.1.3 我需要付钱吗 ? 4 1.1.4 如何得到 MySQL? 4 1.1.5 总结 . 5 1.2 关系数据库管理系统 5 1.2.1 关系数据库系统 . 6 1.2.2 数据库系统的发展 . 7 1.2.3 与数据库系统通讯 . 7 1.2.4 MySQL 的体系结构 . 8 1.2.5 总结 . 8 1.3 MYSQL 使用的 SQL 语言 8 1.3.1 表、列和数据类型 . 9 1.3.2 函数 . 9 1.3.3 SQL 的语句 9 1.3.4 总结 . 10 1.4 MYSQL 数据处理 10 1.4.1 MySQL 的数据 10 1.4.1.1、字符串值 .

7、10 1.4.1.2 数字值 11 1.4.1.3 十六进制值 12 1.4.1.4 日期和时间值 . 12 1.4.1.4 NULL 值 12 1.4.2 列类型概述 12 1.4.3 数字列类型 15 1.4.3.1 整数类型 15 1.4.3.2 浮点数类型 17 1.4.4 日期和时间类型 . 18 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 2 1.4.4.1 Y2K问题和日期类型 18 1.4.4.2 DATETIME,DATE 和 TIMESTAMP 类型 19 1.4.4.3 TIME 类型 . 20

8、1.4.4.4 YEAR 类型 . 20 1.4.5 字符串类型 20 1.4.5.1 CHAR 和 VARCHAR 类型 . 22 1.4.5.2 BLOB 和 TEXT 类型 . 23 1.4.5.3 ENUM 和 SET 类型 24 1.4.6 总结 . 26 MYSQL的的的 安安安 装装装 27 2.1 MYSQL 系统的安装布局 . 28 2.1.1 二进制安装 28 2.1.2 RPM 安装 . 28 2.1.3 源代码安装 28 2.1.4 总结 . 29 2.2 安装 MYSQL 系统的分发 29 2.2.1 在 Windows 下的安装一个二进制分装 . 29 2.2.2

9、在 Windows NT/2000 下安装成系统服务 . 30 2.2.3 在 Linux 下安装一个 RPM 分发 . 31 2.2.4 在 Linux 下安装二进制分发 31 2.2.5 在 Linux 下安装源代码分发 32 2.2.6 总结 32 2.3 安装后期的的设置与测试 . 33 2.3.1 建立启动 MySQL 的帐户 . 33 2.3.2 初始化授权表 33 2.3.3 测试服务器是否工作 34 2.3.4 自动运行和停止 MySQL . 36 2.3.5 更改 root 用户的密码 . 38 2.3.6 修改选项文件 38 2.3.7 总结 . 40 2.4 系统的升级

10、41 2.4.1 备份数据库与其他配置文件 . 41 2.4.2 重新安装二进制分发 41 2.4.3 重新安装源代码分发 . 41 2.4.4 升级一个 RPM分发 . 42 2.4.5 检查数据库是否工作及完整 . 42 2.4.6 总结 . 42 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 3 2.5 在同一台机器上运行多个 MYSQL 服务器 42 2.5.1 使用重新编译的方法 . 42 2.5.2 使用指定服务器参数的方法 43 2.5.3 有关选项文件的问题 . 44 2.5.4 总结 44 数数数 据据

11、据 库库库 的的的 基基基 本本本 操操操 作作作 46 3.1 MYSQL 的启动与终止 . 47 3.1.1 直接运行守护程序 . 47 3.1.2 使用脚本 mysql.server 启动关闭数据库 48 3.1.3 使用 mysqladmin 实用程序关闭、重启数据库 49 3.1.4 启动或停止 NT 平台上的系统服务 50 3.1.5 使用选项文件提供服务器的参数 . 51 3.1.6 总结 51 3.2 MYSQL 与客户机的连接 . 51 3.2.1 建立和中止与服务器的连接 51 3.2.2 利用选项文件简化连接 . 53 3.2.3 利用 mysql 的输入行编辑器 54

12、3.2.4 批处理模式连接 . 55 3.2.5 总结 56 3.3 有关数据库的操作 56 3.3.1 用 SHOW 显示已有的数据库 56 3.3.2 用 Create Dabase 创建数据库 . 57 3.3.3 用 DROP DATABASE 删除数据库 57 3.3.4 使用 mysqladmin 工具创建和删除 . 57 3.3.5 直接在数据库目录中创建或删除 . 58 3.3.6 用 USE 选用数据库 58 3.3.7 总结 58 3.4 有关数据表的操作 58 3.4.1 用 SHOW/ DESCRIBE 语句显示数据表的信息 59 3.4.2 使用 mysqlshow

13、工具得到信息 60 3.4.3 用 CREATE TABLE 语句创建数据表 . 60 1、 CREATE TABLE 语句的基本语法 60 2、如何指定表的类型 . 61 3、隐含的列说明的改变 61 3.4.4 利用 SELECT 的结果创建表 . 61 3.4.5 用 ALTER TABLE 语句修改表的结构 . 63 3.4.6 用 DROP TABLE 语句删除数据表 . 63 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 4 3.4.7 总结 64 3.5 向数据表插入行记录 64 3.5.1 使用 INSE

14、RT 语句插入新数据 . 64 3.5.2 使用 INSERTSELECT 语句插入从其他表选择的行 65 3.5.3 使用 replace、 replaceselect 语句插入 65 3.5.4 使用 LOAD 语句批量录入数 据 66 1、基本语法 . 66 2、文件的搜寻原则 . 66 3、 FIELDS 和 LINES 子句的语法 66 3.5.5 总结 68 3.6 查询数据表中的记录 68 3.6.1 普通查询 . 69 3.6.2 条件查询 . 71 3.6.3 查询排序 . 73 3.6.4 查询分组与行计数 . 74 1、 COUNT()函数计数非 NULL结果的数目。 7

15、5 3.6.5 查询多个表 77 3.3.6 总结 . 78 3.7 修改、删除数据记录 78 3.7.1 用 update 修改记录 . 79 3.7.2 用 delete 删除记录 79 3.7.3 总结 79 MYSQL高高高 级级级 特特特 性性性 . 81 4.1 集合函数 82 4.1.1 行列计数 . 82 4.1.2 统计字段值的数目 82 4.1.3 计算字段的平均值 . 83 4.1.4 计算字段值的和 . 84 4.1.5 计 算字段值的极值 . 84 4.1.6 总结 86 4.2 操作日期和时间 . 86 4.2.1 返回当前日期和时间 86 4.2.2 自动记录数据

16、的改变时间 . 88 4.2.3 返回日期和时间范围 90 1、使用关系运算符和逻辑运算符来限制时间范围 91 2、另一种方法是,你可以使用 LIKE 来返回正确的记录。通过在日期表达式中包含通配符“”,你可以匹配一个特定日期的所有时间。 . 91 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 5 3、上面两种方法的异同 91 4.2.5 比较日期和时间 . 92 4.3 字符串模式匹配 . 92 4.3.1 标准的 SQL 模式匹配 . 93 4.3.2 扩展正则表达式模式匹配 . 94 4.3.3 总结 96 4.4

17、 深入 SELECT 的查询功能 . 96 4.4.1 列和表的别名 96 4.4.1.1 列的别名 96 4.4.1.2 在子句中使用列的别名 97 4.4.1.3 表的别名 98 4.4.2 取出互不相同的记录 98 4.4.3 NULL 值的问题 .100 4.4.4 大小写敏感性 .102 1、数据库和表名 .102 2、列名 .102 3、表的别名 102 4、列的别名 102 5、字符串比较和模式匹配 .102 4.4.5 检索语句与多个表的连接 102 4.4.5.1 全连接 .103 4.4.5.2 左连接 .105 4.4.6 总结 .108 4.5 索引属性 108 4.5

18、.1 索引的特点 .108 4.5.2 用 Alter Table 语句创建与删除索引 109 4.5.3 用 CREATEDROP INDEX 创 建索引 . 110 4.5.4 在创建表时指定索引 . 111 4.5.5 总结 . 112 数数数 据据据 库库库 的的的 备备备 份份份 与与与 恢恢恢 复复复 114 5.1 数据库目录 . 115 5.1.1 数据目录的位置 115 5.1.2 数据库的表示法 116 5.1.3 数据库表的表示法 117 5.1.4 MySQL 的状态文件 118 5.1.5 总结 .120 5.2 重定位数据库目录的内容 120 8 MySQL 入门及

19、初步 h t t p : / / w w w . y u r e n n e t . c o m 6 5.2.3 重定位方法 .120 5.2.1 重定位数据目录 121 5.2.2 重定位数据库 .121 5.2.3 重定位数据库表 122 5.2.4 重定位状态文件 122 5.2.5 总结 .123 5.3 备份和恢复数据表的 方法 123 5.3.1 使用 SQL 语句备份和恢复 .123 5.3.2 使用 mysqlimport 恢复数据 .125 5.3.3 使用 mysqldump 备份数据 126 3、有关生成 SQL 语句的优化控制 128 5.3.4 用直接拷贝的方法备份恢

20、复 129 5.3.5 总结 .129 5.4 使用更新日志文件 .129 5.4.1 启用日志 130 5.4.2 重写日志 130 5.4.3 恢复日志内容 .130 5.4.4 总结 .130 5.5 使用 MYSQL 内建复制功能 .131 5.5.1 配置主服务器 .131 1、建立用于备份的帐号 .131 2、修改选项文件 .131 3 得到服务器数据库的一个快照 132 5.5.2 配置从服务器 .132 1、迁移主机的数据库目录 .132 2、修改选项文件 .132 5.5.3 创建相互的主从关系 .133 1、从机的配置 .133 2、主机的配置 .133 5.5.4 总结

21、.133 5.5 总结 :备份恢复数据的一般步骤 .133 1、备份前读锁定涉及的表 .133 2、导出数据库中表的结构和数据 .133 3、启用新的更新日志 133 4、解除表的读锁 .134 1、对涉及的表使用写锁 .134 2、恢复备份的数据 134 3、恢复更新日志的内容 .134 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 7 4、启用新的更新日志 134 5、解除表的写锁 .134 数数数 据据据 库库库 的的的 维维维 护护护 与与与 修修修 复复复 136 6.1 数据库表的检查、修复与优化 .137

22、6.1.1 数据库表的维护工具 .137 6.1.2 检查数据库表 .138 标准的方法检查表 .138 完全彻底的数据检查 138 中等程度的检查 .138 6.1.3 修复数据库表 .139 1、简单安全的修复 139 2、困难的修理 .139 3、非常困难的修复 140 6.1.4 优化数据库表 140 6.1.5 指定维护过程中使用的内存 .140 6.1.6 总结 141 6.2 避免与 MYSQL 服务器交互作用 141 6.2.1 锁定表的的方法 .142 1、内部锁定。 .142 2、外部锁定 142 6.2.2 检查表的锁定协议 143 6.2.3 修复表的锁定协议 143

23、6.2.4 总结 .144 6.3 日志文件维护 144 6.3.1 如何使用新的更新日志 144 6.3.2 如何使用新的常规日志 144 6.3.3 总结 .145 6.4 建立日常维护规范 .145 6.4.1 建立一个数据库表维护规范 145 6.4.2 创建一个适用于定期维护的脚本 145 1、一个简单的脚本 146 2、一个较为复杂的脚本 .146 3、如何执行脚本 .146 6.4.3 在 unix 中用 cron 定期检查表 .146 6.3.4 在系统启动期间检查表 .147 6.3.5 总结 .148 数数数 据据据 库库库 安安安 全全全 .149 8 MySQL 入门及

24、初步 h t t p : / / w w w . y u r e n n e t . c o m 8 7.1 MYSQL 的权限系统 .150 7.1.1 授权表的结构 150 7.1.1.1 授权表 user、 db 和 host 的结构和作用 150 7.1.1.2 授权表 tables_priv 和 columns_priv 的结构和作用 .151 7.1.2 用户的权限 .152 7.1.2.1 数据库和表的权限 .152 7.1.2.2 管理权限 .153 7.1.3 授权表列的内容 .154 7.1.3.1 作用域列内容 154 7.1.3.2 授权表 User、 Db 和 Hos

25、t 的权限列的内容 .155 7.1.3.3 授权表 tables_priv 和 columns_priv 的权限列的内容 .155 7.1.4 权限系统工作原理 .156 7.1.4.1 权限系统工作的一般过程 .156 7.1.4.2 存取控制 , 阶段 1:连接证实 157 7.1.4.3 存取控制,阶段 2:请求证实 .160 7.1.5 总结 .162 7.2 设置用户与并授权 .162 7.2.1 使用 SHOW GRANTS 语句显示用户的授权 162 7.2.2 使用 GRANT 语句创建用户并授权 .162 7.2.2.1 GRANT 语句的语法 .162 7.2.2.2 创

26、建用户并授权的实例 164 7.2.3 直接修改授权表创建用户并授权 165 7.2.4 总结 .166 7.3 撤销用户与授权 166 7.3.1 使用 REVOKE 语句撤销授权 .166 7.3.2 直接修改授权表撤销用户或授权 166 7.3.3 总结 .167 7.4 设置密码 167 7.4.1 使用 myadmin 实用程序 .168 7.4.2 使用语句 SET PASSWORD168 7.4.3 直接修改授权表 168 7.4.4 重新设置一个遗忘的 root 口令 .168 1、关闭 MySQL 服务器 .169 2、使用 -skip-grant-tables 参数来启动

27、mysqld。 169 3、连接到服务器,修改口令 169 4. 载入权限表: 169 7.4.5 总结 .170 7.5 权限修改何时生效 .170 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 9 7.5.1 服务器重新启动的情况 .170 7.5.2 被服务器立即应用的情况 170 7.5.3 直接修改授权表的情况 .170 7.5.4 对现有客户连接的影响情况 170 7.5.5 总结 .170 7.6 授权原则 170 7.6.1 只有 root 用户拥有授权表的改写权 170 7.6.2 关于用户、口令及主机

28、的设置 .171 7.6.3 授予用户合适的权限 .172 7.6.4 MySQL 权限系统无法完成的任务 .173 7.6.5 总结 .173 7.7 MYSQL 的其它安全问题 173 7.7.1 不在客户机的命令行上提供密码 173 1 可以在命令行上提供密码 173 7.7.2 使用 SSH 加密客户机连接 .174 7.7.3 不要使用 Unix 的 root 用户运行 MySQL 守护进程 174 7.7.4 数据库目录的安全 .174 7.7.4.1 可能的安全漏洞 175 7.7.4.2 在 Unix 设置合适的数据库目录权限 .175 7.7.4.3 在 NT 系统中设置合适

29、的数据库目录权限 .175 7.7.5 影响安全的 mysqld 选项 .176 7.7.6 总结 .176 数数数 据据据 库库库 优优优 化化化 .177 8.1 索引的使用 .178 8.1.1 索引对单个表查询的影响 .178 8.1.2 索引对多个表查询的影响 .180 8.1.3 多列索引对查询的影响 181 8.1.4 索引的作用 .182 8.1.5 索引的弊端 .182 8.1.6 选择索引的准则 183 1、搜索的索引列,不一定是所要选择的列 .183 2、使用惟一索引 .183 3、使用短索引 .183 4、利用最左前缀 .184 5、不要过度索引 .184 6、考虑在列

30、上进行的比较类型 184 8.1.7 总结 .184 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 10 8.2 数据类型的问题 184 8.2.1 有助于效率的类型选择 .184 1、使你的数据尽可能小 .184 2、使用定长列,不使用可变长列 .185 3、将列定义为 NOT NULL185 4、考虑使用 ENUM 列 .185 8.2.2 有关 BLOB 和 TEXT 类型 185 1、使用 BLOB 和 TEXT 类型的优点 .185 2、使用 BLOB 和 TEXT 类型的可能弊端 185 3、必要的准则 .1

31、85 8.2.3 使用 ANALYSE 过程检查表列 186 8.2.3 总结 .186 8.3 SQL 查询的优化 187 8.3.1 使用 EXPLAIN 语句检查 SQL 语句 .187 8.3.2 SELECT 查询的速度 188 8.3.2.1 MySQL 怎样优化 WHERE 子句 188 8.3.2.2 MySQL 怎样优化 LEFT JOIN .190 8.3.2.3 MySQL 怎样优化 LIMIT 190 8.3.4 记录转载和修改的速度 .191 8.3.4.1 INSERT 查询的速度 .191 8.3.4.2 UPDATE 查询的速度 .192 8.3.4.3 DEL

32、ETE 查询的速度 .193 8.3.4 索引对有效装载数据的影响 .193 8.3.5 总结 .194 8.4 数据库表的处理 194 8.4.1 选择一种表类型 194 8.4.1.1 静态 (定长 )表的特点 195 8.4.1.2 动态表的特点 .195 8.4.1.3 压缩表的特点 .196 8.4.1.4 内存表的特点 .197 8.4.2 数据库表的数量的问题 .197 8.4.3 数据库表级锁定的问题 .197 1、对此一个主要的问题如下: 198 2、 INSERT DELAYED 在客户机方的作用 198 8.4.4 对表进行优化 .200 8.4.5 总结 .200 8.

33、5 服务器级优化 200 8.5.1 磁盘问题 201 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 11 8.5.2 硬件问题 .201 8.5.3 服务器参数的选择 202 8.5.4 编译和链接怎样影响 MySQL 的速度 .202 8.5.5 总结 .203 思考题参考答案 205 MYSQL 语语语 言言言 参参参 考考考 216 1.1 数据类型参考:怎么写字符串和数字 .217 1.1.1 字符串 .217 1.1.2 数字 .218 1.1.3 十六进制值 .219 1.1.4 NULL 值 219 1.

34、1.5 数据库、表、索引、列和别名的命名 .220 1.1.5.1 名字的大小写敏感性 .221 1.2 用户变量 222 1.3 列类型 222 1.3.1 列类型存储需求 225 数字类型 .225 日期和时间类型 .226 串类型 .226 1.3.2 数字类型 227 1.3.3 日期和时间类型 228 1.3.3.1 Y2K问题和日期类型 .229 1.3.3.2 DATETIME, DATE 和 TIMESTAMP 类型 230 1.3.3.3 TIME 类型 233 1.3.3.4 YEAR 类型 234 1.3.4 字符串类型 .234 1.3.4.1 CHAR 和 VARCH

35、AR 类型 234 1.3.4.2 BLOB 和 TEXT 类型 235 1.3.4.3 ENUM 类型 .236 1.3.4.4 SET 类型 .237 1.3.5 为列选择正确的类型 .238 1.3.6 列索引 238 1.3.7 多列索引 .238 1.3.8 使用来自其他数据库引擎的列类型 239 1.4 用在 SELECT 和 WHERE 子句中的函数 .240 1.4.1 分组函数 240 1.4.2 常用的算术操作 240 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 12 1.4.3 位函数 .241

36、1.4.4 逻辑运算 242 1.4.5 比较运算符 .243 1.4.6 字符串比较函数 246 1.4.7 类型转换运算符 247 1.4.8 控制流函数 .248 1.4.9 数学函数 249 1.4.10 字符串函数 .254 1.4.11 日期和时间函数 261 1.4.12 其他函数 268 1.4.13 与 GROUP BY 子句一起使用的函数 .271 1.5 CREATE DATABASE 句法 273 1.6 DROP DATABASE 句法 273 1.7 CREATE TABLE 句法 .273 1.1.1 隐含的列说明改变 278 1.8 ALTER TABLE 句法

37、 .278 1.9 OPTIMIZE TABLE 句法 281 1.10 DROP TABLE 句法 .281 1.11 DELETE 句法 .281 1.12 SELECT 句法 .282 1.13 JOIN 句法 284 1.14 INSERT 句法 286 1.15 REPLACE 句法 288 1.16 LOAD DATA INFILE 句法 .289 1.17 UPDATE 句法 294 1.18 USE 句法 .294 1.20 KILL 句法 295 1.22 EXPLAIN 句法 (得到关于 SELECT 的信息 ) 300 1.23 DESCRIBE 句法 (得到列的信息)

38、305 1.24 LOCK TABLES/UNLOCK TABLES 句法 305 1.25 SET OPTION 句法 306 1.26 GRANT 和 REVOKE 句法 307 1.27 CREATE INDEX 句法 .310 1.29 注释句法 . 311 1.30 CREATE FUNCTION/DROP FUNCTION 句法 312 MYSQL实实实 用用用 程程程 序序序 317 2.1 各种 MYSQL 程序概述 318 8 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 13 myisamchk .318

39、 make_binary_release318 msql2mysql 318 mysql 318 mysqlaccess319 mysqladmin 319 mysqlbug .319 mysqld.319 mysqldump.319 mysqlimport .319 mysqlshow .319 mysql_install_db .319 replace .319 safe_mysqld319 2.2 MYSQLADMIN319 2.3 MYSQLDUMP .320 2.4 MYSQLIMPORT .322 2.5 MYISAMPACK 324 2.6 MYISAMCHK327 本章要点:

40、MySQL 标准简介 关系数据库系统的知识 MySQL 的优点 MySQL 的 SQL 语言 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机 /服务器体系结构的分布式数据库管理系统。 MySQL 在 UNIX 等操作系统上是免费的,在Windows 操作系统上,可免费使用其客户机程序和客户机程序库。 MySQL 是一个精巧的 SQL 数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的功能强大、使用简便、管理方便、运行速度快、安全可靠性强、 灵活性、丰富的应用编程接口( API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青

41、睐,特别是与 Apache 和 PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。 MySQL入入入 门门门 与与与 初初初 步步步 第第 1章章 1 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 2 1.1 MySQL 简介 MySQL 的进展是非常快了,越来越多的领域里都可以见到 MySQL 的身影,在学习如何使用这个强大的系统之前,我们首先要了解 MySQL 的历史、功能、特点,你会对学习MySQL 更具信心。 在正式开始之前,我们现了解一下它的读音。 MySQL 的官方发音是“ My Ess Que E

42、ll”(不是 MY-SEQUEL )。 1.1.1 MySQL 是什么 ? MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。 SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。 MySQL 是以一个客户机 /服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。 SQL 是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用 SQL语言为一个网站检索产品信息及存储顾客信息,同时 MySQL 也足够快和灵活以允许你存储记录文件和图像。 MySQL 主要目标是快速、健壮和易用 。最初是因为我们需要这样一个 SQL 服务器,它能处

43、理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快, MySQL 就开发出来。自 1996 年以来,我们一直都在使用 MySQL,其环境有超过 40 个数据库,包含 10,000 个表,其中 500 多个表超过 7 百万行,这大约有 100 个吉字节 (GB)的关键应用数据。 MySQL 建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管 MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。 MySQL 最早起始于 1979 年,开始是 Michael “ Monty” Widenius 为瑞典的 TcX 公司创建的 UNIREG 数据库工具。

44、 1994 年, TcX 开始寻找一个用来开发 Web 应用程序的 SQL 服务器。他们测试了一些商业服务器,但是发现所有服务器对于 TcX 的大型表来说都太慢。他们也试了 mSQL,但它缺乏 TcX 需要的某些功能。因此, Monty 开始开发一种新的服务器。其编程接口明确地设计为类似 mSQL 的编程接口,因为 mSQL 可得到几个免费的工具,所以利用与 mSQL 类似的接口,可以将这些相同的工具用于 MySQL 从而大大减少了开发接口的工作。 1995 年, Detron HB 公司的 David Axmark 努力争取 TcX 公司在因特网上发布 MySQL。 David 还做了文档资

45、料方面的工作和使 MySQL 与 GNU 的配置实用程序一起建造的工作。 MySQL 3.11.1 在 1996 年以用于 Linux 和 Solaris 系统的二进制分发形式发布。今天, MySQL 正工作在许多平台上,并且二进制和源代码的形式都可以得到。 MySQL 并不是一个开放源代码的产品,因为在某些条件下使用它需要许可证。但是 ,MySQL 很愿意在开放源代码的团体内得以普及,因为“认证”这个术语并不是非常有约束力的(除非通过出售 MySQL 或出售需要它的服务来挣钱,否则,大体上说 MySQL 一般是免费的)。 MySQL 的普及并不限于开放源代码团体内。虽然它在个人计算机上运行(

46、确实,1 MySQL 入门及初步 h t t p : / / w w w . y u r e n n e t . c o m 3 MySQL 的开发一般在不昂贵的 Linux 系统上进行),但它是可移植的,并且运行在商用操作系统(如 Solaris、 Irix 和 Windows)和一直到企业服务器的各种硬件上。此外,它的性能也足以和任何其他系统相匹敌,而且它还可以处理具有数 百万个记录的大型数据库。 MySQL 的广泛应用前景在我们面前尚未完全展开,如运行在功能强但不昂贵的硬件上的免费可用操作系统,将丰富的处理功能和能力提供给比以往更多的人,在比过去范围更广的系统上运行等等。信息处理的经济障

47、碍的降低使强有力的数据库解决方案到达了比过去任何时候更多的人和机构的手中。例如,本人在运行 LinuxPPC 的 G3 PowerBook 笔记本电脑上使用 MySQL 与 Perl、 Apache 和 PHP,这允许本人在任何地方都可以进行工作,总的成本只是 PowerBook 的成本。 过 去只能梦想将高性能的 RDBMS 用于自己工作的机构,现在可以这样做了,并且开销很低。数据库的利用在单一的层次上也在不断地增加。过去从未想过要使用数据库的人现在也开始考虑一旦得到一个数据库,怎样将其用于自己的各种目的,例如用来存储和访问系统的研究结果,跟踪和维护最喜爱的收藏物(蝴蝶、邮票、捧球明星卡等等

48、),帮助管理新开张的公司,或者提供个人 Web 站点的搜索能力。 1.1.2 我需要 MySQL 吗 ? 如果您正在寻找一种免费的或不昂贵的数据库管理系统,可以有几个选择,如, MySQL、mSQL、 Postgres(一种免费的但不支持来自商业供应商引擎的系统)等。在将 MySQL 与其他数据库系统进行比较时,所要考虑的最重要的因素是性能、支持、特性(与 SQL 的一致性、扩展等等)、认证条件和约束条件、价格等。相比之下, MySQL 具有许多吸引人之处: 1、速度。 MySQL 运行速度很快。开发者声称 MySQL 可能是目前能得到的最快的数据库。可访问 http:/ ( MySQL We

49、b 站点上的性能比较页),调查一下这个性能。 2、容易使用。 MySQL 是一个 高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低。 3、价格。 MySQL 对多数个人用户来说是免费的。详细的信息请参阅本前言后面的 “ MySQL 是否免费”一节。 4、支持查询语言。 MySQL 可以利用 SQL(结构化查询语言), SQL 是一种所有现代数据库系统都选用的语言。也可以利用支持 ODBC(开放式数据库连接)的应用程序,ODBC 是 Microsoft 开发的一种数据库通信协议。 5、性能。许多客户机可同时连接到服务器。多个客户机可同时使用多个数据库。可利用几个输入查询并 查看结果的界面来交互式地访问 MySQL。这些界面为:命令行客户机程序、 W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报