آموزش رایگان صفر تا صد اسکیوال (SQL) به زبان ساده
-
آشنایی با SQL
-
آشنایی با دستورات SQL
-
دستور SELECT در SQL
-
دستور SQL SELECT DISTINCT
-
فیلتر کردن دادهها با WHERE در SQL
-
دستور ORDER BY در SQL
-
عملگر AND در SQL چیست؟
-
اپراتور OR در SQL
-
اپراتور NOT در SQL
-
دستور INSERT INTO در SQL
-
مقدار NULL در SQL
-
دستور UPDATE در SQL – بهروزرسانی اطلاعات جدول
-
دستور DELETE در SQL
-
مفهوم TOP، LIMIT، FETCH FIRST یا ROWNUM در SQL
-
توابع تجمیعی در SQL
-
معرفی توابع ()MIN و ()MAX در SQL
-
تابع COUNT() در SQL
-
تابع SUM() در SQL
-
تابع ()AVG در SQL
-
عملگر LIKE در SQL
-
استفاده از Wildcards در SQL
-
دستور IN در SQL
-
دستور BETWEEN در SQL
-
آشنایی با Aliases در SQL
-
مفهوم SQL JOIN
-
مفهوم INNER JOIN در SQL
مقدار NULL در SQL
در SQL، مقدار NULL یعنی هیچ مقداری در فیلد ذخیره نشده است. این یعنی آن فیلد خالی است و هیچ مقدار عددی، متنی یا حتی فاصله (Space) ندارد.
📌 مثال: فرض کنید یک جدول به نام Customers داریم که اطلاعات مشتریان را ذخیره میکند. برخی از مشتریان ممکن است آدرس خود را ثبت نکرده باشند، بنابراین مقدار NULL در فیلد Address قرار میگیرد.
تفاوت مقدار NULL با عدد 0 یا متن خالی ⚠️
- NULL یعنی مقدار ناشناخته یا خالی است.
- عدد 0 یعنی مقدار مشخصی (عدد صفر) در فیلد ذخیره شده است.
- متن خالی (“”) یعنی مقدار وارد شده، ولی هیچ کاراکتری در آن وجود ندارد.
🚨 نکته مهم: مقدار NULL با مقدار 0 یا متن خالی فرق دارد و باید به روش خاصی آن را بررسی کنیم.
چگونه مقدار NULL را در SQL بررسی کنیم؟ 🔍
برای بررسی مقدار NULL نمیتوان از عملگرهای مقایسهای مثل =
یا <
یا <>
استفاده کرد.
✅ به جای آن باید از IS NULL یا IS NOT NULL استفاده کنیم.
دستور IS NULL در SQL 🛑
از IS NULL
برای پیدا کردن فیلدهایی که مقدار NULL دارند استفاده میکنیم.
📌 مثال: پیدا کردن مشتریانی که آدرس ندارند
این دستور تمام مشتریانی را نمایش میدهد که مقدار NULL در فیلد Address دارند.
دستور IS NOT NULL در SQL
از IS NOT NULL برای پیدا کردن فیلدهایی که مقدار NULL ندارند استفاده میکنیم.
مثال: پیدا کردن مشتریانی که آدرس دارند
این دستور مشتریانی را نمایش میدهد که مقدار Address آنها NULL نیست.
جدول نمونه: Customers 📋
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | NULL | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
📌 در این جدول، مشتری “Around the Horn” مقدار NULL در ستون Address دارد، یعنی آدرس او مشخص نیست.
نتایج اجرای دستورات SQL 📊
✅ لیست مشتریانی که آدرس ندارند:
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;
🔹 خروجی:
CustomerName | ContactName | Address |
---|---|---|
Around the Horn | Thomas Hardy | NULL |
✅ لیست مشتریانی که آدرس دارند:
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;
🔹 خروجی:
CustomerName | ContactName | Address |
---|---|---|
Alfreds Futterkiste | Maria Anders | Obere Str. 57 |
Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 |
Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 |
Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 |
تمرین برای شما 🎯
✅ تمرین 1:
یک جدول Employees (کارمندان) دارید که فیلدی به نام PhoneNumber دارد.
❓ چطور میتوانید کارمندانی را پیدا کنید که شماره تلفن ندارند؟ 🤔
✅ تمرین 2:
در یک جدول Orders (سفارشات)، بعضی از سفارشات فیلد ShippedDate (تاریخ ارسال) ندارند.
❓ چطور میتوانید لیست سفارشهایی که ارسال نشدهاند را نمایش دهید؟