📞 02166056460

انواع داده و متغیر در SQL

8 / 10
از 25 کاربر
بازگشت به لیست مقالات » | چهارشنبه 15 مهر 1405 در ساعت 17 و 54 دقیقه | نظرات کاربران ( 14 )

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

در این بخش از آموزش SQL، با انواع داده در اسکیوال آشنا می شوید. نمونه ها عمدتا بر اساس SQL Server هستند؛ چون نام ها و محدودیت های برخی نوع داده ها در سامانه های مدیریت پایگاه داده دیگر، مانند MySQL و PostgreSQL، تفاوت دارد.

انواع داده در SQL Server و کاربرد هر گروه

نوع داده یا Data Type قالب مقادیری را تعیین می کند که یک ستون، متغیر یا پارامتر می تواند بپذیرد. برای نمونه، ستون نام مشتری به داده متنی نیاز دارد، اما ستون تعداد کالا بهتر است عدد صحیح باشد. انتخاب نامناسب نوع داده ممکن است باعث خطای تبدیل، هدر رفت فضای ذخیره سازی یا محدود شدن دامنه مقادیر شود.

پیش از طراحی جدول، مشخص کنید داده واقعی چه ویژگی هایی دارد: آیا طول آن ثابت است یا تغییر می کند؟ آیا به حروف فارسی نیاز دارید؟ آیا مقدار باید اعشاری باشد؟ آیا تاریخ و ساعت هر دو اهمیت دارند؟ پاسخ به این پرسش ها انتخاب بین نوع هایی مانند varchar، nvarchar، int و datetime2 را ساده تر می کند.

  • برای متن، طول معمول مقدار و نیاز به نگهداری زبان های مختلف را در نظر بگیرید.
  • برای عدد، دامنه مقدار و نیاز به دقت اعشار را مشخص کنید.
  • برای زمان، بررسی کنید فقط تاریخ لازم است یا ساعت و اختلاف منطقه زمانی هم اهمیت دارد.
  • برای فایل ها، پیش از ذخیره مستقیم در پایگاه داده، اندازه فایل و روش نگهداری آن را بسنجید.

نوع داده رشته ای در SQL: Character Strings

نوع داده های رشته ای برای نگهداری متن هایی استفاده می شوند که به مجموعه نویسه های غیر یونیکد متکی هستند. در SQL Server، نحوه ذخیره و مقایسه متن می تواند به Collation وابسته باشد. Collation مجموعه قواعدی است که مرتب سازی و مقایسه حروف، حساسیت به بزرگی و کوچکی حروف و برخی ویژگی های زبانی را کنترل می کند.

در انتخاب میان char و varchar، ثابت یا متغیر بودن طول داده اهمیت دارد. برای کدهایی که همیشه طول یکسان دارند، مانند یک شناسه با قالب ثابت، char می تواند مناسب باشد. برای نام، نشانی و توضیح های کوتاه که طولشان متفاوت است، معمولا varchar انتخاب بهتری است.

نوع داده شرح و کاربرد
char(n) رشته با طول ثابت است. اگر مقدار واردشده کوتاه تر از طول تعریف شده باشد، فضای باقی مانده با فاصله پر می شود. در SQL Server طول n می تواند تا ۸۰۰۰ بایت باشد.
varchar(n) رشته با طول متغیر است و برای متن هایی با اندازه های متفاوت مناسب است. حداکثر طول معمول آن ۸۰۰۰ بایت است؛ ظرفیت نویسه ها به مجموعه نویسه و Collation بستگی دارد.
varchar(max) برای رشته های بزرگ تر از محدودیت معمول varchar استفاده می شود و می تواند تا نزدیک ۲ گیگابایت داده متنی را نگهداری کند. استفاده از آن برای فیلدهای کوتاه و معمولی ضرورتی ندارد.
text نوع قدیمی برای متن های حجیم است و در SQL Server منسوخ شده است. برای طراحی جدید، معمولا varchar(max) یا nvarchar(max) جایگزین مناسب تری است.

