
Data Type ها در SQL Server
SQL Server از انواع مختلف داده (Data Types) برای ذخیره و مدیریت اطلاعات استفاده میکند. هر ستون، متغیر محلی، عبارت و پارامتر در SQL Server دارای نوع داده خاص خود است که مشخص میکند چه نوع دادهای میتواند ذخیره کند. این انواع داده به طور کلی به چهار دسته تقسیم میشوند: عددی (Numeric)، رشتهای (String)، زمانی (Date & Time) و انواع دادههای ویژه (Special Data Types). نوع داده (Data Type) به SQL Server این امکان را میدهد که نه تنها از نوع و اندازه دادههای ورودی مطلع شود، بلکه روش ذخیرهسازی و پردازش آنها را نیز تعیین کند. برای مثال، نوع داده عددی میتواند شامل int، float، decimal و غیره باشد که هر یک از آنها برای ذخیره اعداد با ویژگیهای خاص مورد استفاده قرار میگیرند. دادههای رشتهای مانند varchar و nvarchar برای ذخیره متن به کار میروند. نوع دادههای زمانی مانند datetime و date نیز برای مدیریت و ذخیره اطلاعات مربوط به تاریخ و زمان استفاده میشوند. برای بهینه سازی عملکرد و ذخیره سازی داده ها در SQL Server، انتخاب نوع داده مناسب برای هر ستون یا متغیر ضروری است. در ادامه به معرفی و بررسی دقیق تر انواع داده های پشتیبانی شده در SQL Server خواهیم پرداخت. انواع داده های رشته ای در SQL Server : از Char تا Text در SQL Server، دادههای رشتهای (Character String) به انواع مختلفی تقسیم میشوند که هر یک برای مدیریت و ذخیره سازی متون و کاراکترها به کار میروند. این دادهها به صورت Non-Unicode ذخیره میشوند، به این معنی که از یک بایت برای هر کاراکتر استفاده میکنند. در ادامه به بررسی این انواع دادهها میپردازیم: Char(n) : این نوع داده دارای طول ثابت است و مقدار n تعیین میکند که چند بایت داده میتواند در آن ذخیره شود. n میتواند عددی بین 1 تا 8000 باشد. در صورتی که طول داده واردشده کمتر از n باشد، فضاهای خالی با space از سمت راست پر میشوند. این فضاها هنگام مشاهده داده نادیده گرفته میشوند، اما در پایگاه داده ذخیره میشوند. Varchar(n) : این نوع داده دارای طول متغیر است و میتواند از 0 تا n کاراکتر (با مقدار n بین 1 تا 8000) را ذخیره کند. اندازه ذخیرهسازی این نوع داده، برابر با طول واقعی داده واردشده به علاوه 2 بایت است. در مقایسه با char، این نوع داده فقط به اندازه کاراکترهای واقعی واردشده فضا اشغال میکند. Varchar(max) : این نوع داده نیز دارای طول متغیر است و میتواند حداکثر تا 2 گیگابایت داده را ذخیره کند. مانند varchar(n)، اندازه ذخیرهسازی آن برابر با طول واقعی داده واردشده به علاوه 2 بایت است. این نوع داده به عنوان “large-value data type” شناخته میشود و برای ذخیره مقادیر بزرگتر از 8000 کاراکتر استفاده میشود. Text : نوع داده text برای ذخیره رشتههای بسیار طولانی استفاده میشود و میتواند حداکثر تا 2 گیگابایت داده را ذخیره کند. این نوع داده نیز به صورت Non-Unicode در پایگاه داده ذخیره میشود و برای ذخیرهسازی متون بزرگتر از 8000 کاراکتر کاربرد دارد. آشنایی با انواع دادههای یونیکد در SQL Server : از Nchar تا Ntext Nchar(n) : این نوع داده دارای طول ثابت است و هر کاراکتر با استفاده از دو بایت ذخیره میشود. مقدار n نشاندهنده تعداد کاراکترهایی است که میتوانند در این نوع داده ذخیره شوند و مقدار آن میتواند بین 1 تا 4000 باشد. حتی اگر رشته واردشده کوتاهتر از مقدار مشخصشده باشد، فضای ذخیرهسازی با کاراکترهای خالی (space) پر میشود. از این نوع داده برای ذخیره متون با طول ثابت که نیاز به پشتیبانی از کاراکترهای یونیکد دارند، استفاده میشود. Nvarchar(n) : این نوع داده دارای طول متغیر است و هر کاراکتر با استفاده از دو بایت ذخیره میشود. مقدار n نشاندهنده حداکثر تعداد کاراکترهایی است که میتوانند در این نوع داده ذخیره شوند و میتواند بین 1 تا 4000 باشد. برخلاف Nchar(n), در Nvarchar(n) فضای ذخیرهسازی تنها به اندازه تعداد کاراکترهای واقعی مورد استفاده قرار میگیرد، به علاوه 2 بایت اضافی. این نوع داده برای ذخیره متونی که طول آنها متغیر است، مناسب است. Ntext : نوع داده Ntext نیز برای ذخیره متون با طول متغیر استفاده میشود و حداکثر میتواند 2 گیگابایت داده را ذخیره کند. این نوع داده بیشتر برای مقادیر متنی بزرگتر از 8000 کاراکتر استفاده میشود. هر کاراکتر در Ntext با استفاده از دو بایت ذخیره میشود و حجم ذخیرهسازی بر حسب تعداد کاراکترها و نوع داده واردشده متفاوت است. معرفی کامل انواع داده های عددی : از Int تا Decimal Int (عدد صحیح) : این نوع داده میتواند اعداد صحیح را در بازهی -2,147,483,648 تا 2,147,483,647 ذخیره کند و از 4 بایت فضای حافظه استفاده میکند. این نوع داده به طور گسترده برای ذخیرهسازی اعداد صحیح در پایگاه دادهها مورد استفاده قرار میگیرد. Bigint (عدد صحیح بزرگ) : نوع دادهی Bigint برای ذخیرهسازی اعداد صحیح بسیار بزرگ استفاده میشود و بازهی -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 را پوشش میدهد. این نوع داده از 8 بایت حافظه استفاده میکند و برای مواقعی که اعداد خارج از محدودهی Int هستند، کاربرد دارد. Smallint (عدد صحیح کوچک) : Smallint نوع دادهای است که اعداد صحیح کوچکتر را ذخیره میکند و بازهی -32,768 تا 32,767 را در بر میگیرد. این نوع داده 2 بایت حافظه مصرف میکند و برای مقادیری که نیازی به استفاده از Int نیست، مناسب است. Tinyint (عدد صحیح بسیار کوچک) : Tinyint برای ذخیره اعداد صحیح در بازه 0 تا 255 استفاده میشود و فقط 1 بایت حافظه نیاز دارد. این نوع داده برای مواردی که فقط به ذخیره اعداد کوچک نیاز است، مانند شمارشها، مناسب است. Bit : این نوع داده فقط 0 یا 1 را ذخیره میکند و برای ذخیره دادههای بولی (true/false) یا boolean کاربرد دارد. همچنین، میتواند null پذیر باشد. Bit یکی از کوچکترین واحدهای ذخیرهسازی در SQL Server است. Numeric و Decimal : این دو نوع داده برای ذخیرهسازی اعداد اعشاری با دقت بالا استفاده میشوند. در اینجا، دقت (precision) و مقیاس (scale) برای مشخص کردن تعداد کل ارقام و تعداد ارقام بعد از ممیز تعیین میشود. این نوع دادهها برای ذخیرهسازی دقیق مقادیر پولی و محاسبات حساس به دقت بسیار مناسب هستند. Money : این نوع داده برای ذخیرهسازی








