文库网
ImageVerifierCode 换一换
首页 文库网 > 资源分类 > PDF文档下载
分享到微信 分享到微博 分享到QQ空间

MySQL必知必会.pdf

  • 资源ID:6939751       资源大小:5.74MB        全文页数:252页
  • 资源格式: PDF        下载积分:8文币
微信登录下载
快捷下载 游客一键下载
账号登录下载
三方登录下载: QQ登录 微博登录
二维码
扫码关注公众号登录
下载资源需要8文币
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

MySQL必知必会.pdf

1、图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权内 容 提 要MySQL 是世界上最受欢迎的数据库管理系统之一。书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。通过重点突出的章节,条理清晰、系统而扼要地讲述了读者应该掌握的知识,使他们不经意间立刻功力大增。本书注重实用性,操作性很强,适用于广大软件开发和数据库管理人员学习参考。图灵程序设计丛书著 英 Ben Forta译刘晓霞钟鸣责任编辑傅志红执行编辑刘静人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编100061电子函件网址http:/

2、北京印刷开本:85011681/32印张:8字数:246千字 2009年 1 月第 1 版印数:1 4 000册 2009年 1 月北京第 1 次印刷著作权合同登记号 图字:01-2008-4295号MySQL必知必会ISBN 978-7-115-19112-0/TP定价:39.00元读者服务热线:(010)88593802印装质量热线:(010)67129223反盗版热线:(010)67171154图书在版编目(CIP)数据MySQL 必知必会 /(英)福塔(Forta, B.)著;刘晓霞,钟鸣译 . 北京:人民邮电出版社,2009.1(图灵程序设计丛书)书名原文:MySQL Crash C

3、ourseISBN 978-7-115-19112-0 . M. 福 刘 钟. 关系数据库 数据库管理系统,MySQL. TP311.138中国版本图书馆CIP数据核字(2008)第159272号 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权 版 权 声 明 Authorized translation from the English language edition, entitled MySQL Crash Course, 0672327120 by Ben Forta, published by Pearson Education, Inc., publishing as S

4、ams. Copyright 2006 by Sams Publishing. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

5、Simplified Chinese-language edition copyright 2009 by Posts & Telecom Press. All rights reserved. 本书中文简体字版由 Pearson Education Inc.授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。 版权所有,侵权必究。 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权 致 谢 首先,我要感谢Sams出版公司的伙伴们,他们再一次给了我灵活的自由度, 让我把书写成我认为合适的样子。 谢谢Mark Renfrow提供的关于本书和前面几本书的反馈意见。

6、特别感谢Loretta Yates不仅在中途勇敢地介入到出版过程中,使其回归正轨,继续进行,而且还果断地签署了本系列书中后两部书籍的出版合约。 谢谢Jochem van Dieten和Timothy Boronczyk这两位技术编辑, 他们对书稿进行了出色的技术审查。余下的那些“错误”都是我“故意”犯的,就是想看看读者们有没有注意到。:-) 最后,本书是应SQL必知必会读者的请求编写的。那本书收到了很多极有价值的反馈意见和建议,在此我深表谢意。谢谢大家,我希望自己达到了大家的期望。 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权 前 言 MySQL已经成为世界上最受欢迎的数据库管理系统

7、之一。无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定、可靠、快速、可信的系统,足以胜任任何数据存储业务的需要。 本书基于我的一本畅销书Sams Teach Yourself SQL in 10 Minutes (中文版SQL必知必会 ,人民邮电出版社出版) ,那本书堪称全世界用得最多的一本SQL教程,重点讲解读者必须知道的东西,条理清晰,系统而扼要。但是,即使是那样一本广为使用的成功的书,也还存在着以下这些局限性。 由于要面向所有主要的数据库管理系统(DBMS) ,我不得不把针对具体DBMS的内容一再压缩。 为了简化SQL的讲解,我必须(尽可能)只写各

8、种主要的DBMS通用的SQL语句。这要求我不得不舍弃一些更好的、针对具体DBMS的解决方案。 虽然基本的SQL在不同的DBMS间具有较好的可移植性,但是高级的SQL显然不是这样的。因此,那本书里无法详细讲解比较高级的内容,如触发器、游标、存储过程、访问控制、事务等。 于是就有了这本书。本书沿用了前一本书业已成功的教程模式和组织结构,除了MySQL以外,不在其他内容上过多纠缠。书从简单的数据检索开始,逐步进入一些复杂的内容,包括联结的使用、子查询、正则1图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权2 前 言 表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。通过重点突出的

9、章节,条理清晰、系统而扼要地让读者学到应该学到的知识,使他们不经意间立刻功力大增。 请先到第1章开始学习。读者会立刻体会到MySQL提供的所有好处。 读者对象 本书的读者对象是这样一些人: 他没有学过SQL; 他刚开始用MySQL,并希望一举成功; 他想迅速地、尽可能多地学会使用MySQL; 他希望学习怎样在自己的应用程序开发中使用MySQL; 他希望通过使用MySQL轻松快速地提高工作效率,而不用劳烦他人帮忙。 配套网站 本书有一个配套网站,网址是:http:/ 读者可以通过该网站访问如下内容: 表格创建和表格填充的脚本,可用来创建书中使用的样例表; 在线支持论坛; 在线勘误(如果发现了勘误

10、的话) ; 或许他会感兴趣的其他书。 本书约定 本书使用不同的字体区分代码和一般正文内容,对于重要的概念也采用特殊的字体。 键入的文本和屏幕上显示出的文本用等宽代码字体表示。如:It looks like this to mimic the way text looks on your screen. 2 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权前 言 3 一行代码最前面如果出现箭头()表示该行代码较长,书中一行放不下。读者录入时需要把这一行的内容紧接着上一行输入。 说明:表示跟上下文的内容相关的一些有意思的信息。 提示:提供建议,教读者用容易的办法完成某项任务。 注意:向读者提

11、示可能出现的问题,避免不必要的麻烦。 新术语,提供新的基本词汇的清晰定义。 表示读者自己键入的代码。通常出现在程序清单的旁边。 表示运行MySQL代码后得到的结果,通常出现在程序清单之后。 告诉读者这是作者对输入或输出的逐行分析。 输出 分析 输入 34图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权 目 录 第1章 了解SQL.1 1.1 数据库基础.1 1.1.1 什么是数据库.2 1.1.2 表.2 1.1.3 列和数据类型.3 1.1.4 行.4 1.1.5 主键.4 1.2 什么是SQL.5 1.3 动手实践.6 1.4 小结.7 第2章 MySQL简介.8 2.1 什么是My

12、SQL.8 2.1.1 客户机服务器软件.8 2.1.2 MySQL版本.9 2.2 MySQL工具.10 2.2.1 mysql命令行实用 程序.11 2.2.2 MySQL Adminis- trator.12 2.2.3 MySQL Query Browser.13 2.3 小结.14 第3章 使用MySQL.15 3.1 连接.15 3.2 选择数据库.16 3.3 了解数据库和表.17 3.4 小结.19 第4章 检索数据.20 4.1 SELECT语句.20 4.2 检索单个列.20 4.3 检索多个列.22 4.4 检索所有列.23 4.5 检索不同的行.24 4.6 限制结果.

13、25 4.7 使用完全限定的表名.26 4.8 小结.27 第5章 排序检索数据.28 5.1 排序数据.28 5.2 按多个列排序.30 5.3 指定排序方向.31 5.4 小结.33 第6章 过滤数据.34 6.1 使用WHERE子句.34 6.2 WHERE子句操作符.35 6.2.1 检查单个值.36 6.2.2 不匹配检查.37 6.2.3 范围值检查.37 6.2.4 空值检查.38 6.3 小结.39 第7章 数据过滤.40 7.1 组合WHERE子句.40 7.1.1 AND操作符.40 7.1.2 OR操作符.41 7.1.3 计算次序.42 图灵社区会员 臭豆腐(Stink

14、BC) 专享 尊重版权2 目 录 7.2 IN操作符.43 7.3 NOT操作符.44 7.4 小结.45 第8章 用通配符进行过滤.46 8.1 LIKE操作符.46 8.1.1 百分号(%)通配符.47 8.1.2 下划线(_)通配符.48 8.2 使用通配符的技巧.49 8.3 小结.50 第9章 用正则表达式进行搜索.51 9.1 正则表达式介绍.51 9.2 使用MySQL正则表达式.52 9.2.1 基本字符匹配.52 9.2.2 进行OR匹配.54 9.2.3 匹配几个字符之一.54 9.2.4 匹配范围.55 9.2.5 匹配特殊字符.56 9.2.6 匹配字符类.58 9.2

15、.7 匹配多个实例.58 9.2.8 定位符.59 9.3 小结.61 第10章 创建计算字段.62 10.1 计算字段.62 10.2 拼接字段.63 10.3 执行算术计算.66 10.4 小结.67 第11章 使用数据处理函数.68 11.1 函数.68 11.2 使用函数.68 11.2.1 文本处理函数.69 11.2.2 日期和时间处理 函数.71 11.2.3 数值处理函数.74 11.3 小结.74 第12章 汇总数据.75 12.1 聚集函数.75 12.1.1 AVG()函数.76 12.1.2 COUNT()函数.77 12.1.3 MAX()函数.78 12.1.4 M

16、IN()函数.79 12.1.5 SUM()函数.79 12.2 聚集不同值.80 12.3 组合聚集函数.81 12.4 小结.82 第13章 分组数据.83 13.1 数据分组.83 13.2 创建分组.83 13.3 过滤分组.85 13.4 分组和排序.87 13.5 SELECT子句顺序.88 13.6 小结.89 第14章 使用子查询.90 14.1 子查询.90 14.2 利用子查询进行过滤.90 14.3 作为计算字段使用 子查询.93 14.4 小结.96 第15章 联结表.97 15.1 联结.97 15.1.1 关系表.97 15.1.2 为什么要使用 联结.99 15.

17、2 创建联结.99 15.2.1 WHERE子句的 重要性.100 15.2.2 内部联结.103 15.2.3 联结多个表.104 15.3 小结.105 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权目 录 3 第16章 创建高级联结.106 16.1 使用表别名.106 16.2 使用不同类型的联结.107 16.2.1 自联结.107 16.2.2 自然联结.109 16.2.3 外部联结.109 16.3 使用带聚集函数的联结.111 16.4 使用联结和联结条件.112 16.5 小结.112 第17章 组合查询.113 17.1 组合查询.113 17.2 创建组合查询.

18、113 17.2.1 使用UNION.114 17.2.2 UNION规则.115 17.2.3 包含或取消重复 的行.116 17.2.4 对组合查询结果 排序.117 17.3 小结.118 第18章 全文本搜索.119 18.1 理解全文本搜索.119 18.2 使用全文本搜索.120 18.2.1 启用全文本搜索 支持.120 18.2.2 进行全文本 搜索.121 18.2.3 使用查询扩展.124 18.2.4 布尔文本搜索.126 18.2.5 全文本搜索的 使用说明.129 18.3 小结.130 第19章 插入数据.131 19.1 数据插入.131 19.2 插入完整的行.

19、131 19.3 插入多个行.134 19.4 插入检索出的数据.136 19.5 小结.138 第20章 更新和删除数据.139 20.1 更新数据.139 20.2 删除数据.141 20.3 更新和删除的指导原则.142 20.4 小结.143 第21章 创建和操纵表.144 21.1 创建表.144 21.1.1 表创建基础.144 21.1.2 使用NULL值.146 21.1.3 主键再介绍.147 21.1.4 使用AUTO_ INCREMENT.148 21.1.5 指定默认值.149 21.1.6 引擎类型.150 21.2 更新表.151 21.3 删除表.153 21.4

20、 重命名表.153 21.5 小结.154 第22章 使用视图.155 22.1 视图.155 22.1.1 为什么使用 视图.156 22.1.2 视图的规则和 限制.157 22.2 使用视图.157 22.2.1 利用视图简化 复杂的联结.157 22.2.2 用视图重新格式化 检索出的数据.158 22.2.3 用视图过滤不 想要的数据.159 22.2.4 使用视图与计算 字段.160 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权4 目 录 22.2.5 更新视图.161 22.3 小结.162 第23章 使用存储过程.163 23.1 存储过程.163 23.2 为什么要

21、使用存储过程.164 23.3 使用存储过程.165 23.3.1 执行存储过程.165 23.3.2 创建存储过程.165 23.3.3 删除存储过程.167 23.3.4 使用参数.167 23.3.5 建立智能存储 过程.170 23.3.6 检查存储过程.173 23.4 小结.173 第24章 使用游标.174 24.1 游标.174 24.2 使用游标.174 24.2.1 创建游标.175 24.2.2 打开和关闭游标.175 24.2.3 使用游标数据.176 24.3 小结.180 第25章 使用触发器.181 25.1 触发器.181 25.2 创建触发器.182 25.3