تفاوت char و varchar چیست؟

فرض کنید ستونی را با char(20) تعریف کرده اید و مقدار Orion را در آن قرار می دهید. ستون طول ثابت دارد و فضای تعریف شده را بر اساس قواعد ذخیره سازی نوع داده مدیریت می کند. در مقابل، varchar(20) طول واقعی رشته را نگه می دارد و برای مقادیری که اندازه یکسانی ندارند، معمولا فضای کمتری مصرف می کند.

این تفاوت به معنی آن نیست که varchar همیشه سریع تر یا بهتر است. انتخاب باید با شکل داده و شیوه استفاده از آن سازگار باشد. کدهای دارای طول ثابت می توانند نمونه مناسبی برای char باشند؛ اما برای متن های متغیر، varchar اغلب انتخاب کاربردی تری است. اگر متن شامل فارسی یا نویسه های چندزبانه است، نوع یونیکد را نیز بررسی کنید.

نوع داده یونیکد در SQL: Unicode Types

برای نگهداری مطمئن متن فارسی، عربی و زبان های دیگر، معمولا از نوع های یونیکد استفاده می شود. در SQL Server این نوع ها با حرف n در ابتدای نام شناخته می شوند؛ مانند nchar و nvarchar. در بسیاری از نسخه ها، داده های این گروه بر پایه واحدهای دو بایتی ذخیره می شوند؛ بعضی نویسه های تکمیلی ممکن است به فضای بیشتری نیاز داشته باشند.

نوع داده شرح و کاربرد
nchar(n) رشته یونیکد با طول ثابت است و برای مقدارهایی با اندازه مشخص کاربرد دارد. طول تعریف شده می تواند تا ۴۰۰۰ واحد تعریف رشته باشد.
nvarchar(n) رشته یونیکد با طول متغیر است و برای نام ها، نشانی ها و متن های فارسی انتخاب متداولی محسوب می شود. طول n در SQL Server بر اساس واحدهای دو بایتی تعریف می شود و حداکثر معمول آن ۴۰۰۰ است.
nvarchar(max) برای متن یونیکد حجیم استفاده می شود و ظرفیت آن تا نزدیک ۲ گیگابایت است. بهتر است فقط زمانی انتخاب شود که ستون واقعا به نگهداری متن بسیار بلند نیاز دارد.
ntext نوع قدیمی برای متن یونیکد بزرگ است و در طراحی های جدید توصیه نمی شود. به جای آن از nvarchar(max) استفاده کنید.

چه زمانی nvarchar انتخاب کنیم؟

اگر برنامه شما نام اشخاص، توضیحات فارسی یا محتوای چندزبانه را ذخیره می کند، nvarchar معمولا گزینه امن تری است. برای درج رشته ثابت در دستور SQL Server نیز پیشوند N را به رشته متنی اضافه کنید تا مقدار به صورت یونیکد تفسیر شود:

CREATE TABLE Customers (
    CustomerId int PRIMARY KEY,
    FullName nvarchar(150) NOT NULL
);

INSERT INTO Customers (CustomerId, FullName)
VALUES (1, N'مریم احمدی');

در نمونه بالا، ستون FullName متن فارسی را نگه می دارد. اندازه ۱۵۰ باید بر اساس نیاز واقعی برنامه انتخاب شود؛ برای عنوان کوتاه، مقدار کوچک تر و برای توضیح طولانی، اندازه متناسب یا nvarchar(max) را در نظر بگیرید. تعریف همه ستون های متنی با ظرفیت بسیار بزرگ، بدون نیاز واقعی، طراحی مناسبی نیست.

نوع داده باینری در SQL: Binary Types

نوع داده باینری برای نگهداری داده هایی به کار می رود که به شکل رشته متنی نیستند؛ برای مثال، بخشی از داده رمزنگاری شده، هش یا محتوای باینری. تصویر، فایل صوتی و سند نیز از نظر فنی داده باینری هستند، اما ذخیره مستقیم فایل های بزرگ در پایگاه داده همیشه بهترین راهکار نیست. اندازه فایل، پشتیبان گیری، سرعت انتقال و شیوه دسترسی برنامه باید بررسی شود.

نوع داده شرح و کاربرد
bit برای مقدارهای منطقی مانند فعال یا غیرفعال استفاده می شود. این نوع معمولا مقدارهای ۰، ۱ و در صورت مجاز بودن NULL را می پذیرد؛ bit یک داده دو بیتی نیست.
binary(n) داده باینری با طول ثابت است و تا ۸۰۰۰ بایت ظرفیت دارد. برای مقدارهایی که اندازه ثابت دارند، مانند برخی هش ها، کاربرد دارد.
varbinary(n) داده باینری با طول متغیر است و برای مقادیر با اندازه های متفاوت به کار می رود. طول معمول آن تا ۸۰۰۰ بایت است.
varbinary(max) برای داده باینری بزرگ تر از محدوده معمول استفاده می شود و می تواند تا نزدیک ۲ گیگابایت داده را نگهداری کند.
image نوع قدیمی نگهداری داده باینری حجیم است و در SQL Server منسوخ شده است. برای طراحی جدید، varbinary(max) جایگزین مناسب تری است.

برای یک مقدار بولی مانند وضعیت انتشار مقاله، bit روشن و خاموش بودن را نمایش می دهد. اگر چند وضعیت دارید، مانند «پیش نویس»، «منتشرشده» و «بایگانی شده»، بهتر است از ستون عددی یا جدول مرجع مناسب استفاده کنید؛ زیرا یک ستون bit فقط یک دوراهی ساده را بیان می کند.

نوع داده عددی در SQL: Number Types

نوع های عددی برای شمارش، محاسبات، قیمت و اندازه گیری استفاده می شوند. انتخاب نوع مناسب به محدوده عدد و نیاز به دقت وابسته است. عدد صحیح را با نوع هایی مانند tinyint و int ذخیره می کنند؛ برای مقدار اعشاری دقیق از decimal یا numeric استفاده می شود. نوع های float و real تقریبی هستند و برای محاسبات مالی مناسب نیستند.

نوع داده شرح و محدوده کلی
tinyint یک بایت فضا می گیرد و عددهای صحیح ۰ تا ۲۵۵ را نگهداری می کند.
smallint دو بایت فضا می گیرد و عددهای صحیح از ۳۲۷۶۸- تا ۳۲۷۶۷ را ذخیره می کند.
int چهار بایت فضا می گیرد و محدوده آن از ۲۱۴۷۴۸۳۶۴۸- تا ۲۱۴۷۴۸۳۶۴۷ است.
bigint هشت بایت فضا می گیرد و برای عددهای صحیح بسیار بزرگ، مانند برخی شمارنده ها، استفاده می شود.
decimal(p,s) عدد اعشاری دقیق با p رقم کلی و s رقم اعشار است. برای قیمت و محاسبات مالی گزینه مناسبی است؛ برای مثال decimal(8,2) تا شش رقم صحیح و دو رقم اعشار را نگه می دارد.
numeric(p,s) در SQL Server از نظر کاربرد و دقت، معادل decimal است و برای نگهداری عدد اعشاری دقیق استفاده می شود.
smallmoney نوع پولی چهار بایتی با چهار رقم اعشار است و محدوده آن از ۲۱۴۷۴۸٫۳۶۴۸- تا ۲۱۴۷۴۸٫۳۶۴۷ است.
money نوع پولی هشت بایتی با چهار رقم اعشار است. برای محاسبات مالی پیچیده، decimal اغلب کنترل روشن تری بر دقت فراهم می کند.
float(n) عدد اعشاری تقریبی با دقت شناور است. مقدار n دقت را مشخص می کند و فضای ذخیره سازی به مقدار آن وابسته است.
real عدد اعشاری تقریبی با دقت کمتر از float است و معمولا چهار بایت فضا می گیرد.

انتخاب decimal یا float برای عدد اعشاری

برای محاسبه مبلغ، مالیات، تخفیف و موجودی پولی، دقت مهم است؛ بنابراین decimal(p,s) انتخاب رایجی است. پارامتر p تعداد کل رقم ها و s تعداد رقم های بعد از ممیز را تعیین می کند. اگر ستون را با decimal(8,2) بسازید، حداکثر شش رقم پیش از ممیز و دو رقم پس از ممیز ذخیره می شود.

در مقابل، float مقدارهای اعشاری را به شکل تقریبی نمایش می دهد. این ویژگی برای محاسبات علمی و اندازه گیری هایی که دامنه وسیع دارند می تواند مفید باشد، اما ممکن است مقایسه دقیق دو مقدار اعشاری نتیجه مورد انتظار را ندهد. برای شناسه کالا یا شماره تلفن نیز از نوع عددی استفاده نکنید؛ این مقادیر برای محاسبه نیستند و ممکن است صفر ابتدایی داشته باشند، پس نوع متنی مناسب تر است.

نوع داده تاریخ و زمان در SQL: Date and Time Types

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

نوع داده شرح و کاربرد
datetime تاریخ و ساعت را با دقت تقریبی ۳٫۳۳ میلی ثانیه ذخیره می کند و بازه آن از سال ۱۷۵۳ تا ۹۹۹۹ است. برای طراحی جدید، datetime2 معمولا گزینه دقیق تری است.
datetime2 تاریخ و ساعت را با دقت قابل تنظیم، تا هفت رقم اعشار ثانیه، ذخیره می کند و بازه سال گسترده تری دارد.
smalldatetime تاریخ و ساعت را با دقت یک دقیقه و در بازه سال ۱۹۰۰ تا ۲۰۷۹ نگهداری می کند.
date فقط تاریخ را ذخیره می کند و زمانی که ساعت اهمیت ندارد، مانند تاریخ تولد، مناسب است.
time فقط ساعت را ذخیره می کند و برای زمان اجرای یک برنامه روزانه یا ساعت باز بودن فروشگاه کاربرد دارد.
datetimeoffset تاریخ و ساعت را همراه با اختلاف زمانی نسبت به UTC نگهداری می کند و برای سامانه های چندمنطقه ای کاربرد دارد.
timestamp در SQL Server نام قدیمی نوع rowversion است؛ تاریخ یا ساعت را ذخیره نمی کند و برای تشخیص تغییر نسخه ردیف به کار می رود.

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

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

علاوه بر گروه های اصلی، SQL Server چند نوع ویژه برای نگهداری شناسه های یکتا، XML یا داده های نسخه دار دارد. این نوع ها برای همه ستون ها مناسب نیستند و باید بر اساس نیاز واقعی سامانه انتخاب شوند. برای نمونه، استفاده از نوع متغیر برای نگهداری مقادیر نامرتبط ممکن است خوانایی ساختار داده را کاهش دهد.

نوع داده شرح و کاربرد
sql_variant می تواند مقدارهایی از چند نوع داده پشتیبانی شده را نگهداری کند. برای طراحی معمول جدول ها بهتر است ستون ها نوع مشخص داشته باشند تا اعتبارسنجی و پرس وجوها ساده تر شوند.
uniqueidentifier شناسه ۱۶ بایتی یکتا از نوع GUID را ذخیره می کند. برای شناسه های تولیدشده در چند سامانه کاربرد دارد، اما اندازه و نحوه نمایه سازی آن باید بررسی شود.
xml برای ذخیره محتوای XML به کار می رود و در SQL Server امکان بررسی و پرس وجوی ساختار XML را فراهم می کند.
cursor برای کار با نتیجه پرس وجو به صورت ردیف به ردیف استفاده می شود و نوعی برای ستون معمولی جدول نیست.
table نوع جدولی برای تعریف متغیر جدول یا پارامتر جدولی است و می تواند مجموعه ای از ردیف ها را در یک بخش از برنامه نگهداری کند.

۵ نکته مهم برای انتخاب نوع داده مناسب

۱. دامنه مقدار را پیش از تعریف ستون مشخص کنید

اگر تعداد سفارش ها در طول زمان از ظرفیت smallint بیشتر می شود، انتخاب آن می تواند در آینده به خطای سرریز منجر شود. از طرف دیگر، به کار بردن bigint برای هر عدد کوچک نیز همیشه لازم نیست. دامنه مقدارهای فعلی و رشد احتمالی سامانه را بسنجید و نوعی انتخاب کنید که هم نیاز را پاسخ دهد و هم بی دلیل بزرگ نباشد.

۲. طول متن را واقع بینانه تعیین کنید

برای هر ستون متنی، نمونه های واقعی داده را بررسی کنید. اگر بیشتر مقادیر کوتاه هستند، تعریف اندازه بسیار بزرگ ممکن است در طراحی، اعتبارسنجی و نگهداری جدول پیچیدگی ایجاد کند. برای متن فارسی از نوع یونیکد استفاده کنید و برای توضیح های بلند، فقط در صورت نیاز به سراغ نوع های دارای پسوند max بروید.

۳. اطلاعات عددی را با داده متنی اشتباه نگیرید

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

۴. دقت مالی و اعشاری را جدی بگیرید

برای قیمت و مبلغ، تعداد رقم های کلی و اعشار را از ابتدا مشخص کنید. نوع decimal کنترل دقیق تری بر این ویژگی می دهد. استفاده از float برای مبلغ ممکن است در جمع یا مقایسه، نتیجه ای با تفاوت های ریز ایجاد کند؛ تفاوتی که در گزارش مالی یا محاسبه صورت حساب قابل چشم پوشی نیست.

۵. نوع تاریخ را با کاربرد ستون هماهنگ کنید

اگر فقط روز اهمیت دارد، date از ذخیره ساعت غیرضروری جلوگیری می کند. اگر زمان رویداد ثبت می شود، datetime2 معمولا انتخاب انعطاف پذیری است. برای برنامه ای که کاربران آن در منطقه های زمانی مختلف هستند، باید اختلاف زمانی نیز در نظر گرفته شود و در صورت نیاز نوع datetimeoffset به کار رود.

نیاز نوع پیشنهادی نکته
نام فارسی nvarchar اندازه ستون را با توجه به داده واقعی تعیین کنید.
مبلغ و قیمت decimal(p,s) دقت کل و تعداد رقم اعشار را مشخص کنید.
تعداد یا شمارنده int یا bigint محدوده و رشد احتمالی مقدار را در نظر بگیرید.
تاریخ بدون ساعت date برای تاریخ تولد یا تاریخ ثبت بدون زمان مناسب است.
وضعیت دوحالته bit برای مقادیری مانند فعال یا غیرفعال استفاده می شود.
داده باینری حجیم varbinary(max) پیش از ذخیره فایل، اثر آن بر پشتیبان گیری و کارایی را بسنجید.

اشتباه های رایج هنگام کار با نوع داده های SQL

  • استفاده از varchar برای متن فارسی: این انتخاب ممکن است به Collation و پیکربندی پایگاه داده وابسته شود. در بسیاری از طراحی ها، nvarchar راه مطمئن تری برای متن یونیکد است.
  • ذخیره عدد به صورت متن: مرتب سازی و محاسبات عددی دشوار یا نادرست می شوند؛ برای مثال، ترتیب رشته ای عددها همیشه با ترتیب عددی یکسان نیست.
  • استفاده از float برای پول: نوع شناور تقریبی است و برای مبلغ دقیق گزینه مناسبی محسوب نمی شود.
  • استفاده از نوع های منسوخ: برای جدول های جدید از text، ntext و image دوری کنید و جایگزین های پشتیبانی شده را در نظر بگیرید.
  • تعریف همه ستون ها با ظرفیت حداکثری: استفاده بی دلیل از varchar(max) یا nvarchar(max) خوانایی طراحی را کاهش می دهد و می تواند بر برخی عملیات اثر بگذارد.
  • ذخیره تاریخ در ستون متنی: قالب های متفاوت تاریخ، مرتب سازی و فیلتر کردن را دشوار می کنند و احتمال ورود مقدار نامعتبر را بالا می برند.

