बराबर ऑपरेटर (=
) शायद SQL में सबसे अधिक इस्तेमाल किया जाने वाला ऑपरेटर है। यह दो भावों की समानता की तुलना करता है। भले ही आपने अभी-अभी अपनी SQL यात्रा शुरू की हो, आप शायद इस ऑपरेटर को जानते होंगे।
स्रोत तालिका
कल्पना कीजिए कि हमारे डेटाबेस में निम्न तालिका है। यह वह तालिका है जिसका उपयोग हम इस पृष्ठ पर उदाहरणों के लिए करेंगे।
SELECT * FROM Pets;
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +---------+-------------+-----------+-----------+------------+ (8 rows affected)
उदाहरण
यदि हम सभी पालतू जानवरों को एक निश्चित मालिक के साथ प्राप्त करना चाहते हैं, तो हम यह कर सकते हैं:
SELECT *
FROM Pets
WHERE OwnerId = 3;
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 4 | 3 | 3 | Wag | 2020-03-15 | +---------+-------------+-----------+-----------+------------+
हमारी क्वेरी बराबर ऑपरेटर का उपयोग करती है (=
) OwnerId
. के मान की समानता की तुलना करने के लिए कॉलम और 3
.
इस मामले में, मालिक संख्या 3 के पास 3 पालतू जानवर हैं।
स्ट्रिंग्स
स्ट्रिंग मान के साथ तुलना करते समय, स्ट्रिंग के चारों ओर उद्धरण चिह्नों का उपयोग करें। उदाहरण के लिए, यदि हम Fluffy नाम के सभी पालतू जानवरों के बारे में जानकारी प्राप्त करना चाहते हैं, तो हम निम्न कार्य कर सकते हैं:
SELECT *
FROM Pets
WHERE PetName = 'Fluffy';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | +---------+-------------+-----------+-----------+------------+
हमारी क्वेरी बराबर ऑपरेटर का उपयोग करती है (=
) PetName
. के मान की समानता की तुलना करने के लिए कॉलम और स्ट्रिंग Fluffy
.
हमारे मामले में, हम देख सकते हैं कि पालतू होटल में वर्तमान में Fluffy नामक दो पालतू जानवर हैं।
एकाधिक शर्तें
यदि आपके पास एकाधिक शर्तें हैं, तो आप एकाधिक बराबर ऑपरेटरों का उपयोग कर सकते हैं।
इस तरह:
SELECT * FROM Pets
WHERE PetName = 'Fluffy' OR PetName = 'Tweet';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | +---------+-------------+-----------+-----------+------------+
हम देख सकते हैं कि इसने उन पंक्तियों को वापस कर दिया जहां PetName
कॉलम या तो था Fluffy
या Tweet
.
शर्त को नकारना
आप NOT
का उपयोग कर सकते हैं बराबर ऑपरेटर द्वारा प्रदान की गई शर्त को नकारने के लिए ऑपरेटर। यहां एक उदाहरण दिया गया है:
SELECT *
FROM Pets
WHERE NOT PetName = 'Fluffy';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +---------+-------------+-----------+-----------+------------+
ऐसा करने का एक वैकल्पिक तरीका ऑपरेटर के बराबर नहीं का उपयोग करना है, जो या तो <>
. है या !=
(या दोनों) आपके DBMS पर निर्भर करता है।
शून्य मान
आपने देखा होगा कि हमारी मूल नमूना तालिका में कुछ NULL
हैं DOB कॉलम में मान।
एक कॉलम जिसमें NULL
. है यानी इसका कोई मूल्य नहीं है। यह 0
. से अलग है या false
, या यहां तक कि एक खाली स्ट्रिंग।
NULL
. से तुलना करने के लिए आप बराबर ऑपरेटर का उपयोग नहीं कर सकते हैं . दरअसल, यह आपके डीबीएमएस और इसके कॉन्फ़िगरेशन पर निर्भर हो सकता है। लेकिन अभी के लिए, आइए देखें कि क्या होता है यदि मैं DOB कॉलम की तुलना NULL
से करने की कोशिश करता हूं ।
SELECT * FROM Pets
WHERE DOB = NULL;
परिणाम:
(0 rows affected)
NULL
. के लिए परीक्षण करने का तरीका उपयोग करना है IS
।
इसलिए, हमें उपरोक्त कथन को निम्नानुसार फिर से लिखना होगा।
SELECT * FROM Pets
WHERE DOB IS NULL;
परिणाम:
+---------+-------------+-----------+-----------+-------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+-------| | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +---------+-------------+-----------+-----------+-------+
NULL
शुरुआती लोगों के लिए अपना सिर घुमाने के लिए मूल्य एक मुश्किल चीज हो सकती है। वास्तव में, अनुभवी डेवलपर्स के लिए अपना सिर इधर-उधर करना एक मुश्किल काम हो सकता है! SQL में, NULL
NULL
. से थोड़ा अलग अर्थ है अधिकांश अन्य प्रोग्रामिंग भाषाओं में।
लेकिन याद रखने वाली महत्वपूर्ण बात यह है कि, SQL में, NULL
मतलब मूल्य की कमी। कोई मूल्य नहीं है। इसलिए, हम यह नहीं कह सकते कि यह किसी और चीज़ के बराबर है या नहीं, क्योंकि इसका कोई मूल्य नहीं है।
यदि आप रुचि रखते हैं, तो देखें SQL Server ANSI_NULLS Explained
यह देखने के लिए कि आप NULL
का तरीका कैसे बदल सकते हैं SQL सर्वर में मानों का इलाज किया जाता है।