Posted: Sun Feb 06, 2005 11:43 am Post subject: دستور ALTER TABLE براي اعمال تغييرات در جداول
Quote:
ALTER TABLE
اين دستور همانطور كه ميدانيد جزو دستورات DDL ميباشد .
پس از ساخت جدول و ورود داده ها به آن شايد لازم باشد پس از طي شدن زماني و استفاده از جدول متوجه شويد كه جدول شما ستوني كم دارد ! يا انكه نوع داده هاي ستوني از جدول شما مناسب ان داده ها نميباشد . مثلا ابتدا در هنگام ساخت جدول ستوني بنام GRADE را با نوع داده صحيح انتخاب كرده ايد . اما بعدا متوجه شديد كه اين مقدار براي اين ستون كافي نيست .بنابراين نياز داريد به انكه نوع فيلدهاي جدول را تغيير دهيد .
البته اين دستور تنها براي تغيير دادن در نوع فيلد نيست كه براي تغيير اندازه سايز فيلد . تغيير نوع . يا انكه فيلد شما ميتواند مقدار تهي داشته باشد يا خير و تعدادي ديگر از تغييرات اين دستور مورد استفاده قرار ميگيرد . حتي شايد بخواهيد ستوني را حذف يا اضافه كنيد .
شماي اصلي دستور به صورت زير است :
ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] |
ALTER COLUMN field type[(size)] |
CONSTRAINT multifieldindex} |
DROP {COLUMN field I CONSTRAINT indexname} }
در قالب فوق :
table نام جدولي است كه قرار است تغييرات بر ان اعمال شود .
field نام فيلدي است كه قرار است در جدول اضافه پاك يا تغييرات بر ان اعمال شود .
type نوع فيلد مورد نظر است كه ميتواند عددي يا رشته اي و ياهر يك از انواع استاندارد داده اموزش داده شده دربخش قسمت دوم : انواع داده ها در SQL باشد .
Size سايز فيلدهاي كاراكتري و باينري كه تنها در اين دو نوع داده قابل استفاده است .
index شاخصي كه قرار است براي اين فيلد در نظر گرفته شود .
multifieldindex شاخصهايي كه قرار است براي چندين فيلد در نظر گرفته شود .
indexname نام ايندكسي كه قرار است از چندين فيلد پاك شود
يك مثال ساده به همراه قالب دستور :
ALTER TABLE table_name
ADD column_name column-definition;
در دستور فوق سه گزينه اختياري داريم . اولي MODIFY براي اعمال تغييرات در نوع جدول . و گزينه دومي ADD براي اضافه كردن ستوني به جدول و همچنين DROP براي پاك كردن ستون .
مثالي براي تغيير نوع فيلد STNO را ميبينيم :
ALTER TABLE STUDENT MODIFY STNO VARCHAR(12);
در استفاده از دستور Add يادتان باشد كه اگر داده اي از قبل در ستون وارد كرده ايد نوع اين ستون نميتواند not null باشد بنابراين بايد ابتدا انرا از نوع null تعريف كنيد . سپس انرا با داده هايي پر كنيد و سپس انرا به نوع not null تغيير دهيد .
باز هم مثال :
ALTER TABLE Employees ALTER COLUMN Emp_Email TEXT(50);
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum