开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1523|回复: 1
收起左侧

[PHP相关教程] [第二十七课]PHP数据库__MySQL 创建数据库和表

[复制链接]

结帖率:33% (1/3)
发表于 2012-12-17 18:50:31 | 显示全部楼层 |阅读模式   上海市上海市
数据库存有一个或多个表。

创建数据库

CREATE DATABASE 语句用于在 MySQL 中创建数据库。

语法
  1. CREATE DATABASE database_name
复制代码

为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令。

例子

在下面的例子中,我们创建了一个名为 "my_db" 的数据库:

  1. <?php
  2. $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con)
  4.   {
  5.   die('Could not connect: ' . mysql_error());
  6.   }

  7. if (mysql_query("CREATE DATABASE my_db",$con))
  8.   {
  9.   echo "Database created";
  10.   }
  11. else
  12.   {
  13.   echo "Error creating database: " . mysql_error();
  14.   }

  15. mysql_close($con);
  16. ?>
复制代码
创建表

CREATE TABLE 用于在 MySQL 中创建数据库表。

语法
  1. CREATE TABLE table_name
  2. (
  3. column_name1 data_type,
  4. column_name2 data_type,
  5. column_name3 data_type,
  6. .......
  7. )
复制代码

为了执行此命令,我必须向 mysql_query() 函数添加 CREATE TABLE 语句。

例子

下面的例子展示了如何创建一个名为 "Persons" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":

  1. <?php
  2. $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con)
  4.   {
  5.   die('Could not connect: ' . mysql_error());
  6.   }

  7. // Create database
  8. if (mysql_query("CREATE DATABASE my_db",$con))
  9.   {
  10.   echo "Database created";
  11.   }
  12. else
  13.   {
  14.   echo "Error creating database: " . mysql_error();
  15.   }

  16. // Create table in my_db database
  17. mysql_select_db("my_db", $con);
  18. $sql = "CREATE TABLE Persons
  19. (
  20. FirstName varchar(15),
  21. LastName varchar(15),
  22. Age int
  23. )";
  24. mysql_query($sql,$con);

  25. mysql_close($con);
  26. ?>
复制代码

重要事项:在创建表之前,必须首先选择数据库。通过 mysql_select_db() 函数选取数据库。

注释:当您创建 varchar 类型的数据库字段时,必须规定该字段的最大长度,例如:varchar(15)。



MySQL 数据类型

下面的可使用的各种 MySQL 数据类型:

数值类型描述
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
仅支持整数。在 size 参数中规定数字的最大值。
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

支持带有小数的数字。

在 size 参数中规定数字的最大值。在 d 参数中规定小数点右侧的数字的最大值。

文本数据类型描述
char(size)

支持固定长度的字符串。(可包含字母、数字以及特殊符号)。

在 size 参数中规定固定长度。

varchar(size)

支持可变长度的字符串。(可包含字母、数字以及特殊符号)。

在 size 参数中规定最大长度。

tinytext支持可变长度的字符串,最大长度是 255 个字符。
  • text
  • blob
支持可变长度的字符串,最大长度是 65535 个字符。
  • mediumtext
  • mediumblob
支持可变长度的字符串,最大长度是 16777215 个字符。
  • longtext
  • longblob
支持可变长度的字符串,最大长度是 4294967295 个字符。
日期数据类型描述
  • date(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • time(hh:mm:ss)
支持日期或时间
杂项数据类型描述
enum(value1,value2,ect)ENUM 是 ENUMERATED 列表的缩写。可以在括号中存放最多 65535 个值。
setSET 与 ENUM 相似。但是,SET 可拥有最多 64 个列表项目,并可存放不止一个 choice
主键和自动递增字段

每个表都应有一个主键字段。

主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。

主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。

下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新记录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。

  1. $sql = "CREATE TABLE Persons
  2. (
  3. personID int NOT NULL AUTO_INCREMENT,
  4. PRIMARY KEY(personID),
  5. FirstName varchar(15),
  6. LastName varchar(15),
  7. Age int
  8. )";

  9. mysql_query($sql,$con);
复制代码
结帖率:100% (4/4)
发表于 2012-12-17 20:53:06 | 显示全部楼层   广东省阳江市
学习啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表