Database
 sql >> डेटाबेस >  >> RDS >> Database

एसक्यूएल जहां स्टेटमेंट

SQL WHERE स्टेटमेंट परिचय

  • तालिकाओं से डेटा प्राप्त करते समय शर्त शामिल करने के लिए WHERE क्लॉज का उपयोग किया जाता है।
  • जब आपको एक शर्त निर्दिष्ट करनी होती है जिसे टेबल से डेटा खींचते समय पालन करना पड़ता है, उस स्थिति में जहां क्लॉज का उपयोग किया जाता है।
  • जहां क्लॉज का उपयोग उन रिकॉर्ड्स को फ़िल्टर करने के लिए किया जाता है जिन्हें आप सेलेक्ट स्टेटमेंट से पुनर्प्राप्त करते हैं ताकि आपको डेटा का एक छोटा सबसेट मिल सके।
  • जहां क्लॉज का इस्तेमाल जॉइन ऑपरेशन्स करने के लिए भी किया जाता है
  • जहां क्लॉज टेबल से केवल उन्हीं रिकॉर्ड्स को लौटाता है जो इसके साथ निर्दिष्ट शर्तों को पूरा करते हैं।
  • इस खंड का उपयोग न केवल SELECT Query के साथ किया जाता है, बल्कि UPDATE और DELETE क्वेरियों के साथ भी किया जा सकता है।
  1. कहां क्लॉज का चयन क्वेरी के साथ उपयोग करना
  • जहां एक तालिका से सभी कॉलम पुनर्प्राप्त करने के लिए SELECT क्वेरी के साथ क्लॉज।
  • किसी तालिका से सभी रिकॉर्ड पुनर्प्राप्त करने के लिए, तारांकन (*) प्रतीक का उपयोग किया जाता है।

वाक्यविन्यास:

          SELECT *FROM TABLE_NAME WHERE condition;

उदाहरण:

सबसे पहले, हम “bookdb” नाम से एक डेटाबेस तैयार करेंगे। फिर उस डेटाबेस में हम एक टेबल "बुक" बनाएंगे और टेबल में रिकॉर्ड्स डालेंगे। हम बाद के उदाहरणों के लिए उसी डेटाबेस और उसी तालिका पर विचार करेंगे।

