Posted: Fri Feb 04, 2005 11:41 am Post subject: دستور ساخت جدول CREATE TABLE
هر بانك اطلاعاتي متشكل از اشيايي ميباشد كه از انها براي ذخيره سازي يا ارجاع به داده ها استفاده ميكند . جداول از مهمترين اشياي بانكهاي اطلاعاتي به شمار ميروند .
Schema نيز يكي از اشياي بانك اطلاعاتي است . به مجموعه اي از اشيايي كه مرتبط با يك نام كاربري در يك بانك اطلاعاتي موجود است گفته ميشود . بنابراين هر كاربري كه شيئي را در بانك اطلاعاتي توليد ميكند در واقع شماي خود را ايجاد و تكميل ميكند . فرض كنيم كه كاربري با نام كاربري user01 در بانك اطلاعاتي login ميكند . پس از ان يك جدول با نام tbl_parsx ميسازد . اين جدول در كل بانك اطلاعاتي با نام user01.tbl_parsx شناسايي ميشود . اما براي خود كاربر نيازي نيست كه از كلمه user01 در ابتداي نام جدول استفاده كند .
اما براي ساخت يك جدول در بانك اطلاعاتي با استفاده از دستورات SQL بايد از خودمان سوالاتي بپرسيم از جمله انكه :
نام جدول را چه خواهيد گذاشت ؟
چه تعداد ستون در جدول خود خواهيد داشت ؟
ستون هاي مربوطه چه نامي خواهند داشت ؟
در اين ستون ها چه نوع داده هايي بايد تعريف شود ؟
طول ستونهاچه مقدار بايد باشد ؟
كدام يك از ستون ها بايد كليد اصلي جدول ما باشد ؟
آيا ستوني ميتواند خالي بماند ؟
پس از انكه پاسخي براي كليه سوالات فوق پيدا كرديد ميتوانيد با قالب دستور زير جدول خود را بسازيد :
در دستور فوق مقاديري كه داخل كروشه قرار دارند اختياري هستند و ميتوانند نباشند . اگر NOT NULL را در هر يك از ستونهاي فوق نگذاريم بصورت پيشفرض انرا NULL در نظر ميگيرد . در ضمن در دستور فوق تنها ميتوانيم يك كليد اصلي براي جدول داشته باشيم . لزومي ندارد كه كليد اصلي مختص ستون اول باشد بلكه ميتوانيد ان مقدار را برا ستونهاي بعدي در نظر بگيريد .
در مثال زير جدول STUDENT را با دستور CREATE TABLE بازسازي ميكنيم :
همانطور كه ميبينيد در انتهاي دستور CREATE TABLE از سمي كالن استفاده كرديم . اين علامت بيانگر به پايان رسيدن دستور SQL است كه در بعضي از بانكهاي اطلاعاتي متفاوت است . فرضا در TRANSACT-SQL از GO استفاده ميشود . در بانك اطلاعاتي ACCESS هم ميتوانيد اين مقدار را اصلا نگذاريد . كه در اينصورت خود ACCESS اين مقدار را قرار ميدهد .
در بعضي از نسخه هاي SQL ميتوان در ادامه دستور CREATE TABLE دستوري به نام STORAGE را اضافه كنيد كه اين دستور دو مقدار را بدنبال خود دارد مقدار اوليه INITIAL مقدار فضايي كه در ابتداي تشكيل جدول لازم است توليد ميكند . و مقدار بعدي در صورتي كه فضاي اوليه اي كه با دستور INITIAL در نظر گرفته شده بود پر شود اين مقدار فضا را اضافه ميكند :
اما همانطور كه ديديد براي ساخت كليد اصلي با استفاده از دستور PRIMARY KEY تنها ميتوانستيم يك كليد اصلي داشته باشيم . استفاده از كليد اصلي باعث ميشود كه مقادير ما در يك جدول مقدار منحصر بفردي در ان ستون داشته باشند . يعني دو ركورد در ستون كليد اصلي نميتواند برابر باشد . اين مثال را ميتوان براي فرضا كد ملي يا شماره دانش اموزي در نظر گرفت كه هر فردي تنها ميتواند يك كد ملي ان هم متفاوت با بقيه داشته باشد .
گاهي لازم است در جدول بيش از يك كليد اصلي داشته باشيم . بنا براين براي اين كار به جاي استفاده از PRIMARY KEY از دستور UNIQUE استفاده ميكنيم .با استفاده از UNIQUE ميتوانيم فيلدهاي ديگر مورد نظر را نيز منحصر بفرد كنيم .
به هر حال هر گاه خواستيد خواصي از كليد اصلي را به جدول خود اضافه كنيد ميتوانيد از دستورات index براي انجام اين كار استفاده كنيد .
علاوه بر كليد اصلي در اين دستور ميتوانيد كليد خارجي را نيز تعيين كنيد . با تعيين كردن اين كليد ميتوانيد ارتباط بين جداول را ايجاد كنيد . كافيست از دستور زير براي ايجاد كليد فرعي استفاده كنيد :
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