
دستور CREATE
دستور CREATE جهت ساخت پایگاه داده و جدول به کار میرود. در این آموزش به معرفی این دستور خواهیم پرداخت.
از این دستور به منظور ایجاد یک دیتابیس جدید و یا آبجکتهای مربوط به دیتابیس مانند جداول، ایندکسها، فانکشنها، ویوها، تریگِرها و غیره استفاده میشود که سینتکسی به صورت زیر دارا است:
CREATE DATABASE database_name;
به عنوان مثال، برای ایجاد دیتابیسی جدید تحت عنوان rasa به صورت زیر از دستور CREATE استفاده خواهیم کرد:
CREATE DATABASE rasa;
برای ساخت جداول میتوان از دستور CREATE TABLE استفاده کرد. در حین ایجاد جداول میباید تمامی اطلاعات مربوطه شامل نام هر ستون، دیتا تایپ و اندازهٔ دیتایی که قرار است در هر ستون ذخیره شود به علاوهٔ دیگر اطلاعات مربوطه را نیز مشخص کنیم. بدین ترتیب، جهت ساخت یک جدول میتوان از سینتَکس زیر استفاده کرد:
CREATE TABLE table_name (column_name1 datatype(size), column_name2 datatype(size), column_name3 datatype(size), ... );
همانطور که مشاهده میکنید، هر ستون از جدول حداقل دارای یک نام و دیتا تایپ است. به طور کلی، از پرکاربردترین دیتا تایپها میتوان به موارد زیر اشاره کرد:
دیتاتایپ | توضیح |
CHAR |
جهت نگهداری اِسترینگ با طول ثابت استفاده میشود که مقدار ثابت آن باید داخل پرانتز مشخص گردد و این در حالی است که این نوع دیتا تایپت میتواند تا ۲۵۵ کاراکتر را درخود ذخیره سازد. |
VARCHAR |
جهت نگهداری اِسترینگ با طول متغیر استفاده میشود بدین ترتیب که حداکثر طول اِسترینگ باید داخل پرانتز مشخص شود به طوری که این نوع دیتا تایپت میتواند تا ۲۵۵ کاراکتر را ذخیره کند. |
TEXT |
جهت نگهداری اِسترینگ با حداکثر طول ۶۵۵۳۵ کاراکتر استفاده میشود. |
INT |
به صورت پیشفرض جهت نگهداری اعداد در بازهٔ ۲۱۴۷۴۸۳۶۴۸- تا ۲۱۴۷۴۸۳۶۴۸ استفاده میشود ولی در صورت ذکر کیورد UNSIGNED هنگام تعریف یک فیلد، اعداد در دامنهٔ ۰ تا ۴۲۹۴۹۶۷۲۹۵ را نگهداری میکند (نیاز به توضیح است که حداکثر تعداد ارقام قابلنگهداری باید در داخل پرانتز مشخص شود.) |
TINYINT |
به صورت پیشفرض جهت نگهداری اعداد در دامنهٔ ۱۲۸- تا ۱۲۷ استفاده میشود ولی در صورت ذکر کیورد UNSIGNED هنگام تعریف یک فیلد، اعدادی در دامنهٔ ۰ تا ۲۵۵ را نگهداری میکند (نیاز به توضیح است که حداکثر تعداد ارقام قابلنگهداری باید در داخل پرانتز مشخص شود.) |
FLOAT |
جهت نگهداری اعداد اعشاری نه چندان بزرگ استفاده میشود. |
DATE |
جهت نگهداری تاریخ با فرمت YYYY-MM-DD (سال-ماه-روز) استفاده میشود. |
DATETIME |
جهت نگهداری ترکیبی از تاریخ و زمان با فرمت YYYY-MM-DD HH:MI:SS (سال-ماه-روز ساعت-دقیقه-ثانیه) استفاده میشود. |
با توجه به توضیحات فوق قصد داریم جدولی به نام articles در دیتابیس sokanacademy ایجاد کنیم که برای انجام این کار میتوان از دستور CREATE TABLE به صورت زیر استفاده کرد:
CREATE TABLE articles ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, content TEXT, published DATETIME );
به عنوان خروجی دستور فوق، یک جدول با نام articles که دارای چهار فیلد content ،title ،id و published است در دیتابیس sokanacademy ایجاد خواهد شد (همانطور که مشاهده میکنید فیلد id در جدول articles دارای دو اصطلاحاً Constraint است که عبارتند از PRIMARY KEY و AUTO_INCREMENT که در ادامه به معرفی این دو مورد خواهیم پرداخت.) همچنین استفاده از کلیدواژگان NOT NULL برای فیلد title به این معنی است که هنگام ایجاد یک رکورد جدید، مقدار این فیلد نمیتواند خالی باشد.
آشنایی با مفهوم Auto Increment
معمولاً در هر جدولی فیلد id به صورت AUTO_INCREMENT تعریف میشود که این کار باعث مقداردهی اتوماتیک این فیلد توسط سیستم مدیریت پایگاه داده در حین ایجاد یک رکورد جدید میگردد. به طور معمول، مقداردهی به این فیلد از عدد ۱ شروع میشود و با هر بار افزودن یک رکورد جدید به جدول، مقدار فیلد id رکورد جدید یک واحد از مقدار رکورد قبلی بیشتر است. به عنوان مثال، فرض کنید میخواهیم دو مقاله به صورت زیر به جدول articles اضافه کنیم:
INSERT INTO articles (title, content, published) VALUES ('What is a DataBase', 'This is a sample content.', NOW()); INSERT INTO articles (title, content, published) VALUES ('SQL For Beginners', 'This is an other sample content.', NOW());
نتیجهٔ دو دستور فوق موجب میشود تا دو رکورد به شکل زیر به این جدول اضافه گردد:
همانطور که مشاهده میکنید، مقدار فیلد id هر رکورد که به صورت خودکار مقداردهی شده است به اندازهٔ یک واحد از رکورد قبلی خود بیشتر است در کوئری فوق از فانکشن از پیش تعریف شده در مایاسکیوال به نام ()NOW استفاده کردهایم که تاریخ و زمان فعلی سیستم را برمیگرداند که جهت مقداردهی به فیلد published استفاده شده است.
آشنایی با مفهوم Primary Key
کلید اصلی یا اصطلاحاً Primary Key یک شناسهٔ منحصربهفرد مانند شمارهٔ ملی و یا شماره تلفن در برخی جداول دیتابیسهای رابطهای است به طوری که مقدار فیلدی که به عنوان کلید اصلی انتخاب شده است نمیتواند تکراری و یا خالی باشد که معمولاً در دیتابیسهای رابطهای فیلد id را به عنوان Primary Key هر جدول در نظر میگیرند تا بتوان با استفاده از این فیلد، هر موجودیت از جدول را برای انجام تَسکهایی همچون آپدیت، حذف و ... شناسایی کرد.
سلام رضا جان. ممنون. حتما این آموزشها ادامه خواهد داشت