22、 删除触发器.183 25.4 使用触发器.183 25.4.1 INSERT触发器.183 25.4.2 DELETE触发器.184 25.4.3 UPDATE触发器.185 25.4.4 关于触发器的进 一步介绍.186 25.5 小结.186 第26章 管理事务处理.187 26.1 事务处理.187 26.2 控制事务处理.189 26.2.1 使用ROLLBACK.189 26.2.2 使用COMMIT.190 26.2.3 使用保留点.191 26.2.4 更改默认的提交 行为.192 26.3 小结.192 第27章 全球化和本地化.193 27.1 字符集和校对顺序.193 2

23、7.2 使用字符集和校对顺序.194 27.3 小结.196 第28章 安全管理.197 28.1 访问控制.197 28.2 管理用户.198 28.2.1 创建用户账号.199 28.2.2 删除用户账号.200 28.2.3 设置访问权限.200 28.2.4 更改口令.203 28.3 小结.204 第29章 数据库维护.205 29.1 备份数据.205 29.2 进行数据库维护.206 29.3 诊断启动问题.207 29.4 查看日志文件.207 29.5 小结.208 第30章 改善性能.209 30.1 改善性能.209 30.2 小结.211 附录A MySQL入门.212

24、 附录B 样例表.214 附录C MySQL语句的语法.220 附录D MySQL数据类型.224 附录E MySQL保留字.228 索引 .232 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权 了解SQL 本章将介绍数据库和SQL,它们是学习MySQL的先决条件。 1.1 数据库基础 你正在阅读本书,这表明你需要以某种方式与数据库打交道。在深入学习MySQL及其SQL语言的实现之前,应该对数据库及数据库技术的某些基本概念有所了解。 你可能还没有意识到,其实你自己一直在使用数据库。每当你从自己的电子邮件地址簿里查找名字时,你就在使用数据库。如果你在某个因特网搜索站点上进行搜索,也是在

25、使用数据库。如果你在工作中登录网络,也需要依靠数据库验证自己的名字和密码。即使是在自动取款机上使用ATM卡,也要利用数据库进行PIN码验证和余额检查。 虽然我们一直都在使用数据库,但对究竟什么是数据库并不十分清楚。特别是不同的人可能会使用相同的数据库术语表示不同的事物,更加剧了这种混乱。因此,我们学习的良好切入点就是给出一张最重要的数据库术语清单,并加以说明。 基本概念回顾 下面是某些基本数据库概念的简要介绍。 如果你已经具有一定的数据库经验, 这可以用于复习巩固; 如果你是一个数据库新手, 这将给你提供一些必需的基本知识。 理解数据库是掌握MySQL的一个重要部分,如果有必要的话,你应该参阅

26、一些有关数据库基础知识的书籍。 推荐人民邮电出版社出版的由Kifer、Bernstein和Lewis合著的数据库系统:面向应用的方法或Elmasri和Navathe合著的数据库系统基础 。编者注 第章 5 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权2 第 1 章 了解SQL 1.1.1 什么是数据库 数据库这个术语的用法很多,但就本书而言,数据库是一个以某种有组织的方式存储的数据集合。理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。 数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件) 。

27、 误用导致混淆 人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS(数据库管理系统) 。数据库是通过DBMS创建和操纵的容器。 数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。 1.1.2 表 在你将资料放入自己的文件柜时, 并不是随便将它们扔进某个抽屉就完事了,而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。 在数据库领域中,这种文件称为表。表是一种结构化的文件,可用来存储某种特定类型的数据。

28、表可以保存顾客清单、产品目录,或者其他信息清单。 表(table) 某种特定类型数据的结构化清单。 这里关键的一点在于,存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。 数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。 6 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权1.1 数据库基础 3 表名 表名的唯一性取决于多个因素, 如数据库名和表名等的结合。 这表示, 虽然在相同数据库中不能两次使用相同的表名,但在不同的数

29、据库中却可以使用相同的表名。 表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系) 。 模式(schema) 关于数据库和表的布局及特性的信息。 是模式还是数据库? 有时,模式用作数据库的同义词。遗憾的是,模式的含义通常在上下文中并不是很清晰。本书中,模式指的是上面给出的定义。 1.1.3 列和数据类型 表由列组成。列中存储着表中某部分的信息。 列(column) 表中的一个字段。所有表都是由一个或多个列组成的。 理解列的最好办法是将数据

