NULL در SQL Server چیست؟
NULL در SQL Server به معنای مقدار نامشخص است. NULL با صفر یا رشته خالی فرق دارد و برای بررسی آن باید از IS NULL استفاده کرد.
NULL در SQL Server چیست؟
در SQL Server، مقدار NULL به معنای "مقدار نامشخص" یا "وجود ندارد" است.NULL با صفر، رشته خالی یا مقدار پیشفرض متفاوت است.
صفر یک عدد است، رشته خالی یک رشته با طول صفر است، اما NULL یعنی "نمیدانیم" یا "مقداری ثبت نشده است".
به زبان ساده، NULL یعنی "مقداری وجود ندارد"، نه اینکه مقدار برابر با صفر یا خالی باشد.
تفاوت NULL با سایر مقادیر در SQL Server
| مقدار | معنی |
| 0 | عدد صفر - یک مقدار مشخص |
| '' (رشته خالی) | یک رشته با طول صفر - مقدار مشخص است |
| NULL | نامشخص، ناشناخته، وجود ندارد |
مثال ذهنی: در فرم ثبتنام، اگر کاربر تاریخ تولد خود را وارد نکند، مقدار آن NULL خواهد بود. این با این که کاربر متولد نشده باشد (که محال است) یا تاریخ تولد او صفر باشد (بیمعنی است) فرق دارد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
⇐همین حالا شروع کنید و به دنیای دادهها بپیوندید!
ویژگیهای مهم NULL در SQL Server
۱. NULL با هیچ مقدار دیگری برابر نیست
حتی دو NULL با هم برابر نیستند! چون اگر دو مقدار نامشخص داشته باشیم، نمیتوانیم بگوییم با هم برابرند یا نه.-- این عبارات درست نیستند
NULL = NULL -- نتیجه: Unknown (نه True)
NULL = 0 -- نتیجه: Unknown
NULL = '' -- نتیجه: Unknown
۲. محاسبات با NULL نتیجه NULL میدهند
اگر در هر عملیات حسابی یکی از مقادیر NULL باشد، نتیجه کل NULL خواهد بود.SELECT 10 + NULL AS Result; -- نتیجه: NULL
SELECT 5 * NULL AS Result; -- نتیجه: NULL
SELECT 'Hello' + NULL AS Result; -- نتیجه: NULL
۳. مقایسه با NULL همیشه Unknown برمیگرداند
در SQL Server، مقایسه با NULL نه True است و نه False، بلکه Unknown است. به همین دلیل در دستورات WHERE نباید از = NULL استفاده کرد.-- این کار درست نیست و هیچ ردیفی برنمیگرداند
SELECT * FROM Users WHERE BirthDate = NULL;
-- راه درست استفاده از IS NULL است
SELECT * FROM Users WHERE BirthDate IS NULL;

چگونه NULL را در SQL Server بررسی کنیم؟
برای بررسی NULL بودن یک مقدار، نمیتوان از عملگر = استفاده کرد. باید از عملگرهای مخصوص IS NULL و IS NOT NULL استفاده کرد.
-
IS NULL (بررسی NULL بودن)
-- پیدا کردن کاربرانی که تاریخ تولد آنها ثبت نشده است
SELECT FirstName, LastName FROM Users
WHERE BirthDate IS NULL;
-
IS NOT NULL (بررسی NULL نبودن)
-- پیدا کردن کاربرانی که تاریخ تولد آنها ثبت شده است
SELECT FirstName, LastName FROM Users
WHERE BirthDate IS NOT NULL;
کار با NULL در توابع مختلف در SQL
-
تابع ISNULL
این تابع دو پارامتر میگیرد: اگر مقدار اول NULL بود، مقدار دوم را جایگزین میکند.
SELECT
Name,
ISNULL(PhoneNumber, 'ثبت نشده') AS PhoneNumber
FROM Customers;
-
تابع COALESCE
این تابع لیستی از مقادیر را میگیرد و اولین مقدار غیر NULL را برمیگرداند.
SELECT
Name,
COALESCE(HomePhone, MobilePhone, WorkPhone, 'تماسی ثبت نشده') AS ContactNumber
FROM Customers;
-
تابع NULLIF
اگر دو مقدار با هم برابر باشند، NULL برمیگرداند؛ در غیر این صورت مقدار اول را برمیگرداند.
-- اگر مقدار با صفر برابر بود، NULL برگردان
SELECT NULLIF(Score, 0) AS ScoreWithoutZero FROM ExamResults;

NULL در دستورات مختلف SQL
-
در WHERE
-- کاربران با ایمیل ثبت نشده
SELECT * FROM Users WHERE Email IS NULL;
-- کاربران با ایمیل ثبت شده
SELECT * FROM Users WHERE Email IS NOT NULL;
-
در ORDER BY
-- NULLها آخر نمایش داده میشوند
SELECT Name, Age FROM Users ORDER BY Age;
-
در GROUP BY
-- ردیفهای با مقدار NULL در یک گروه جدا قرار میگیرند
SELECT City, COUNT(*) AS Count FROM Users GROUP BY City;
عملیات منطقی با NULL (سهارزشی) در SQL Server
SQL Server از منطق سهارزشی (Three-Valued Logic) استفاده میکند: True، False و Unknown. NULL باعث ایجاد Unknown میشود.| عبارت | نتیجه |
| NULL (Unknown) | TRUE AND NULL |
| FALSE | FALSE AND NULL |
| TRUE | TRUE OR NULL |
| NULL | FALSE OR NULL |
| NULL | NOT NULL |
جمعبندی
NULL در SQL Server به معنی مقدار نامشخص یا ثبت نشده است. مهمترین نکاتی که باید به خاطر بسپارید:NULL با صفر یا رشته خالی فرق دارد
برای بررسی NULL باید از IS NULL و IS NOT NULL استفاده کرد، نه =
هر عملیات حسابی با NULL نتیجه NULL میدهد
توابع ISNULL و COALESCE برای جایگزینی مقدار پیشفرض به کار میروند
در طراحی جدول، با دقت تصمیم بگیرید کدام ستونها میتوانند NULL داشته باشند


کاربران ما
شما هم نظرتون با ما دریاره “NULL در SQL Server چیست؟” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید