ایجاد جدول در پایگاه داده MySQL

برای ساخت یک جدول جدید از دستور CREATE TABLE استفاده می شود.

برای مثال یک جدول از کاربران یک وب سایت می سازیم که اطلاعات id و name و age و email را دریافت می کند.

CREATE TABLE  users (
id INT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT(3),
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

نکته: برای اطمینان از اینکه جدول از قبل ساخته نشده باشد، می توان از CREATE TABLE IF NOT EXISTS استفاده کرد.

در ادامه دستورات استفاده شده در این قطعه کد را مورد بررسی قرار می دهیم.

دستور UNSIGNED در MySQL

دستور UNSIGNED برای ستون هایی از جدول به کار می روند که مقدار عددی دارند و این دستور، اعداد در بازه صفر و اعداد مثبت محدود می کند.

دستور NOT NULL در MySQL

در جدول های پایگاه داده برخی مقادیر ضروری هستند و نباید خالی باشند؛ برای این مقادیر در زمان ساخت جدول از دستور NOT NULL استفاده می کنیم.

دستور AUTO_INCREMENT در MySQL

دستور AUTO_INCREMENT برای ردیف هایی مانند id به کار می روند که با هربار اضافه شدن یک ستون جدید به جدول، به صورت خودکار نسبت به ردیف قبل یک واحد افزایش پیدا می کند.

در برخی موارد می توان مقدار اولین ردیف را به طور دلخواه مشخص کرد.(برای مثال از عدد 100)

AUTO_INCREMENT = 100;

دستور PRIMARY KEY در MySQL

دستور PRIMARY KEY برای مشخص کردن یک کلید منحصر به فرد در جدول به کار می رود.

اگر از این دستور برای یک ستون استفاده کنیم، آن ستون شامل مقادیر تکراری و خالی نیست و برای شناسایی عناصر جدول به کار می رود.

تعیین کارکترهای جدول در MySQL

در ایجاد جدول، نوع کارکتر و محدوده مقدار آنرا باید مشخص کرد.

انواع داده ها شامل اعداد صحیح و اعشاری و متن و... می شود.

تعداد کارکترها با دستور VARCHAR مشخص می شود که عددی را دریافت می کند که مشخص کننده محدوده کارکترهای استفاده شده است.

نکته: برای اطلاعات بیشتر به در انواع داده PHP مراجعه کنید.

تعیین زمان ساخت و بروزرسانی مقادیر در MySQL

برای اینکه با هربار ایجاد یا آپدیت یک ردیف از جدول زمان در جدول ذخیره شود باید از نمونه کد زیر استفاده کرد:

reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

ساخت جدول در MySQL با PHP

ایجاد جدول جدید در پایگاه داده با زبان PHP به دو روش انجام می شود:

  • روش mysqli 
  • روش PDO

روش mysqli برای ساخت جدول در پایگاه داده

در ابتدا با اطلاعات قبلی که داریم، به پایگاه داده متصل می شویم.

نکته: برای اطلاعات بیشتر به درس اتصال به MySQL مراجعه کنید.

 در ادامه دستور ایجاد جدول که به زبان SQL نوشته شده را در متغیری به نام sql ذخیره می کنیم.

$sql = "CREATE TABLE  users (
id INT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT(3),
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)"

سپس با دستور ()query جدول را ایجاد می کنیم و درستی عملیات را بررسی می کنیم.

if ($conn->query($sql) === TRUE) {
  echo "جدول ساخته شد.";
} else {
  echo "مشکلی وجود دارد : " . $conn->error;
}

روش PDO برای ساخت جدول در پایگاه داده

پس از اتصال به پایگاه داده و ایجاد متغیر sql و نوشتن دستور مراحل زیر را طی می کنیم.

ابتدا بلوک های try و catch را ایجاد می کنیم و در بخش try دستورات ایجاد پایگاه داده را می نویسیم.

با دستور $conn->exec($sql); دستور SQL را اجرا می کنیم.

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "CREATE TABLE  users (
id INT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT(3),
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)"

  $conn->exec($sql); 
  echo "جدول ایجاد شد.";
}

در ادامه بخش catch بررسی می کنیم که اگر عملیات با موفقیت انجام نشد خطای SQL را نمایش دهد.

catch(PDOException $e) {
  echo $sql . "<br>" . $e->getMessage();
}

خلاصه درس

در این درس با مباحث زیر آشنا شدید:

  • ایجاد جدول در پایگاه داده MySQL
  • روش های mysqli  و PDO برای ایجاد جدول در MySQL

توسعه دهندگان
علیرضا چمنی