انواع داده در SQL Server

انواع داده در SQL Server

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۲۳ مهر ۱۴۰۲
آخرین بروزرسانی: ۰۵ آذر ۱۴۰۲
زمان مطالعه: 10 دقیقه
۴.۵
(۱۱)

معرفی انواع داده در SQL Server

آشنایی با انواع داده در SQL Server یکی از موارد پراهمیت و بنیادی در یادگیری پایگاه داده است. شما به‌عنوان فردی که با پایگاه داده کار می‌کند، چه به‌صورت حرفه‌ای و در سطوح سازمانی و چه به شکل مبتدی، باید دیتا تایپ‌ها و مفاهیم مربوط به آن‌ها را به‌خوبی درک کنید. به کمک نوع های داده، مواردی همچون افزایش دقت داده‌ها، بهینه‌سازی کوئری‌ها و به‌طور کلی، کیفیت داده‌ها تضمین می‌شود. اگر با انواع Data Type آشنایی ندارید، پیشنهاد می‌شود با خواندن این مطلب، دانش خود در حوزه پایگاه داده را افزایش دهید. البته پیش از بررسی انواع داده در SQL Server، قصد داریم مقدماتی از چیستی داده‌ها و نکات آن را شرح دهیم.

 

داده چیست؟

در SQL Server، داده‌ها به اطلاعاتی گفته می‌شود که با ساختار خاصی درون یک پایگاه داده ذخیره شده‌اند. با کمک SQL Server می‌توان داده‌های ذخیره‌شده در دیتابیس را مدیریت و استخراج کرد.

 

نکات مهم داده ها در SQL Server

نکات پراهمیت مربوط به انواع داده در SQL Server به شرح زیر است:

  • جدول‌ها: هر یک از جداول پایگاه داده به اطلاعاتی خاصی اختصاص داده می‌شوند. به‌عنوان مثال، برای ذخیره‌سازی جزئیات مشتریان، یک جدول تحت عنوان Customers و برای نگهداری اطلاعات مربوط به محصولات، جدول Products را داریم.
  • سطرها (Rows): درون هر یک از جداول پایگاه داده، سطرها (یا همان ردیف‌ها) قرار دارند که در آن‌ها داده‌های مرتبط به هم وجود دارد. به‌عنوان مثال، در جدول مشتری، هر یک از سطرها نمایانگر یک مشتری مختلف به‌همراه نام، آدرس و اطلاعات مربوط به ارتباط با آن‌ها است.
  • ستون‌ها (Columns): بااستفاده از ستون‌های پایگاه داده تعریف می‌شود که در هر سطر، چه نوع اطلاعاتی ذخیره خواهد شد. به‌عنوان مثال، ممکن است در جدول مشتریان (Customers)، ستون‌هایی با نام‌های شماره کاربری مشتری (CustomerID)، نام (FirstName)، نام خانوادگی (LastName) و موارد دیگر وجود داشته باشد.
  • نوع‌های داده (Data Types): در SQL Server داده‌ها می‌توانند نوع داده مشخصی داشته باشند که این دیتا تایپ‌ها نشان می‌دهند داده‌ها به چه صورتی در هر یک از ستون‌ها ذخیره‌سازی شوند. به‌عنوان نمونه، ستون مربوط به تاریخ تولد (DateOfBirth) باید به‌صورت نوع داده تاریخ (Date) باشد.
  • کوئری‌ها (Queries | پرسمان‌ها): به‌واسطه کوئری‌های SQL Server، این امکان برای شما فراهم می‌شود که سؤال‌های خاصی از دیتابیس بپرسید یا بخش‌های مشخصی از داده‌ها را استخراج کنید.

دوره کوئری نویسی در SQL Server نیک آموز

در این بخش، به مقدماتی از داده‌ها در SQL پرداختیم. حال در ادامه قصد داریم انواع داده در SQL Server را به‌طور مفصل مورد بررسی قرار دهیم.

 

انواع داده در SQL Server

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

 

انواع داده در SQL Server

 

نوع داده عددی دقیق (Exact Numeric)

