close
تبلیغات در اینترنت
آموزش SQL Server - بخش سوم

آموزش SQL Server - بخش سوم

مجله اینترنتی آفتاب

 

ارتباط آن لاين

 

آمار کاربران


عضو شويد

نام کاربری :
رمز عبور :

فراموشي رمز عبور؟

 

عضويت در سايت

نام کاربری :
رمز عبور :
تکرار رمز :
ایمیل :
نام اصلی :
کد امنیتی : * کد امنیتیبارگزاری مجدد

 

عضويت در خبرنامه


 

تبليغات

 

آخرين ارسال هاي انجمن

 

آموزش SQL Server - بخش سوم

بازديد:1506



 

عبارت SELECT 
پایه و اساس همه داده های رابطه ای در محیط SQL Server یک حالت Transact-SQL تنها است که عبارتSelect می باشد. در این درس ما به مهمترین ترکیبات حالت Select و راههای استفاده کردن از Query Designer برای ساختن خودکار عبارت می پردازیم. با استفاده از Query Designer شما می توانید یک عبارتSelect را مستقیماً در قاب SQL وارد سازید یا با داشتن Query Designer آن را به وسیله قابهای Grid و Diagramبسازید. گزینه ها متقابلاً منحصر به فرد نمی باشند. شما می توانید یک Query را به وسیله اضافه کردن جداول برای قاب Diagram ، تغییر نام ستون با استفاده از قاب Grid شروع کنید و دستورات را به طوری که سطرها برگردانده می شود به وسیله وارد کردن شرط ORDER BY به صورت مستقیم در قاب SQL مشخص کنید 
تمرینهای درس یک گونه ای از تکنیکها را به شما نشان خواهد داد. موقعی که خودتان کار می کنید شما می توانید یکی را که در زمان ساده تر به نظر می رسد را انتخاب کنید .

 

 

 

 

شناختن عبارت SELECT 
ساختار دستور عبارت Select خیلی پیچیده می باشد که دارای چندین شرط و اپراتور می باشد اما ساختار اصلی کاملاً ساده می باشد .

Select [ Top n [PERCENT] ] Column-List
From Source-List
[ Where Search-Condition ]
[ ORDER By Expression ]

فقط اولین و دومین شرط از عبارت Select مورد نیاز می باشد. اولین شرط، Select Column-List مشخص می کند ستونهایی که به وسیله Query بازگردانده خواهد شد. لیست Column می تواند شامل ستونهای اصلی از جداول و نماهایی باشد که بر روی Query پایه ریزی شده است یا اینکه می تواند شامل ستونهای محاسباتی اقتباس شده از ستونهای اصلی باشد. دومین شرط، From Source-LIST ، نماها و جداول را که در Query پایه ریزی شده مشخص می کند .

انتخاب کردن تمام ستونها 
ساده ترین شکل از عبارت Select آن انتخابی است که همه ستونها از یک جدول تکی را انتخاب می کند. با بیشترین نسخه های زبان SQL ، Transact-SQL اجازه می دهد به شما به استفاده از (*) به عنوان یکShorthand برای مشخص کردن تمام ستونها، بنابراین این فرم ساده از عبارت این چنین است :

SELECT * 
FROM Table-Name

انتخاب همه ستونها 
Query Designer را برای Properties Table به وسیله کلیک راست کردن نام آن در قاب Detail Enterprise Manager باز می کنیم، روی زیر منوی Open Table رفته و Return All Rows را انتخاب می کنیم . SQL Server ،Query Designer را برای جدول باز می کند 
قاب SQL را به وسیله کلیک کردن دکمه قاب SQL روی نوار ابزار Query Designer راه می اندازیم . Query Designer قاب SQL را نشان می دهد . 
عبارت SQL را برای نشان دادن همه ستونها از جدول Oils تغییر می دهیم 
دکمه Run را روی نوار ابزار Query Designer برای به اجرا در آوردن Query کلیک می کنیم . Query Designerهمه رکوردها در جدول Oils را نشان می دهد 
راهنمایی: شما می توانید بیشتر سطرها را در قاب Results به وسیله درج کردن درایور قاب بین قابها نشان دهید .

