ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

دستور ساخت جدول CREATE TABLE

 
Post new topic   Reply to topic    ParsX.com Forum Index -> اس . كيو . ال SQL
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Fri Feb 04, 2005 11:41 am    Post subject: دستور ساخت جدول CREATE TABLE Reply with quote

هر بانك اطلاعاتي متشكل از اشيايي ميباشد كه از انها براي ذخيره سازي يا ارجاع به داده ها استفاده ميكند . جداول از مهمترين اشياي بانكهاي اطلاعاتي به شمار ميروند .
Schema نيز يكي از اشياي بانك اطلاعاتي است . به مجموعه اي از اشيايي كه مرتبط با يك نام كاربري در يك بانك اطلاعاتي موجود است گفته ميشود . بنابراين هر كاربري كه شيئي را در بانك اطلاعاتي توليد ميكند در واقع شماي خود را ايجاد و تكميل ميكند . فرض كنيم كه كاربري با نام كاربري user01 در بانك اطلاعاتي login ميكند . پس از ان يك جدول با نام tbl_parsx ميسازد . اين جدول در كل بانك اطلاعاتي با نام user01.tbl_parsx شناسايي ميشود . اما براي خود كاربر نيازي نيست كه از كلمه user01 در ابتداي نام جدول استفاده كند .
اما براي ساخت يك جدول در بانك اطلاعاتي با استفاده از دستورات SQL بايد از خودمان سوالاتي بپرسيم از جمله انكه :
نام جدول را چه خواهيد گذاشت ؟
چه تعداد ستون در جدول خود خواهيد داشت ؟
ستون هاي مربوطه چه نامي خواهند داشت ؟
در اين ستون ها چه نوع داده هايي بايد تعريف شود ؟
طول ستونهاچه مقدار بايد باشد ؟
كدام يك از ستون ها بايد كليد اصلي جدول ما باشد ؟
آيا ستوني ميتواند خالي بماند ؟
پس از انكه پاسخي براي كليه سوالات فوق پيدا كرديد ميتوانيد با قالب دستور زير جدول خود را بسازيد :

CREATE TABLE table_name(
column1 datatype [NOT NULL] [primary key],
column2 datatype [NOT NULL],
.
.
columnnameN datatype [NOT NULL]);

در دستور فوق مقاديري كه داخل كروشه قرار دارند اختياري هستند و ميتوانند نباشند . اگر NOT NULL را در هر يك از ستونهاي فوق نگذاريم بصورت پيشفرض انرا NULL در نظر ميگيرد . در ضمن در دستور فوق تنها ميتوانيم يك كليد اصلي براي جدول داشته باشيم . لزومي ندارد كه كليد اصلي مختص ستون اول باشد بلكه ميتوانيد ان مقدار را برا ستونهاي بعدي در نظر بگيريد .
در مثال زير جدول STUDENT را با دستور CREATE TABLE بازسازي ميكنيم :
CREATE TABLE STUDENT11(
stno char(8) primary key,
fname char(20),
lname char(50),
id char(5));

همانطور كه ميبينيد در انتهاي دستور CREATE TABLE از سمي كالن استفاده كرديم . اين علامت بيانگر به پايان رسيدن دستور SQL است كه در بعضي از بانكهاي اطلاعاتي متفاوت است . فرضا در TRANSACT-SQL از GO استفاده ميشود . در بانك اطلاعاتي ACCESS هم ميتوانيد اين مقدار را اصلا نگذاريد . كه در اينصورت خود ACCESS اين مقدار را قرار ميدهد .
در بعضي از نسخه هاي SQL ميتوان در ادامه دستور CREATE TABLE دستوري به نام STORAGE را اضافه كنيد كه اين دستور دو مقدار را بدنبال خود دارد مقدار اوليه INITIAL مقدار فضايي كه در ابتداي تشكيل جدول لازم است توليد ميكند . و مقدار بعدي در صورتي كه فضاي اوليه اي كه با دستور INITIAL در نظر گرفته شده بود پر شود اين مقدار فضا را اضافه ميكند :
CREATE TABLE PARSX( …

…)
STORAGE
( INITIAL 4K
NEXT 2K );

اما همانطور كه ديديد براي ساخت كليد اصلي با استفاده از دستور PRIMARY KEY تنها ميتوانستيم يك كليد اصلي داشته باشيم . استفاده از كليد اصلي باعث ميشود كه مقادير ما در يك جدول مقدار منحصر بفردي در ان ستون داشته باشند . يعني دو ركورد در ستون كليد اصلي نميتواند برابر باشد . اين مثال را ميتوان براي فرضا كد ملي يا شماره دانش اموزي در نظر گرفت كه هر فردي تنها ميتواند يك كد ملي ان هم متفاوت با بقيه داشته باشد .
گاهي لازم است در جدول بيش از يك كليد اصلي داشته باشيم . بنا براين براي اين كار به جاي استفاده از PRIMARY KEY از دستور UNIQUE استفاده ميكنيم .با استفاده از UNIQUE ميتوانيم فيلدهاي ديگر مورد نظر را نيز منحصر بفرد كنيم .
به هر حال هر گاه خواستيد خواصي از كليد اصلي را به جدول خود اضافه كنيد ميتوانيد از دستورات index ‌براي انجام اين كار استفاده كنيد .
علاوه بر كليد اصلي در اين دستور ميتوانيد كليد خارجي را نيز تعيين كنيد . با تعيين كردن اين كليد ميتوانيد ارتباط بين جداول را ايجاد كنيد . كافيست از دستور زير براي ايجاد كليد فرعي استفاده كنيد :
CREATE TABLE table_name(
column1 datatype [NOT NULL] [primary key],
column2 datatype [NOT NULL],
.
.
columnnameN datatype [NOT NULL])
FOREIGN KEY STD_ID_FK (EMP_ID) REFRENCES GRADE (STNO)
;

با استفاده از زير پرس و جو يا SUB QUERY ميتواند جدول مشابهي را كه ساختار يكساني با جدول درست شده دارد درست كرد :
CREATE TABLE NAME AS SELECT * FROM PARSX

دستور فوق در بعضي از نسخه هاي SQL متفاوت است ...
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> اس . كيو . ال SQL All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
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