تعداد انواع سفارش

ساخت وبلاگ

انواع عددی شامل اعداد صحیح دو ، چهار و هشت با هشت ، اعداد چهار و هشت با یک نقطه شناور و اعشار با دقت انتخابی است. در جدول 8. 2 انواع موجود ذکر شده است.

جدول 8. 2. انواع عددی

نام اندازه ذخیره سازی شرح دامنه
کوچک 2 بایت عدد صحیح -32768 تا +32767
عدد صحیح 4 بایت انتخاب معمولی برای عدد صحیح -2147483648 به +2147483647
با ابله 8 بایت عدد صحیح -9223372036854775808 به +9223372036854775807
اعشاری متغیر دقت مشخص شده توسط کاربر ، دقیق تا 131072 رقم قبل از نقطه اعشاری. حداکثر 16383 رقم پس از نقطه اعشاری
عددی متغیر دقت مشخص شده توسط کاربر ، دقیق تا 131072 رقم قبل از نقطه اعشاری. حداکثر 16383 رقم پس از نقطه اعشاری
واقعی 4 بایت با دقت متغیر ، غیرقابل توصیف 6 رقم اعشاری دقت
دقت دو برابر 8 بایت با دقت متغیر ، غیرقابل توصیف 15 رقم اعشاری دقت
کوچک 2 بایت عدد صحیح خودکار خودکار 1 تا 32767
سریال 4 بایت عدد صحیح 1 تا 2147483647
عظیم 8 بایت عدد صحیح خودجوش بزرگ 1 تا 9223372036854775807

نحو ثابت برای انواع عددی در بخش 4. 1. 2 شرح داده شده است. انواع عددی مجموعه کاملی از اپراتورها و توابع حسابی مربوطه را دارند. برای اطلاعات بیشتر به فصل 9 مراجعه کنید. بخش های زیر انواع مختلفی را شرح می دهد.

8. 1. 1. انواع عدد صحیح

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

نوع عدد صحیح انتخاب مشترک است ، زیرا بهترین تعادل بین دامنه ، اندازه ذخیره سازی و عملکرد را ارائه می دهد. نوع Smallint به طور کلی فقط در صورتی که فضای دیسک در حق بیمه باشد استفاده می شود. نوع BigInt به گونه ای طراحی شده است که وقتی دامنه نوع عدد صحیح کافی نباشد ، مورد استفاده قرار می گیرد.

8. 1. 2. اعداد دقیق دلخواه

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

ما از اصطلاحات زیر استفاده می کنیم: دقت یک عددی تعداد کل ارقام قابل توجه در کل تعداد است ، یعنی تعداد رقم ها به هر دو طرف نقطه اعشاری. مقیاس یک عددی تعداد رقم اعشاری در قسمت کسری ، در سمت راست نقطه اعشاری است. بنابراین شماره 23. 5141 دارای دقت 6 و مقیاس 4 است. عدد صحیح را می توان در نظر گرفت که دارای مقیاس صفر است.

هم حداکثر دقت و هم حداکثر مقیاس یک ستون عددی را می توان پیکربندی کرد. برای اعلام یک ستون از نوع عددی از نحو استفاده کنید:

دقت باید مثبت باشد ، در حالی که مقیاس ممکن است مثبت یا منفی باشد (به تصویر زیر مراجعه کنید). متناوبا، از سوی دیگر:

مقیاس 0 را انتخاب می کند: مشخص کردن:

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

حداکثر دقت که می تواند به صراحت در یک اعلامیه عددی مشخص شود 1000 است. یک ستون عددی بدون محدودیت مشمول محدودیت های شرح داده شده در جدول 8. 2 است.

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

مقادیر را تا 1 مکان اعشاری دور می کند و می تواند مقادیر بی ن-99. 9 و 99. 9 را شامل شود.

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

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

مقادیر را تا 5 مکان اعشاری دور می کند و می تواند مقادیر بی ن-0. 00999 و 0. 00999 را شامل شود.

مقادیر عددی از لحاظ جسمی بدون هیچ گونه صفر پیشرو یا دنباله دار ذخیره می شوند. بنابراین ، دقت و مقیاس اعلام شده یک ستون حداکثر است ، نه تخصیص ثابت.(به این معنا ، نوع عددی بیشتر از Varchar (n) نسبت به char (n) شبیه است.) نیاز ذخیره واقعی دو بایت برای هر گروه از چهار رقم اعشاری ، به علاوه سه تا هشت بایت بالای سر است.

علاوه بر مقادیر عددی معمولی ، نوع عددی دارای چندین مقدار ویژه است:

اینها از استاندارد IEEE 754 اقتباس شده اند ، و به ترتیب "بی نهایت" ، "بی نهایت منفی" و "شماره یک" را نشان می دهند. هنگام نوشتن این مقادیر به عنوان ثابت در یک دستور SQL ، باید نقل قول ها را در اطراف آنها قرار دهید ، به عنوان مثال جدول به روزرسانی مجموعه x = '-infinity'. از نظر ورودی ، این رشته ها به روشی حساس شناخته می شوند. مقادیر Infinity می تواند به صورت متناوب INF و-inf بیان شود.

