آشنایی با انواع داده ها در SQL Server 2019
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
انواع داده ها در SQL Server 2019
در این جلسه میخواهیم در مورد انواع دادهها در sql server 2019 صحبت کنیم. یکی از اجزای اصلی زبانهای برنامه نویسی نوع دادهها میباشند. اینکه در sql شما چه نوع دادهای را ذخیره کنید خیلی مهم است و این نرم افزار امکان ذخیره سازی دادهها را دارد. پس به عنوان یک برنامهنویس در حوزه sql server، باید بدانید نوع دادههایی که میپذیرد از چه نوعی است. برای آشنایی بیشتر در ادامه همراه ما باشید.
انواع دادهها در sql server 2019:
-
نوع داده عددی
نوع داده | فضای ذخیرهسازی |
توضیحات |
Bit | 1بیت | مقادیر قابل ذخیره سازی 0، 1 و Null میباشد. |
TinyInt | 1 بایت | مقادیری بین 0 الی 255 را ذخیره میکند. |
SmallInt | 2 بایت | 32767 الی 32768- |
Int | 4 بایت | 31^2 |
BigInt | 8 بایت | 63^2 |
Numeric | 5 الی 17 بایت | از این نوع داده برای ذخیره دادههای اعشاری دارای ممیز بدون گرد کردن استفاده میشود و محدوده 1-38^10- تا 1-38^10 را در برمیگیرد. این نوع شبیه به Decimal بوده و توصیه میشود از Decimal به جای Numeric استفاده شود. |
Decimal | 5 الی 17 بایت | همانطور که در بالا گفتیم این نوع داده با Numeric مشابه هم میباشند هم از نظر کارایی و هم از نظر محدوده عددی. |
SmallMoney | 4 بایت | برای اعدادی که مربوط به پول است، استفاده میشود. این نوع داده تنها 4 رقم عدد در سمت راست ممیز اعشار، ذخیره خواهد کرد. |
Money | 8 بایت | برای اعدادی که مربوط به پول است، استفاده شده و قسمت اعشار به 4 رقم گرد میشود. |
Real | 4 بایت | برای ذخیره اعداد اعشاری استفاده میشود. |
Float(n) | 4 یا 8 بایت | برای ذخیره اعداد اعشاری استفاده میشود. در صورتی که n 1 ≤ n ≤ 24 = 4 Byte 25 ≤ n ≤ 53 = 8 Byte |
نکته: برای نوع داده Numeric و Decimal میتوانیم تعداد ارقام و اعشار آنها را مشخص کنیم. مثلا در Numeric(4,2)، عدد اول تعداد رقمها و عدد دوم تعداد اعشار را نشان میدهد.
-
نوع داده رشتهای
نوع داده | فضای ذخیرهسازی |
توضیحات |
Char(n) | 1 بایت برای هر کاراکتر، به تعداد n تاحداکثر 8000 بایت | رشتهای با طول ثابت؛ اگر برای ستونی 20 کاراکتر در نظر بگیریم و مقداری که وارد کردیم کمتر از 20 باشد فضای باقیمانده با space پر میشود. |
VarChar(n) | 1 بایت برای هر کاراکتر، به تعداد n تا حداکثر 8000 بایت | رشتهای با طول متغیر؛ اگر برای ستونی 20 کاراکتر در نظر بگیریم به این معناست که حداکثر کاراکتر وارد شده میتواند 20 کاراکتر باشد و اگر مقداری کمتر وارد شد به همان اندازه فضا اشغال میکند و اتلاف حافظه ندارد. |
VarChar(max) | 1 بایت برای هر کاراکتر، حداکثر 2 گیگابایت | مانند نوع داده بالا میباشد که میتوانیم بدون محدودیت داده ذخیره کنیم. |
NChar(n) | 2 بایت برای هر کاراکتر به تعداد n تا حداکثر 4000 بایت | از این نوع داده به بعد دادهها بصورت Unicode ذخیره میشوند. این نوع داده دارای طول ثابتی است و برای ذخیره دادههایی با زبان فارسی از این نوع استفاده میشود. |
NVarChar(n) | 2 بایت برای هر کاراکتر به تعداد n تا حداکثر 4000 بایت | برای ذخیره دادهها با طول متغیر در ستونها و برای زبان فارسی از آن استفاده میشود. |
NVarChar(max) | 2 بایت برای هر کاراکتر، حداکثر2 گیگابایت | برای ذخیره دادههایی با زبان فارسی و طول متغیر با بیش از 8000 کاراکتر استفاده میشود. |
-
نوع داده تاریخ و زمان
نوع داده | دامنه مقدار | دقت | فضای ذخیرهسازی |
SmllDataTime | 1900/01/01 - 2079/06/06 | 1 دقیقه | 4 بایت |
DataTime | 1753/01/01 – 9999/12/31 | 0.00333 ثانیه | 8 بایت |
DataTime2(FSP) | 0001/01/01 – 9999/12/31 | 100 نانو ثانیه | 6 تا 8 بایت |
DataTimeOffset(FSP) | 0001/01/01 – 9999/12/31 | 100 نانو ثانیه | 8 تا 10 بایت |
Data | 0001/01/01 – 9999/12/31 | 1 روز | 3 بایت |
Time(FSP) | 00:00:00.0000000 – 23:59:59.9999999 | 100 نانو ثانیه | 3 تا 5 بایت |
-
دیگر انواع دادهها
نوع داده | توضیحات |
sql_variant | با استفاده از این نوع داده میتوانید ردیفهایی با انواع دادههای متفاوت داشته باشید و در ستونها ، پارامترها، متغیرها و مقادیر بازگشتی توابع تعریف شده توسط کاربر نیز مورد استفاده قرار میگیرد. در واقع این نوع قادر میسازد تا datatypeهای دیگر نیز ساپورت شود. |
uniqueidentifier | برای استفاده از این نوع داده دور روش وجود دارد: استفاده از تابع NEWID و روش دیگر، تبدیل یک رشته ثابت به فرم. این نوع داده در واقع یک کد یکتا به ما میدهد و یکی از کاربردهای آن استفاده در Replication میباشد. |
xml | از این نوع داده برای ذخیره متغیرهایی با نوع XML و انتقال اطلاعات و دستورات تحت web استفاده میشود. |
cursor | ذخیره متغیرهای OUTPUT مربوط به store proceduere. این نوع داده به هنگام ایجاد یک table، مورد استفاده قرار نمیگیرد و تمام متغیرهای ایجاد شده با این نوع داده nullable هستند. |
table | این نوع داده که جزء انواع دادههای ویژه محسوب میشود، مجموعهای از نتایج برای پردازش در زمانهای دیگر را ذخیره مینماید. |
کلام آخر:
خب دوستان به انواع دادهها در sql server پرداختیم ولی پیشنهاد میکنم برای فهم عمیقتر این مفاهیم حتما ویدئو آموزشی ما را در اینباره مشاهده کنید، چراکه مثالهایی گفته شده تا به صورت جزئیتر با آنها آشنا شوید. حتما نظرات و پیشنهادات خود را با ما به اشتراک بگذارید و اگر سوالی در حیطه آموزش این قسمت داشتید به انجمن ما مراجعه کنید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.