%45 تخفیف، با کد daneshjoo روی تمام آموزش ها، بمناسبت روز دانشجو
زمان باقی مانده
سبد (0)

تبلیغات

آموزش ایجاد جدول در mysql

یک جدول در پایگاه داده شامل یک نام منحصر بفرد می باشد و شامل تعدادی ستون و ردیف است.


ایجاد یک جدول در MySQL با استفاده از MySQLi و PDO

Wiki

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

در اینجا قصد داریم یک جدول با نام "MyGuests" که شامل 5 فیلد "id" و "firstname" و "lastname" و "email" و "reg_date" است را ایجاد نماییم:

CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)

نکاتی درباره جدول بالا:

نوع داده مشخص می کند که چه داده هایی در فیلدها نگهداری شوند، اگر مایلید در این زمینه اطلاعات بیشتری کسب کنید به لینک آموزش SQL-انواع داده مراجعه نمایید. در مثال بالا، موقعی که نوع فیلدها را varchar در نظر می گیرید باید حداکثر طول آنرا در پرانتز مشخص کنید(تا 255 کاراکتر)، اگر به اندازه ای بزرگتر از 255 نیاز دارید از نوع text استفاده کنید(تا 65,535 کاراکتر).

بعد از مشخص کردن نوع داده یا Data Type، گزینه های اختیاری دیگری نیز برای هر ستون وجود دارد:

  • NOT NULL - محدودیت NOT NULL یک ستون را مجبور می کند که مقدار خالی را قبول نکند.
  • مقدار DEFAULT - محدودیت DEFAULT برای وارد کردن مقداری به صورت پیش فرض در یک ستون استفاده می شود.
  • UNSIGNED - این محدودیت تنها برای نوع عددی استفاده می شود و زمان اضافه کردن رکورد تنها اجازه وارد کردن صفر و اعداد مثبت وجود دارد.
  • AUTO INCREMENT - مقدار فیلد بصورت اتوماتیک به ازای هر رکورد جدید 1 واحد اضافه می شود. (خود افزا)
  • PRIMARY KEY - هر جدول می تواند یک کلید اصلی (PRIMARY KEY) داشته باشد، کلید اصلی برای منحصر به فرد کردن ردیفهای یک جدول استفاده می شود، بنابراین مقدار فیلدی را که کلید در نظر می گیرد در کل نباید تکراری باشد. کلید اصلی معمولاً از نوع عددی و خودافزا است، همچنین باید با مقدار NOT NULL تنظیم شود.

مثال های زیر، نشان می دهد که چگونه می تون در PHP یک جدول را ایجاد کرد:

مثال(MySQLi Object-oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";

if ($conn->query($sql) === TRUE) {
    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}

$conn->close();
?>

مثال(MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";

if (mysqli_query($conn, $sql)) {
    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

مثال(PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // sql to create table
    $sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";

    // use exec() because no results are returned
    $conn->exec($sql);
    echo "Table MyGuests created successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>

برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

دیدگاه‌ها  

+3 # beh naz 1395-10-06 16:18
با سلام و وقت بخیر
آموزش ایجاد جدول در mysql عالی بود.
با تشکر
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # محمدحسین احمدآبادی 1395-02-11 21:35
با سلام . چگونه collation رو تعریف کنیم؟ و روی utf-8 بزاریم؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # مهرداد صلاحی 1395-02-13 12:27
سلام.
می‌تونید از کد زیر استفاده کنید:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # مجتبی1379 1395-01-21 18:35
سلام
reg_date TIMESTAMP به چه کاری میاد؟ میخوام تو جدول این رکورد نباشه ولی حذفش که میکنم جدول دیگه ساخنه نمیشه
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # مهرداد صلاحی 1395-02-13 12:28
سلام.
وقتی جدولی با یک نام خاص در دیتابیس باشه، دیگه نمیشه جدولی با همون نام در اون دیتابیس ساخت.
شما احیانا این مشکل رو دارید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # sa 1393-12-29 01:13
چرا در phpmyadmin وقتی کد ایجاد جدول رو وارد میکنیم دقیقا مثل کد شما ،این خطا رو میده
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+6 # امیر پهلوان صادق 1394-01-05 18:33
کوئری زیر بدون هیچ خطایی در PHPMyAdmin اجرا شد:CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)

اما بصورت کلی خطای 1064 به یکی از دلایل زیر ممکن است اتفاق بیافتد:
1- استفاده از کلمات رزرو شده در کوئری:
بعنوان مثال در کوئری زیر، کلمه کلیدی alter جزو کلمات رزرو شده محسوب می شود:CREATE TABLE alter (first_day DATE, last_day DATE); اما راه حل این است که کلمه مورد نظر را بین تک کوتیشن محصور نمایید:CREATE TABLE `alter` (first_day DATE, last_day DATE);2- از دست رفتن داده:
بعنوان مثال کوئری زیر را تصور فرمایید که قرار است پارامتر id در طول برنامه مقدار دهی شود:SELECT * from students WHERE studentID = $id اما بدلایلی پارامتر id مقدار دهی نمی شود و کوئری ارسال شده به پایگاه داده بصورت زیر خواهد شد، که باعث بروز خطای 1064 می شود:SELECT * from students WHERE studentID =3- اشتباه تایپی:
یکی از دلایل معمول اتفاق افتادن خطای 1064، اشتباهات تایپی است، بعنوان مثال در کوئری زیر کلمه UPDATE درست تایپ نشده است:UDPATE table1 SET id = 0;
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # mohsen moardi 1393-11-06 10:08
(INT(6 ب چ معناست؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # امیر پهلوان صادق 1393-11-07 15:06
میزان فضایی که نوع INT اشغال می کند، 4 بایت خواهد بود و عدد داخل پرانتز هیچ تأثیری در این موضوع ندارد...!
TINYINT = 1 byte (8 bit)
SMALLINT = 2 bytes (16 bit)
MEDIUMINT = 3 bytes (24 bit)
INT = 4 bytes (32 bit)
BIGINT = 8 bytes (64 bit).

عدد داخل پرانتز، زمانی که می خواهیم با استفاده از دستورات MySQL داده ها را نمایش دهیم استفاده می شود و در واقع تعداد کاراکترهای نمایشی را مشخص می کند.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # mohsen moardi 1393-11-13 09:26
فرقش با VARCHAR چيه؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # امیر پهلوان صادق 1393-11-13 11:36
در مورد (VARCHAR(30 : حداکثر طول رشته، در پرانتز مشخص می شود و حداکثر 255 کاراکتر است.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی PHP

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی