Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🛢️ Unit 2 – SQL से Database Query  ·  Lesson 05

Relations पर Operations और Joins

दो club tables

CHESS और QUIZ में school के दो clubs के students हैं। दोनों के columns एक जैसे हैं, इसलिए इन पर set operations चल सकते हैं।

SQL
SELECT * FROM CHESS;
Output
+--------+--------+-------+
| RollNo | Name   | Class |
+--------+--------+-------+
|     11 | Arnav  | XII   |
|     14 | Bhavya | XII   |
|     17 | Charu  | XI    |
|     21 | Daksh  | XI    |
+--------+--------+-------+
SQL
SELECT * FROM QUIZ;
Output
+--------+--------+-------+
| RollNo | Name   | Class |
+--------+--------+-------+
|     14 | Bhavya | XII   |
|     19 | Esha   | XII   |
|     21 | Daksh  | XI    |
+--------+--------+-------+

UNION

UNION किसी भी table में मौजूद rows देता है; duplicates एक बार आते हैं।

CHESSQUIZ
CHESS ∪ QUIZ
SQL
SELECT Name FROM CHESS UNION SELECT Name FROM QUIZ ORDER BY Name;
Output
+--------+
| Name   |
+--------+
| Arnav  |
| Bhavya |
| Charu  |
| Daksh  |
| Esha   |
+--------+

INTERSECT

INTERSECT दोनों tables में common rows देता है – दोनों clubs वाले students।

CHESSQUIZ
CHESS ∩ QUIZ
SQL
SELECT Name FROM CHESS INTERSECT SELECT Name FROM QUIZ ORDER BY Name;
Output
+--------+
| Name   |
+--------+
| Bhavya |
| Daksh  |
+--------+
SQL
SELECT Name FROM CHESS WHERE RollNo IN (SELECT RollNo FROM QUIZ);
Output
+--------+
| Name   |
+--------+
| Bhavya |
| Daksh  |
+--------+

MINUS / EXCEPT

MINUS (MySQL में EXCEPT) पहली table की वे rows देता है जो दूसरी में नहीं – सिर्फ़ Chess वाले students।

CHESSQUIZ
CHESS − QUIZ
SQL
SELECT Name FROM CHESS EXCEPT SELECT Name FROM QUIZ ORDER BY Name;
Output
+-------+
| Name  |
+-------+
| Arnav |
| Charu |
+-------+
SQL
SELECT Name FROM CHESS WHERE RollNo NOT IN (SELECT RollNo FROM QUIZ);
Output
+-------+
| Name  |
+-------+
| Arnav |
| Charu |
+-------+

Cartesian product

FROM में बिना join condition के दो tables लिखने पर एक की हर row दूसरी की हर row से जुड़ती है: 4 × 3 = 12 rows।

SQL
SELECT COUNT(*) FROM CHESS, QUIZ;
Output
+----------+
| COUNT(*) |
+----------+
|       12 |
+----------+
SQL
SELECT C.Name, Q.Name FROM CHESS C, QUIZ Q WHERE C.Class = 'XI' AND Q.Class = 'XII' ORDER BY C.Name, Q.Name;
Output
+-------+--------+
| Name  | Name   |
+-------+--------+
| Charu | Bhavya |
| Charu | Esha   |
| Daksh | Bhavya |
| Daksh | Esha   |
+-------+--------+

दो relations: joins

PRODUCT🔑 PID INTPName VARCHAR(15)Price INT🔗 SupID CHAR(3)SUPPLIER🔑 SupID CHAR(3)SupName VARCHAR(20)City VARCHAR(12)
SupID links the two tables
SQL
SELECT * FROM SUPPLIER;
Output
+-------+---------------+--------+
| SupID | SupName       | City   |
+-------+---------------+--------+
| S1    | Kiran Traders | Delhi  |
| S2    | Om Supplies   | Indore |
| S3    | Star Mart     | Kochi  |
+-------+---------------+--------+
SQL
SELECT * FROM PRODUCT;
Output
+-----+------------+-------+-------+
| PID | PName      | Price | SupID |
+-----+------------+-------+-------+
|   1 | Pencil Box |   120 | S1    |
|   2 | Crayons    |    80 | S2    |
|   3 | Stapler    |   150 | S1    |
|   4 | Glue Stick |    35 | S3    |
+-----+------------+-------+-------+

शर्त PRODUCT.SupID = SUPPLIER.SupID सिर्फ़ मेल खाते जोड़े रखती है – यह equi-join है।

SQL
SELECT PName, Price, SupName FROM PRODUCT, SUPPLIER WHERE PRODUCT.SupID = SUPPLIER.SupID ORDER BY PName;
Output
+------------+-------+---------------+
| PName      | Price | SupName       |
+------------+-------+---------------+
| Crayons    |    80 | Om Supplies   |
| Glue Stick |    35 | Star Mart     |
| Pencil Box |   120 | Kiran Traders |
| Stapler    |   150 | Kiran Traders |
+------------+-------+---------------+
SQL
SELECT P.PName, S.City FROM PRODUCT AS P JOIN SUPPLIER AS S ON P.SupID = S.SupID WHERE P.Price > 100 ORDER BY P.PName;
Output
+------------+-------+
| PName      | City  |
+------------+-------+
| Pencil Box | Delhi |
| Stapler    | Delhi |
+------------+-------+
SQL
SELECT PName, SupName FROM PRODUCT NATURAL JOIN SUPPLIER ORDER BY PName;
Output
+------------+---------------+
| PName      | SupName       |
+------------+---------------+
| Crayons    | Om Supplies   |
| Glue Stick | Star Mart     |
| Pencil Box | Kiran Traders |
| Stapler    | Kiran Traders |
+------------+---------------+

GROUP BY के साथ join

SQL
SELECT S.SupName, COUNT(*) AS Items, SUM(P.Price) AS Total FROM PRODUCT P, SUPPLIER S WHERE P.SupID = S.SupID GROUP BY S.SupName ORDER BY S.SupName;
Output
+---------------+-------+-------+
| SupName       | Items | Total |
+---------------+-------+-------+
| Kiran Traders |     2 |   270 |
| Om Supplies   |     1 |    80 |
| Star Mart     |     1 |    35 |
+---------------+-------+-------+

Set operations के नियम

  • दोनों SELECTs में columns की संख्या, क्रम और types मेल खाएँ।
  • Result में column names पहले SELECT से आते हैं।
  • UNION duplicates हटाता है; UNION ALL रखता है।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

UNION, INTERSECT और MINUS के लिए क्या ज़रूरी है?
दोनों SELECT statements एक जैसी संख्या में और मेल खाते data types वाले columns लौटाएँ (union-compatible relations)।
क्या MySQL MINUS support करता है?
MySQL 8.0.31 और बाद के versions EXCEPT (MINUS का SQL नाम) और INTERSECT support करते हैं। पुराने versions में sub-query के साथ NOT IN और IN इस्तेमाल करें, जो इस page पर दिखाया है।
Cartesian product की degree और cardinality क्या होती है?
Degree = दोनों tables की degrees का जोड़; cardinality = उनकी cardinalities का गुणनफल।
← Class 12 Informatics Practices
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

अगला topicPandas का परिचय आपकी प्रगति: 5 / 25 (20%) · Lesson 6 / 25 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें