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

ايجاد كردن جداول
جداول يك واحد تابعي از انبار داده ها در يك پايگاه داده هاي مرتبط مي باشند. به عنوان يك قاعده كلي، هر نوع از موجوديتها از قبيل Essential Oil در پايگاه داده نمونه مان به وسيله يك جدول نشان داده مي شود، نظر به اينكه هر نمونه از آن موجوديتها از قبيلGerman Chamomile Clary Sage به وسيله يك سطر در جدول نشان داده مي شود.

طراحي پايگاه داده
در بيشترين روش رايج براي تعريف پايگاه داده ها از راهكارهاي (مفهومهاي) Entities و Attributes استفاده مي كنيم زماني كه شما از طراحي منطقي به طراحي فيزيكي پيش مي رويد. موجوديتها معمولاً به صورت جداول پياده سازي مي شوند و مشخصه ها (Attributes) در ستونها پياده سازي مي شوند. (همچنين در فيلدها شناخته مي شوند)

شناخت انواع داده ها
هر ستون در جدول داراي خصوصيات معين مي باشد كه آن را براي SQL Server تعريف مي كند. مهمتر از اين خصوصيات، نوع داده هاي ستون مي باشد، كه تعريفي از نوع اطلاعاتي كه درستونها ذخيره خواهند شد مي باشد. SQL Server يك محدوده وسيعي از انواع داده ها را فراهم آورد كه در جدول 1-5 نشان داده شده است. به طور كلي انواع داده ها به وسيله 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 براي يك جدول جديد مي باشد.

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

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

اضافه کردن يک ستون عددي به جدول
1- My Number را در سل Column Name تايپ کرده و سپس Tab را فشار مي دهيم. SQL Server، char را به عنوان نوع داده پيشنهاد مي دهد.
2- نوع داده را براي decimal تغيير مي دهيم. SQL Server طول ستون را به 9 تغيير داده و صحت، مقياس و مشخصات فيلدها را تأييد مي کند.
3- در سل Description ، Sample Numeric Column را تايپ مي کنيم.
4- 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 به جدول
1- در يك سل خالي در ستون Column Name كليك مي كنيم.Myidentity را تايپ كرده و سپسTab را فشار مي دهيم. SQL Server ، char را به عنوان يك نوع داده پيشنهاد مي كند.
2- نوع داده ها به decimal تغيير مي دهيم. SQL Server طول ستون را به 9 تغيير داده و فيلدهاي Identity و Scale و Precision را تأييد مي كند.
3- Allow Nulls را تيك مي كنيم.

Nulls
ارزش Nulls يك نوع خاصي از يك ارزش در تكنولوژي رابطه اي مي باشد كه استفاده مي شود براي نشان دادن اينكه يك ارزش ناپيدا يا غير موجود مي باشد استفاده كردن از Nulls قدري پيچيده و مسئله ساز و قطعاً مورد بحث مي باشد.
4- در سل Description و Sample Identity Column را تايپ مي كنيم.
5- فيلد Identity را به Yes تغيير مي دهيم (نه براي Replication)SQL Server براي هر دوي از فيلد Identity Seed و فيلد Increment Identity مقدار 1 را پيشنهاد مي دهد.

ارزشهاي Identity
زماني كه شما خصوصيات Identity يك ستون را تنظيم مي كنيد، شما به SQL Server مي گوييد كه يك مقدار را در داخل ستون كه به طور واحد هر سطر را مشخص مي كند قرار دهد. نوع داده انتخاب شده ماهيت دقيق از ستون را تعيين مي كند. ستونهاي Identity مي توانند نوع داده هايي مانند int و Smallint و tinyint يا decimal داشته باشند. زماني كه SQL Server يك سطر را در داخل يك جدول كه داراي يك ستون Identity است قرار مي دهد. آن به طور خودكار ارزشي براي ستون مبني بر ارزش استفاده شده اخير (كه با Identity Seed شروع مي شود) و Identity Increment مشخص شده زماني كه جدول ايجاد شده بود ايجاد مي كند. براي مثال، اگر يك ستون Identity به عنوان يك Small int با Identity Seed ، 50 و يک Identity Increment ، 5 تعريف شود اولين سطر عدد 50 و دومين سطر 55 و سومين سطر 60 و غيره تخصيص داده مي شود فقط يک ستون در يک جدول مي تواند تنظيمات Identity Property را داشته باشد.

