php和mysql web开发第五版_《PHP和MySQL Web开发从新手到高手(第5版)》一2.5 创建表...

本节书摘来自异步社区《PHP和MySQL Web开发从新手到高手(第5版)》一书中的第2章,第2.5节,作者【澳】Kevin Yank,更多章节内容可以访问云栖社区“异步社区”公众号查看

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所示的输出。

5298ef12b5a583434b40b197bf6e7318.png

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

DESCRIBE joke

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

77ccd6edf4f2ba9a550bdcb872183449.png

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

DROP TABLE tableName

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值