از میان انواع داده در SQL Server، نوع داده‌های عددی Exact برای ذخیره‌سازی داده‌ها همراه دقت، مورد استفاده قرار می‌گیرند. این نوع‌های داده برای شرایطی مناسب‌‌اند که می‌خواهیم دقت داده‌ها به‌طور کامل حفظ شود. به‌عنوان مثال، وقتی که با داده‌‌های مالی، کمیت‌های دقیق یا شمارش آیتم‌ها سروکار داریم، انواع داده عددی دقیق کاربرد دارند. انواع آن عبارتند از:

  • BIT: بیت نشان‌دهنده یک مقدار دودویی با ۲ حالت ممکن (صفر و یک) است و معمولاً برای داده‌های بولین (Boolean) کاربرد دارد.
  • INT: برای ذخیره‌سازی اعداد صحیح علامت‌دار (۳۲ بیتی) از نوع داده INT استفاده می‌شود. این دیتا تایپ بازه گسترده‌ای از مقادیر را پوشش می‌دهد. توجه کنید که معمولاً در اغلب موارد از این نوع داده برای نگهداری اعداد صحیح استفاده می‌شود.
  • TINYINT: به‌منظور ذخیره‌سازی اعداد صحیح بدون علامت در رنج عددی صفر الی ۲۵۵ کاربرد دارد. معمولاً برای اعداد کوچک، مانند سن افراد یا تعداد موجودی یک محصول، این نوع داده به کار می‌رود.
  • SMALLINT: اگر بخواهید اعداد صحیح بزرگ، مانند ID کارمندان یا تعداد سفارش‌ها را ذخیره کنید، نوع داده SMALLINT مناسب است.
  • BIGINT: از میان انواع داده در SQL Server، این نوع Data Type به شما امکان نگهداری اعداد بسیار بزرگ را می‌دهد.
  • NUMERIC یا DECIMAL: در شرایطی که بخواهید اعداد ممیز ثابت (با دقت مشخص) را ذخیره کنید، این نوع داده برای شما مطلوب است. به‌عنوان مثال، می‌توانید مقادیر ارزی یا محاسبات مالی همراه با دقت مشخص را با این Data Type در پایگاه داده خود نگهداری کنید.

نوع داده عددی دقیق (Exact Numeric)

 

نوع داده عددی تقریبی (Approximate Numeric)

در بین انواع داده در SQL Server، یک دیتا تایپ خاص برای ذخیره‌سازی اعداد ممیز شناور (Floating Point) و مقادیر عددی تقریبی وجود دارد. نوع داده‌های تقریبی برای مواردی به کار می‌روند که دقت (Precision)، یک معیار ضروری نیست و رند شدن (Rounding) یا تقریب زدن اعداد تا حدی قابل قبول باشد.

  • FLOAT: برای ذخیره‌سازی داده‌های عددی تقریبی (Approximate Numeric) که دقت (Precision) در آن‌ها متفاوت است، از دیتا تایپ فلوت استفاده می‌کنیم. به‌عنوان مثال، در محاسبات مهندسی، داده‌های علمی و سنجش دما می‌توان از Float استفاده کرد.
  • REAL: این DataType برای ذخیره‌سازی داده‌های ممیز شناور (با دقت واحد) استفاده می‌شود. مشابه نوع داده Float، در مواردی که با داده‌های عددی تقریبی سروکار داریم، آن را به کار می‌بریم.
  • DOUBLE PRECISION: از میان انواع داده در SQL Server، این نوع داده از Float و Real دقت بیشتری دارد؛ اما همچنان در گروه ذخیره‌سازی داده‌های ممیز شناور دسته‌بندی می‌شود.

نوع داده عددی تقریبی (Approximate Numeric)

نوع داده رشته کاراکتری (Character String)

یکی دیگر از انواع داده در SQL Server، رشته‌های کاراکتری هستند که به‌منظور ذخیره‌سازی دیتای متنی و کاراکترها، مورد استفاده قرار می‌‌گیرند. این Data Type ها برای نگهداری تمامی نام‌ها، آدرس‌ها و اساساً توضیحات و محتوای متنی، ضروری محسوب می‌شوند. رایج‌ترین رشته‌های کاراکتری به شرح زیر است:

  • CHAR(n): برای ذخیره کردن مقادیری مانند کد پستی یا کدهایی که طولشان مشخص و ثابت است، استفاده می‌شود. در حقیقت، این نوع داده برای رشته‌های کاراکتری با طول ثابت (n) کاربرد دارد.
  • VARCHAR(n): اگر بخواهید یک داده متنی با «طول متغیر»، مثل نام افراد یا توضیحات، ذخیره کنید، نوع داده VARCHAR مناسب است. در چنین شرایطی متغیر n، نماد حداکثر طول آن خواهد بود.
  • TEXT: ذخیره‌سازی محتوای متنی وسیع مانند مقالات، کامنت‌ها و یادداشت‌ها، همگی ازطریق نوع داده Text امکان‌پذیر است.
  • NCHAR(n): در صورتی که نیاز باشد رشته‌های کاراکتری یونی کد (Unicode) با طول ثابت n ذخیره کنیم، این دیتا تایپ خاص از انواع داده در SQL Server مطلوب خواهد بود.
  •  NVARCHAR(n): اگر بخواهید رشته‌های کاراکتری یونی کد با طول متغیر (حداکثر طول n) را ذخیره‌سازی کنید، باید از NVARCHAR(n) استفاده بشود.
  •  NTEXT: به منظور نگهداری محتوا یونی کد گسترده از این نوع داده کمک می‌گیریم.

 

