Drag
menu En search
close
دستور ALTER TABLE

دستور ALTER TABLE

پس از ایجاد جداول، بنابر نیازهای مختلفی که در حین توسعهٔ اپلیکیشن به وجود می‌آید، ممکن است مجبور به تغییر در ساختار برخی جداول شویم که برای این کار می‌توان از دستور ALTER TABLE استفاد کرد.

به طوری که این دستور اجازهٔ انجام عملیات زیر را بر روی یک جدول می‌دهد:

  • اضافه کردن یک ستون جدید به جدول با استفاده از "کِلاز (بَند) ADD"
  • ایجاد تغییرات در یک ستون از جدول با استفاده از "MODIFY"
  • حذف ستون‌های جدول با استفاده از "DROP"

برای مثال، جهت اضافه کردن یک فیلد جدید به جدول می‌توان از سینتکس زیر استفاده کرد:

ALTER TABLE table_name ADD new_colum data_type column_constraint [AFTER existing_column];

 

تمامی ستون‌های جدیدی که به جدول اضافه می‌شوند، به صورت پیش‌فرض پس از آخرین ستون جدول قرار می‌گیرند ولی برای تغییر محل قرارگیری ستون جدید می‌توان از کِلاز اختیاری AFTER استفاده کرد. حال با این توضیحات فرض کنید می‌خواهیم یک فیلد جدید به نام created_at جهت ذخیرهٔ تاریخ و زمان ایجاد مقاله به جدولی به نام articles اضافه کنیم که برای این کار باید از دستور ALTER TABLE به صورت زیر استفاده کرد:

ALTER TABLE articles ADD created_at DATETIME NOT NULL DEFAULT NOW();

 

در صورتیکه قبل از اضافه کردن فیلد created_at این جدول دارای یکسری رکورد باشد و همچنین از آنجایی که فیلد created_at نمی‌تواند در هیچ رکوردی از جدول خالی باشد، بنابراین تاریخ و زمان فعلی سیستم را با استفاده از تابع ()NOW به عنوان مقدار دیفالت (پیش‌فرض) این فیلد در نظر گرفته‌ایم تا مقدار این فیلد را برای رکوردهایی از جدول که قبلاً وجود داشته‌اند به صورت اتوماتیک مقداردهی کند و بدین ترتیب از رخ دادن خطا هنگام اجرای دستور فوق جلوگیری می‌کنیم. جهت تغییر برخی از ویژگی‌های یک ستون یا فیلد جدول مانند NOT NULL ،UNIQUE و Data Type می‌توان از دستور ALTER TABLE به همراه کِلازی تحت عنوان MODIFY به صورت زیر استفاده کرد:

ALTER TABLE table_name MODIFY column_definition;

 

ویژگی‌های ستونی از جدول را باید ویرایش کنیم که حاوی هیچ دیتایی نباشند. زیرا اگر آن ستون در هنگام ویرایش دارای هر نوع داده‌ای باشد، ممکن است استفاده از دستور فوق منجر به از دست رفتن همیشگی اطلاعات شود! به عنوان مثال، فرض کنید که نوع داده یک ستون VARCHAR است و می‌خواهیم آن را به INT تغییر دهیم که بر این اساس، سیستم مدیریت پایگاه داده سعی می‌کند تمامی دیتاهای موجود در آن ستون را از نوع VARCHAR به INT تغییر دهد که اگر در زمان انجام این کار با شکست مواجه شود، ممکن است از مقدار دیفالت برای آن ستون استفاده کند و احتمالاً چنین رویکردی دقیقاً آن چیزی نباشد که انتظارش را داریم. به عنوان مثالی از ویرایش ویژگی‌های یک ستون، فرض کنید می‌خواهیم ویژگی NOT NULL را به فیلد content از جدول articles اضافه کنیم که برای این کار می‌توان از دستور زیر استفاده کرد:

ALTER TABLE articles MODIFY content TEXT NOT NULL;

 

برای حذف یک ستون از جدول می‌توان از دستور ALTER TABLE به صورت زیر استفاده کرد:

ALTER TABLE table_name DROP column_name;

 

به عنوان مثالی دیگر، برای حذف ستون created_at از جدول articles هم می‌توان به صورت زیر عمل کرد:

ALTER TABLE articles DROP created_at;

 

در نتیجهٔ دستور فوق، فیلد created_at به همراه تمامی دیتاهای ذخیره شده در آن از جدول حذف خواهند شد. ذکر این نکته نیز خالی از لطف نیست که با یک دستور می‌توان چندین فیلد را هم‌زمان به جدول اضافه و یا از آن حذف کرد بدین ترتیب که می‌توان چندین کِلاز DROP و یا ADD را در دستور ALTER TABLE در کنار هم قرار داد به طوری که داریم:

ALTER TABLE table_name DROP column_name, DROP colum_name, ...;

محمد کریم زاده
محمد کریم زاده
در صورتی که درباره دانش‌ها و تخصصی‌هایی که دارم مطالعه کردید و می‌خواید که من پروژه شما رو انجام بدم و یا کمکی برای انجام پروژه لازم دارید، با من تماس بگیرید.
(5)
view 46 like 1

ثبت نظر