PDA

View Full Version : سوال: اضافه کردن یه فیلد به دیتا بیس با کد نویسی



reza_majid68
جمعه 05 اسفند 1390, 00:24 صبح
سلام
من دیتا بیسم رو آپلود کردم . گذاشتم رو هاست
حالا میخوام یه فیلد دیگه به یکی از جدول هام اضافه کنم . از چه دستوراتی استفاده کنم ؟

A.S.Roma
جمعه 05 اسفند 1390, 00:33 صبح
این دستور SQL رو از طریق ADO یا هر شکل دیگری اجرا کنید :
ALTER TABLE yourTableName ADD yourField fieldType NULL/NOT NULL

reza_majid68
جمعه 05 اسفند 1390, 00:37 صبح
خودم پیدا کردم مرسی
: 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 (http://computer.parsx.com/viewtopic.php?t=204) باشد .
Size سايز فيلدهاي كاراكتري و باينري كه تنها در اين دو نوع داده قابل استفاده است .
index شاخصي كه قرار است براي اين فيلد در نظر گرفته شود .
multifieldindex شاخصهايي كه قرار است براي چندين فيلد در نظر گرفته شود .
indexname نام ايندكسي كه قرار است از چندين فيلد پاك شود
يك مثال ساده به همراه قالب دستور :

ALTER TABLE table_name
ADD column_name column-definition;
فرضا :

alter table student add studet_test1 varchar(250)
براي افزودن چندين ستون :

ALTER TABLE table_name
ADD ( column_1 column-definition,
column_2 column-definition,
...
column_n column_definition );
براي تغييرات نوع دستور :

ALTER TABLE table_name
MODIFY column_name column_type;
مثال :

ALTER TABLE student
MODIFY stno varchar2(100) not null;
براي چندين ستون :

ALTER TABLE table_name
MODIFY ( column_1 column_type,
column_2 column_type,
...
column_n column_type );
براي تغيير نام يك ستون :

ALTER TABLE table_name
RENAME COLUMN old_name to new_name;

در مثال زير يك كليد خارجي به جدول student با نام test_fk ايجاد ميكنيم كه با فيلد test_pk ‌از جدول grade ارتباط برقرار ميكند . :

ALTER TABLE student ADD CONSTRAINT test_fk FOREIGN KEY (test_pk) REFERENCES grade (test_pk);
حال همين فيلد را پاك ميكنيم :

ALTER TABLE Students DROP CONSTRAINT test_fk;
اگر بخواهيد با برنامه اي اينكار را بكنيد فرضا با visual basic از دستور زير استفاده ميكنيد :كه فقط يك مثال است :

Sub Create_Table_Script()

Dim db As Database

Set db = OpenDatabase("yourcustomers.mdb")

'alter employees table to add foreign key reference as above

db.Execute "ALTER TABLE student ADD CONSTRAINT test_fk FOREIGN KEY (test_pk) REFERENCES grade (test_fk);"

db.Close
End Sub
در دستور فوق سه گزينه اختياري داريم . اولي 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);