第2章 MySQL简介
PHP和MySQL Web开发从新手到高手(第5版)
在第1章中,我们安装并设置了两个软件:支持PHP的Apache Web服务器以及MySQL数据库服务器。如果你按照我的建议,可能会使用XAMPP或MAMP这样的一体化的软件包来安装它们。但是,不要让这影响到你的成就感。
正如我在第1章中提到的,PHP是一种服务器端脚本编程语言,它允许你将指令插入到Web页面中。而Web服务器软件(大多数情况下,是Apache)将会先执行这些指令,然后再将这些页面发送给请求它们的浏览器。通过一个简单的例子,我们展示了如何在每次请求一个页面的时候将当前日期插入其中。
现在,一切都很好了,但是只有当加入数据库的时候,这才会真正变得有趣起来。在本章中,我们将学习什么是数据库,以及如何使用结构化查询语言来操作MySQL数据库。
2.1 数据库简介
PHP和MySQL Web开发从新手到高手(第5版)
数据库服务器(在我们的例子中,也就是是MySQL)是一个程序,它可以以一种有序的格式来存储大量的信息,而这种格式易于通过PHP这样的编程语言来访问。例如,你可以让PHP从数据库中找出你想要在自己的Web站点上显示的笑话的列表。
在这个例子中,笑话全部存储在数据库中。这种方式有两个优点:首先,我们可以编写一段单独的PHP脚本从数据库获取任意的笑话,并通过为其实时地生成一个HTML页面来显示它,而不必为每个笑话都编写一个HTML页面。其次,将笑话添加到Web站点将会变成一件简单的事情,只需要将其插入到数据库中就可以了。PHP代码将负责剩余的事情,当它从数据库获取列表的时候,将会自动显示新的笑话和其他的笑话。
让我们通过这个示例来观察,数据是如何存储到一个数据库中的。数据库包括一个或多个表(table),每个表包含了一系列的项(item,或事物)。对于笑话数据库来说,我们可能从一个叫作joke的表开始,这个表包含了笑话的列表。数据库中的每个表都有一个或多个列(column)又或字段(field)。每个列包含了关于表中的每一项的一些的信息。在这个示例中,笑话表可能有一个列用来表示笑话的文本内容,另一个列用来表示该笑话添加到数据库中的日期。每个笑话以所谓的行(row)或条目(entry)的方式存储在数据库中。表的行和列如图2.1所示。
注意,除了表示笑话文本的列(joketext)和表示笑话日期的列(jokedate),我还包含了一个叫作id的列。实际上,作为一种良好的设计,数据库的表应该总是提供一种方式以便我们可以唯一地识别每一行。由于同一天有可能输入两个内容相同的笑话,我们不能够依赖joketext和jokedate列来区分所有的笑话。因此,id列的功能是为每个笑话分配一个唯一的编号,以使我们以一种简单的方式来引用它们并且记录这个笑话是哪一个。我们将会在第5章中更进一步地介绍数据库设计问题。
图2.1中的表是一个三列两行(或条目)的表。表中的每一行包含了3个字段,每个字段表示表中的一列:笑话的ID,笑话的文本以及笑话的日期。理解了这些基本的术语,我们就准备好开始使用MySQL了。