《PHP和MySQL Web开发从新手到高手(第5版)》一2.5 创建表

2.5 创建表

PHP和MySQL Web开发从新手到高手(第5版)
目前为止,我们所遇到的SQL命令都相当简单。但是,表是如此具有灵活性。因此,需要一条较为复杂的命令才能创建它。这条命令的基本形式如下:

CREATE TABLE table_name (
 column1Name column1Type column1Details,
 column2Name column2Type column2Details,
 ⋮
) DEFAULT CHARACTER SET charset ENGINE=InnoDB

让我们继续讨论如图2.1所示的joke表。你还记得吧,这个表有3列:id(一个数字)、joketext(笑话的文本)和jokedate(输入笑话的日期)。以下是创建该表的命令:

CREATE TABLE joke (
 id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 joketext TEXT,
 jokedate DATE NOT NULL
) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB

看上去很费解是吧?让我们分解一下:

**CREATE TABLE joke (
**

第一行相当简单,它表示想要创建一个名为joke的新表。开始的括号“”,表示其后是一个列表,将会列出表中的各个列。

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

第二行表示我们想要一个名为id的列,其中包含了一个整数(INT)。也就是说,这是一个完整的数字。该行剩下的部分则表示这个列的细节:

1.首先,在这个表中创建一个行的时候,这个列不能为空(NOT NULL)。

2.接下来,在向该表添加一个新的条目的时候,如果不想为该列指定一个值,我们希望MySQL自动去选择一个值,这个值即是在表中当前最高值的基础上加1(AUTO_INCREMENT)。

3.最后,这个列充当表中的条目的一个唯一标识符。因此,该列中的所有的值都必须是唯一的(PRIMARY KEY)。

**joketext TEXT,
**
第三行非常简单,它表示我们想要一个名为joketext的列,其中包含了文本(TEXT)。

**jokedate DATE NOT NULL
**
第四行确定了最后一列,名为jokedate,它将包含一个不能为空(NOT NULL)的日期(DATE)。

) DEFAULT CHARACTER SET utf8

结束圆括号“”表示表中的列的列表到此结束。DEFAULT CHARACTER SET utf8告诉MySQL,我们将在表中存储UTF-8编码的文本。UTF-8是Web内容最常用的编码。因此,对于要在Web上使用的所有数据库表,都应该使用UTF-8编码。

**ENGINE=InnoDB
**
如上所示,这告诉MySQL,使用哪个存储引擎(storage engine)来创建这个表。

请把存储引擎当作是文件格式。当你构建一个Web站点的时候,通常选择对站点上的照片使用JPEG格式。但是,对于构成站点设计的图像,请坚持使用PNG格式。这两种格式浏览器都能够支持,不过,每种格式都有自己的优点和缺点。同样,MySQL也支持多种格式的数据库表。

目前为止,对类似于我在本书中构建的Web站点数据库来说,InnoDB格式是最佳选择。然而,较早的MyISAM格式是默认的格式。因此,我们必须告知MySQL,期望它创建一个InnoDB表。

注意,我们为所创建的每一列都指定了一个特定的数据类型。id将包含整数,joketext将包含文本,jokedate将包含日期。MySQL要求提前为每一列指定数据类型。稍后你将会看到,这有助于组织好数据,还允许我们用强有力的方式来比较列中的值。要了解MySQL数据类型的列表,请参见附录D。

现在,如果你正确地输入了如上所示的命令并单击Go按钮,phpMyAdmin主窗口将确认查询正确地执行了,并将创建你的第一个表。如果你犯了录入错误,phpMyAdmin将告诉你所输入的查询有一个问题,并且将尝试指出它在理解你的意图的时候在哪里遇到了问题。

让我们查看新的表,并确认已正确地创建了它。在SQL查询窗口中输入如下的命令,并且单击Go按钮:

SHOW TABLES

phpMyAdmin应该会显示如图2.11所示的输出。

这个列表,是你的数据库(我们将其命名为ijdb)中的所有的表的列表。这个列表只包含了一个表:我们所创建的joke表。因此,到目前为止,一切似乎都很好。让我们使用一条DESCRIBE查询来进一步查看这个joke表:

DESCRIBE joke

如图2.12所示,该表中有3列(或字段)。因而,在这个结果表中有3行。虽然细节有点难以理解,但是如果你仔细看一下,应该能够搞清楚它们的含义。不过,不必担心。有更好的事情要做,诸如向表中添加一些笑话。

在做这件事情之前,我们还有一个任务:删除一个表。这个任务很简单,就像用一条DROP DATABASE命令删除一个数据库一样简单。只不过在这里,phpMyAdmin不会为你提供保护。除非你真的想要删除joke表,否则,不要对它运行这条命令。如果你真的想要删除它,那么,准备好从头开始创建joke表吧。

DROP TABLE tableName
时间: 2024-10-03 10:09:26

《PHP和MySQL Web开发从新手到高手(第5版)》一2.5 创建表的相关文章

《PHP和MySQL Web开发从新手到高手(第5版)》一一1.3 在Mac OS X下安装

1.3 在Mac OS X下安装 PHP和MySQL Web开发从新手到高手(第5版) 在本节中,我们将介绍如何在一台运行Mac OS X version 10.5(Leopard)的Mac计算机上开始运行一个安装了PHP和MySQL的Web服务器.如果你使用的并不是Mac计算机,可以跳过本节. Mac OS X将Apache和PHP都作为标准安装组件来安装,它是唯一这么做的面向消费者的OS(实际上,它还附带了Ruby.Python和Perl,所有这些都是流行的Web编程语言).也就是说,只需要

《PHP和MySQL Web开发从新手到高手(第5版)》一一2.2 使用phpMyAdmin运行SQL查询

2.2 使用phpMyAdmin运行SQL查询 PHP和MySQL Web开发从新手到高手(第5版) 如同Web服务器设计响应来自客户端(一个Web浏览器)的请求一样,MySQL数据库服务器会响应来自客户端程序(client programs)的请求.在本书稍后的内容中,我们将以PHP脚本的形式编写自己的MySQL客户端程序.但是现在,我们可以使用XAMPP和MAMP二者都有的一个客户端程序,这就是phpMyAdmin. phpMyAdmin本身是用PHP编写的.一个高级的Web应用程序.除了包

《PHP和MySQL Web开发从新手到高手(第5版)》一2.2 使用phpMyAdmin运行SQL查询

2.2 使用phpMyAdmin运行SQL查询 PHP和MySQL Web开发从新手到高手(第5版) 如同Web服务器设计响应来自客户端(一个Web浏览器)的请求一样,MySQL数据库服务器会响应来自客户端程序(client programs)的请求.在本书稍后的内容中,我们将以PHP脚本的形式编写自己的MySQL客户端程序.但是现在,我们可以使用XAMPP和MAMP二者都有的一个客户端程序,这就是phpMyAdmin. phpMyAdmin本身是用PHP编写的.一个高级的Web应用程序.除了包

《PHP和MySQL Web开发从新手到高手(第5版)》一导读

前 言 PHP和MySQL Web开发从新手到高手(第5版) PHP和MySQL已经发生变化了. 回顾2001年,当我编写本书第一版的时候(书名叫作Build Your Own Database Driven Web- site with PHP & MySQL),读者吃惊地发现,竟然可以创建一个站点的所有Web页面而不需要为每个页面编写一个单独的HTML文件.PHP从众多的编程语言中脱颖而出,主要是因为它很容易,以至于几乎任何人都可以学习,并且它可以免费下载和安装.同样,MySQL为我们提供了

《PHP和MySQL Web开发从新手到高手(第5版)》一2.7 查看存储的数据

2.7 查看存储的数据 PHP和MySQL Web开发从新手到高手(第5版) SELECT命令用来查看数据库表中存储的数据,这是SQL语言中最复杂的一条命令.这条语句之所以复杂,原因在于数据库的主要强大之处就是数据访问的灵活性.现在,我们对数据库的体验还处在一个早期阶段.这时候,只需要关注相对简单的结果列表.因此,让我们考虑SELECT命令较为简单的形式. 以下这条命令,将会列出joke表中存储的所有内容: SELECT * FROM joke 如果读出来,这条命令应该读作"select eve

《PHP和MySQL Web开发从新手到高手(第5版)》一一2.7 查看存储的数据

2.7 查看存储的数据 PHP和MySQL Web开发从新手到高手(第5版) 2.7 查看存储的数据 SELECT命令用来查看数据库表中存储的数据,这是SQL语言中最复杂的一条命令.这条语句之所以复杂,原因在于数据库的主要强大之处就是数据访问的灵活性.现在,我们对数据库的体验还处在一个早期阶段.这时候,只需要关注相对简单的结果列表.因此,让我们考虑SELECT命令较为简单的形式. 以下这条命令,将会列出joke表中存储的所有内容: SELECT * FROM joke 如果读出来,这条命令应该读

《PHP和MySQL Web开发从新手到高手(第5版)》一一1.6 第一个PHP脚本

1.6 第一个PHP脚本 PHP和MySQL Web开发从新手到高手(第5版) 如果我们在帮助你安装好了所有的软件之后就暂停下来,直到第3章才让你看到PHP脚本是什么样子的话,似乎很不公平.所以,这里先来满足下你的胃口吧. 打开你喜欢的文本或HTML编辑器,并且创建一个名为today.php的文件.在文件中输入如下内容: chapter1/today.php <!DOCTYPE html> <html lang="en"> <head> <me

《PHP和MySQL Web开发从新手到高手(第5版)》一1.6 第一个PHP脚本

1.6 第一个PHP脚本 PHP和MySQL Web开发从新手到高手(第5版) 如果我们在帮助你安装好了所有的软件之后就暂停下来,直到第3章才让你看到PHP脚本是什么样子的话,似乎很不公平.所以,这里先来满足下你的胃口吧. 打开你喜欢的文本或HTML编辑器,并且创建一个名为today.php的文件.在文件中输入如下内容: chapter1/today.php <!DOCTYPE html> <html lang="en"> <head> <me

《PHP和MySQL Web开发从新手到高手(第5版)》一一2.6 将数据插入到表中

2.6 将数据插入到表中 PHP和MySQL Web开发从新手到高手(第5版) 数据库创建好了,表也创建好了,剩下的工作就是将笑话放入到数据库中.将数据插入到数据库中的命令叫作INSERT,名字相当贴切.这条命令有两种基本形式: INSERT INTO tableName SET column1Name = column1Value, column2Name = column2Value, ⋮ INSERT INTO tableName (column1Name, column2Name, -)