PHP ایجاد پایگاه داده MySQL

پایگاه داده شامل یک یا چند جدول است.

ایجاد پایگاه داده

دستور CREATE DATABASE برای ایجاد پایگاه داده در MySQL استفاده می‌شود.

منطق

CREATE DATABASE database_name

برای اینکه PHP بتواند دستورات بالا را اجرا کند، باید از تابع mysql_query() استفاده کنیم. این تابع برای ارسال جستجو یا دستور به اتصال MySQL استفاده می‌شود.

例子

در این مثال، ما یک پایگاه داده به نام "my_db" ایجاد کرده‌ایم:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('نمی‌توان متصل شد: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
mysql_close($con);
?>

ایجاد جدول

CREATE TABLE برای ایجاد جدول‌های پایگاه داده در MySQL استفاده می‌شود.

منطق

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

برای اجرای این دستور، باید دستور CREATE TABLE را به تابع mysql_query() اضافه کنم.

例子

در این مثال نحوه ایجاد یک جدول به نام "Persons" که دارای سه ستون است را نشان می‌دهد. نام‌های ستون‌ها "FirstName", "LastName" و "Age" هستند:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('نمی‌توان متصل شد: ' . mysql_error());
  }
// ایجاد پایگاه داده
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
// جدول در پایگاه داده my_db ایجاد شود
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons 
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
mysql_close($con);
?>

مهم:قبل از ایجاد جدول، باید ابتدا پایگاه داده را انتخاب کنید. با استفاده از تابع 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 کاراکتر.
نوع داده‌ی تاریخ 描述
  • تاریخ(yyyy-mm-dd)
  • زمان‌موجود(yyyy-mm-dd hh:mm:ss)
  • زمان‌پایه(yyyymmddhhmmss)
  • زمان(hh:mm:ss)
支持日期或时间
杂项数据类型 描述
enum(value1,value2,ect) ENUM是ENUMERATED列表的缩写。可以在括号中存放最多65535个值。
set SET与ENUM相似。但是,SET可拥有最多64个列表项目,并可存放不止一个choice

主键和自动递增字段

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

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

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

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

例子

$sql = "CREATE TABLE Persons 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);