अब, हम उस तालिका से सभी स्तंभों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 200 के बराबर है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> CREATE DATABASE bookdb;
 Query OK, 1 row affected (0.07 sec)
 mysql> USE bookdb;
 Database changed
 mysql> CREATE TABLE book(Book_ID INT NOT NULL AUTO_INCREMENT, Book_Name VARCHAR(100) NOT NULL, Book_Author VARCHAR(40) NOT NULL, Book_Price INT NOT NULL, PRIMARY KEY(Book_ID));
 Query OK, 0 rows affected (0.24 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("Learn MySQL","Abdul S", 180);
 Query OK, 1 row affected (0.07 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("MySQL Explained","Andrew Comeau", 150);
 Query OK, 1 row affected (0.04 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("MySQL Cookbook","Paul DuBois", 250);
 Query OK, 1 row affected (0.08 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("murach's MySQL","Joel Murach", 200);
 Query OK, 1 row affected (0.07 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("Head First SQL","Lynn Beighley", 300);
 Query OK, 1 row affected (0.07 sec)
 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT *FROM book WHERE Book_Price=200;
 +---------+----------------+-------------+------------+
 | Book_ID | Book_Name      | Book_Author | Book_Price |
 +---------+----------------+-------------+------------+
 |       4 | murach's MySQL | Joel Murach |        200 |
 +---------+----------------+-------------+------------+
 1 row in set (0.00 sec) 

Book_ID =4 के साथ केवल एक रिकॉर्ड है, जिसकी कीमत 200 के बराबर है। इसलिए उस विशेष रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।

  • जहां एक तालिका से एक या एक से अधिक विशिष्ट कॉलम पुनर्प्राप्त करने के लिए SELECT क्वेरी के साथ क्लॉज।
  • किसी तालिका से विशिष्ट स्तंभों को पुनः प्राप्त करने के लिए, उन सभी स्तंभों के नाम जिन्हें पुनर्प्राप्त किया जाना है, क्वेरी में ही निर्दिष्ट किए जाने चाहिए।
  • विशिष्ट स्तंभ नाम जिन्हें पुनर्प्राप्त किया जाना है, उन्हें अल्पविराम से अलग किया जाएगा।

वाक्यविन्यास:

SELECT COLUMN_NAME1,….,COLUMN_NAMEn FROM TABLE_NAME WHERE condition;

उदाहरण:

हम पुस्तक से विशिष्ट कॉलम (Book_ID, Book_Price) को पुनः प्राप्त करने के लिए जहां SELECT क्वेरी के साथ क्लॉज लागू करेंगे तालिका जहां पुस्तक की कीमत 200 के बराबर है।

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT Book_ID,Book_Price FROM book where Book_Price=200;
 +---------+------------+
 | Book_ID | Book_Price |
 +---------+------------+
 |       4 |        200 |
 +---------+------------+
 1 row in set (0.00 sec) 

Book_ID =4 के साथ केवल एक ही रिकॉर्ड है, जिसकी कीमत 200 के बराबर है। इसलिए, उस विशेष रिकॉर्ड का Book_ID और Book_Price प्रदर्शित होता है।

  • कहां क्लॉज का उपयोग UPDATE क्वेरी के साथ करना

वाक्यविन्यास:

UPDATE TABLE_NAME SET column_name = newvalue WHERE column_name1 = value1;

उदाहरण:

हम जहां क्लॉज जहां क्लॉज में एक शर्त के रूप में Book_ID निर्दिष्ट करके किसी विशेष रिकॉर्ड के Book_Name और Book_Author को अपडेट करने के लिए बुक टेबल पर UPDATE क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT *FROM book;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 |       3 | MySQL Cookbook  | Paul DuBois   |        250 |
 |       4 | murach's MySQL  | Joel Murach   |        200 |
 |       5 | Head First SQL  | Lynn Beighley |        300 |
 +---------+-----------------+---------------+------------+
 5 rows in set (0.00 sec)
 mysql> UPDATE book SET Book_name="Database Management Systems", Book_Author="Raghu Ramakrishnan" WHERE Book_ID=3;
 Query OK, 1 row affected (0.19 sec)
 Rows matched: 1  Changed: 1  Warnings: 0
 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 |       5 | Head First SQL              | Lynn Beighley      |        300 |
 +---------+-----------------------------+--------------------+------------+
 5 rows in set (0.00 sec) 

Book_ID =3 के साथ केवल एक रिकॉर्ड है, हमने उस रिकॉर्ड का Book_name और Book_Author बदल दिया है। इसलिए, अद्यतन तालिका प्रदर्शित होती है।

  • कहां DELETE क्वेरी के साथ क्लॉज का उपयोग करना

वाक्यविन्यास:

DELETE FROM TABLE_NAME WHERE column_name1 = value1;

उदाहरण:

हम बुक टेबल पर DELETE क्वेरी के साथ क्लॉज को लागू करेंगे

जहां खंड में एक शर्त के रूप में Book_ID निर्दिष्ट करके विशेष Book_ID वाली किसी पुस्तक को हटाएं।

 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 |       5 | Head First SQL              | Lynn Beighley      |        300 |
 +---------+-----------------------------+--------------------+------------+
 5 rows in set (0.00 sec)
 mysql> DELETE FROM book WHERE Book_ID=5;
 Query OK, 1 row affected (0.23 sec)
 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec) 

Book_ID =5 के साथ केवल एक ही रिकॉर्ड है, हमने उस पूरे रिकॉर्ड को बुक टेबल से हटा दिया है। इसलिए, अद्यतन तालिका प्रदर्शित होती है।

WHERE स्टेटमेंट वाले ऑपरेटर

आप जहां क्लॉज के साथ ऑपरेटरों का उपयोग कर सकते हैं। इन ऑपरेटरों का उपयोग SELECT, UPDATE और DELETE प्रश्नों में जहां क्लॉज के साथ किया जा सकता है।

  1. समान(=)

जब बराबर (=) ऑपरेटर का उपयोग जहां क्लॉज के साथ किया जाता है, तो यह तालिका से उन रिकॉर्ड्स को पुनः प्राप्त करेगा जहां तालिका में मौजूद कॉलम नाम का मान क्वेरी में निर्दिष्ट कॉलम नाम के मान के बराबर है।

उदाहरण:

हम उस तालिका से उन अभिलेखों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 200 के बराबर है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT *FROM book WHERE Book_Price=200;
 +---------+----------------+-------------+------------+
 | Book_ID | Book_Name      | Book_Author | Book_Price |
 +---------+----------------+-------------+------------+
 |       4 | murach's MySQL | Joel Murach |        200 |
 +---------+----------------+-------------+------------+
 1 row in set (0.00 sec) 

Book_ID =4 के साथ केवल एक रिकॉर्ड है, जिसकी कीमत 200 के बराबर है। इसलिए उस विशेष रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।

  • इससे बड़ा(>)

जब क्लॉज के साथ (>) ऑपरेटर से अधिक का उपयोग किया जाता है, तो यह उन रिकॉर्ड को तालिका से पुनर्प्राप्त करेगा जहां तालिका में मौजूद कॉलम नाम का मान क्वेरी में निर्दिष्ट कॉलम नाम के मान से अधिक है।

उदाहरण:

हम उस तालिका से उन अभिलेखों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 150 से अधिक है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price > 150;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 3 rows in set (0.00 sec) 

Book_ID =1, 3 और 4 के साथ तीन रिकॉर्ड हैं जिनकी कीमत 150 से अधिक है। इसलिए उन रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।

  • इससे कम(<)

जब कम से कम (<) ऑपरेटर का उपयोग जहां क्लॉज के साथ किया जाता है, तो यह तालिका से उन रिकॉर्ड्स को पुनः प्राप्त करेगा जहां तालिका में मौजूद कॉलम नाम का मान क्वेरी में निर्दिष्ट कॉलम नाम के मान से कम है।

उदाहरण:

हम उस तालिका से उन अभिलेखों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 200 से कम है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price < 200;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 +---------+-----------------+---------------+------------+
 2 rows in set (0.00 sec) 

Book_ID =1 और 2 के साथ दो रिकॉर्ड हैं जिनकी कीमत 200 से कम है। इसलिए उन रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।

  • इससे बड़ा या बराबर (>=)

जब क्लॉज के साथ अधिक या बराबर (> =) ऑपरेटर का उपयोग किया जाता है, तो यह उन अभिलेखों को तालिका से पुनर्प्राप्त करेगा जहां तालिका में मौजूद कॉलम नाम का मान निर्दिष्ट कॉलम नाम के मान से अधिक या बराबर है। क्वेरी।

उदाहरण:

हम उस तालिका से उन अभिलेखों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 150 से अधिक या उसके बराबर है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price >= 150;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec) 

हम देख सकते हैं कि Book_ID =1, 2, 3 और 4 के साथ चार रिकॉर्ड हैं जिनकी कीमत 150 से अधिक या उसके बराबर है। इसलिए उन रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।

  • इससे कम या बराबर (<=)

जब क्लॉज के साथ कम या बराबर (<=) ऑपरेटर का उपयोग किया जाता है, तो यह उन अभिलेखों को तालिका से पुनर्प्राप्त करेगा जहां कभी भी तालिका में मौजूद कॉलम नाम का मान निर्दिष्ट कॉलम नाम के मान से कम या बराबर होता है। क्वेरी।

उदाहरण:

हम उस तालिका से उन अभिलेखों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 200 से कम या उसके बराबर है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price <= 200;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 |       4 | murach's MySQL  | Joel Murach   |        200 |
 +---------+-----------------+---------------+------------+
 3 rows in set (0.00 sec) 

Book_ID =1, 2 और 4 के साथ तीन रिकॉर्ड हैं जिनकी कीमत 200 से कम या उसके बराबर है। इसलिए उन रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।

  • बराबर नहीं (<>)

जब नॉट इक्वल (<>) ऑपरेटर का उपयोग जहां क्लॉज के साथ किया जाता है, तो यह उन रिकॉर्ड्स को टेबल से पुनः प्राप्त करेगा जहां क्वेरी में निर्दिष्ट कॉलम नाम का मान तालिका में मौजूद कॉलम नाम के मूल्य से मेल नहीं खाता है।

उदाहरण:

हम तालिका से उन अभिलेखों को पुनः प्राप्त करने के लिए जहां पुस्तक की कीमत 250 के बराबर नहीं है, वहां सेलेक्ट क्वेरी के साथ क्लॉज लागू करेंगे।

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price <> 250;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 |       4 | murach's MySQL  | Joel Murach   |        200 |
 +---------+-----------------+---------------+------------+
 3 rows in set (0.00 sec) 

Book_ID =1, 2 और 4 के साथ तीन रिकॉर्ड हैं जिनकी कीमत 250 के बराबर नहीं है। इसलिए उन रिकॉर्ड के सभी कॉलम प्रदर्शित होते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक व्यवहार के साथ एक प्रश्न कैसे लिखें

  2. Ubuntu 20.04 पर Neo4j कैसे स्थापित करें?

  3. निगरानी उपलब्धता समूह प्रतिकृति तुल्यकालन

  4. प्राथमिक कुंजी पर अनुक्रमणिका के लिए एक साधारण उपयोग केस

  5. SQL के साथ टेबल और कॉलम कैसे ड्रॉप करें