اضافه کردن ستون GUID به جدول
1- در يك سل خالي در ستون Column Nameكليك کرده، My Guid را تايپ کرده و سپس Tab را فشار مي دهيم. SQL Server ، نوع داده char را پيشنهاد مي دهد.
2- نوع داده را به Uniqueidentifier را تغيير مي دهيم. SQL Server طول ستون را به 16 تغيير داده و فيلد IsrowGuid را تأييد مي کند.
3- در سل Description ، Sample Guid تايپ مي کنيم.
4- IsrowGuid را به Yes تغيير مي دهيم. SQL Server يک مقدار پيش فرض به Newid( ) مي دهد.

GUIDS
Guid که از GloballyUniqueIdentifier گرفته شده، يک مقادير باينري (1 و 0) 16 بايتي مي باشد که هيچ کامپيوتر ديگري در دنيا نخواهد مقدار آن را توليد کند. نوع داده uniqueidentifier براي ذخيره کردن Guids استفاده مي شود. SQL Server به طور خودکار مقادير Guid را از همان راهي که مقادير Identity ايجاد مي شود، فراهم نمي کند. زيرا يک جدول مي تواند شامل Guids چندگانه باشد، اما فقط يک Identity منحصر به فرد باشد. اگر چه، تابع NEWID که SQL Server آن را به صورت پيش فرض در نظر مي گيرد زماني که خصوصيات IsrowGuid ، Yes مي شود. يک Guid جديد بر خواهد گشت زماني که سطر قرار داده مي شود.

اضافه کردن يک ستون Data در جدول
1- در يک سل خالي در ستون Column Name کليک کرده، Mydata را تايپ کرده و سپس Tab را فشار مي دهيم. SQL Server ، char را به عنوان نوع داده در نظر مي گيرد.
2- نوع داده را به datetime تغيير مي دهيم. SQL Server طول ستون را به 8 تغيير مي دهد.
3- در سل Sample Date Column Description را تايپ مي کنيم.

اضافه کردن يک ستون Character به جدول
1- در يک سل خالي در ستون Column Name کليک کرده، Mychar را تايپ و سپس Tab را فشار مي دهيم. SQL Server ، char را به عنوان نوع داده در نظر مي گيرد.

انواع داده هاي Character
SQL Server دو نوع مختلف از ستونها Character را پشتيباني مي کند. طول ثابت شده و طول متغير که هر کدام در دو ""Flavors مختلف Unicode و Non-Unicode و 3 طول متفاوت مي باشند. Unicode يک روش از علامت کد گذاري مي باشد که انواع بايتهاي دابل را پشتيباني مي کند. اگر يک ستون به طور طول متغير نمايان شود (براي مثال، varchar يا text براي داده هاي Non-Unicode و nvarchar و ntext براي داده هايUnicode ) و SQL Server فقط خصوصيت داده هاي معين وارد شده را ذخيره خواهد ساخت. از طرف ديگر اگر ستون به صورت طول ثابت شده نمايان شود (char براي Non-Unicode داده nchar براي داده هاي Unicode) و SQL Server مقادير وارد شده را با فضاهاي Pad خواهد کرد.
2- طول ستون را به 25 تغيير مي دهيم.
3- در سل Description ، Sample Character Column را تايپ مي کنيم.
4- Unknown را در سل Default Valve تايپ مي کنيم (اطمينان حاصل کنيد که اطراف کلمه ويرگول داشته باشد).

مقادير پيش فرض
يک Default Valve يک عددي مي باشد که در داخل يک ستون قرار خواهد گرفت اگر کاربر به طور آشکار يکي را فراهم نکند. ما تاکنون دو نوع ويژه از مقادير پيش فرض را ديده ايم default Values به وسيله SQL Server تهيه مي شود زماني که شما Identity Property را تنظيم مي کنيد و تابع NEWID به وسيله SQL Server تهيه مي شود زماني که شما IsrowGuid را تنظيم مي کنيد. در حقيقت، شما مي توانيد مقادير پيش فرض را براي هر ستون مشخص کنيد. مقادير پيش فرض مي تواند دائمي باشد مانند "Unknown" يا 123 توابعي از قبيل NEWID يا GETDATE يا عبارات رياضي مانند 5+3 .

