آموزش SQL Server 2008 - قسمت سوم

سپس در سمت راست صفحه پنجره ساخت Table ظاهر می‌شود. (شکل زیر) که من در آن سه فیلد با Datatypeهای مختلف ساختم.

برای ساخت جدول باید ابتدا فیلدها یا همان ستون‌های جدول تعریف شود. فیلد‌های دارای DataTypeهای مختلفی هستند که به اختصار اونها رو توضیح میدم:

Binary Data
این نوع فیلد‌ها برای نگهداری اطلاعات بصورت بایناری مانند تصاویر مناسب هستند و شامل چهار نوع به شرح زیر می‌باشد:

Binary
این نوع فیلد‌ها، از 1 تا 8000 بایت را در خود جای می‌دهند.

Var Binary
این نوع فیلد‌ها هم از 1 تا 8000 بایت را در خود جای می‌دهند. (متغیر)

Image
این نوع فیلد‌ها از 1 تا حداکثر 2 گیگابایت را می‌توانند ذخیره کنند. فرق این نوع داده‌ها با دو نوع قبلی این است که در دو نوع قبلی، اطلاعات در خود رکورد ثبت می‌شوند ولی در این نوع داده‌ها، اطلاعات در یک Page ذخیره می‌شود و به جایش در رکورد، یک پوینتر 16 بایتی ذخیره می‌شود. این نوع فیلد‌ها در SQL 10 حذف شده و به جایش باید از VarBinary استفاده کرد.


VarBinary(Max)
این نوع Datatype در SQL 2005 معرفی شده و تقریباً همانند داده‌های Image هستند.

Character Data
این نوع فیلد برای نگهداری عبارات و یا حروف ASCII می‌باشد. در این نوع فیلد‌ها، برای نگهداری هر حرف، یک بایت اشغال می‌شود و لذا نیاز به Collation برای تعیین زبان اطلاعات می‌باشد. این نوع فیلد‌ها هم چهار نوع هستند:

Char
این نوع فیلد‌ها، اطلاعات متنی با طول ثابت از 1 تا حداکثر 8000 حرف را در خود ذخیره می‌کنند.

VarChar
این نوع فیلد‌ها اطلاعات متنی با طول متغیر از 1 تا حداکثر 8000 حرف را در خود ذخیره می‌کنند. فرق بین Char و VarChar در این است که در Char، طول رشته ثابت است. یعنی اگر یک فیلد را از نوعChar(20) معرفی کرده و در آن کلمه Orion را قرار دهیم، عین 20 حرف استفاده خواهد شد. یعنی 5 کاراکتر اول را کلمه مربوطه اشغال کرده و 15 کاراکتر باقی‌مانده، Blank خواهند بود. اما در VarChar اینگونه نیست.

Text
در این نوع داده‌ها، اطلاعات از 1 تا 2 مگا حرف ذخیره می‌شود. این نوع داده همانند Image و VarBinary(MAX)در خود رکورد ذخیره نمی‌شوند. بلکه توسط یک پوینتر به جای دیگری اشاره می‌کنند. این نوع داده در SQL 10 حذف شده و بجای آن‌ها ازVarChar(MAX) استفاده می‌شود.

VarChar(Max)
در این نوع داده‌ها، اطلاعات از 1 تا 2 مگا حرف ذخیره می‌شود و مکانیزم آن هم بصورت پوینتری می‌باشد.

Unicode Data

این نوع فیلد‌ها برای نگهداری متون Unicode بوده و برای نگهداری هر حرف، از دو بایت استفاده می‌شود. پس مسلماً نسبت به نوع داده‌های کاراکتری، حافظه بیشتری را به خود اختصاص می‌دهد و در ضمن کمی هم کندتر است. این نوع فیلد‌ها، احتیاج به Collation ندارند.

nChar
در این نوع داده، اطلاعات از 1 تا حداکثر 4000 حرف با طول ثابت ذخیره می‌شود.

nVarChar
در این نوع داده، اطلاعات از 1 تا حداکثر 4000 بایت با طول متغیر ذخیره می‌شود.

nText
در این نوع داده، از 1 تا 1 مگا حرف ذخیره می‌شود. مکانیزم آن هم بصورت Pointer می‌باشد.

nVarChar(MAX)
در این نوع داده از 1 تا 1 مگا حرف ذخیره می‌شود. مکانیزم آن هم بصورت Pointer می‌باشد.

Integer Data
این نوع فیلد برای نگهداری اعداد صحیح و بدون اعشار استفاده می‌گردد و دارای 4 نوع به شرح زیر است. در ضمن این نوع فیلد‌ها رتبه یک سرعت در نوع فیلد‌های عددی را دارد.