مثال طراحی جدول با چند نوع داده

در یک سامانه فروش، می توان نام مشتری را به صورت یونیکد، تعداد کالا را به شکل عدد صحیح، قیمت را با دقت اعشاری و تاریخ سفارش را در قالب نوع تاریخ و زمان ذخیره کرد. هنگام طراحی جداول یک فروشگاه اینترنتی، همین اصول در پایگاه داده وب سایت نیز کاربرد دارند؛ از جمله در پروژه های طراحی سایت که مدیریت درست کاربران، محصولات و سفارش ها برای عملکرد سامانه اهمیت دارد.

CREATE TABLE Products (
    ProductId int IDENTITY(1,1) PRIMARY KEY,
    ProductName nvarchar(200) NOT NULL,
    Quantity int NOT NULL,
    Price decimal(12,2) NOT NULL,
    IsAvailable bit NOT NULL DEFAULT 1,
    CreatedAt datetime2 NOT NULL DEFAULT SYSDATETIME()
);

در این ساختار، شناسه محصول عدد صحیح افزایشی است، نام محصول از متن یونیکد استفاده می کند و قیمت دقت اعشاری مشخص دارد. ستون IsAvailable وضعیت موجود یا ناموجود بودن را نگه می دارد و CreatedAt زمان ثبت را با نوعی مناسب برای طراحی جدید ذخیره می کند. محدودیت های تکمیلی مانند غیرمنفی بودن تعداد و قیمت نیز می توانند با قیدهای مناسب اعمال شوند.

پرسش های متداول درباره انواع داده در SQL

برای ذخیره متن فارسی از چه نوع داده ای استفاده کنیم؟

در SQL Server معمولا nvarchar برای متن فارسی انتخاب می شود. برای رشته های بسیار بلند، nvarchar(max) کاربرد دارد؛ اما استفاده از آن برای همه ستون ها ضروری نیست. هنگام وارد کردن مقدار متنی مستقیم در دستور، پیشوند N را فراموش نکنید.

تفاوت varchar(max) و text چیست؟

text یک نوع قدیمی و منسوخ شده در SQL Server است. برای طراحی جدید، varchar(max) معمولا جایگزین آن است. اگر متن شامل نویسه های فارسی یا زبان های دیگر است، nvarchar(max) را بررسی کنید.

آیا timestamp تاریخ و ساعت را نگهداری می کند؟

خیر. در SQL Server، نام timestamp به نوعی اشاره می کند که امروزه با نام rowversion شناخته می شود. این نوع برای تشخیص تغییر ردیف کاربرد دارد و زمان تقویمی نیست؛ برای تاریخ و ساعت از نوع هایی مانند datetime2 استفاده کنید.

برای ذخیره قیمت، money بهتر است یا decimal؟

هر دو می توانند برای مقدارهای پولی استفاده شوند، اما decimal امکان تعیین تعداد رقم کلی و رقم اعشار را به شکل روشن فراهم می کند. در بسیاری از سامانه های مالی، انتخاب decimal با دقت متناسب و قواعد گرد کردن مشخص، کنترل بیشتری ایجاد می کند.

آیا می توان تاریخ شمسی را مستقیم در SQL Server ذخیره کرد؟

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

جمع بندی انواع داده در SQL

آشنایی با انواع داده در SQL پایه طراحی درست جدول ها و نگهداری مطمئن اطلاعات است. برای متن فارسی معمولا نوع های یونیکد، برای مبلغ نوع اعشاری دقیق، برای شمارش نوع عددی متناسب و برای زمان نوع تاریخ و ساعت مناسب انتخاب می شود. همچنین بهتر است از نوع های منسوخ مانند text، ntext و image در ساختارهای جدید استفاده نکنید.

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