ذخيره کردن و بستن جداول
1- دکمه Save را در نوار ابزار Table Designer کليک مي کنيم. SQL Server تعريف جدول را ذخيره مي سازد.
2- پنجره را مي بنديم.

مديريت جداول
اگر چه "Best Practice" امر مي کند که طراحي پايگاه داده تان بايد ثابت باشد قبل از اينکه شما پياده سازي را شروع کنيد. خوشبختانه SQL Server به انجام رساني وظايف نگهداري را آسان مي سازد.

تغيير دادن ستونها
شما مي توانيد مجدد Table Designer را براي يک جدول به وسيله کليک راست کردن نام جدول در قاب Details باز کنيد و Design Table را از منوي Context انتخاب کنيد. همان موقعي که Table Designer باز مي شود شما مي توانيد خصوصيات ستونهاي موجود را تغيير دهيد آنها را حذف و يا ستون جديدي را اضافه کنيد.

تغيير نام يک ستون
1- پوشه Tables را براي پايگاه داده Aromatherapy در درخت Console انتخاب مي کنيم. SQL Server يک ليستي از جداول در قاب Details را نشان مي دهد.
2- جدول 5 Lesson را در قاب Details کليک راست کرده و Design Table را انتخاب مي کنيم. SQL Server ، Table Designer را باز مي کند.
3- Mychar را در سل Column Name انتخاب و MyCharacter را تايپ مي کنيم. SQL Server ، Column Name را تغيير مي دهد.
4- دکمه Save را در نوار ابزار Table Designer کليک کرده و تغييرات را ذخيره مي سازيم.

برداشتن يک ستون
1- ستون Mydate را به وسيله کليک کردن روي gray Boy در سمت چپ از Column Name انتخاب مي کنيم.
2- کليد Delete را فشار مي دهيم. SQL Server ستون را برمي دارد.
3- کليد Save را براي ذخيره کردن تغييرات کليک مي کنيم.
4- پنجره Table Designer را مي بنديم.

تغيير دادن جداول
به طور کلي براي تغيير تعريف ستونهاي يک جدول، Enterprise Manager تغيير نام دادن جداول را آسان مي سازد و جداول را از پايگاه داده حذف مي کند.

تغيير نام يک جدول
1- پوشه Table را در پايگاه داده Aromatherapy در درخت Console راهبري مي کنيم. SQL Server يک ليستي از جداول در قاب Details نشان مي دهد.
2- جدول 5 Lesson را در قاب Details کليک راست کرده و Rename را انتخاب مي کنيم.
3- New Lesson 5 را تايپ و Enter را فشار مي دهيم. SQL Server کادر محاوره اي Rename را نشان مي دهد که به شما اخطار مي کند که تغيير در نام جدول هر رابط براي آن را در شئي هاي ديگر، باطل خواهد کرد.
4- View Dependencies را براي نشان دادن هر شئي که ممکن است به وسيله تغييرات تأثير يابد را کليک مي کنيم. SQL Server کادر محاوره اي Dependencies را باز مي کند.
5- Close را براي مرخص کردن کادر محاوره اي کليک مي کنيم.
6- Yes را در کادر محاوره اي Rename براي تأييد تغيير نام کليک مي کنيم. SQL Server نشان مي دهد يک متني را که تکميل موفقيت آميز تغيير نام را تأييد مي کند.

برداشتن يک جدول
1- New Lesson 5 را در قاب Details انتخاب مي کنيم.
2- کليد Delete را فشار مي دهيم. SQL Server کادر محاوره اي Drop Object را نشان مي دهد.
راهنمايي: شما مي توانيد دکمه Show Dependencies را براي نشان دادن هر Objects که متأثر خواهد شد به وسيله حذف جدول کليک کنيد.
3- Drop All را کليک مي کنيم. SQL Server جدول را از پايگاه داده برمي دارد.
مهم: زماني که شما يک جدول را حذف مي کنيد، جدول و همه داده هايش به طور دائمي از پايگاه داده برداشته مي شود و تنها راه براي بازگرداندن آن نسخه پشتيبان پايگاه داده مي باشد