TinyInt
یک بایت را اشغال می‌کند و می‌تواند از 0 تا 255 را در خود ذخیره کند.

SmallInt
یک عدد دو بایتی است و می‌تواند از 32767 منفی تا 32767 مثبت را در خود ذخیره کند.

Int
یک عدد چهار بایتی است که می‌تواند اعداد بین مثبت و منفی 2 میلیارد را در خود ذخیره کند.

BigInt
یک عدد 8 بایتی است که می‌تواند اعداد بین مثبت و منفی 4 میلیارد را در خود ذخیره کند.

Money Data
این نوع فیلد برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار ثابت 4 رقمی استفاده می‌شود. این نوع فیلد‌ها، دارای رتبه دوم سرعت در بین انواع داده‌ی عددی است.

SmallMoney
یک عدد 4 بایتی است که می‌تواند 6 رقم صحیح و 4 رقم اعشار را در خود ذخیره کند.

Money
یک عدد 8 بایتی است که می‌تواند 15 رقم صحیح و 4 رقم اعشار را در خود ذخیره کند.

Approximate Data
این نوع فیلد‌ها برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده می‌شود. این نوع داده‌ها رتبه سوم سرعت در بین انواع داده‌های عددی دارند و استفاده از آنها به دلیل کندی، توصیه نمی‌گردد. مگر در مواقع لزوم.

Real
یک عدد 4 بایتی است که اعداد بصورت توانی از 10 نگهداری می‌شوند. (تعداد اعشار مشخص نیست)

Float
یک عدد 8 بایتی که اعداد بصورت توانی از 10 نگهداری می‌شوند. (تعداد اعشار مشخص نیست)

Decimal
این نوع فیلد برای نگهداری اعداد اعشاری با تعداد اعشار مشخص استفاده می‌گردد. این نوع فیلد‌ها بسیار کند بوده و استفاده از آنها توصیه نمی‌گردد. فرمت اینگونه داده‌ها به شکل زیر است:

Decimal (Precision,Scale)

که در آن Precision به معنای تعداد کل رقم‌های عدد و Scale تعداد ارقام اعشار را مشخص می‌کند. مثلاً اگر فیلدری بصورتDeciaml(6,2) تعریف شود، حداکثر آن برابر 9999.99 می‌باشد.

Date/Time
این نوع فیلد‌ها برای نگهداری تاریخ میلادی و ساعت استفاده می‌شود و برای تاریخ شمسی کاربرد ندارد.

SmallDateTime
این نوع فیلد، 4 بایتی است و از سال 1900 تا 2079 را با دقت هزارم ثانیه ذخیره می‌کند.

DateTime
این نوع فیلد، 8 بایتی است و از سال 1700 تا 9999 را با دقت هزارم ثانیه ذخیره می‌کند.


Other DataTypes

برخی از انواع فیلد‌های خاص را در این قسمت به اختصار توضیح میدم:

Bit
یک فیلد دو بیتی است و می‌تواند 0 و 1 و Null را ذخیره کند.کاربرد آن در زمان‌هایی است که دو حالت وجود داشته باشد. مانند جنسیت زن و مرد.

TimeStamp
در این فیلد 8 بایتی، تایم لحظه‌ای اجرای دستور نگهداری می‌شود و کاربرد آن کنترل بروزرسانی همزمان (Concurrency) اطلاعات توسط چند کاربر است. البته در تعداد رکوردهای پایین به کار نمی‌آید و بیشتر زمانی مورد نیاز است که تعداد رکوردها خیلی زیاد باشد مثلاً 100 میلیون رکورد!

UniqueIdentifier
این فیلد 16 بایتی، به ما کدی Unique یا تک می‌دهد که به اصطلاح GUID می‌گویند. یکی از کاربردهای آن در Replication است.

SQL_Variant
این نوع فیلد برای نگهداری انواع داده استفاده می‌شود و نوع آن با توجه به اولین مقداری که در آن قرار می‌گیرد تعیین خواهد شد. چون نوع و حجم فیلد مشخص نیست، لذا تنها یک اشاره‌گر 16 بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری می‌شود. استفاده از این نوع فیلد، توصیه نمی‌گردد.

‍Cursor
این فیلد مربوط به کنترل Cursor است که در آینده توضیح میدم.

Table
این نوع فیلد را هم در زمان آموزش Functionها خواهید آموخت

XML
این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده می‌شود و شامل انواع MetaDataهای مختلف است. این فیلد در SQL 2005 معرفی گردید.

منبع : پاتوق

/ 0 نظر / 140 بازدید