Database MCQ Set 13 – SQL Joins and Subqueries

Database MCQ – Set 13 | SQL Joins and Subqueries (MySQL) में JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN, Self JOIN, table alias, Subquery, IN, EXISTS, Correlated Subquery, Scalar Subquery, UNION, UNION ALL और ON condition पर 20 प्रश्न सरल हिंदी व्याख्या के साथ दिए गए हैं। DCA, PGDCA, BCA, ITI COPA और अन्य कंप्यूटर परीक्षाओं की तैयारी के लिए उपयोगी।

बहुविकल्पीय प्रश्नों के लिए निर्देश
  1. हर प्रश्न को ध्यान से पढ़ें।
  2. चार विकल्पों में से एक सही उत्तर चुनें।
  3. सही उत्तर पर ✅ और गलत उत्तर पर ❌ का चिन्ह दिखाई देगा।
  4. गलत उत्तर मिलने पर आप दोबारा प्रयास कर सकते हैं।
  5. सभी प्रश्नों को हल करने के पश्चात् कृपया Show Score बटन पर क्लिक करें। उत्तीर्ण होने के लिए न्यूनतम अंक प्रतिशत 60% है।
  6. अपने स्कोर को सुधारने के लिए Try Again बटन का उपयोग करें।
Database MCQ Set 13: SQL joins and subqueries in MySQL

MySQL SQL Joins and Subqueries MCQ – Set 13

1. SQL में JOIN का उपयोग किसलिए किया जाता है? (What is JOIN used for in SQL?)

सही उत्तर : (B) रिलेटेड टेबल्स के डेटा को कंबाइन करने के लिए (To combine data from related tables)

Explanation: JOIN दो या अधिक related टेबल्स के डेटा को एक साथ जोड़कर दिखाता है, जैसे Student टेबल और Marks टेबल को RollNo के आधार पर जोड़ना। यह टेबल डिलीट करने, डेटाबेस का नाम बदलने या सभी रिकॉर्ड अपडेट करने के लिए नहीं है।

2. INNER JOIN कौन-सी rows लौटाता है? (Which rows does INNER JOIN return?)

सही उत्तर : (C) दोनों टेबल्स में मैचिंग कंडीशन पूरी करने वाली rows (Rows that satisfy the matching condition in both tables)

Explanation: INNER JOIN केवल वही rows दिखाता है जो दोनों टेबल्स में ON condition से मैच करती हैं। जैसे SELECT * FROM Student INNER JOIN Marks ON Student.RollNo = Marks.RollNo; में केवल उन्हीं छात्रों का डेटा आएगा जिनका RollNo दोनों टेबल्स में है। जो rows किसी एक टेबल में नहीं हैं, वे नहीं आएँगी।

3. LEFT JOIN का उपयोग करने पर सामान्यतः क्या होता है? (What generally happens when using LEFT JOIN?)

सही उत्तर : (A) Left table की सभी rows और right table की matching rows लौटती हैं (All left-table rows and matching right-table rows are returned)

Explanation: LEFT JOIN में left टेबल की सभी rows दिखती हैं, चाहे right टेबल में उनका match हो या न हो। जहाँ match नहीं मिलता, वहाँ right टेबल के कॉलम NULL दिखते हैं। यह केवल right table की rows नहीं लौटाता और tables डिलीट नहीं करता।

4. RIGHT JOIN सामान्यतः क्या लौटाता है? (What does RIGHT JOIN generally return?)

सही उत्तर : (D) Right table की सभी rows और left table की matching rows (All right-table rows and matching left-table rows)

Explanation: RIGHT JOIN LEFT JOIN का उल्टा है। इसमें right टेबल की सभी rows दिखती हैं, चाहे left टेबल में match हो या न हो। जहाँ match नहीं मिलता, वहाँ left टेबल के कॉलम NULL दिखते हैं। यह सभी tables का structure नहीं दिखाता।

5. दो related tables का data एक साथ दिखाने के लिए कौन-सा तरीका उपयुक्त है? (Which method is suitable for displaying data from two related tables together?)

सही उत्तर : (B) JOIN

Explanation: दो related टेबल्स का डेटा एक साथ देखने के लिए JOIN ही सही तरीका है। DROP TABLE टेबल हटाता है, TRUNCATE सभी rows हटाता है और ALTER DATABASE डेटाबेस की संरचना बदलता है—इनमें से कोई भी डेटा जोड़कर नहीं दिखाता।

6. SQL में table aliases का उपयोग क्यों किया जाता है? (Why are table aliases used in SQL?)

सही उत्तर : (C) क्वेरी में टेबल को छोटा या सुविधाजनक नाम देने के लिए (To give a shorter or convenient name to a table in a query)

Explanation: Table alias से क्वेरी छोटी और साफ़ बनती है, जैसे SELECT s.Name, m.Marks FROM Student s JOIN Marks m ON s.RollNo = m.RollNo;—यहाँ s और m alias हैं। alias केवल क्वेरी के दौरान का अस्थायी नाम है, टेबल का असली नाम नहीं बदलता।

7. यदि दो tables में एक ही column name हो, तो employees.id लिखने का क्या लाभ है? (What is the benefit of writing employees.id when two tables have the same column name?)

सही उत्तर : (A) कॉलम को स्पष्ट रूप से पहचानना (To identify the column explicitly)

Explanation: जब दो टेबल्स में एक ही नाम का कॉलम (जैसे id) हो, तो MySQL को समझ नहीं आता कि किस टेबल का id चाहिए। employees.id लिखने से कॉलम स्पष्ट रूप से पहचाना जाता है और "ambiguous column" वाली त्रुटि नहीं आती।

8. CROSS JOIN का परिणाम सामान्यतः किस पर आधारित होता है? (What is the result of a CROSS JOIN generally based on?)

सही उत्तर : (D) दोनों टेबल्स की rows के सभी possible combinations (All possible combinations of rows from both tables)

Explanation: CROSS JOIN में ON condition नहीं होती और हर left row को हर right row के साथ जोड़ दिया जाता है। अगर पहली टेबल में 3 rows और दूसरी में 4 rows हैं, तो परिणाम में 3 × 4 = 12 rows आएँगी। इसे Cartesian product भी कहते हैं।

9. Self JOIN क्या है? (What is a self join?)

सही उत्तर : (B) किसी टेबल को उसी टेबल के साथ join करना (Joining a table with itself)

Explanation: Self JOIN में एक ही टेबल को दो अलग-अलग aliases (जैसे e1 और e2) से जोड़ा जाता है, ताकि उसी टेबल की rows आपस में तुलना की जा सकें—जैसे employees टेबल में हर कर्मचारी का manager उसी टेबल से ढूँढना।

10. Subquery क्या होती है? (What is a subquery?)

सही उत्तर : (C) दूसरी SQL query के अंदर लिखी गई query (A query written inside another SQL query)

Explanation: Subquery (inner query) को किसी दूसरी SQL query (outer query) के अंदर लिखा जाता है, आमतौर पर brackets ( ) में। जैसे SELECT Name FROM Student WHERE RollNo IN (SELECT RollNo FROM Marks WHERE Marks > 80);—यहाँ IN के अंदर वाली query subquery है। यह बैकअप, इंडेक्स या टेबल का नाम नहीं है।

11. Subquery को सामान्यतः कहाँ उपयोग किया जा सकता है? (Where can a subquery generally be used?)

सही उत्तर : (D) SELECT, FROM या WHERE जैसे query clauses में (In query clauses such as SELECT, FROM, or WHERE)

Explanation: Subquery का उपयोग query के संदर्भ के अनुसार SELECT, FROM और WHERE जैसे clauses में किया जा सकता है। इसका सही स्थान query की आवश्यकता और SQL syntax पर निर्भर करता है।

12. IN operator के साथ subquery का उपयोग किसलिए किया जा सकता है? (What can a subquery with the IN operator be used for?)

सही उत्तर : (A) Returned list में value की मौजूदगी जाँचना (Checking whether a value is in the returned list)

Explanation: IN के साथ subquery एक list लौटाती है और outer query जाँचती है कि कोई value उस list में मौजूद है या नहीं। जैसे WHERE City IN (SELECT City FROM Students);—यह उन rows को दिखाएगा जिनकी City subquery की list में है।

13. EXISTS operator क्या जाँचता है? (What does the EXISTS operator check?)

सही उत्तर : (B) Subquery कोई row लौटाती है या नहीं (Whether the subquery returns any row)

Explanation: EXISTS केवल यह जाँचता है कि subquery से कोई row मिलती है या नहीं—TRUE या FALSE। अगर subquery कम से कम एक row लौटाती है तो EXISTS सही होता है। यह कॉलम की संख्या, डेटाबेस का आकार या टेबल का नाम नहीं जाँचता।

14. Correlated subquery की मुख्य विशेषता क्या है? (What is the main characteristic of a correlated subquery?)

सही उत्तर : (C) यह outer query के columns को reference करती है (It references columns from the outer query)

Explanation: Correlated subquery outer query के हर row के लिए दोबारा चलती है और outer query के कॉलम को अंदर उपयोग करती है। जैसे SELECT Name FROM Student s WHERE EXISTS (SELECT 1 FROM Marks m WHERE m.RollNo = s.RollNo);—यहाँ s.RollNo outer query का कॉलम है।

15. जो subquery एक ही value लौटाती है, उसे क्या कहा जा सकता है? (What can a subquery that returns a single value be called?)

सही उत्तर : (A) Scalar subquery

Explanation: Scalar subquery केवल एक row और एक कॉलम की एक ही value लौटाती है, जैसे SELECT Name FROM Student WHERE Marks = (SELECT MAX(Marks) FROM Student);—यहाँ अंदर वाली subquery एक ही value (सबसे अधिक अंक) देती है। यह JOIN, constraint या Foreign Key नहीं है।

16. UNION operator का उपयोग किसलिए होता है? (What is the UNION operator used for?)

सही उत्तर : (B) दो compatible SELECT results को combine करने के लिए (To combine two compatible SELECT results)

Explanation: UNION दो अलग SELECT queries के परिणामों को एक result में जोड़ देता है। शर्त यह है कि दोनों queries में कॉलमों की संख्या और डेटा टाइप समान हों। यह टेबल्स को परमानेंटली merge नहीं करता, नाम नहीं बदलता और Primary Key नहीं हटाता।

17. UNION और UNION ALL में मुख्य अंतर क्या है? (What is the main difference between UNION and UNION ALL?)

सही उत्तर : (C) UNION duplicate result rows हटाता है, जबकि UNION ALL duplicates को बनाए रखता है (UNION removes duplicate result rows, while UNION ALL retains them)

Explanation: UNION दोनों queries के परिणामों को जोड़कर डुप्लिकेट rows हटा देता है। UNION ALL डुप्लिकेट rows को भी बनाए रखता है, UNION ALL में duplicate elimination नहीं होता, इसलिए कुछ परिस्थितियों में यह अधिक efficient हो सकता है। वास्तविक performance query और execution plan पर निर्भर करती है ।

18. JOIN condition में ON का उपयोग किसलिए होता है? (What is ON used for in a JOIN condition?)

सही उत्तर : (A) Tables के बीच matching condition बताने के लिए (To specify the matching condition between tables)

Explanation: JOIN में ON clause tables की rows को जोड़ने की condition बताता है, जैसे ON Student.RollNo = Marks.RollNo। इससे matching RollNo वाले records combine होते हैं। CROSS JOIN जैसे joins में यह matching condition आवश्यक नहीं होती।

19. यदि JOIN condition में एक row दूसरी table की कई rows से match करती है, तो क्या हो सकता है? (What can happen if one row matches multiple rows in another table during a JOIN?)

सही उत्तर : (D) Result में उस row के लिए कई matching combinations आ सकते हैं (The result may contain multiple matching combinations for that row)

Explanation: अगर एक left row right टेबल की कई rows से match करती है, तो result में वह left row उतनी बार दिखेगी जितने matches हैं। इसे "row multiplication" कहते हैं। यह error नहीं है और database डिलीट नहीं होता; बस परिणाम में rows की संख्या बढ़ जाती है।

20. निम्न में से कौन-सा statement दो टेबल्स को उनके सामान्य कॉलम (common column) के आधार पर जोड़ता है? (Which statement joins two tables based on their common column?)

सही उत्तर : (C) SELECT * FROM Student JOIN Marks ON Student.RollNo = Marks.RollNo;

Explanation: सामान्य कॉलम (RollNo) के आधार पर दोनों टेबल्स को जोड़ने के लिए JOIN ... ON का उपयोग होता है। विकल्प (A) बिना शर्त के Cartesian product देगा, (B) UNION के लिए दोनों queries में समान कॉलम संख्या चाहिए और वह rows जोड़ता है, तथा (D) CROSS JOIN सभी combinations देगा—इनमें से कोई भी सही matching नहीं करता।

Post a Comment

Previous Post Next Post

Contact Form