ارسال نظر و نظرات ثبت شده
:
54 2
باسپاس از مطلب خیلی خوبتون
س :
36 2
بسیار عالی
نام :
37 2
اقا دمتون گرم خیلی جامع و بی نظیر و بدرد بخور منبع جامع و عالی تشکر دستتون درد نکنه :)
saeed :
17 2
سلام، نوع داده مناسب برای قیمت ( ریال یا تومان ) کدوم بهتره ؟ ممنون میشم، جواب رو ایمیل کنید. با تشکر.
مدیریت : با سلام. decimal
حميد :
15 1
مطالبي كه تو سايت قرار داديد فوق العاده است و راحت ميشه اونها رو درك كرد، ممنون از شما
f :
20 1
باسلام من هیچ چیزی راجع به sglنمیدونم ایا میشه از این طریق یاد گرفت
شاهین :
25 1
سلام / برای ذخیره سازی کد اقتصادی از چه نوع متغییری استفاده کنیم بهتره ؟ یا سپاس
زانیار نادم :
12 0
مرسی واقعا عالی
مبینا :
28 0
سلام و مرسی از وبلاگ خوبتون منسه سوال داشتم از خدمتتون میخواستم بدونم علت گذاشتن دو داده decimal وnumeric به خاطرچی هست؟ اگه تفاوتی ندارن پس چرا دو تا نوع داده گذاشتن ممنون میشم هر چه سریع تر پاسخ بدید
y.alizadeh :
8 0
با تشکر از مطلب خوبتون. یک نکته: bigint می‌تواند اعداد بین مثبت و منفی ۴ میلیارد میلیارد (یعنی ۴ در ده به توان هجده) را در خود ذخیره کند.
هادی :
6 0
خیلی ممنونم.استفاده کردیم
:
1 0
دستتون درد نکنه با ایت مطالب خوبتون و جمع بندی شده
:
0 0
خیلی ممنون
آتش افروز :
1 0
سپاس از مطلب بسیار مفید و کاملتون البته محدوده bigint تا مثبت و منفی 9,223,372,036,854,775,807 هست که به مراتب بزرگتر از 4 میلیارد میباشد.
سایر مقالات
انواع داده و متغیر در SQL انواع داده و متغیر در SQL انواع داده در SQL مشخص می کنند هر ستون چه نوع اطلاعاتی را نگهداری کند و چه مقدار فضا، دقت و محدودیتی ...
دستورات DML و DDL در اس کیو ال دستورات DML و DDL در اس کیو ال دستورات DML و DDL در اس کیو ال SQL به دو قسمت تقسیم میشود : زبان دستکاری داده ها DML (Data Manip ...
استفاده از SQL در طراحی سایت استفاده از SQL در طراحی سایت استفاده از SQL در طراحی سایت برای ایجاد یک وب سایت داینامیک که داده ها و اطلاعات را از یک پایگاه دا ...
با SQL چه کار هایی میتوان انجام داد ؟ با SQL چه کار هایی میتوان انجام داد ؟ با SQL چه کار هایی میتوان انجام داد ؟  SQL  این توانایی را  دارد که یک کوئری (Quer ...
تاریخچه اس کیو ال SQL تاریخچه اس کیو ال SQL   تاریخچه اس کیو ال (SQL) منشا اصلی سی‌کوال به مقالهٔ سال ۱۹۷۰ ادگار کاد تحت عنوان &laqu ...
SQL چیست ؟ (اس کیو ال چیست) SQL چیست ؟ (اس کیو ال چیست) SQL چیست و چه کاربردی در پایگاه داده دارد؟ 💡تعریف ساده SQL SQL چیست؟ SQL یا زبان پرس وجوی ...
⏳ در حال پردازش...
لطفا صبر کنید