ارزشهای بی نهایت مطابق انتظارات ریاضی رفتار می کنند. به عنوان مثال ، Infinity Plus هر مقدار محدود برابر با بی نهایت است ، مانند Infinity Plus Infinity ؛اما Infinity منهای بی نهایت NAN (نه یک عدد) را بازده می دهد ، زیرا هیچ تعبیر خوبی ندارد. توجه داشته باشید که بی نهایت فقط در یک ستون عددی بدون محدودیت قابل ذخیره است ، زیرا از نظر مفهومی از هر حد دقیق محدود فراتر می رود.

مقدار NAN (نه یک عدد) برای نشان دادن نتایج محاسبه نامشخص استفاده می شود. به طور کلی ، هر عملیاتی با ورودی NAN NAN دیگری را به دست می آورد. تنها استثناء این است که ورودی های دیگر عملیات به گونه ای باشد که اگر NAN با هر مقدار عددی محدود یا نامحدود جایگزین شود ، همان خروجی به دست می آید. سپس از این مقدار خروجی برای NAN نیز استفاده می شود.(نمونه ای از این اصل این است که NAN به قدرت صفر باز می شود.)

در بیشتر پیاده سازی های مفهوم "نه یک شماره" ، NAN برابر با هیچ مقدار عددی دیگر (از جمله NAN) در نظر گرفته نمی شود. به منظور این که مقادیر عددی در شاخص های مبتنی بر درخت طبقه بندی و مورد استفاده قرار گیرد ، PostgreSQL مقادیر NAN را برابر و بیشتر از تمام مقادیر غیر نان رفتار می کند.

انواع اعشاری و عددی معادل هستند. هر دو نوع بخشی از استاندارد SQL هستند.

هنگام گرد کردن مقادیر ، نوع عددی دور از صفر به هم می پیوندد ، در حالی که (در بیشتر دستگاه ها) انواع واقعی و دوتایی با دقت دور به نزدیکترین تعداد. مثلا:

8. 1. 3. انواع نقطه شناور

انواع داده های واقعی و دقت دوگانه، انواع عددی غیردقیق و با دقت متغیر هستند. در تمام پلتفرم هایی که در حال حاضر پشتیبانی می شوند، این انواع پیاده سازی استاندارد IEEE 754 برای محاسبه باینری شناور (به ترتیب با دقت تک و دوگانه)، تا حدی که پردازنده، سیستم عامل و کامپایلر زیربنایی از آن پشتیبانی می کنند.

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

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

اگر می خواهید محاسبات پیچیده ای را با این نوع برای هر چیز مهمی انجام دهید، به ویژه اگر در موارد مرزی (بی نهایت، زیر جریان) به رفتار خاصی تکیه می کنید، باید پیاده سازی را به دقت ارزیابی کنید.

مقایسه دو مقدار ممیز شناور برای برابری ممکن است همیشه آنطور که انتظار می رود کار نکند.

در تمام پلتفرم های پشتیبانی شده در حال حاضر، نوع واقعی دارای محدوده ای در حدود 1E-37 تا 1E+37 با دقت حداقل 6 رقم اعشاری است. نوع دقت دوگانه دارای محدوده ای در حدود 1E-307 تا 1E+308 با دقت حداقل 15 رقمی است. مقادیر خیلی بزرگ یا خیلی کوچک باعث خطا می شوند. اگر دقت یک عدد ورودی خیلی زیاد باشد، ممکن است گرد شود. اعداد بیش از حد نزدیک به صفر که قابل نمایش به عنوان متمایز از صفر نیستند، باعث خطای زیر جریان می شوند.

به طور پیش فرض، مقادیر ممیز شناور به شکل متن در کوتاه ترین نمایش اعشاری دقیق خروجی می شوند. مقدار اعشاری تولید شده به مقدار باینری ذخیره شده واقعی نزدیکتر از هر مقدار دیگری است که با همان دقت باینری قابل نمایش است.(با این حال، مقدار خروجی در حال حاضر هرگز دقیقاً وسط بین دو مقدار قابل نمایش نیست، به منظور جلوگیری از یک اشکال گسترده که در آن روال های ورودی به درستی قانون دور به نزدیکترین زوج را رعایت نمی کنند.) این مقدار حداکثر از 17 اعشار معنی دار استفاده می کند. ارقام برای مقادیر float8 و حداکثر 9 رقم برای مقادیر float4.

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

برای سازگاری با خروجی تولید شده توسط نسخه های قدیمی تر PostgreSQL ، و برای کاهش دقت خروجی ، می توان از پارامتر EXTRA_FLAT_DIGITS برای انتخاب خروجی اعشاری گرد استفاده کرد. تنظیم مقدار 0 پیش فرض قبلی را برای گردآوری مقدار به 6 (برای float4) یا 15 (برای float8) رقم های اعشاری مهم بازیابی می کند. تعیین مقدار منفی تعداد ارقام را بیشتر کاهش می دهد. به عنوان مثا ل-2 به ترتیب به 4 یا 13 رقم باز می شود.

