ایجاد جدول در پایگاه داده 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