null به معنی پوچ یا خالی نیست

پرسیده شده
فعالیت 1506 روز پیش
دیده شده 1713 بار
2

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

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

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

تفاوت؟

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

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

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

منبع سوال

منبع

فایل پیوست

مهرداد
مهرداد

1 فروردین 99

4
حذف شده

سلام.

بعد خوندن این تاپیک منم یه مطالعه داشتم رو 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 هم واسه ادیتور لازمه.

فایل پیوست

محسن موحد

توسط

محسن موحد

1 فروردین 99