开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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


c94b0f6ebe7184a5bccba7f8aacb102bbdafefad

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

DESCRIBE joke

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


04c04caebe672bec7584e712aea90476d1ea975a

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

DROP TABLE tableName

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ECS配置mySQL\MariaDB和PHP环境
ECS配置mySQL\MariaDB和PHP环境
0 0
php操作mysql防止sql注入(合集)
php操作mysql防止sql注入(合集)
0 0
Centos中查看nginx、apache、php、mysql配置文件路径
Centos中查看nginx、apache、php、mysql配置文件路径
0 0
MySQL事务的四种隔离类型以及PHP框架Yii2中的源码解读和实际应用
MySQL事务的四种隔离类型以及PHP框架Yii2中的源码解读和实际应用
0 0
头歌php mysql操作答案
头歌php mysql操作答案
0 0
PHP连接MySQL 8.0报错的解决办法
PHP连接MySQL 8.0报错的解决办法
0 0
PHP+MySQL打造XXX管理系统
PHP+MySQL打造XXX管理系统
0 0
SaltStack安装Apache/Mysql/PHP部署Wordpress
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。 SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。 master监听4505和4506端口,4505对应的是ZMQ的PUB system,用来发送消息,4506对应的是REP system是来接受
0 0
【PHP秒杀系统】第一篇 环境准备即MySQL的封装
【PHP秒杀系统】第一篇 环境准备即MySQL的封装
0 0
MacOs M1 芯片分布式搭建 Nginx+PHP+MySQL和多站点域名访问
一、安装Nginx 问题:Mac 在安装nginx之前记得把原本的apache2给卸载删除了,要不然后期会出现端口号被占用,或者有时候nginx用不了
0 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载