نوع داده عددی تقریبی (Approximate Numeric)

به‌طور کلی، انواع رشته‌های کاراکتری، چه آن‌هایی که یونی کد نیستند (CHAR, VARCHAR, TEXT) و چه آن‌هایی که یونی کد (NCHAR, NVARCHAR, NTEXT) هستند، همگی برای نگهداری اطلاعات متنی و مجموعه کاراکترها استفاده می‌شوند. معمولاً داده‌های یونی کد از چندین زبان مختلف یا مجموع کاراکترها پشتیبانی می‌کنند. بنابراین، هنگام انتخاب دیتا تایپ رشته‌ای از انواع داده در SQL Server، سعی کنید آن را براساس طبیعت داده‌هایی که می‌خواهید ذخیره کنید و طول متن مورد انتظار انتخاب کنید. استفاده از Data Type مناسب کمک می‌کند تا فضای ذخیره‌سازی بهینه‌سازی شود و این تضمین به شما داده می‌شود که اسکیمای پایگاه داده دقیقاً منعکس‌کننده نیازمندی‌های داده‌ها سیستم شما باشد.

 

انواع داده در SQL Server

 

نوع داده دودویی (Binary)

دیتا تایپ دودویی (Binary) برای ذخیره‌سازی داده‌ها باینری استفاده می‌شود. این اطلاعات باینری مواردی همچون تصاویر، فایل‌های صوتی، داده‌های رمزگذاری شده و هرگونه از انواع داده در SQL Server که در قالب‌های عددی یا کاراکتری قرار نمی‌گیرد را پوشش می‌دهد. در ادامه، مرسوم‌ترین انواع داده باینری SQL Server را شرح می‌دهیم:

  • BINARY(n): برای ذخیره کردن داده‌های دودویی با طول ثابت (n) به کار می‌رود. به‌عنوان مثال، برای نگهداری مقادیر مربوط به کلیدهای رمزنگاری، این نوع داده مناسب است.
  • (n)VARBINARY: از این نوع داده برای ذخیره‌سازی داده‌های دودویی با طول متغیر (حداکثر n)، مانند تصاویر و یا ضمیمه‌‌های اسناد، استفاده می‌شود.
  • IMAGE: این نوع Data Type، امکان ذخیره‌سازی داده‌ها باینری به طول بسیار زیاد، شامل تصاویر، فایل‌های صوتی و اسناد باینری را به شما می‌دهد.
  • (max)VARBINARY: مشابه VARBINARY عمل می‌کند اما محدودیت حداکثر طول را ندارد. این نوع داده در شرایطی کارایی دارد که طول داده‌های دودویی از قبل تعیین نشده است.

نوع داده دودویی (Binary)

نوع داده تاریخ (Date) و زمان (Time)

اگر بخواهید تاریخ و اطلاعات مرتبط با زمان را ذخیره کنید، از بین انواع داده در SQL Server، این دیتا تایپ‌ها به کار شما می‌آیند. نوع داده‌های Date و Time برای اپلیکشن‌های مختلفی، مانند پیگیری رویدادها، زمان‌بندی و برنامه‌ریزی و رسیدگی به داده‌های حساس به زمان، ضروری هستند. در ادامه انواع Data Type های تاریخ و زمان را معرفی خواهیم کرد.