هر مقدار از EXTRA_FLOAT_DIGITS بیشتر از 0 قالب کوتاهترین را انتخاب می کند.

برنامه هایی که مقادیر دقیقی را می خواستند ، از نظر تاریخی مجبور بودند برای به دست آوردن آنها ، Extra_float_digits را به 3 تنظیم کنند. برای حداکثر سازگاری بین نسخه ها ، آنها باید به این کار ادامه دهند.

علاوه بر مقادیر عددی معمولی ، انواع نقطه شناور دارای چندین مقدار ویژه هستند:

اینها بیانگر مقادیر ویژه IEEE 754 "بی نهایت" ، "بی نهایت منفی" و "شماره یک" نیست. هنگام نوشتن این مقادیر به عنوان ثابت در یک دستور SQL ، باید نقل قول ها را در اطراف آنها قرار دهید ، به عنوان مثال جدول به روزرسانی مجموعه x = '-infinity'. از نظر ورودی ، این رشته ها به روشی حساس شناخته می شوند. مقادیر Infinity می تواند به صورت متناوب INF و-inf بیان شود.

IEEE 754 مشخص می کند که NAN نباید برابر با هر مقدار نقطه شناور دیگر (از جمله NAN) باشد. به منظور این که مقادیر نقطه شناور در شاخص های مبتنی بر درخت طبقه بندی و مورد استفاده قرار گیرند ، PostgreSQL مقادیر NAN را برابر و بیشتر از تمام مقادیر غیر NAN درمان می کند.

PostgreSQL همچنین برای مشخص کردن انواع عددی غیرقابل توصیف ، از شناسه های استاندارد SQL و شناور (P) پشتیبانی می کند. در اینجا ، P حداقل دقت قابل قبول را در رقم باینری مشخص می کند. PostgreSQL شناور (1) را برای شناور (24) به عنوان انتخاب نوع واقعی می پذیرد ، در حالی که شناور (25) برای شناور (53) Double Precision را انتخاب کنید. مقادیر P خارج از محدوده مجاز خطایی را ترسیم می کند. شناور بدون دقت مشخص شده به معنای دقت دو برابر است.

8. 1. 4. انواع سریال

در این بخش یک روش خاص PostgreSQL برای ایجاد یک ستون خودکارآمدی توضیح داده شده است. راه دیگر استفاده از ویژگی ستون هویت SQL-Standard است که در Create Table شرح داده شده است.

انواع داده های کوچک ، سریال و بزرگ انواع واقعی نیستند ، بلکه صرفاً یک راحتی قابل توجه برای ایجاد ستون های شناسه منحصر به فرد (مشابه ویژگی auto_increment که توسط برخی از پایگاه داده های دیگر پشتیبانی می شود). در اجرای فعلی ، مشخص کردن:

معادل مشخص کردن:

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

از آنجا که کوچک ، سریال و بزرگ با استفاده از توالی اجرا می شوند ، ممکن است "سوراخ" یا شکاف هایی در توالی مقادیر وجود داشته باشد که در ستون ظاهر می شود ، حتی اگر هیچ ردیف حذف نشده باشد. مقدار اختصاص یافته از دنباله هنوز "استفاده می شود" حتی اگر یک ردیف حاوی آن مقدار هرگز با موفقیت در ستون جدول وارد نشود. این ممکن است ، به عنوان مثال ، اگر معامله درج برگردد ، اتفاق بیفتد. برای جزئیات بیشتر به NextVal () در بخش 9. 17 مراجعه کنید.

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

Names Names Serial و Serial4 معادل هستند: هر دو ستون عدد صحیح ایجاد می کنند. نوع نام Bigserial و Serial8 به همان روش کار می کنند ، به جز اینکه آنها یک ستون BigInt ایجاد می کنند. در صورت پیش بینی استفاده از بیش از 2 31 شناسه در طول عمر جدول ، باید از Bigserial استفاده شود. نوع نام های کوچک و Serial2 نیز به همان روش کار می کنند ، به جز اینکه یک ستون کوچک ایجاد می کنند.

دنباله ایجاد شده برای یک ستون سریال به طور خودکار با کاهش ستون مالکیت کاهش می یابد. می توانید دنباله را بدون رها کردن ستون رها کنید ، اما این باعث می شود که حذف پیش فرض ستون باشد.

سعادت Up بعد
فصل 8. انواع داده ها خانه 8. 2انواع پولی

ارسال تصحیح

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

ویدیو های آموزشی فارکس...
ما را در سایت ویدیو های آموزشی فارکس دنبال می کنید

برچسب : نویسنده : محبوب امانی بازدید : 49 تاريخ : چهارشنبه 27 ارديبهشت 1402 ساعت: 11:32