انتخاب زیر مجموعه از ستونها 
اگر چه ساختار دستور Select * آسان و سریع می باشد، شما اغلب بیشتر می خواهید که Query تان فقط به ستونهای انتخاب شده باز گردد. این با مشخص کردن ستونها در Column-List از شرط Select به انجام می رسد.

انتخاب ستونها با استفاده از قاب SQL 
علامت * را در عبارت Select با تایپ کردن نام ستون Oil Name جایگزین می کنیم 
دکمه Run را روی نوار ابزار Query Designer برای به کار بستن Query کلیک می کنیم . Query فقط ستون Oil Name را نشان می دهد .

انتخاب ستونها با استفاده از قاب Diagram 
قاب SQL را پنهان کرده و قاب Diagram را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم 
فیلد LatinName را در قاب Diagram کلیک کرده Query Designer قاب Results به جهت اینکه زیاد معتبر نیست کم نور نشان می دهد 
دکمه Run را برای به کارگیری Query کلیک کرده Query Designer هر دو ستون Latin Name و Oil Name را در قاب Results نشان می دهد .

ایجاد کردن نام مستعار ستون 
به طور پیش فرض، یک ستون در یک Query نام یکسان دارد که در جدول یا نمای مورد نظر می باشد. اگر چه اغلب تغییر دادن نام آن مفید می باشد نامتناسب به نظر می رسد که فیلد به کاربر بدین صورت ( "My Long Column Name With No Spaces" ) یا اینکه به طور خلاصه این چنین 32713 PK-Varchar-50-Col نشان داده شود. عبارت Select به شما اجازه می دهد که یک ستون را در Query به وسیله ایجاد یک alias تغییر نام دهید. نام مستعار، نام ستون را در Query تغییر می دهد نه در جدول .

ایجاد یک نام مستعار برای ستون با استفاده از قاب Grid 
قاب Diagram را پنهان کرده و قاب Grid را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم 
یک نام مستعار برای ستون OilName به وسیله تایپ کردن OilName در فیلد alias ایجاد می کنیم . Query Designer به طور خودکار در اطراف alias پرانتز اضافه کرده زیرا alias شامل یک فضا می باشد 
راهنمایی: پرانتزهای چهارگوش در خروجی Query نشان داده نخواهند شد آنها به نحوه آسان به SQL Serverمی گویند که با عبارت "Oil Name" به عنوان یک نام مجزا برخورد کنیم. پرانتزها فقط موقعی مورد نیاز می باشند که نام مستعار شامل یک جای خالی باشد، اما آنها می تواند برای نام هر ستون استفاده شود . 
دکمه Run را روی نوار ابزار Query Designer برای مجدد به کار بستن Query کلیک می کنیم . SQL Server نام را در سر ستون با جای خالی اضافه شده بین دو کلمه نشان می دهد .

ایجاد نام مستعار ستون با استفاده از قاب SQL 
قاب Grid را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم 
 [ Latin Name ]را به عنوان نام مستعار برای دومین ستون اضافه می کنیم 
دکمه Run را روی نوار ابزار Query Designer برای به کارگیری Query کلیک می کنیم . Query Designer نام را در سر ستون با یک فضای خالی بین دو کلمه نشان می دهد .

ایجاد کردن ستونهای محاسباتی 
علاوه بر اینکه ستونها به طرز ساده اطلاعات را در جداول Underlying و نماها نشان می دهد، همچنین Queryتان می تواند شامل ستونهایی باشد که محاسبه شده اند بر اساس داده های Underlying ، توابع SQL Serverیا هر ترکیب دوتایی. ستون محاسباتی به وسیله مشخص کردن یک عبارت به عنوان ستون ایجاد می گردد 
ما به عبارات Transact-SQL در Detail در درس 21 "The Transact-SQL Language" می پردازیم. بنابراین در این تمرین ما فقط یک جفت از عبارات ساده که بر اساس اپراتور الحاق رشته Transact-SQL که دو رشته و تابعGETDATE را که داده ها و زمان سیستم جاری را باز می گرداند اضافه می کنیم .

ایجاد کردن یک ستون محاسباتی با استفاده از قاب Grid 
قاب SQL را پنهان کرده و قابGrid را به وسیله کلیک کردن دکمه روی نوار ابزار Query Designer نشان می دهیمدر هر سل ستون خالی در قاب Grid کلیک کرده و Oil Name +' – '+ Latin Name را تایپ می کنیم 
راهنمایی: شما می توانید سل ها را در قاب Grid به وسیله درج کردن خطوط تقسیم بین سر ستونها عریض تر سازید 
کلید Tab را فشار می دهیم . SQL Server ، 1 Expr را به عنوان نام مستعار ستون پیشنهاد می دهد 
نام مستعار را برای Extended Name تغییر می دهیم 
دکمه Run را برای به کارگیری مجدد Query کلیک می کنیم . Query Designer ستون جدید را در قاب Resultsنشان می دهد .

ایجاد کردن یک ستون محاسباتی با استفاده از قاب SQL 
قاب Grid را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم 
GETDATE را به عنوان [ Today’s Data ] برای لیست ستون از شروط Select اضافه می کنیم 
راهنمایی: کاما را قبل از GETDATE فراموش نکنید 
دکمه Run را در نوار ابزار Query Designer برای به کارگیری مجدد Query کلیک می کنیم . SQL Server تاریخ جاری در هر سطر را نشان می دهد .

استفاده کردن از شرط Top n 
زمانی که شما دستور Return Top را از منوی متن جدول انتخاب می کنید . SQL Server شرط Top n را در پایین پوششها برای ایجاد صفحه نمایش در Query Designer استفاده می کند. علاوه بر اینکه یک شماره مشخصی از سطرها را مشخص می کنید شما می توانید همچنین یک درصد از سطرها را به وسیله استفاده کردن از شرط Top n Percent نشان دهید. همان طوری که شما ممکن است انتظار داشته باشید درصدی از سطرهای مشخص شده را باز می گردانیم .

نشان دادن سطرهای Top s 
Top 5 را قبل از اولین کلمه در Column-List از شروط Select در قاب SQL اضافه می کنیم 
دکمه Run را در نوار ابزار Query Designer برای به کارگیری مجدد Query کلیک می کنیم . SQL Server فقط 5 سطر اول را نشان می دهد .

نشان دادن Top 5 درصد از سطرها
کلمه Percent را بعد از Top 5 در قاب SQL اضافه می کنیم 
دکمه Run را در نوار ابزار Query Designer برای به کارگیری Query کلیک می کنیم . SQL Server فقط 5 درصد اول از سطرها را در SQL Server نشان می دهد .

شناخت عبارت INSERT 
ساختار دستور عبارت Insert شبیه به عبارت Select می باشد، بیشترین شکل مبنای آن عبارت است از 
INSERT [INTO] Table-or-View [(Column-List)]
VALUES (Value-List)
 
هر عبارت Insert می تواند یک جدول یا نما منفرد را به هنگام سازد زمانی که شما از عبارت Insert برای به هنگام سازی یک نما استفاده می کنید شما باید آگاه باشید از محدودیتهای زیر 
View
 نباید شامل یک تابع به هم پیوسته مانند COUNT یا AVG باشد 
View
 نباید شامل Top ، GROUP BY ، UNION یا DISTINCT باشد 
View
 نباید شامل یک ستون محاسبه شده باشد 
View
 باید یک جدول را در شرط From باز گرداند 
عبارت Insert ستونهای یک جدول منفرد را فقط به هنگام می سازد 
لیست ستون در عبارت Insert اختیاری می باشد. اگر آن فراهم نگردد عبارت Insert باید شامل مقادیری برای همه ستونها در جدول یا نما باشد و آنها باید به همان ترتیب به عنوان ستونهایی در جدول یا نما فراهم شوند. اگر چه شما می توانید از کلیدهای ویژه DEFAULT برای مشخص کردن مقادیر پیش فرض برای یک سطر استفاده کنید. زمانی که لیست ستون گنجانده می شود. آن یک فرمت شبیه از لیست ستون در عبارت Select می گیرد: یک لیستی از نامهای ستون که با کاما جدا شده است. از زمانی که یک عبارت Insert می تواند یک سطر را فقط برای یک جدول اضافه کند، شما معمولاً نیاز به استفاده کردن مشخصه نام جدول برای نام ستون نخواهید داشت.

استفاده کردن از عبارت INSERT 
یک عبارت Insert می تواند با استفاده کردن از قاب Grid برای مشخص کردن ستونها یا با استفاده کردن قابSQL برای وارد کردن مستقیم عبارت ایجاد گردد .

درج کردن سطرها با استفاده از قاب Grid 
قاب Grid احتمالاً آسانترین راه برای ایجاد یک عبارت Insert می باشد از زمانی که یاد آوردن هر ساختار دستور مورد درخواست شما نباشد .

درج کردن یک سطر با استفاده از قاب Grid 
پوشه Tables را از پایگاه داده Aromatherapy راهبری کرده، جدول Oils را در قاب Details کلیک راست می کنیم. در زیر منوی Open Table رفته و Query را انتخاب می کنیم . Query Designer همه چهار قاب نشان داده شده را باز می کند

ایجاد كردن جداول و تغییر دادنشان 
در محیط SQL Server میكروسافت، در هر پایگاه داده مرتبط، اطلاعاتی در داخل جداول سازماندهی می شوند بر طبق ترتیب سطرها و ستونها كه داده ها را برای شئی های تکی ذخیره می کند. در این درس، شما می آموزید كه چگونه یك جدول جدید را ایجاد كنید و معین كنید ستونهایی كه آن جدول در بردارد 
راهنمایی: در نظر گرفتن محتویات جدول به عنوان یك شبكه (Grid) مانند یك صفحه گسترده ایده آل می باشد. اما این موضوع مهم می باشد به تشخیص اینكه ركوردها در یك جدول نظم درونی ندارند. ایده های Previous وNext در یك ركورد جدول به كار برده نمی شوند. اگر شما نیاز به انجام عملیاتهای متوالی نداشته باشید، شما می توانید به وسیله ای به نام Cursor آن را انجام دهید. یك ماهیتی كه به یك سطر ویژه در یك مجموعه از ركوردها اشاره می كند. در مورد Cursor در درس 27 بحث خواهیم كرد .

ایجاد كردن جداول 
جداول یك واحد تابعی از انبار داده ها در یك پایگاه داده های مرتبط می باشند. به عنوان یك قاعده كلی، هر نوع از موجودیتها از قبیل Essential Oil در پایگاه داده نمونه مان به وسیله یك جدول نشان داده می شود، نظر به اینكه هر نمونه از آن موجودیتها از قبیلGerman Chamomile Clary Sage به وسیله یك سطر در جدول نشان داده می شود 
طراحی پایگاه داده 
در بیشترین روش رایج برای تعریف پایگاه داده ها از راهكارهای مفهومهای Entities و Attributes استفاده می كنیم زمانی كه شما از طراحی منطقی به طراحی فیزیكی پیش می روید. موجودیتها معمولاً به صورت جداول پیاده سازی می شوند و مشخصه ها (Attributes) در ستونها پیاده سازی می شوند. (همچنین در فیلدها شناخته می شوند)

شناخت انواع داده ها 
هر ستون در جدول دارای خصوصیات معین می باشد كه آن را برای SQL Server تعریف می كند. مهمتر از این خصوصیات، نوع داده های ستون می باشد، كه تعریفی از نوع اطلاعاتی كه درستونها ذخیره خواهند شد می باشد. به طور كلی انواع داده ها به وسیله SQL Server فراهم می گردد، همچنین شما می توانید خودتان تعریف كنید. شما خواهید آموخت كه چگونه این را در درس 9 انجام دهید .

مقادیر قابل قبول انواع داده

مقادیر عددی 
مقادیر اعداد صحیح از 63^2- تا1-63^2 bight 
مقادیر اعداد صحیح از 31^2- تا 1-31^2 Int 
مقادیر اعداد صحیح از 15^2- تا 1-15^2 Smallint 
مقادیر اعداد صحیح از 0 تا 255 Tinyint 
مقادیر اعداد صحیح با ارزش 0 و 1 bit 
مقادیر مقیاس با دقت ثابت شده از 1+38^10 تا 1-38^10 decimal 
مقادیر Decimal همچنین می تواند تعریف شود به صورتNumeric ، دامنه مقادیر یكسان می باشد 
مقادیر Monetary (مالی) از 63^2- تا 1-63^2 (مقادیر Money تا 0.0001 از هرواحد دقت دارد) . 
Money
مقادیرMonetary از 3648 . 748 . 214- تا 3647 . 748 . 214 می باشد Smallmoney 
(مقادیر Small Monetary تا 0001/0 واحد دقیق می باشد) 
مقادیر صحیح شناور (متغیر) از 308 +E1.79- تا 308 +E1.79 (مقادیر Float فقط تقریبی می باشد)
Float
مقادیر صحیح شناور متغیر از 38 +E3.40- تا 38 +E3.40 می باشند (مقادیر real فقط تقریبی می باشد)
real
مقادیر تاریخ و زمان از 1.1753 ژانویه تا 31.9999 دسامبر می باشد datetime 
(مقادیر Date Time تا 3 هزارم ثانیه یا 3.33 میلی ثانیه دقت دارد)
Smalldatedtime
مقادیر تاریخ و زمان از 1 ژانویه و 1900 تا 6 ژوئن و 2079 می باشد (مقادیرSmalldatetime تا 1 دقیقه دقت دارند)

مقادیر کاراکتری 
مقادیر حرفی كدگذاری نشده با طول ثابت با طول حداكثر 8000 حرف می باشد . Char 
مقادیر حرفی كدگذاری نشده با طول متغیر با طول حداكثر 8000 حرف می باشد . Varchar 
داده كدگذاری شده با طول متغیر با طول حداكثر 1-31^2 (647 . 741 . 073 . 1) حرف می باشد . 
Text
داده كدگذاری شده با طول ثابت با طول حداكثر 4000 حرف می باشد Nchar 
داده كدگذاری نشده با طول متغیر با حداكثر طول 4000 حرف می باشد nvarchar 
داده كدگذاری شده با طول متغیر با حداكثر طول 1-30^2 (823 . 741 . 073 . 1) حرف می باشد
Ntext 
مقادیر باینری (1 و 0) 
داده باینری با طول ثابت با حداكثر طول 8000 بایت می باشد binary 
داده باینری با طول متغیر با حداكثر طول 8000 بایت می باشد Varbinary 
داده باینری با طول متغیر با حداكثر طول 1-31^2 (647 . 783 . 147 . 2) بایت می باشد Image 
مقادیر دیگر 
یك مرجع مبناء برای یك Cursor می باشد (یكCursor یك ماهیتی است كه یك مرجع مبناء را برای یك سطر مشخص در یك Result Set نشان می دهد)
Cursor
یك شمار واحد پایگاه داده است كه به هنگام می شود هر زمانی كه یك سطر به هنگام شود. (نوع دادهrowversion در نسخه قبلی از Timestamp SQL Server نامیده می شود ) rowversion 
مقادیری از هر نوع غیر از text ، ntext ، rowversion (timestamp) و sql - variant می باشد. یك معرف واحد کلی GUID می باشد . Uniqveidentifier

ایجاد كردن یك جدول جدید 
جداول تهیه و با استفاده از طراح جدول Enterprise Manager نگهداری می شوند. اولین گام ایجاد و نامگذاری جدول به وسیله باز كردن Table Designer برای یك جدول جدید می باشد 

ایجاد یك جدول جدید 
در پایگاه داده Aromatherapy بر روی پوشه Table می رویم . SQL Server یک لیستی از جداول موجود را نشان می دهد 
دکمه New را روی نوار ابزار کلیک می کنیم . SQL Server ، Table Designer را باز می کند 
دکمه Properties را در نوار ابزار کلیک می کنیم . SQL Server کادر محاوره ای Tables Properties را باز می کند
نام جدول را به 5 Lesson تغییر می دهیم 
Close را کلیک می کنیم . SQL Server کادر محاوره ای Properties را می بندد .

اضافه کردن ستونها به یک جدول 
اگر چه یک جدول یک Properties معین برای خود دارد. از قبیل نامی که ما در تمرین آخر به کار بردیم. یک جدول اصولاً به وسیله ستونها که در آن موجود است تعریف می شود .

اضافه کردن یک ستون عددی به جدول 
My Number را در سل Column Name تایپ کرده و سپس Tab را فشار می دهیم . SQL Server ، char را به عنوان نوع داده پیشنهاد می دهد 
نوع داده را برای decimal تغییر می دهیم . SQL Server طول ستون را به 9 تغییر داده و صحت، مقیاس و مشخصات فیلدها را تأیید می کند . 
در سل Description ، Sample Numeric Column را تایپ می کنیم 
Precision ستون را به 5 و Scale را به 2 تغییر می دهیم . SQL Server طول ستون را به 5 برای نمایش دادنPrecision جدید تغییر می دهد .