نوع های داده در SQL Server

  • DATE: در این نوع داده، تنها بخش «تاریخ» از اطلاعات زمانی ذخیره می‌شود و قالب آن به‌صورت YYYY-MM-DD است.
  • TIME: این دیتا تایپ فقط قسمت زمان از هر اطلاعات تاریخی را نگهداری می‌کند. فرمت TIME به شکل HH:MM:SS.ssssss است که در آن، HH نمایانگر ساعت تلقی می‌شود.
  • DATETIME: از میان انواع داده در SQL Server، این نوع داده هر دو اطلاعات تاریخ و زمان را ذخیره می‌کند. به‌عنوان مثال، این دیتا تایپ امکان نگهداری مقدار ‘۲۰۲۳-۱۰-۰۷ ۱۴:۳۰:۰۰.۰۰۰۰۰۰’ را دارد.
  • DATETIME2: این Data Type درواقع نوع تعمیم داده شده DATETIME محسوب می‌شود و به شما این امکان را می‌دهد که برای بخش ثانیه، دقت بیش‌تری را ذخیره‌سازی کنید. به‌عنوان مثال، ‘۲۰۲۳-۱۰-۰۷ ۱۴:۳۰:۰۰.۱۲۳۴۵۶۷’ یک نمونه از فرمت قابل نگهداری توسط DATETIME2 است.
  • SMALLDATETIME: به واسطه این نوع داده، می‌توانید تاریخ و زمان را ذخیره کنید؛ اما این دیتا تایپ در مقایسه با DATETIME، بازه محدودتری را پوشش می‌دهد و دارای دقت کمتری است. فرمت کلی آن به‌صورت ‘YYYY-MM-DD HH:MM:SS’ است.
  • TIMESTAMP: همان‌طور که از نام آن قابل درک است، از انواع داده در SQL Server، نوع تایم استمپ به تاریخ و زمان مرتبط نیست. در حقیقت، TIMESTAMP به منظور تعیین نسخه و پیگیری تغییرات اعمال شده روی یک سطر جدول به کار می‌رود؛ به گونه‌ای که با ویرایش یک سطر، ستون‌های TIMESTAMP به‌صورت خودکار توسط SQL Server به‌روزرسانی می‌شوند تا بدین طریق بتوانید روند تغییرات را در دسترس داشت باشید.
  • DATETIMEOFFSET: در بین انواع داده در SQL Server، عملکرد این نوع دیتا تایپ نیز مشابه DATETIME است؛ با این تفاوت که اطلاعات مربوط به Time Zone را نیز نگهداری می‌کند. قالب ساختاری این نوع داده به‌صورت ‘YYYY-MM-DD HH:MM:SS.ssssss -hh:mm’ طراحی شده که در آن ‘-hh:mm’ بیانگر آفست منطقه زمانی یا همان Time Zone Offset است.

نوع داده تاریخ (Date) و زمان (Time)

 

نوع داده تعریف شده توسط کاربر (User Defined)

یکی دیگر از دیتا تایپ‌های پراهمیت که در این بخش مقاله انواع داده در SQL Server بررسی می‌کنیم، نوع داده تعریف شده توسط کاربر (UDDT) است. دیتا تایپ User Defined، نوع داده دلخواه و مشخصی است که توسط کاربر یا برنامه‌نویس پایگاه داده ایجاد می‌شود و به واسطه آن، مجموعه قوانین یا محدودیت‌های خاصی برای داده‌های قابل ذخیره‌سازی در یک ستون تعریف خواهد شد. نوع داده تعریف شده توسط کاربر در مواردی همچون تسهیل طراحی پایگاه داده، بهبود سازگاری، افزایش خوانایی و نگهداری Schema های دیتابیس کارآمد به‌حساب می‌آید.

 

نوع داده CLR

نوع داده CLR یک دیتا تایپ دلخواه است که بااستفاده از Common Language Runtime فریم ورک NET. تعریف می‌شود. این نوع از انواع داده در SQL Server با گسترش داده‌های اصلی خود SQL Server ایجاد می‌شوند و می‌توان از آن‌ها در کپسوله‌سازی منطق و رفتار پیچیده درون یک دیتا تایپ استفاده کرد. به طور خاص، نوع داده CLR برای اجرای محاسبات پیچیده یا پیاده‌سازی منطق تجاری دلخواه درون پایگاه داده مناسب است.

 

سایر نوع های داده

