DBMS — MCQ Practice

Hindi aur English dono mein practice karo — click karo answer check karne ke liye

📚 130 Questions 🌐 Hindi + English ✅ Free
भाषा / Language:
130 questions
91
EN + हिं Medium
GB In DML what is LIMIT with UPDATE/DELETE and why is it useful?
IN डीएमएल में अपडेट/डिलीट के साथ LIMIT क्या है और यह उपयोगी क्यों है?
A
LIMIT changes the locking behavior of UPDATE/DELETE LIMIT UPDATE/DELETE के लॉकिंग व्यवहार को बदल देता है
B
LIMIT is only for SELECT statements in all DBMS LIMIT सभी DBMS में केवल SELECT स्टेटमेंट के लिए है
C
A syntax error - LIMIT cannot be used with UPDATE/DELETE एक सिंटैक्स त्रुटि - LIMIT का उपयोग UPDATE/DELETE के साथ नहीं किया जा सकता
D
MySQL supports DELETE FROM t WHERE condition ORDER BY col LIMIT n to safely delete/update a bounded number of rows - prevents accidentally deleting millions of rows and allows safe batch operations MySQL पंक्तियों की सीमित संख्या को सुरक्षित रूप से हटाने/अद्यतन करने के लिए col LIMIT n द्वारा DELETE FROM t WHERE स्थिति का समर्थन करता है - गलती से लाखों पंक्तियों को हटाने से रोकता है और सुरक्षित बैच संचालन की अनुमति देता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) MySQL: DELETE FROM log WHERE created_at < 2020-01-01 ORDER BY id LIMIT 1000; Useful for: safe batch deletes (prevents huge single transactions), purging old data in chunks to avoid replication lag, throttling bulk operations to reduce lock contention.
व्याख्या (हिन्दी) MySQL: लॉग से हटाएं जहां बनाया_at <2020-01-01 आईडी सीमा 1000 द्वारा ऑर्डर करें; इसके लिए उपयोगी: सुरक्षित बैच हटाता है (बड़े एकल लेनदेन को रोकता है), प्रतिकृति अंतराल से बचने के लिए पुराने डेटा को टुकड़ों में शुद्ध करता है, लॉक विवाद को कम करने के लिए बल्क ऑपरेशंस को थ्रॉटल करता है।
92
EN + हिं Easy
GB What is the SQL WITH CHECK OPTION clause when creating an updatable view?
IN अद्यतन करने योग्य दृश्य बनाते समय SQL with CHECK OPTION क्लॉज क्या है?
A
It checks the syntax of the view definition यह दृश्य परिभाषा के सिंटैक्स की जाँच करता है
B
It restricts who can modify rows through the view यह प्रतिबंधित करता है कि कौन दृश्य के माध्यम से पंक्तियों को संशोधित कर सकता है
C
It ensures that INSERT and UPDATE operations through the view only accept rows that satisfy the view WHERE clause - preventing modifications that would make the row invisible through the view यह सुनिश्चित करता है कि दृश्य के माध्यम से INSERT और UPDATE संचालन केवल उन पंक्तियों को स्वीकार करते हैं जो दृश्य को संतुष्ट करते हैं WHERE क्लॉज - उन संशोधनों को रोकते हैं जो पंक्ति को दृश्य के माध्यम से अदृश्य बना देंगे
D
It checks that the view returns the correct number of rows यह जाँचता है कि दृश्य पंक्तियों की सही संख्या लौटाता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) WITH CHECK OPTION: CREATE VIEW active_emp AS SELECT * FROM emp WHERE status=active WITH CHECK OPTION. Any INSERT/UPDATE through this view that would create/modify a row with status not equal to active is rejected. Without it, you could insert inactive status rows that disappear from the view.
व्याख्या (हिन्दी) चेक विकल्प के साथ: व्यू एक्टिव_एम्प को चयन के रूप में बनाएं * एम्प से जहां स्टेटस=चेक विकल्प के साथ सक्रिय है। इस दृश्य के माध्यम से कोई भी INSERT/UPDATE जो सक्रिय के बराबर नहीं स्थिति वाली एक पंक्ति बनाएगा/संशोधित करेगा, अस्वीकार कर दिया गया है। इसके बिना, आप निष्क्रिय स्थिति पंक्तियाँ सम्मिलित कर सकते हैं जो दृश्य से गायब हो जाती हैं।
93
EN + हिं Easy
GB What is the performance implication of an UPDATE on an indexed column?
IN अनुक्रमित कॉलम पर अद्यतन का प्रदर्शन निहितार्थ क्या है?
A
Indexes always make UPDATEs faster इंडेक्स हमेशा अपडेट को तेज़ बनाते हैं
B
Indexes have no effect on UPDATE performance अद्यतन प्रदर्शन पर अनुक्रमणिका का कोई प्रभाव नहीं पड़ता है
C
Updating an indexed column requires updating both the table row AND all indexes on that column making writes more expensive (each index requires a delete+insert in the B-tree structure) - the more indexes the slower the UPDATE किसी अनुक्रमित कॉलम को अपडेट करने के लिए तालिका पंक्ति और उस कॉलम के सभी इंडेक्स दोनों को अपडेट करने की आवश्यकता होती है, जिससे लिखना अधिक महंगा हो जाता है (प्रत्येक इंडेक्स को बी-ट्री संरचना में डिलीट + इंसर्ट की आवश्यकता होती है) - जितने अधिक इंडेक्स होंगे, अपडेट उतना ही धीमा होगा
D
Only primary key indexes affect UPDATE performance केवल प्राथमिक कुंजी सूचकांक ही अद्यतन प्रदर्शन को प्रभावित करते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) UPDATE on indexed column overhead: (1) Find and update the row in the heap/clustered index. (2) For EACH non-clustered index containing that column: remove old entry from B-tree, insert new entry at new position. With 5 indexes on updated column, one UPDATE performs 6+ I/O operations minimum.
व्याख्या (हिन्दी) अनुक्रमित कॉलम ओवरहेड पर अद्यतन करें: (1) ढेर/संकुल सूचकांक में पंक्ति ढूंढें और अद्यतन करें। (2) उस कॉलम वाले प्रत्येक गैर-संकुल सूचकांक के लिए: बी-ट्री से पुरानी प्रविष्टि हटाएं, नई स्थिति में नई प्रविष्टि डालें। अपडेट किए गए कॉलम पर 5 इंडेक्स के साथ, एक अपडेट न्यूनतम 6+ I/O ऑपरेशन करता है।
94
EN + हिं Easy
GB What is a bulk update pattern and how can it be implemented efficiently?
IN बल्क अपडेट पैटर्न क्या है और इसे कुशलतापूर्वक कैसे लागू किया जा सकता है?
A
A batch of UPDATE statements executed in parallel अद्यतन कथनों का एक बैच समानांतर में निष्पादित किया गया
B
Updating rows across multiple tables in one statement एक कथन में एकाधिक तालिकाओं में पंक्तियाँ अद्यतन करना
C
Updating all rows in a table at once किसी तालिका की सभी पंक्तियों को एक साथ अद्यतन करना
D
Updating many rows efficiently by using a single UPDATE with a JOIN or CASE expression to set different values per row based on a mapping table rather than executing N individual UPDATE statements एन व्यक्तिगत अपडेट स्टेटमेंट निष्पादित करने के बजाय मैपिंग तालिका के आधार पर प्रति पंक्ति अलग-अलग मान सेट करने के लिए जॉइन या केस अभिव्यक्ति के साथ एक अद्यतन का उपयोग करके कई पंक्तियों को कुशलतापूर्वक अपडेट करना
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Efficient bulk update: instead of 10,000 individual UPDATEs: (1) Load mapping into temp table: (id, new_value). (2) Single UPDATE: UPDATE t JOIN temp ON t.id=temp.id SET t.col=temp.new_value. Or use CASE: UPDATE t SET col = CASE id WHEN 1 THEN val1 WHEN 2 THEN val2 END WHERE id IN (1,2).
व्याख्या (हिन्दी) कुशल थोक अद्यतन: 10,000 व्यक्तिगत अद्यतनों के बजाय: (1) अस्थायी तालिका में मैपिंग लोड करें: (आईडी, नया_मूल्य)। (2) एकल अद्यतन: t.id=temp.id SET t.col=temp.new_value पर अस्थायी रूप से जुड़ने के लिए अद्यतन करें। या केस का उपयोग करें: अद्यतन टी सेट कॉल = केस आईडी जब 1 तब वैल1 जब 2 तब वैल2 समाप्त होता है जहां आईडी (1,2) होती है।
95
EN + हिं Medium
GB What is the SQL OUTPUT clause in SQL Server (or RETURNING in PostgreSQL) and how does it enable auditing patterns?
IN SQL सर्वर में SQL आउटपुट क्लॉज (या PostgreSQL में रिटर्निंग) क्या है और यह ऑडिटिंग पैटर्न को कैसे सक्षम करता है?
A
It outputs query results to a file यह क्वेरी परिणामों को एक फ़ाइल में आउटपुट करता है
B
It writes modified data to a log file यह संशोधित डेटा को लॉग फ़ाइल में लिखता है
C
It outputs execution plan information यह निष्पादन योजना की जानकारी आउटपुट करता है
D
It returns the values of modified rows from INSERT/UPDATE/DELETE operations enabling patterns like: capturing deleted row data into an audit table in a single statement or retrieving auto-generated IDs after INSERT without a separate SELECT यह INSERT/UPDATE/DELETE ऑपरेशंस से संशोधित पंक्तियों के मान लौटाता है, जिससे पैटर्न सक्षम होते हैं: हटाए गए पंक्ति डेटा को एक ही स्टेटमेंट में ऑडिट टेबल में कैप्चर करना या अलग सेलेक्ट के बिना INSERT के बाद ऑटो-जेनरेट की गई आईडी को पुनः प्राप्त करना।
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) SQL Server: DELETE FROM t OUTPUT DELETED.* INTO audit_table WHERE condition - atomically moves deleted rows to audit table in one statement. INSERT INTO t OUTPUT INSERTED.id, INSERTED.created_at VALUES (...) - returns generated values. Prevents race conditions of separate SELECT after DML.
व्याख्या (हिन्दी) एसक्यूएल सर्वर: डिलीट फ्रॉम टी आउटपुट डिलीटेड। * ऑडिट_टेबल में जहां स्थिति - हटाए गए पंक्तियों को एक स्टेटमेंट में ऑडिट टेबल पर ले जाता है। आउटपुट में सम्मिलित करें INSERTED.id, INSERTED.created_at मान (...) - उत्पन्न मान लौटाता है। डीएमएल के बाद अलग चयन की दौड़ की स्थिति को रोकता है।
96
EN + हिं Easy
GB What is the MERGE statement and when should it be preferred over separate INSERT/UPDATE/DELETE?
IN मर्ज स्टेटमेंट क्या है और इसे अलग-अलग INSERT/UPDATE/DELETE की तुलना में कब प्राथमिकता दी जानी चाहिए?
A
MERGE performs INSERT UPDATE or DELETE in a single atomic statement based on whether rows match between source and target - preferred when you need to synchronize two tables and want to avoid race conditions of separate read-then-write operations स्रोत और लक्ष्य के बीच पंक्तियाँ मेल खाती हैं या नहीं, इसके आधार पर MERGE एकल परमाणु कथन में INSERT UPDATE या DELETE निष्पादित करता है - पसंदीदा तब जब आपको दो तालिकाओं को सिंक्रनाइज़ करने की आवश्यकता होती है और अलग-अलग पढ़ने-फिर-लिखने के संचालन की दौड़ स्थितियों से बचना चाहते हैं
B
MERGE always outperforms separate DML statements MERGE हमेशा अलग-अलग DML स्टेटमेंट से बेहतर प्रदर्शन करता है
C
MERGE is identical to INSERT ON DUPLICATE KEY UPDATE मर्ज डुप्लिकेट कुंजी अद्यतन पर सम्मिलित करें के समान है
D
MERGE is only for bulk operations over 1000 rows MERGE केवल 1000 पंक्तियों से अधिक के थोक संचालन के लिए है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) MERGE (UPSERT): single atomic statement avoids race conditions (read to check existence, then write). Preferred for: ETL synchronization (sync staging to production), slowly-changing dimensions, inventory updates. Avoids: TOC/TOU (time-of-check/time-of-use) race condition in SELECT then INSERT/UPDATE pattern.
व्याख्या (हिन्दी) मर्ज (अपसर्ट): एकल परमाणु कथन नस्ल की स्थिति से बचाता है (अस्तित्व की जांच करने के लिए पढ़ें, फिर लिखें)। इसके लिए पसंदीदा: ईटीएल सिंक्रनाइज़ेशन (उत्पादन के लिए सिंक स्टेजिंग), धीरे-धीरे बदलते आयाम, इन्वेंट्री अपडेट। टालें: टीओसी/टीओयू (चेक-ऑफ-चेक/टाइम-ऑफ-यूज) दौड़ की स्थिति पहले सेलेक्ट करें फिर इन्सर्ट/अपडेट पैटर्न में।
97
EN + हिं Medium
GB What is the difference between DELETE and TRUNCATE in terms of transaction log and recoverability?
IN लेन-देन लॉग और पुनर्प्राप्ति के संदर्भ में DELETE और TRUNCATE के बीच क्या अंतर है?
A
DELETE is always faster than TRUNCATE DELETE हमेशा TRUNCATE से तेज़ होता है
B
TRUNCATE cannot be rolled back in any DBMS TRUNCATE को किसी भी DBMS में वापस नहीं लाया जा सकता
C
DELETE and TRUNCATE produce identical transaction log entries DELETE और TRUNCATE समान लेनदेन लॉग प्रविष्टियाँ उत्पन्न करते हैं
D
DELETE logs each individual row deletion (fully logged) enabling row-level rollback and trigger firing; TRUNCATE uses minimal logging (deallocates entire data pages) making it much faster but in most DBMS still rollbackable within an explicit transaction पंक्ति-स्तरीय रोलबैक और ट्रिगर फायरिंग को सक्षम करने वाले प्रत्येक व्यक्तिगत पंक्ति विलोपन (पूरी तरह से लॉग) को हटाएं; TRUNCATE न्यूनतम लॉगिंग का उपयोग करता है (संपूर्ण डेटा पृष्ठों को हटा देता है) जिससे यह बहुत तेज़ हो जाता है लेकिन अधिकांश DBMS में अभी भी एक स्पष्ट लेनदेन के भीतर रोलबैक किया जा सकता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DELETE: fully logged (each row deletion logged), triggers fire, WHERE clause possible, can be rolled back. TRUNCATE: minimally logged (page deallocation logged, not individual rows), no triggers, no WHERE clause, faster. In PostgreSQL and SQL Server: TRUNCATE CAN be rolled back within an explicit transaction. In MySQL: TRUNCATE always auto-commits.
व्याख्या (हिन्दी) हटाएं: पूरी तरह से लॉग किया गया (प्रत्येक पंक्ति विलोपन लॉग किया गया), आग ट्रिगर करता है, जहां क्लॉज संभव है, वापस लाया जा सकता है। ट्रंकेट: न्यूनतम रूप से लॉग किया गया (पेज डीलोकेशन लॉग किया गया, व्यक्तिगत पंक्तियाँ नहीं), कोई ट्रिगर नहीं, कोई WHERE क्लॉज नहीं, तेज़। PostgreSQL और SQL सर्वर में: TRUNCATE को एक स्पष्ट लेनदेन में वापस लाया जा सकता है। MySQL में: TRUNCATE हमेशा स्वतः-प्रतिबद्ध होता है।
98
EN + हिं Medium
GB What is the purpose of SELECT FOR UPDATE in SQL and how does it interact with other transactions?
IN SQL में SELECT FOR UPDATE का उद्देश्य क्या है और यह अन्य लेनदेन के साथ कैसे इंटरैक्ट करता है?
A
It creates a copy of the row for update यह अद्यतन के लिए पंक्ति की एक प्रति बनाता है
B
It updates rows and returns the results यह पंक्तियों को अद्यतन करता है और परिणाम लौटाता है
C
It is identical to a regular SELECT यह नियमित चयन के समान है
D
It acquires an exclusive lock on the selected rows preventing other transactions from modifying or locking those rows until the current transaction commits or rolls back - used to implement pessimistic locking for critical operations यह चयनित पंक्तियों पर एक विशेष लॉक प्राप्त करता है जो अन्य लेनदेन को उन पंक्तियों को संशोधित या लॉक करने से रोकता है जब तक कि वर्तमान लेनदेन शुरू नहीं हो जाता है या वापस नहीं आ जाता है - इसका उपयोग महत्वपूर्ण कार्यों के लिए निराशावादी लॉकिंग को लागू करने के लिए किया जाता है।
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) SELECT FOR UPDATE: acquires X-lock (or in PostgreSQL FOR UPDATE/FOR SHARE) on selected rows. Other transactions trying to SELECT FOR UPDATE or UPDATE the same rows will block until the first transaction releases. Used for: implementing check-and-update patterns, reservation systems, inventory management. Release locks on COMMIT/ROLLBACK.
व्याख्या (हिन्दी) अद्यतन के लिए चयन करें: चयनित पंक्तियों पर एक्स-लॉक (या अद्यतन/साझा करने के लिए PostgreSQL में) प्राप्त करता है। अद्यतन के लिए चयन करने या समान पंक्तियों को अद्यतन करने का प्रयास करने वाले अन्य लेन-देन पहले लेन-देन जारी होने तक अवरुद्ध हो जाएंगे। इसके लिए उपयोग किया जाता है: चेक-एंड-अपडेट पैटर्न, आरक्षण प्रणाली, इन्वेंट्री प्रबंधन लागू करना। COMMIT/रोलबैक पर लॉक जारी करें।
99
EN + हिं Medium
GB What happens when an INSERT violates a NOT NULL constraint vs a CHECK constraint in terms of error handling?
IN क्या होता है जब एक INSERT त्रुटि प्रबंधन के संदर्भ में NOT NULL बाधा बनाम CHECK बाधा का उल्लंघन करता है?
A
Both raise constraint violation errors but the error codes differ: NOT NULL violation raises a specific null constraint error and CHECK constraint violation raises a check constraint violation - both prevent the INSERT from completing and the transaction remains in an error state requiring rollback दोनों बाधा उल्लंघन त्रुटियों को बढ़ाते हैं लेकिन त्रुटि कोड भिन्न होते हैं: शून्य उल्लंघन एक विशिष्ट शून्य बाधा त्रुटि को जन्म देता है और चेक बाधा उल्लंघन एक चेक बाधा उल्लंघन को बढ़ाता है - दोनों INSERT को पूरा होने से रोकते हैं और लेनदेन एक त्रुटि स्थिति में रहता है जिसे रोलबैक की आवश्यकता होती है
B
CHECK constraint errors can be ignored; NOT NULL constraint errors always fail चेक बाधा त्रुटियों को नजरअंदाज किया जा सकता है; NOT NULL बाधा त्रुटियाँ हमेशा विफल रहती हैं
C
NOT NULL constraint silently replaces NULL with default value; CHECK constraint rolls back the entire transaction NOT NULL बाधा चुपचाप NULL को डिफ़ॉल्ट मान से बदल देती है; CHECK बाधा पूरे लेन-देन को वापस ले आती है
D
Both constraints produce identical errors दोनों बाधाएँ समान त्रुटियाँ उत्पन्न करती हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Both constraints prevent the INSERT and raise errors. NOT NULL violation: ORA-01400 in Oracle, ERROR 1048 in MySQL. CHECK violation: ORA-02290 in Oracle, ERROR 3819 in MySQL. Both require the transaction to be rolled back (or the statement rolled back in autocommit mode). The client must handle the error and retry or fix the data.
व्याख्या (हिन्दी) दोनों बाधाएँ INSERT को रोकती हैं और त्रुटियाँ बढ़ाती हैं। शून्य उल्लंघन नहीं: Oracle में ORA-01400, MySQL में त्रुटि 1048। उल्लंघन की जाँच करें: Oracle में ORA-02290, MySQL में त्रुटि 3819। दोनों को लेनदेन को वापस रोल करने की आवश्यकता होती है (या स्टेटमेंट को ऑटोकमिट मोड में वापस रोल किया जाता है)। क्लाइंट को त्रुटि को संभालना होगा और डेटा को पुनः प्रयास करना या ठीक करना होगा।
100
EN + हिं Easy
GB What is the INSERT ALL statement in Oracle SQL and what problem does it solve?
IN Oracle SQL में INSERT ALL स्टेटमेंट क्या है और यह किस समस्या का समाधान करता है?
A
Inserting all rows from one table to another सभी पंक्तियों को एक तालिका से दूसरी तालिका में सम्मिलित करना
B
Oracle-specific SQL that inserts multiple rows into multiple tables in a single statement (unconditional or conditional INSERT ALL INTO t1...INTO t2...) solving the problem of making multiple table inserts atomic and efficient from a single data scan ओरेकल-विशिष्ट एसक्यूएल जो एक ही स्टेटमेंट में कई पंक्तियों को कई तालिकाओं में सम्मिलित करता है (बिना शर्त या सशर्त INSERT ALL INTO t1...INTO t2...) एकल डेटा स्कैन से एकाधिक तालिका आवेषण को परमाणु और कुशल बनाने की समस्या को हल करता है
C
Inserting all columns from a single row एक ही पंक्ति से सभी कॉलम सम्मिलित करना
D
Inserting the same row into multiple copies of a table किसी तालिका की एकाधिक प्रतियों में एक ही पंक्ति सम्मिलित करना
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Oracle INSERT ALL: INSERT ALL INTO t1 (col) VALUES (val1) INTO t2 (col) VALUES (val2) SELECT 1 FROM DUAL; Or conditional: INSERT ALL WHEN id < 100 THEN INTO small_orders WHEN id >= 100 THEN INTO large_orders SELECT id, amount FROM staged_orders. Performs multiple inserts in single pass over source data, all in one atomic statement.
व्याख्या (हिन्दी) Oracle सभी सम्मिलित करें: सभी को t1 (col) मानों (val1) में t2 (col) मानों (val2) में सम्मिलित करें, दोहरे में से 1 चुनें; या सशर्त: आईडी <100 होने पर सभी को छोटे ऑर्डर में डालें, जब आईडी >= 100 हो तो बड़े ऑर्डर में डालें, चरणबद्ध ऑर्डर से आईडी, राशि चुनें। स्रोत डेटा पर एकल पास में एकाधिक प्रविष्टियाँ निष्पादित करता है, सभी एक परमाणु कथन में।
101
EN + हिं Easy
GB What is the INSERT IGNORE vs INSERT OR REPLACE behavior on a unique key constraint violation in MySQL?
IN MySQL में अद्वितीय कुंजी बाधा उल्लंघन पर INSERT IGNORE बनाम INSERT या REPLACE व्यवहार क्या है?
A
They produce identical results with just different syntax वे केवल भिन्न वाक्यविन्यास के साथ समान परिणाम उत्पन्न करते हैं
B
INSERT IGNORE deletes the duplicate; REPLACE preserves the original row INSERT IGNORE डुप्लिकेट को हटा देता है; REPLACE मूल पंक्ति को सुरक्षित रखता है
C
INSERT IGNORE: on unique key violation, silently skips the insert and keeps the original row unchanged (no error); INSERT OR REPLACE (REPLACE INTO): on unique key violation, deletes the conflicting row then inserts the new one (old row is gone, new auto-increment value generated, ON DELETE triggers fire) इंसर्ट इग्नोर: अद्वितीय कुंजी उल्लंघन पर, चुपचाप इंसर्ट छोड़ देता है और मूल पंक्ति को अपरिवर्तित रखता है (कोई त्रुटि नहीं); डालें या बदलें (इसमें बदलें): अद्वितीय कुंजी उल्लंघन पर, विरोधाभासी पंक्ति को हटा देता है और फिर नई पंक्ति डालता है (पुरानी पंक्ति चली जाती है, नया ऑटो-वृद्धि मान उत्पन्न होता है, डिलीट करने पर आग लग जाती है)
D
Both operations always succeed regardless of duplicates डुप्लिकेट की परवाह किए बिना दोनों ऑपरेशन हमेशा सफल होते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) INSERT IGNORE vs REPLACE vs ON DUPLICATE KEY UPDATE: IGNORE: keep old. REPLACE: delete old + insert new (loses old column values not in INSERT list, new auto-id). ON DUPLICATE KEY UPDATE SET col=val: partial update of specific columns only (most flexible, atomic). REPLACE loses the email column of the original row if email not in INSERT list. ON DUPLICATE KEY UPDATE name='Bob' preserves email.
व्याख्या (हिन्दी) इन्सर्ट इग्नोर बनाम रिप्लेस बनाम ऑन डुप्लिकेट कुंजी अपडेट: इग्नोर: पुराना रखें। प्रतिस्थापित करें: पुराना हटाएं + नया डालें (पुराने कॉलम मान खो देते हैं जो INSERT सूची में नहीं हैं, नई ऑटो-आईडी)। डुप्लिकेट कुंजी अद्यतन सेट पर col=val: केवल विशिष्ट स्तंभों का आंशिक अद्यतन (सबसे लचीला, परमाणु)। यदि ईमेल INSERT सूची में नहीं है तो REPLACE मूल पंक्ति का ईमेल कॉलम खो देता है। डुप्लिकेट कुंजी अद्यतन नाम पर = 'बॉब' ईमेल को सुरक्षित रखता है।
102
EN + हिं Medium
GB What is row locking vs table locking in the context of DML operations and how does it affect concurrency?
IN डीएमएल संचालन के संदर्भ में पंक्ति लॉकिंग बनाम टेबल लॉकिंग क्या है और यह समवर्तीता को कैसे प्रभावित करता है?
A
Row-level locking: only the rows being modified are locked allowing other transactions to modify different rows concurrently (high concurrency, higher overhead). Table-level locking: the entire table is locked during DML (simple, low overhead, but blocks all other DML on the table); appropriate for bulk operations पंक्ति-स्तरीय लॉकिंग: केवल संशोधित की जा रही पंक्तियों को लॉक किया जाता है, जिससे अन्य लेनदेन एक साथ विभिन्न पंक्तियों को संशोधित कर सकते हैं (उच्च संगामिति, उच्च ओवरहेड)। टेबल-स्तरीय लॉकिंग: डीएमएल के दौरान पूरी टेबल लॉक हो जाती है (सरल, कम ओवरहेड, लेकिन टेबल पर अन्य सभी डीएमएल को ब्लॉक कर देती है); थोक संचालन के लिए उपयुक्त
B
They provide identical concurrency guarantees with different performance वे अलग-अलग प्रदर्शन के साथ समान समवर्ती गारंटी प्रदान करते हैं
C
Table locking provides better isolation guarantees than row locking टेबल लॉकिंग पंक्ति लॉकिंग की तुलना में बेहतर आइसोलेशन गारंटी प्रदान करती है
D
Row locking is always better than table locking in every scenario प्रत्येक परिदृश्य में रो लॉकिंग हमेशा टेबल लॉकिंग से बेहतर होती है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) MySQL InnoDB: row-level locks via next-key locking. MySQL MyISAM: table-level locks only. Row lock benefits: T1 updates row 1, T2 updates row 2 simultaneously - no conflict. Table lock: T1 locks table, T2 waits. Row lock drawback: deadlock more likely (T1 holds row1 wants row2, T2 holds row2 wants row1). Explicit table lock: LOCK TABLES t WRITE useful for bulk import.
व्याख्या (हिन्दी) MySQL InnoDB: अगली-कुंजी लॉकिंग के माध्यम से पंक्ति-स्तरीय लॉक। MySQL MyISAM: केवल टेबल-स्तरीय लॉक। पंक्ति लॉक लाभ: T1 पंक्ति 1 को अद्यतन करता है, T2 पंक्ति 2 को एक साथ अद्यतन करता है - कोई विरोध नहीं। टेबल लॉक: T1 टेबल को लॉक करता है, T2 प्रतीक्षा करता है। पंक्ति लॉक दोष: गतिरोध की अधिक संभावना है (T1 पंक्ति 1 को पकड़कर रखता है, पंक्ति 2 चाहता है, T2 पंक्ति 2 को रखता है, पंक्ति 1 चाहता है)। स्पष्ट टेबल लॉक: लॉक टेबल्स टी राइट थोक आयात के लिए उपयोगी है।
103
EN + हिं Medium
GB What is the difference between INSERT INTO VALUES and INSERT INTO SELECT?
IN INSERT INTO वैल्यूज़ और INSERT INTO SELECT के बीच क्या अंतर है?
A
INSERT VALUES: inserts one or more explicitly specified rows; INSERT SELECT: inserts rows derived from a SELECT query result enabling bulk insertion from other tables or complex expressions मान सम्मिलित करें: एक या अधिक स्पष्ट रूप से निर्दिष्ट पंक्तियाँ सम्मिलित करें; चयन सम्मिलित करें: एक चयन क्वेरी परिणाम से प्राप्त पंक्तियों को सम्मिलित करता है जो अन्य तालिकाओं या जटिल अभिव्यक्तियों से थोक प्रविष्टि को सक्षम करता है
B
They are identical in functionality वे कार्यक्षमता में समान हैं
C
INSERT SELECT is faster but less accurate INSERT SELECT तेज़ है लेकिन कम सटीक है
D
INSERT VALUES supports multiple rows; INSERT SELECT supports only one row INSERT VALUES एकाधिक पंक्तियों का समर्थन करता है; INSERT SELECT केवल एक पंक्ति का समर्थन करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) INSERT...VALUES: specify literal values directly, used for one or multiple explicit rows. INSERT...SELECT: queries source data and inserts all results into target table atomically, useful for bulk loads, data migration, creating backup copies, and populating summary tables.
व्याख्या (हिन्दी) सम्मिलित करें...मान: सीधे शाब्दिक मान निर्दिष्ट करें, एक या एकाधिक स्पष्ट पंक्तियों के लिए उपयोग किया जाता है। सम्मिलित करें...चयन करें: स्रोत डेटा से पूछताछ करता है और सभी परिणामों को परमाणु रूप से लक्ष्य तालिका में सम्मिलित करता है, जो बल्क लोड, डेटा माइग्रेशन, बैकअप प्रतियां बनाने और सारांश तालिकाओं को पॉप्युलेट करने के लिए उपयोगी है।
104
EN + हिं Easy
GB In SQL what is the behavior of an UPDATE statement without a WHERE clause?
IN SQL में WHERE क्लॉज़ के बिना UPDATE स्टेटमेंट का व्यवहार क्या होता है?
A
It updates only the first row यह केवल पहली पंक्ति को अद्यतन करता है
B
It fails with an error यह एक त्रुटि के साथ विफल हो जाता है
C
It creates a transaction that must be manually committed यह एक लेनदेन बनाता है जिसे मैन्युअल रूप से प्रतिबद्ध किया जाना चाहिए
D
It updates ALL rows in the table - a common and dangerous mistake that can corrupt entire tables. The UPDATE executes successfully but affects every row यह तालिका में सभी पंक्तियों को अद्यतन करता है - एक सामान्य और खतरनाक गलती जो संपूर्ण तालिकाओं को दूषित कर सकती है। अद्यतन सफलतापूर्वक निष्पादित होता है लेकिन प्रत्येक पंक्ति को प्रभावित करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) UPDATE without WHERE: updates every single row in the table. This is a common production accident. Best practice: always write the WHERE clause first, then add the SET clause. Use transactions and test with SELECT using same WHERE before executing UPDATE.
व्याख्या (हिन्दी) बिना WHERE के अद्यतन करें: तालिका में प्रत्येक पंक्ति को अद्यतन करता है। यह एक सामान्य उत्पादन दुर्घटना है. सर्वोत्तम अभ्यास: हमेशा पहले WHERE क्लॉज लिखें, फिर SET क्लॉज जोड़ें। लेनदेन का उपयोग करें और अद्यतन निष्पादित करने से पहले WHERE का उपयोग करके SELECT के साथ परीक्षण करें।
105
EN + हिं Medium
GB What is SQL INSERT OR REPLACE (MySQL: REPLACE INTO) and how does it differ from INSERT OR IGNORE?
IN SQL INSERT OR REPLACE (MySQL: REPLACE INTO) क्या है और यह INSERT OR IGNORE से किस प्रकार भिन्न है?
A
REPLACE INTO: if a duplicate key violation occurs deletes the existing row and inserts the new row (auto-increments change); INSERT OR IGNORE: if duplicate key silently ignores the insert and keeps the original row unchanged इसमें बदलें: यदि डुप्लिकेट कुंजी का उल्लंघन होता है तो मौजूदा पंक्ति को हटा दिया जाता है और नई पंक्ति सम्मिलित कर दी जाती है (स्वचालित-वृद्धि परिवर्तन); सम्मिलित करें या अनदेखा करें: यदि डुप्लिकेट कुंजी चुपचाप सम्मिलित को अनदेखा कर देती है और मूल पंक्ति को अपरिवर्तित रखती है
B
Both operations update the existing row दोनों ऑपरेशन मौजूदा पंक्ति को अद्यतन करते हैं
C
INSERT OR IGNORE replaces the row; REPLACE INTO ignores it सम्मिलित करें या अनदेखा करें पंक्ति को प्रतिस्थापित करता है; REPLACE INTO इसे अनदेखा कर देता है
D
They are identical operations वे समान परिचालन हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) REPLACE INTO: DELETE + INSERT on conflict (loses old row, new auto_increment generated). INSERT IGNORE: on conflict, silently skip (original preserved, no error). INSERT ON DUPLICATE KEY UPDATE (MySQL) / INSERT ON CONFLICT DO UPDATE (PostgreSQL): update specific columns on conflict.
व्याख्या (हिन्दी) इसमें बदलें: विरोध पर हटाएं + सम्मिलित करें (पुरानी पंक्ति खो जाती है, नई ऑटो_वृद्धि उत्पन्न होती है)। अनदेखा करें सम्मिलित करें: विरोध होने पर, चुपचाप छोड़ें (मूल संरक्षित, कोई त्रुटि नहीं)। डुप्लिकेट कुंजी अद्यतन पर सम्मिलित करें (MySQL) / संघर्ष पर सम्मिलित करें अद्यतन करें (पोस्टग्रेएसक्यूएल): संघर्ष पर विशिष्ट कॉलम अपडेट करें।
91–105 of 130