شرح ستون 
توانایی اضافه کردن یک شرح برای یک ستون در enterprise Manager در 2000 SQL Server جدید می باشد که بخشی از عاملیت جدید است که به طور extended Properties شناخته می شود. مایکروسافت مقداری از خصوصیات گسترده شده را از قبیل Column description به عنوان بخشی از نصب Server استاندارد ایجاد کرده است. شما می توانید به طور کلی خصوصیات گسترده شده را برای ذخیره اطلاعات ویژه سایت یا اطلاعات ویژه کاربردی در حدود شئی های پایگاه داده ایجاد کنید . extended Properties نام کاربر تعریف شده و یک مقدار دارد که مقادیری از یک extended Properties مقادیر sql - variant می باشد که می تواند شامل بیش از 7500 بایت از داده ها باشد. شما می توانید extended Properties چندگانه را برای هر شئی با استفاده از روشهای ذخیره شده تعریف کنید. برای اطلاعات بیشتر در مورد روشهای ذخیره شده (Stored Procedures) به درس 28 رجوع کنید .

Precision و Scale (دقت و مقیاس)
دقت یک ارزش عددی مقدار ماكزیمم از رقمهای decimal است كه ارزش آن را نشان می دهد. برای سمت چپ و راست از نقطه Decimal . مقیاس یک ارزش عددی رقمهای سمت راست از نقطه Decimal می باشد. برای مثال، مقدار عددی 311 . 3647 یك دقت 7 دارد (مجموع شماره رقمها) و یك مقیاس 3 (رقمهای سمت راست از نقطهDecimal) را دارا می باشد. آن مهم می باشد كه بدانیم دقت و مقیاس ارزش یك عدد بر روی طول یك ستون تأثیر نمی گذارد. نوع داده طول ستون را تعیین می كند. دقت و مقیاس تعیین می كند كه چگونه SQL Server داده های ذخیره شده در ستونها را تفسیر می كند 
اضافه كردن یك ستون Identity به جدول 
در یك سل خالی در ستون Column Name كلیك می كنیم .Myidentity را تایپ كرده و سپسTab را فشار می دهیم . SQL Server ، char را به عنوان یك نوع داده پیشنهاد می كند 
نوع داده ها به decimal تغییر می دهیم . SQL Server طول ستون را به تغییر داده و فیلدهای Identity و Scaleو Precision را تأیید می كند 
Allow Nulls را تیك می كنیم .

Nulls : ارزش Nulls یك نوع خاصی از یك ارزش در تكنولوژی رابطه ای می باشد كه استفاده می شود برای نشان دادن اینكه یك ارزش ناپیدا یا غیر موجود می باشد استفاده كردن از Nulls قدری پیچیده و مسئله ساز و قطعاً مورد بحث می باشد 
در سل Description و Sample Identity Column را تایپ می كنیم .

فیلد Identity را به Yes تغییر می دهیم (نه برای Replication )SQL Server برای هر دوی از فیلد Identity Seedو فیلد Increment Identity مقدار 1 را پیشنهاد می دهد .

 




برچسب هاي مطلب: آموزش SQL Server - بخش چهارم, وب سایت کامپیوتر و الکترونیک, دانلود مقالات کامپیوتر, سایت مقاله ها, دانلود مقالات جدید کامپیوتر, برنامه نویسی, پایگاههای داده و برنامه ها, سایت مقاله, مقالات کامپیوتر, www.sunbook.ir,
نوشته شده توسط:حامد ممتاز

 

مطالب مرتبط

 

آخرين مطالب سايت

 

لوگوی دوستان

متفاوت ترین وب سایت سرگرمی

 

بازدیدکنندگان

 

تبادل لينک

 

سايت دوستان



تمامي حقوق ، امتيازات و مطالب براي www.sunbook.ir محفوظ بوده و هر گونه کپي برداري با ذکر منبع مجاز خواهد بود.

Copyright © 2008-2012 by sunbook - All Rights Reserved - Theme design by hamed momtaz
بهترين حالت نمايش و هماهنگي با مرورگرهاي Firefox و Opera و Google Chrome مي باشد