علاوه‌بر انواع داده در SQL Server که در این بخش به آن‌ها اشاره کردیم، این سیستم مدیریت پایگاه داده تعدادی دیتا تایپ خاص دارد که در برخی سناریوها استفاده می‌شوند.

  • UNIQUEIDENTIFIER: به‌واسطه این نوع داده، می‌توان مقدار یک Unique Identifier را به‌صورت سراسری (Global) تعریف کرد. معمولاً از آن به‌عنوان کلید اصلی یا روشی استفاده می‌شود که بتوان سطرهای پایگاه داده را به‌صورت یکتا مشخص کرد. این موضوع به‌طور ویژه در زمان‌هایی اهمیت دارد که به همگام‌سازی داده‌ها در چندین دیتابیس یا سیستم نیاز داریم.
  • XML: برای ذخیره‌سازی داده‌های زبان نشانه گذاری گسترش پذیر (Extensible Markup Language) در یک قالب ساختارمند، از نوع داده XML در SQL Server استفاده می‌شود. XML یک استاندارد مشهور برای نمایش داده‌های ساختار یافته و نیمه ساختاریافته (Semi-Structured) محسوب می‌شود و استفاده از زمانی مناسب است که باید داده‌ها به‌صورت سلسله مراتبی (Hierarchical) یا تودرتو (Nested) ذخیره شوند. در SQL Server داده‌های XML پشتیبانی می‌شوند و امکان دست‌کاری، کوئری‌نویسی و ذخیره‌سازی داده‌های XML به‌صورت کارآمد فراهم شده است.
  • JSON: در SQL Server داده‌های JSON پشتیبانی می‌شوند و شما می‌توانید این نوع دیتا را به‌صورت کارآمد ذخیره کنید و به کوئری‌نویسی با آن‌ها بپردازید. JSON داده‌های سبک و پراستفاده‌ای هستند و وقتی بخواهیم به ذخیره‌سازی و پردازش داده‌های نیمه ساختاریافته و ساختاریافته بپردازیم، مفید واقع خواهند شد.
  • GEOMETRY and GEOGRAPHY: این انواع داده در SQL Server برای کار با داده‌های فضایی کارایی دارند و به کمک آن‌ها، می‌توان اشکال جغرافیایی و هندسی را دست‌کاری و ذخیره‌سازی کرد. داده‌های فضایی در اپلیکیشن‌هایی کارایی دارند که مواردی مانند نگاشت (Mapping)، سیستم‌های اطلاعاتی جغرافیایی (GIS) و سرویس‌های مبتنی‌بر لوکیشن را شامل می‌شوند. از این رو، استفاده از چنین دیتا تایپ‌هایی از میان انواع داده در SQL Server توصیه می‌شود.
  • SQL_VARIANT: نوع خاصی از انواع داده در SQL Server به‌شمار می‌رود که به واسطه آن می‌توان انواع مختلفی از دیتا را در یک ستون واحد، متغیر یا پارامتر ذخیره کرد. SQL_VARIANT به‌منظور ایجاد انعطاف در مواقعی طراحی شده است که نیاز باشد با انواع مختلفی از داده‌ها درون یک فیلد کار کنیم. البته توجه کنید که این دیتا تایپ باید با دقت و احتیاط مورد استفاده قرار گیرد؛ چون چالش‌های مختلفی درخصوص کارایی کوئری‌ها و تبدیل نوع داده با آن همراه است.

سایر نوع های داده

کلام آخر: انواع داده در SQL Server کدامند؟

در این مقاله به معرفی انواع داده در SQL Server پرداختیم تا به این طریق بتوانید آن را به‌عنوان راهنما در انتخاب دیتا تایپ‌های ستون‌های Database مورد استفاده قرار دهید. اساساً انتخاب نوع داده مناسب برای ستون‌های پایگاه داده امری پراهمیت است؛ چون از این راه اطمینان خواهید داشت که مواردی مانند یکپارچگی داده‌ها، کارایی در ذخیره‌سازی و بهینه‌شدن کوئری‌ها تضمین می‌شوند. کافی‌ست نوع داده‌ها را براساس خصوصیات ذاتی داده‌هایی تعیین کنید که در آن ستون ذخیره خواهند شد.

چه رتبه ای می‌دهید؟

میانگین ۴.۵ / ۵. از مجموع ۱۱

اولین نفر باش

title sign
دانلود مقاله
انواع داده در SQL Server
فرمت PDF
8 صفحه
حجم 0/3 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
318 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
ثبت‌نام دوره‌های آنلاین تابستانه نیک‌آموز شروع شد 🏄
مشاهده سرفصل و رزرو رایگان
close-image