با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. هر دیتابیسی از جداولی تشکیل شده که هر جدول نیز شامل مجموعه ای از فیلدها یا ستون های مرتبط هستند که داده هایی را در خود ذخیره می کنند، نوع داده های فیلدها غالبا با یکدیگر متفاوت هستند، برخی فلیدها داده های عددی ، برخی رشته ها و برخی دیگر ممکن است نوع تاریخ و زمان را ذخیره کنند، مقدار فضای لازم برای ذخیره ی هر کدام از این نوع داده ها با یکدیگر متفاوت است از این رو SQLite به شما اجازه می دهد نوع داده ی فیلدهای جداول خود را تعیین کنید تا با این کار به بهینه سازی فضای هارد و عملکرد دیتابیس کمک کنید. برای این منظور بهتر است تا با انواع داده در SQLite آشنا شوید.
در این آموزش شما با انواع داده در SQLite که برای فیلدهای جداول تعریف شده آشنا خواهید شد.
هر مقداری که در دیتابیس SQLite ذخیره شده باشد، شامل یکی از کلاس های ذخیره سازی زیر است :
ردیف | کلاس های ذخیره سازی و توضیحات آن |
---|---|
۱ | NULL مقدار از نوع NULL است. |
۲ | INTEGER مقدار یک عدد صحیح علامتدار است که در ۱, ۲, ۳, ۴, ۶, یا ۸ بیت ذخیره می شود. |
۳ | REAL مقدار یک عدد اعشاری است، که به عنوان یک عدد اعشاری با استاندارد IEEE 8 بایت ذخیره می شود. |
۴ | TEXT مقدار یک رشته متن است که با استفاده از کدگذاری پایگاه داده ذخیره می شود (UTF-8، UTF-16BE یا UTF-16LE). |
۵ | BLOB مقدار یک مقدار داده است، دقیقا همانطور که وارد شد ذخیره می شود. |
کلاس ذخیره سازی SQLite کمی بیشتر از یک نوع داده است. برای مثال کلاس ذخیره سازی INTEGER شامل ۶ نوع داده های صحیح مختلف با طول های مختلف است.
SQLite از مفهوم نوع وابستگی بر روی ستون ها یا فیلدهای جداول پشتیبانی می کند.
هر ستونی می تواند هر نوع داده ای را ذخیره کند، اما کلاس ذخیره سازی ترجیحی روی یک ستون affinity (نوع وابستگی) نامیده می شود.
هر ستون جدول در یک پایگاه داده SQLite3 یکی از وابستگیهای نوع زیر است :
ردیف | وابستگی و توضیحات |
---|---|
۱ | TEXT این ستون تمام داده ها را با استفاده از کلاس های ذخیره سازی NULL، TEXT یا BLOB ذخیره می کند. |
۲ | NUMERIC این ستون ممکن است شامل مقادیری با تمام پنج کلاس ذخیره سازی باشد. |
۳ | INTEGER همانند یک ستون با میل NUMERIC (عددی)، با یک استثنا در یک عبارت CAST رفتار می کند. |
۴ | REAL رفتارهایی مانند ستون با وابستگی NUMERIC (عددی) به جز آن که مقادیر عدد صحیح را در نمایش اعشاری وارد می کند. |
۵ | NONE یک ستون با وابستگی NONE یک کلاس ذخیره سازی را بیش از دیگری ترجیح نمی دهد و هیچ تلاشی برای تحمیل داده ها از یک کلاس ذخیره سازی به دیگری نیست. |
جدول زیر لیست های مختلف نوع داده ها را لیست می کند که می توانند هنگام ایجاد جداول SQLite3 با وابستگی مربوطه مورد استفاده قرار گیرند:
نوع داده | وابستگی |
---|---|
| INTEGER |
| TEXT |
| NONE |
| REAL |
| NUMERIC |
SQLite کلاس ذخیره سازی Boolean جداگانه ندارد و به جای آن مقادیر Boolean در قالب دو مقدار عددی ۰ (false) و ۱ (true) ذخیره می شوند.
SQLite کلاس جداگانه ای برای ذخیره سازی مقادیر تاریخ و زمان ندارد.
اما SQLite قادر است مقادیر تاریخ و زمان را در قالب انواع مقادیر TEXT, REAL یا INTEGER ذخیره کند.
ردیف | کلاس های ذخیره ی تاریخ و فرمت آن |
---|---|
۱ | TEXT فرمت “YYYY-MM-DD HH:MM:SS.SSS” |
۲ | REAL تعداد روزهای پس از ظهر در گرینویچ در تاریخ ۲۴ نوامبر، ۴۷۱۴ ب.سی. |
۳ | INTEGER تعداد ثانیه ها از زمان ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC |
شما می توانید تاریخ و زمان را در هر یک از این فرمت ها ذخیره کنید و آزادانه بین فرمت ها با استفاده از توابع تاریخ و زمان ساخته شده تبدیل کنید.
در هر یک از دیتابیس های قدرتمند در دنیا انواع داده از جمله انواع داده در SQLite برای مشخص کردن نوع داده ای که قرار است در هر فیلد ذخیره شود ارائه گردیده است ، مشخص کردن نوع داده برای هر فیلد در جداول دیتابیس، به بهبود عملکرد برنامه و بهینه سازی فضای هارد سیستم کمک می کند.