30、库表想象为一个网格。网格中每一列存储着一条特定的信息。例如,在顾客表中,一个列存储着顾客编号,另一个列存储着顾客名,而地址、城市、州以及邮政编码全都存储在各自的列中。 分解数据 正确地将数据分解为多个列极为重要。 例如, 城市、州、邮政编码应该总是独立的列。通过把它分解开,才有可能利用特定的列对数据进行排序和过滤 (如, 找出特定州或特定城市的所有顾客) 。如果城市和州组合在一个列中,则按州进行排序或过滤会很困难。 7图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权4 第 1 章 了解SQL 数据库中每个列都有相应的数据类型。数据类型定义列可以存储的数据种类。例如,如果列中存储的为数字(

31、或许是订单中的物品数) ,则相应的数据类型应该为数值类型。如果列中存储的是日期、文本、注释、金额等,则应该用恰当的数据类型规定出来。 数据类型(datatype) 所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。 数据类型限制可存储在列中的数据种类(例如,防止在数值字段中录入字符值) 。数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。因此,在创建表时必须对数据类型给予特别的关注。 1.1.4 行 表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。 例如,顾客表可以每行存储一个顾客。

32、表中的行数为记录的总数。 行(row) 表中的一个记录。 是记录还是行? 你可能听到用户在提到行(row)时称其为数据库记录(record) 。在很大程度上,这两个术语是可以互相替代的,但从技术上说,行才是正确的术语。 1.1.5 主键 表中每一行都应该有可以唯一标识自己的一列(或一组列) 。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。 主键(primary key)一一列(或一组列) ,其值能够唯一区分表中每个行。 全国科学技术名词审定委员会审定的key在数据库中的对应名词为“键码”或“码” ,本书采用了已约定俗成的“键” ,请读者注意。编

33、者注 8 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权1.2 什么是 SQL 5 唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。 应该总是定义主键 虽然并不总是都需要主键, 但大多数数据库设计人员都应保证他们创建的每个表具有一个主键, 以便于以后的数据操纵和管理。 表中的任何列都可以作为主键,只要它满足以下条件: 任意两行都不具有相同的主键值; 每个行都必须具有一个主键值(主键列不允许NULL值) 。 主键值规则 这里列出的规则是MySQL本身强制实施的。 主键通常定义在表的一列上,

34、但这并不是必需的,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到构成主键的所有列, 所有列值的组合必须是唯一的 (但单个列的值可以不唯一) 。 主键的最好习惯 除MySQL强制实施的规则外,应该坚持的几个普遍认可的最好习惯为: 不更新主键列中的值; 不重用主键列的值; 不在主键列中使用可能会更改的值。 (例如,如果使用一个名字作为主键以标识某个供应商, 当该供应商合并和更改其名字时,必须更改这个主键。) 还有一种非常重要的键,称为外键,我们将在第15章中介绍。 1.2 什么是SQL SQL (发音为字母S-Q-L或sequel) 是结构化查询语言 (Structured

35、 Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。 10 9图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权6 第 1 章 了解SQL 与其他语言(如,英语以及Java和Visual Basic这样的程序设计语言)不一样,SQL由很少的词构成,这是有意而为的。设计SQL的目的是很好地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。 SQL有如下的优点。 SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库打交道。 SQL简单易学。它的语句全都是由描述性很强的英语单词组成,而且这些单词

36、的数目不多。 SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。 DBMS专用的SQL SQL不是一种专利语言,而且存在一个标准委员会,他们试图定义可供所有DBMS使用的SQL语法,但事实上任意两个DBMS实现的SQL都不完全相同。本书讲授的SQL是专门针对MySQL的,虽然书中所讲授的多数语法也适用于其他DBMS,但不要认为这些SQL语法是完全可移植的。1.3 动手实践 本书所有章节都采用可上机运行的例子来说明SQL语法, 它的功能是什么,为什么起这样的作用。作者强烈建议读者试验每个例子,以便掌握MySQL的第一手资料。 附录B描述

37、了本书中使用的样例表,说明如何获得和安装它们。如果你还没有获得和安装它们,请在继续学习前先学习这个附录。 你需要MySQL 显然,你需要能访问某个MySQL副本,以便学习本书的内容。附录A说明了在何处获得MySQL的副本,并提供一定的入门指导。如果你已经能访问某个MySQL副本,在继续学习之前,也请阅读该附录。 11 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权1.4 小结 7 1.4 小结 这一章介绍了什么是SQL以及它为什么很有用。 因为SQL是用来与数据库打交道的,所以,我们也复习了一些基本的数据库术语。 12 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权 MySQL

38、简介 本章将介绍什么是MySQL,以及在MySQL中可以应用什么工具。 2.1 什么是MySQL 我们在前一章中介绍了数据库和SQL。正如所述,数据的所有存储、检索、管理和处理实际上是由数据库软件DBMS(数据库管理系统)完成的。MySQL是一种DBMS,即它是一种数据库软件。 MySQL已经存在很久了, 它在世界范围内得到了广泛的安装和使用。为什么有那么多的公司和开发人员使用MySQL?以下列出其原因。 成本MySQL是开放源代码的,一般可以免费使用(甚至可以免费修改) 。 性能MySQL执行很快(非常快) 。 可信赖某些非常重要和声望很高的公司、站点使用MySQL,这些公司和站点都用MyS

39、QL来处理自己的重要数据。 简单MySQL很容易安装和使用。 事实上,MySQL受到的唯一真正的批评是它并不总是支持其他DBMS提供的功能和特性。然而,这一点也正在逐步得到改善,MySQL的各个新版本正不断增加新特性、新功能。 2.1.1 客户机服务器软件 DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户机服务器的DBMS。 前者 (包括诸如Microsoft Access和FileMaker)第 2 章 13 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权2.1 什么是 MySQL 9 用于桌面用途,通常不用于高端或更关键的应用。 MySQL、Oracle以及M

40、icrosoft SQL Server等数据库是基于客户机服务器的数据库。客户机服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。 与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。客户机是与用户打交道的软件。例如,如果你请求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给服务器软件。服务器软件处理这个请求,根据需要过滤、丢弃和排序数据;然后把结果送回到你的客户机软件。 有多少计算机? 客户机和服务器软件可能安装在两台计算机或

41、一台计算机上。不管它们在不在相同的计算机上,为进行所有数据库交互,客户机软件都要与服务器软件进行通信。 所有这些活动对用户都是透明的。数据存储在别的地方,或者数据库服务器为你完成这个处理这一事实是隐藏的。你不需要直接访问数据文件。事实上,多数网络的建立使用户不具有对数据的访问权,甚至不具有对存储数据的驱动器的访问权。 这样的意义何在?因为为了使用MySQL,你需要访问运行MySQL服务器软件的计算机和发布命令到MySQL的客户机软件的计算机。 服务器软件为MySQL DBMS。你可以在本地安装的副本上运行,也可以连接到运行在你具有访问权的远程服务器上的一个副本。 客户机可以是MySQL提供的工

42、具、脚本语言(如Perl) 、Web应用开发语言(如ASP、ColdFusion、JSP和PHP) 、程序设计语言(如C、C+、Java)等。 2.1.2 MySQL版本 客户机工具稍后介绍。我们先简要介绍DBMS版本。 14 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权10 第 2 章 MySQL简介 MySQL的当前版本为版本5(虽然许多公司正在使用MySQL 3和4) 。下面是最近版本中引入的主要更改。 4InnoDB引擎,增加事务处理(第26章) 、并(第17章) 、改进全文本搜索(第18章)等的支持。 4.1对函数库、子查询(第14章) 、集成帮助等的重要增加。 5存储过程

43、(第23章) 、触发器(第25章) 、游标(第24章) 、视图(第22章)等。 版本4.1和版本5对MySQL增加了重要的功能,本书中涵盖了这些功能的大多数。 使用4.1或更高版本 MySQL 4.1对MySQL函数库引入了重要更改, 本书是为使用此版本或更高版本而撰写的。 多数内容实际上也适用于MySQL 3和4,不过许多例子在这两个版本中不工作。 版本要求说明 如果某章针对具体某个MySQL版本,则将在该章开始处明确说明。 2.2 MySQL工具 如前所述,MySQL是一个客户机服务器DBMS,因此,为了使用MySQL,需要有一个客户机,即你需要用来与MySQL打交道(给MySQL提供要执

44、行的命令)的一个应用。 有许多客户机应用可供选择,但在学习MySQL(确切地说,在编写和测试MySQL脚本时) ,最好是使用专门用途的实用程序。特别是有3个工具需要提及。 目前最新的稳定版本为5.1。编者注 15 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权2.2 MySQL 工具 11 2.2.1 mysql命令行实用程序 每个MySQL安装都有一个名为mysql的简单命令行实用程序。这个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的东西。 在操作系统命令提示符下输入mysql将出现一个如下的简单提示: MySQL选项和参数 如果仅输入mysql, 可能会出现一个错误消

45、息。因为可能需要安全证书,或者是因为MySQL没有运行在本地或默认端口上。mysql接受你可以(和可能需要)使用的一组命令行参数。例如,为了指定用户登录名ben,应该使用mysql -u ben。为了给出用户名、主机名、端口和口令,应该使用mysql -u ben -p -h myserver -P 9999。 完整的命令行选项和参数列表可用mysql -help获得。 当然,具体的版本和连接信息可能不同,但都可以使用这个实用程序。请注意: 命令输入在mysql之后; 命令用;或g结束,换句话说,仅按Enter不执行命令; 输入help或h获得帮助,也可以输入更多的文本获得特定命令的帮助(如,

46、输入help select获得使用SELECT语句的帮助) ; 输入quit或exit退出命令行实用程序。 mysql命令行实用程序是使用最多的实用程序之一,它对于快速测试和执行脚本(如前一章和附录B中的样例表创建和填充脚本)非常有价值。事实上,本书中使用的所有输出例子都是从mysql命令行输出中抓取的。 16 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权12 第 2 章 MySQL简介 熟悉mysql命令行实用程序 即使你选择使用后面描述的某个图形工具,也应该保证熟悉mysql命令行实用程序,因为它是你可以安全地依靠的一个总是会被给出的客户机 (因为它是核心MySQL安装的一部分)

47、 。 2.2.2 MySQL Administrator MySQL Administrator(MySQL管理器)是一个图形交互客户机,用来简化MySQL服务器的管理。 获得MySQL Administrator MySQL Administrator不作为核心MySQL 的 组 成 部 分 安 装 。 必 须 从 http:/ downloads/下载它(可得到用于Linux、Mac OS X和Windows的版本,其源代码也可以下载)。 MySQL Administrator提示输入服务器和登录信息(并且允许你保存服务器定义供以后选择) ,然后显示允许选择不同视图的图标。其中: Serv

48、er Information (服务器信息) 显示客户机和被连接的服务器的状态和版本信息; Service Control (服务控制) 允许停止和启动MySQL以及指定服务器特性; User Administration(用户管理)用来定义MySQL用户、登录和权限; Catalogs(目录)列出可用的数据库并允许创建数据库和表。 为本书创建数据源 可以使用Create New Schema选项为本书的表和各章节创建一个数据源。书中各个例子使用一个名为crashcourse的数据源,你可以使用这个名字,也可以使用自己选择的名字。 17 图灵社区会员 臭豆腐(StinkBC) 专享 尊重版权2

49、.2 MySQL 工具 13 快速访问其他工具 MySQL Administrator工具菜单包含有启动mysql命令行实用程序 (前面描述) 和MySQL Query Browser(MySQL查询浏览器) (下面描述)的选项。 MySQL Query Browser也包含启动mysql命令行实用程序和MySQL Administrator的菜单选项。 2.2.3 MySQL Query Browser MySQL Query Browser为一个图形交互客户机,用来编写和执行MySQL命令。 获得MySQL Query Browser 与MySQL Administrator一样,MySQ

50、L Query Browser不作为核心MySQL安装的成分。也必须从http:/ OS X和Windows的版本,其源代码也可以下载) 。 MySQL Query Browser要求输入服务器和登录信息(在MySQL Query Browser和MySQL Administrator之间共享保存的定义) ,然后显示应用界面。注意下面几点。 输入MySQL命令到屏幕顶上的窗口中。在输入语句后,单击Execute按钮把它提交给MySQL处理。 结果(如果有)显示在屏幕左边的大区域网格中。 多条语句和结果显示在它们自己的标签中,并且允许快速切换。 屏幕右边是一个标签, 它列出所有可能的数据源 (这


注意事项

本文(MySQL必知必会.pdf)为本站会员(空登山)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(点击联系客服),我们立即给予删除!




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

文库网用户QQ群:731843829  微博官方号:文库网官方   知乎号:文库网

Copyright© 2025 文库网 wenkunet.com 网站版权所有世界地图

经营许可证编号:粤ICP备2021046453号   营业执照商标

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png