💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ مهرداد
null به معنی پوچ یا خالی نیست
محسن موحد حل شده توسط محسن موحد

سلام، نوروز مبارک :-)

مسئله: می‌خوام یه ستون  مشخص از جدول رو بررسی کنم ببینم خالی هست یا نه 

وقتی  با IF RESLUT IS NULL  بررسی کردم با شکست روبه رو شدم ولی وقتی با  "" == RESULT جواب داد

تفاوت؟

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

2.  هیچ محدودیتی  ستون‌های یه پایگاه داده نداره یعنی عددی، رشته و... می‌توانند از NULL استفاده کنند

3. NULL هیچ درخواست حافظه ای ندارد، یه رشته با مقدار NULL در واقع اشاره گری هست که به هیچ کجا اشاره نمی‌کنه اما "" به یه جایی از RAM اشاره میکنه با این تفاوت که مقدار ""(خالی) میگیره

منبع سوال

منبع

سلام.

بعد خوندن این تاپیک منم یه مطالعه داشتم رو NULL، با توجه به گفته‌های dev.mysql:

هر ستونی که قابلیت NULL شدن رو داشته باشه، یک بیت فضا رو در Record Header اشغال میکنه. فضای اشغال شدش، محاسبش به این صورته:

CEILING(N/8)

یعنی تعداد ستون‌های نال / ۸ => به نزدیکترین بایت گرد میشن.

حالا با توجه به این یه مقایسه دیدم که جالب بود.

مقدار فضای اشغال شده براساس تعداد ستون‌های نال در یک رکورد:

0 NULLS = 0 bytes
1 - 8 NULLS = 1 byte
9 - 16 NULLS = 2 bytes
17 - 24 NULLS = 3 bytes
etc...

 

حالا مقایسه ی فضای اشغال شده ی مقادیر NULL و Empty String و مقدار ۰:

1 NULL requires 1 byte
1 Empty String requires 1 byte (Type = VARCHAR)
1 Zero requires 4 bytes (Type = INT)
***************************
8 NULLs require 1 byte
8 Empty Strings require 8 bytes
8 Zeros require 32 bytes

 

سال خوبی رو براتون آرزو میکنم.

پ.ن: قابلیت inline syntax هم واسه ادیتور لازمه.

بهترین پاسخ
محسن موحد ۰۱ فروردین ۱۳۹۹، ۱۷:۵۵