انواع داده ها در SQL سرور | آشنایی با آنها +نکات مهم و کاربردی
سلام به همراهان سافت پلاس و علاقمندان کار با نرم افزار قدرتمند SQL سرور . در ادامه مطالب مربوط به آموزش SQL سرور امروز می خواهیم به سراغ مطلبی با عنوان آشنایی با انواع داده ها در SQL سرور برویم .
اگر در کار با نرم افزار SQL سرور 10 تا نقطه شروع برای یادگیری وجود داشته باشد حتما و مطمئنا آشنایی با دیتا تایپ ها یا همان فرمت داده ها یکی از مهمترین آنهاست .
همینطور اگر 10 تا مطلب فوق العاده مهم در یادگیری SQL سرور وجود داشته باشد که باید کار با آنها را بطور کامل و 100 درصدی یاد بگیرید باز هم شک نکنید که آشنایی با انواع داده ها یکی از مهمترین آنهاست .
امروز و در داخل این مطلب هم می خواهیم به طور کامل با انواع داده ها در اس کو ال سرور آشنا شویم .
راجع به اهمیت انواع دیتا تایپ ها در SQL سرور صحبت کنیم .
با ویژگی های هر کدام از انواع داده ها در SQL سرور آشنا شویم .
و یاد بگیریم که کی و کجا باید از کدام یکی از آنها استفاده کنیم ؟
پس بدون هیچ مقدمه دیگری از شما می خواهم که تا انتهای این آموزش هم من را همراهی کنید .
من علیرضا شهرآئینی هستم و به شما قول می دهم که با مطالعه این مطلب صفر تا 100 کار با دیتا تایپ ها را در اس کو ال سرور یاد بگیرید .
دیاگرام زیر یک نمای کلی از تمامی دیتا تایپ های موجود در SQL سرور را به همره دسته بندی هایی که روی آنها اعمال می شود را نمایش میدهد .
چند دقیقه وقت بگذارید و یک نگاهی به آن بیندازید تا در ادامه به سراغ یک به یک آنها برویم و با کاربرد هر کدامشان آشنا شویم .
همانطور که مشاهده می کنید SQL سرور شامل 36 نوع داده مختلف است که برای سهولت یادگیری آنها را در دسته بندی هایی مجزا قرار داده اند .
ما هم همین دیاگرام و دسته بندی های آن را ملاک عمل قرار داده و کار آشنایی با انواع داده ها در هر گروه را با هم پیش می بریم .
فهرست محتوا
معرفی و آشنایی با داده های نوع عددی
از داده های نوع عددی شروع کنیم .
یکی از مهمترین انواع دیتا تایپ ها در اس کو ال سرور همین داده های عددی هستند .
همانطور که می دانید اعداد می توانند یک طیف گسترده ای را شامل شوند . از اعداد خیلی کوچک تا اعداد خیلی بزرگ و اعداد اعشاری یا اعداد صحیح بدون رقم اعشار .
اس کو ال سرور برای اینکه بهتر بتواند این طیف گسترده اعداد را مدیریت کند یک دسته بندی روی آنها اعمال کرده و اعداد را در دو تا دسته کلی اعداد دقیق و اعداد تقریبی قرار داده است .
یک مطلب خواندنی : ایجاد دیتابیس در SQL server به کمک 2 روش کاربردی
حالا اینکه این دو نوع داده عددی چه تفاوتی با هم دارند و کجا ها باید از کدام یکی استفاده کنیم را در ادامه با هم یاد خواهیم گرفت
اول برویم به سراغ داده های عددی دقیق
داده های عددی دقیق یا Exact Number
خیلی جاها هست که شما می خواهید یک سری اعداد را به صورت دقیق وارد کنید .
در واقع اینجا دقت اعداد برایتان خیلی مهم است .
حالا این اعداد دقیق می توانند بصورت اعداد صحیح باشند یا اعداد اعشاری یا مقادیر پولی . هیچ فرقی ندارد .
اما چون این نوع اعداد یک بازه خیلی وسیعی را در بر می گیرند SQl سرور باز هم آنها را به یک سری زیر مجموعه تقسیم بندی کرده است .
اینجا ملاک تقسیم بندی محدوده و بازه ای است که SQL سرور برای آن عدد تعریف می کند .
باز هم تاکید می کنم که اینجا دقـــت اعداد است که خیلی مهم است .
توی دیاگرام بالا خیلی خوب می توانید متوجه شوید که هر کدام از این نوع داده های عددی در چه موقعیتی نسبت به هم قرار دارند .
حالا بیایید به سراغ یک به یک آنها رفته و با بازه اعداد مربوط به هر کدامشان آشنا شویم .
یک مطلب خواندنی : اصطلاحاتی که هر متخصص SQL سروری باید با آنها آشنا باشد
داده عددی نوع tinyint
این کوچکترین محدوده از اعداد در SQL سرور است .
داده نوع tinyint می تواند اعدادی که در بازه 0 تا 255 هستند را در خودش ذخیره کند .
حجم فضایی که این داده از سیستم اشغال می کند در حد 1 بایت است .
داده عددی نوع small int
اگر عددی که می خواهید آن را ذخیره کنید بیشتر از عدد 255 است باید به سراغ داده نوع smallint بیایید .
داده نوع smallint می تواند اعدادی که در بازه 32768- تا 32767+ هستند را در خودش ذخیره کند .
یعنی این نوع داده، داده عددی tinyint را هم در داخل خودش جا می دهد.
حجم فضایی که این داده از سیستم اشغال می کند در حد 2 بایت است .
داده عددی نوع int
اگر می خواهید اعداد بالای 5 رقم و اعداد میلیاردی را ذخیره کنید باید به سراغ داده int بیایید .
داده نوع int می تواند اعدادی که در بازه 2,147,483,648- تا 2,147,483,647+ هستند را در خودش ذخیره کند .
یعنی این نوع داده، داده های عددی smallint و tinyint را هم در داخل خودش جا می دهد.
حجم فضایی که این داده از سیستم اشغال می کند در حد 4 بایت است .
داده عددی نوع Bigint
اعداد مورد نظرتان برای ذخیره سازی حتی از 2 میلیارد هم بیشتر است ؟
پس دیگر داده نوع Smallint هم برای شما جوابگو نیست و باید به سراغ داده عددی از نوع Bigint بیایید .
داده نوع Bigint ، داده های عددی smallint و tinyint و Smallint را هم در داخل خودش جا می دهد.
داده نوع int می تواند اعدادی که در بازه 9,223,372,036,854,775,808- تا 9,223,372,036,854,775,808+ هستند را در خودش ذخیره کند .
امیدوارم که دیگر این نوع داده عددی کارتان را راه بیندازد چون خود این عددها را هم دیگر نمی شود خواند .
حجم فضایی که این داده از سیستم اشغال می کند در حد 8 بایت است .
نکته : هیچ کدام از دیتا تایپ های بالا قادر به ذخیره کردن اعداد بصورت اعشار نیستند .
داده عددی نوع Smallmoney
اگر در یک ستون از جدول می خواهید اعدادی را ثبت کنید که این اعداد و ارقام بیانگر مبالغ و مقادیر پولی هستند باید به سراغ داده smallmoney بیایید .
داده smallmoney محدوده اعداد 214,748/3648- تا 214,748/3648+ را شامل می شود .
حجم فضایی که داده نوع Smallmoney برای ذخیره سازی می خواهد معادل 4 بایت است .
داده عددی نوع money
اگر مبالغی که با آنها سر و کار دارید در محدوده ارقام داده نوع smallmoney نمی گنجد باید به سراغ داده نوع money بروید .
داده money شامل محدوده اعداد ,922,337,203,685,477/5808- تا 922,337,203,685,477/5808+ می شود .
داده نوع money شامل 19 رقم است که از بین آنها 15 رقم عدد صحیح و 4 رقم به صورت اعشار است . حجم فضایی که داده نوع money برای ذخیره سازی می خواهد معادل 8 بایت است .
اینها مهمترین داده های نوع عددی در اس کو ال سرور بودند . در ادامه با سراغ داده های متنی می رویم .
داده های نوع متنی در SQL سرور
داده های متنی هم به نوع خودشان به 2 تا دسته متن های یونیکدی و غیر یونیکدی تقسیم می شوند . در ادامه راجع به هر دو تای این موارد اشاره و با آنها آشنا خواهیم شد .
اول به سراغ داده های نوع غیر یونیکدی می رویم .
داده متنی نوع ( n ) char
از این نوع داده برای ذخیره کردن متن هایی با طول ثابت که از تعداد دقیق کاراکترهای آن اطلاع دارید استفاده می شود .
داده هایی مثل کد پستی- شماره موبایل و یا کد ملی مثال هایی از این نوع داده ها هستند .
در اینجا حرف n مشخص کننده تعداد کاراکترهایی است که برای یک متن در نظر گرفته می شود .
n می تواند یک عدد بین 1 تا 8000 باشد .
مثلا برای کد پستی و کد ملی n=10 و برای شماره موبایل برابر با n=11 خواهد بود .
حجم فضایی هم که این نوع داده اشغال می کند معادل 1 بایت به ازای هر یک کاراکتر می باشد .
اما یک سوال . فرض کنید که تعداد کاراکترها برای اطلاعات ستونی را بصورت char(25) تعیین می کنید .
اما اگر به جای 25 کاراکتر فقط 15 کاراکتر را وارد کنید تکلیف بقیه 10 کاراکتر چه می شود ؟
خب در این نوع داده بقیه کاراکترها با فضای خالی یا همان space پر می شوند .
نکته : در این نوع داده بیشتر سرعت جستجو مد نظر است تا فضای اشغال شده توسط داده ها
داده متنی نوع ( n ) VARchar
اگر متنی دارید اما نمی دانید تعداد کاراکترهایش دقیقا چند تاست باید به سراغ این نوع داده بیایید .
اده هایی مثل نام – نام خانوادگی – آدرس ها مثال هایی از این نوع داده هستند .
در اینجا هم n که نشان دهنده تعداد کاراکترهای مورد نظر است می تواند یک عدد بین 1 تا 8000 باشد .
فقط یک تفاوت بین این نوع داده و داده قبلی وجود دارد و آن هم اینکه اگر تعداد کاراکترهای متن وارد شده کمتر از عدد تعیین شده در n باشد بقیه کاراکترهای باقی مانده دیگر با فضای خالی یا space پر نمی شوند .
بنابراین اینجا یک صرفه جویی در فضای ذخیره شده توسط این نوع داده ایجاد می شود .
نکته : در این نوع داده بیشتر فضای ذخیره سازی مد نظر است تا سرعت جستجوی داده ها
داده متنی Text
اگر متن هایی که می خواهید ذخیره کنید بیشتر از 8000 تا کاراکتر دارند باید به سراغ داده نوع Text بیایید .
داده نوع Text به تعداد 2 به تون 31 کاراکتر متنی را می تواند در داخل خودش ذخیره کند که یک عدد فوق العاده بزرگ است .
یک داده نوع text می تواند تا 2 گیگابایت فضا را اشغال کند .
دیدگاهتان را بنویسید