DBMS — MCQ Practice

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

📚 136 Questions 🌐 Hindi + English ✅ Free
भाषा / Language:
136 questions
91
EN + हिं Easy
GB What is the SQL standard way to add a FOREIGN KEY to an existing table?
IN किसी मौजूदा तालिका में विदेशी कुंजी जोड़ने का SQL मानक तरीका क्या है?
A
FOREIGN KEY cannot be added to existing tables only during CREATE TABLE केवल CREATE TABLE के दौरान विदेशी कुंजी को मौजूदा तालिकाओं में नहीं जोड़ा जा सकता है
B
ALTER TABLE child ADD COLUMN parent_id REFERENCES parent तालिका बदलें चाइल्ड कॉलम जोड़ें पैरेंट_आईडी संदर्भ पैरेंट
C
ALTER TABLE child SET FOREIGN KEY = parent_col परिवर्तन तालिका चाइल्ड सेट विदेशी कुंजी =parent_col
D
ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (child_col) REFERENCES parent_table(parent_col) ON DELETE CASCADE ON UPDATE CASCADE तालिका में परिवर्तन करने वाले बच्चे के लिए बाधा जोड़ें fk_name विदेशी कुंजी (child_col) संदर्भ पैरेंट_टेबल (parent_col) अद्यतन कैस्केड पर कैस्केड हटाएं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Syntax: ALTER TABLE orders ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE RESTRICT ON UPDATE CASCADE. This adds the FK constraint, verifies existing data conforms, and enforces referential integrity going forward.
व्याख्या (हिन्दी) सिंटैक्स: परिवर्तन तालिका आदेश अद्यतन कैस्केड पर हटाएं प्रतिबंध पर बाधा एफके_ग्राहक विदेशी कुंजी (ग्राहक_आईडी) संदर्भ ग्राहक (आईडी) जोड़ें। यह एफके बाधा जोड़ता है, मौजूदा डेटा अनुरूपता को सत्यापित करता है, और आगे बढ़ने वाली संदर्भात्मक अखंडता को लागू करता है।
92
EN + हिं Medium
GB What is online schema change (OSC) and why is it needed?
IN ऑनलाइन स्कीमा परिवर्तन (ओएससी) क्या है और इसकी आवश्यकता क्यों है?
A
A technique/tool that allows schema modifications on large production tables without long table locks or downtime typically by creating a shadow table copying data incrementally and atomically swapping the tables एक तकनीक/उपकरण जो लंबे टेबल लॉक या डाउनटाइम के बिना बड़ी उत्पादन तालिकाओं पर स्कीमा संशोधन की अनुमति देता है, आमतौर पर एक छाया तालिका बनाकर डेटा को वृद्धिशील रूप से कॉपी करता है और तालिकाओं को परमाणु रूप से स्वैप करता है।
B
A standard SQL feature for non-locking DDL नॉन-लॉकिंग DDL के लिए एक मानक SQL सुविधा
C
A tool for changing schemas via a web browser वेब ब्राउज़र के माध्यम से स्कीमा बदलने के लिए एक उपकरण
D
A method for replicating schema changes across distributed databases वितरित डेटाबेस में स्कीमा परिवर्तनों की प्रतिकृति बनाने की एक विधि
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) OSC tools (pt-online-schema-change, gh-ost): create a new table with desired schema, copy data in chunks while capturing ongoing changes (via triggers or binlog), then atomically rename new table to replace old. Avoids long table locks that would block production traffic.
व्याख्या (हिन्दी) ओएससी उपकरण (पीटी-ऑनलाइन-स्कीमा-चेंज, जीएच-ओस्ट): वांछित स्कीमा के साथ एक नई तालिका बनाएं, चल रहे परिवर्तनों (ट्रिगर या बिनलॉग के माध्यम से) को कैप्चर करते समय डेटा को टुकड़ों में कॉपी करें, फिर पुराने को बदलने के लिए परमाणु रूप से नई तालिका का नाम बदलें। लंबे टेबल लॉक से बचें जो उत्पादन ट्रैफ़िक को अवरुद्ध कर देंगे।
93
EN + हिं Medium
GB What is the purpose of CREATE ASSERTION statement in standard SQL?
IN मानक SQL में CREATE ASSERTION स्टेटमेंट का उद्देश्य क्या है?
A
To assert that a column cannot be NULL यह दावा करने के लिए कि कोई कॉलम NULL नहीं हो सकता
B
A named constraint that can span multiple tables (unlike table-level CHECK constraints which are limited to one table) - allows complex business rules to be defined at the schema level एक नामित बाधा जो कई तालिकाओं तक फैल सकती है (तालिका-स्तरीय CHECK बाधाओं के विपरीत जो एक तालिका तक सीमित हैं) - जटिल व्यावसायिक नियमों को स्कीमा स्तर पर परिभाषित करने की अनुमति देती है
C
To create a trigger that asserts conditions एक ट्रिगर बनाने के लिए जो शर्तों पर जोर देता है
D
To create database assertions/documentation डेटाबेस दावे/दस्तावेज़ीकरण बनाने के लिए
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) CREATE ASSERTION is SQL standard for complex multi-table constraints. CREATE ASSERTION max_salary CHECK (NOT EXISTS (SELECT * FROM Emp WHERE salary > 200000)). Checked after every DML statement. Most DBMS do not fully implement assertions; triggers are used instead.
व्याख्या (हिन्दी) क्रिएट एसेरशन जटिल मल्टी-टेबल बाधाओं के लिए SQL मानक है। दावा अधिकतम वेतन चेक बनाएं (मौजूद नहीं है (* उस कर्मचारी से चुनें जहां वेतन > 200000))। प्रत्येक डीएमएल विवरण के बाद जाँच की गई। अधिकांश DBMS दावे को पूरी तरह से लागू नहीं करते हैं; इसके बजाय ट्रिगर्स का उपयोग किया जाता है।
94
EN + हिं Easy
GB What does INHERITS clause do in PostgreSQL CREATE TABLE?
IN PostgreSQL क्रिएट टेबल में INHERITS क्लॉज क्या करता है?
A
It inherits column permissions from another table यह किसी अन्य तालिका से कॉलम अनुमतियाँ प्राप्त करता है
B
Creates a child table that inherits all columns and constraints from a parent table with child-specific additional columns - part of PostgreSQLs table inheritance feature for object-relational capabilities एक चाइल्ड टेबल बनाता है जो चाइल्ड-विशिष्ट अतिरिक्त कॉलम के साथ पैरेंट टेबल से सभी कॉलम और बाधाओं को प्राप्त करता है - ऑब्जेक्ट-रिलेशनल क्षमताओं के लिए PostgreSQLs टेबल इनहेरिटेंस सुविधा का हिस्सा
C
It is identical to FOREIGN KEY inheritance यह विदेशी कुंजी वंशानुक्रम के समान है
D
It makes the table read-only inheriting data from parent यह तालिका को माता-पिता से प्राप्त डेटा को केवल पढ़ने योग्य बनाता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) PostgreSQL table inheritance: CREATE TABLE employee (salary NUMERIC) INHERITS (person). Employee has all person columns plus salary. Queries on person return data from employee too (unless ONLY keyword used). Useful for partitioning-like patterns, though declarative partitioning is now preferred.
व्याख्या (हिन्दी) PostgreSQL टेबल इनहेरिटेंस: क्रिएट टेबल कर्मचारी (वेतन संख्यात्मक) इनहेरिट्स (व्यक्ति)। कर्मचारी के पास सभी व्यक्ति कॉलम प्लस वेतन हैं। व्यक्ति संबंधी प्रश्न कर्मचारी से भी डेटा लौटाते हैं (जब तक कि केवल कीवर्ड का उपयोग न किया गया हो)। विभाजन जैसे पैटर्न के लिए उपयोगी, हालाँकि अब घोषणात्मक विभाजन को प्राथमिकता दी जाती है।
95
EN + हिं Medium
GB In DDL what is the difference between CONSTRAINT constraint_name PRIMARY KEY defined at column level vs table level?
IN डीडीएल में कॉलम स्तर बनाम तालिका स्तर पर परिभाषित CONSTRAINT constraint_name PRIMARY KEY के बीच क्या अंतर है?
A
Table-level constraints are always anonymous तालिका-स्तरीय बाधाएँ हमेशा गुमनाम होती हैं
B
Column-level constraints are stronger कॉलम-स्तर की बाधाएँ अधिक मजबूत हैं
C
Column-level: can only define single-column constraints; Table-level: can define single or multi-column (composite) constraints and allows explicit naming at the table level - functionally equivalent for single-column but ONLY table-level syntax works for composite keys कॉलम-स्तर: केवल एकल-स्तंभ बाधाओं को परिभाषित कर सकता है; तालिका-स्तर: एकल या बहु-स्तंभ (मिश्रित) बाधाओं को परिभाषित कर सकता है और तालिका स्तर पर स्पष्ट नामकरण की अनुमति देता है - एकल-स्तंभ के लिए कार्यात्मक रूप से समतुल्य लेकिन समग्र कुंजियों के लिए केवल तालिका-स्तरीय सिंटैक्स काम करता है
D
Table-level constraints apply to the entire table; column-level to one column only तालिका-स्तरीय बाधाएँ संपूर्ण तालिका पर लागू होती हैं; कॉलम-स्तर केवल एक कॉलम तक
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Column-level: salary NUMERIC CONSTRAINT chk_salary CHECK(salary>0) - only for single column. Table-level: CONSTRAINT pk_emp PRIMARY KEY (emp_id, dept_id) - required for composite keys. For composite PK, FK, or UNIQUE involving multiple columns, MUST use table-level syntax.
व्याख्या (हिन्दी) कॉलम-स्तर: वेतन संख्यात्मक बाधा chk_वेतन चेक(वेतन>0) - केवल एकल कॉलम के लिए। तालिका-स्तर: CONSTRAINT pk_emp प्राथमिक कुंजी (emp_id, dept_id) - समग्र कुंजियों के लिए आवश्यक। अनेक स्तंभों वाले समग्र PK, FK, या UNIQUE के लिए, तालिका-स्तरीय सिंटैक्स का उपयोग अवश्य करें।
96
EN + हिं Easy
GB What is the effect of DROP COLUMN on a table with indexes and foreign keys referencing that column?
IN उस कॉलम को संदर्भित करने वाली अनुक्रमणिका और विदेशी कुंजियों वाली तालिका पर DROP COLUMN का क्या प्रभाव होता है?
A
It silently preserves all indexes with NULL values for the dropped column यह गिराए गए कॉलम के लिए NULL मान वाले सभी इंडेक्स को चुपचाप संरक्षित करता है
B
It drops only the column data but keeps the indexes यह केवल कॉलम डेटा छोड़ता है लेकिन इंडेक्स रखता है
C
Most DBMS automatically drop all indexes that include the dropped column and reject the operation if any foreign key references the dropped column (requiring you to drop the FK first) - or CASCADE can be used to drop dependent objects too अधिकांश DBMS स्वचालित रूप से सभी इंडेक्स को हटा देते हैं जिसमें गिरा हुआ कॉलम शामिल होता है और यदि कोई विदेशी कुंजी गिराए गए कॉलम को संदर्भित करता है तो ऑपरेशन को अस्वीकार कर देता है (आपको पहले FK को छोड़ने की आवश्यकता होती है) - या CASCADE का उपयोग निर्भर वस्तुओं को छोड़ने के लिए भी किया जा सकता है
D
It converts the column to NULL before dropping यह ड्रॉप करने से पहले कॉलम को NULL में बदल देता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DROP COLUMN behavior: dependent indexes on that column are automatically dropped. FK constraints referencing the column as a foreign key (in other tables) are typically rejected - you must DROP the FK first or use DROP COLUMN CASCADE (PostgreSQL). CHECK constraints using the column are also dropped.
व्याख्या (हिन्दी) ड्रॉप कॉलम व्यवहार: उस कॉलम पर निर्भर इंडेक्स स्वचालित रूप से हटा दिए जाते हैं। कॉलम को एक विदेशी कुंजी (अन्य तालिकाओं में) के रूप में संदर्भित करने वाली FK बाधाओं को आम तौर पर अस्वीकार कर दिया जाता है - आपको पहले FK को छोड़ना होगा या DROP COLUMN CASCADE (PostgreSQL) का उपयोग करना होगा। CHECK कॉलम का उपयोग करने वाली बाधाएं भी हटा दी गई हैं।
97
EN + हिं Medium
GB What is the SQL standard DEFAULT clause and how does it interact with INSERT statements?
IN SQL मानक DEFAULT क्लॉज क्या है और यह INSERT कथनों के साथ कैसे इंटरैक्ट करता है?
A
DEFAULT is only for NOT NULL columns डिफ़ॉल्ट केवल शून्य नहीं कॉलम के लिए है
B
DEFAULT only applies to UPDATE statements not INSERT डिफ़ॉल्ट केवल अद्यतन विवरण पर लागू होता है INSERT पर नहीं
C
DEFAULT forces a column to always have the same value डिफ़ॉल्ट किसी कॉलम को हमेशा समान मान रखने के लिए बाध्य करता है
D
DEFAULT clause in CREATE TABLE specifies the value to use when an INSERT statement does not provide a value for that column - can be a literal value a function call (like NOW()) or a sequence reference CREATE TABLE में डिफ़ॉल्ट क्लॉज उस मूल्य को निर्दिष्ट करता है जिसका उपयोग तब किया जाना चाहिए जब एक INSERT कथन उस कॉलम के लिए कोई मान प्रदान नहीं करता है - एक फ़ंक्शन कॉल का शाब्दिक मान हो सकता है (जैसे NOW()) या एक अनुक्रम संदर्भ
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DEFAULT clause: CREATE TABLE t (created_at TIMESTAMP DEFAULT NOW(), status VARCHAR(20) DEFAULT pending). INSERT INTO t (col1) VALUES (val1): created_at gets NOW(), status gets pending. INSERT INTO t (col1, status) VALUES (val1, DEFAULT): explicitly uses default value.
व्याख्या (हिन्दी) डिफ़ॉल्ट क्लॉज: टेबल बनाएं (अभी टाइमस्टैम्प पर बनाया गया है(), स्थिति VARCHAR(20) डिफ़ॉल्ट लंबित है)। t (col1) मानों (val1) में सम्मिलित करें: create_at को अभी() मिलता है, स्थिति लंबित हो जाती है। टी (कॉल1, स्थिति) मानों में सम्मिलित करें (वैल1, डिफ़ॉल्ट): स्पष्ट रूप से डिफ़ॉल्ट मान का उपयोग करता है।
98
EN + हिं Medium
GB What is the difference between a UNIQUE constraint and a UNIQUE index in most DBMS?
IN अधिकांश DBMS में UNIQUE बाधा और UNIQUE सूचकांक के बीच क्या अंतर है?
A
Functionally they are equivalent in most DBMS - a UNIQUE constraint is typically implemented internally as a UNIQUE index; the difference is declarative (UNIQUE constraint) vs. explicit (CREATE UNIQUE INDEX) - both prevent duplicate values कार्यात्मक रूप से वे अधिकांश DBMS में समतुल्य हैं - एक UNIQUE बाधा आमतौर पर UNIQUE सूचकांक के रूप में आंतरिक रूप से लागू की जाती है; अंतर घोषणात्मक (अद्वितीय बाधा) बनाम स्पष्ट (अद्वितीय सूचकांक बनाएं) है - दोनों डुप्लिकेट मानों को रोकते हैं
B
UNIQUE index is always faster than UNIQUE constraint UNIQUE सूचकांक हमेशा UNIQUE बाधा से तेज़ होता है
C
UNIQUE constraint allows NULL; UNIQUE index does not अद्वितीय बाधा शून्य की अनुमति देती है; अद्वितीय सूचकांक नहीं है
D
UNIQUE constraint is enforced by the application; UNIQUE index by the DBMS एप्लिकेशन द्वारा अद्वितीय बाधा लागू की जाती है; डीबीएमएस द्वारा अद्वितीय सूचकांक
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) In most DBMS (MySQL, PostgreSQL, SQL Server): UNIQUE constraint = UNIQUE index internally. Both prevent duplicate values (with NULL handling varying by DBMS). UNIQUE constraint is the declarative, SQL-standard way. CREATE UNIQUE INDEX is explicit and gives more control over index name, type, and storage options.
व्याख्या (हिन्दी) अधिकांश DBMS (MySQL, PostgreSQL, SQL सर्वर) में: अद्वितीय बाधा = आंतरिक रूप से अद्वितीय सूचकांक। दोनों डुप्लिकेट मानों को रोकते हैं (DBMS द्वारा भिन्न-भिन्न NULL हैंडलिंग के साथ)। अद्वितीय बाधा घोषणात्मक, SQL-मानक तरीका है। क्रिएट यूनिक इंडेक्स स्पष्ट है और इंडेक्स नाम, प्रकार और भंडारण विकल्पों पर अधिक नियंत्रण देता है।
99
EN + हिं Easy
GB What is the SQL standard CREATE VIEW statement and what properties must hold for a view to be created successfully?
IN SQL मानक क्रिएट व्यू स्टेटमेंट क्या है और किसी व्यू को सफलतापूर्वक बनाने के लिए कौन से गुण होने चाहिए?
A
Views can be created from any SQL statement किसी भी SQL कथन से दृश्य बनाए जा सकते हैं
B
Views must always reference at least two base tables दृश्यों को हमेशा कम से कम दो आधार तालिकाओं का संदर्भ देना चाहिए
C
A view is created from a valid SELECT statement; key requirements vary by DBMS but typically: no ORDER BY in the view definition (without LIMIT/TOP), consistent column names (either from SELECT or via aliases), and the underlying tables/views must exist एक वैध चयन कथन से एक दृश्य बनाया जाता है; मुख्य आवश्यकताएँ DBMS के अनुसार अलग-अलग होती हैं, लेकिन आम तौर पर: दृश्य परिभाषा में कोई ORDER BY नहीं (बिना LIMIT/TOP), सुसंगत कॉलम नाम (या तो SELECT से या उपनाम के माध्यम से), और अंतर्निहित तालिकाएँ/दृश्य मौजूद होने चाहिए
D
Views can include INSERT UPDATE DELETE statements दृश्यों में INSERT UPDATE DELETE कथन शामिल हो सकते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) CREATE VIEW view_name AS SELECT col1, col2, expr AS alias FROM table WHERE condition. Requirements: unique column names (use aliases for computed columns or duplicates), no parameters (unlike table-valued functions), underlying tables must exist. ORDER BY in view is allowed only if TOP/LIMIT is used (implementation-specific).
व्याख्या (हिन्दी) व्यू व्यू_नेम को टेबल से सेलेक्ट col1, col2, expr AS उपनाम के रूप में बनाएं जहां की स्थिति है। आवश्यकताएँ: अद्वितीय कॉलम नाम (गणना किए गए कॉलम या डुप्लिकेट के लिए उपनाम का उपयोग करें), कोई पैरामीटर नहीं (तालिका-मूल्यवान फ़ंक्शन के विपरीत), अंतर्निहित तालिकाएं मौजूद होनी चाहिए। ऑर्डर बाय को केवल तभी अनुमति दी जाती है जब टॉप/लिमिट का उपयोग किया जाता है (कार्यान्वयन-विशिष्ट)।
100
EN + हिं Medium
GB What is the purpose of ALTER TABLE RENAME and does it affect dependent objects?
IN ALTER TABLE RENAME का उद्देश्य क्या है और क्या यह निर्भर वस्तुओं को प्रभावित करता है?
A
ALTER TABLE old_name RENAME TO new_name changes the table name; most DBMS automatically update references in foreign key constraints but views stored procedures and application code may break - the impact depends on DBMS version and dependency management capabilities तालिका का पुराना नाम बदलकर नए_नाम में बदलने से तालिका का नाम बदल जाता है; अधिकांश DBMS स्वचालित रूप से विदेशी कुंजी बाधाओं में संदर्भों को अपडेट करते हैं लेकिन संग्रहित प्रक्रियाओं और एप्लिकेशन कोड को तोड़ सकते हैं - प्रभाव DBMS संस्करण और निर्भरता प्रबंधन क्षमताओं पर निर्भर करता है
B
It temporarily aliases the table name यह अस्थायी रूप से तालिका नाम को उपनाम देता है
C
It creates a copy of the table with the new name यह नए नाम के साथ तालिका की एक प्रति बनाता है
D
It only changes the table name in the catalog यह केवल कैटलॉग में तालिका का नाम बदलता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) ALTER TABLE RENAME: changes table name in the system catalog. Most modern DBMS (PostgreSQL, MySQL 8.0+) update FK references automatically. BUT: views that reference the old table name may become invalid, stored procedures/functions referencing the old name break, application code using hardcoded table names must be updated.
व्याख्या (हिन्दी) तालिका का नाम बदलें: सिस्टम कैटलॉग में तालिका का नाम बदलता है। अधिकांश आधुनिक DBMS (PostgreSQL, MySQL 8.0+) FK संदर्भों को स्वचालित रूप से अपडेट करते हैं। लेकिन: पुराने तालिका नाम को संदर्भित करने वाले दृश्य अमान्य हो सकते हैं, पुराने नाम को संदर्भित करने वाली संग्रहीत कार्यविधियाँ/फ़ंक्शन, हार्डकोडेड तालिका नामों का उपयोग करने वाले एप्लिकेशन कोड को अद्यतन किया जाना चाहिए।
101
EN + हिं Medium
GB What is the SQL COMMENT statement and how is metadata typically managed in production databases?
IN SQL COMMENT कथन क्या है और मेटाडेटा को आमतौर पर उत्पादन डेटाबेस में कैसे प्रबंधित किया जाता है?
A
Comments replace actual column/table names टिप्पणियाँ वास्तविक कॉलम/तालिका नामों का स्थान ले लेती हैं
B
COMMENT ON is only available in Oracle databases COMMENT ON केवल Oracle डेटाबेस में उपलब्ध है
C
Comments are only in SQL code not stored in the database टिप्पणियाँ केवल SQL कोड में हैं, डेटाबेस में संग्रहीत नहीं हैं
D
COMMENT ON TABLE/COLUMN/INDEX stores metadata descriptions in the system catalog (standard SQL); in production databases metadata management also includes: documentation in data catalogs (Apache Atlas, Collibra), ERD tools, and data dictionaries maintained alongside the schema टेबल/कॉलम/इंडेक्स पर टिप्पणी सिस्टम कैटलॉग (मानक एसक्यूएल) में मेटाडेटा विवरण संग्रहीत करती है; उत्पादन डेटाबेस में मेटाडेटा प्रबंधन में यह भी शामिल है: डेटा कैटलॉग में दस्तावेज़ीकरण (अपाचे एटलस, कोलिब्रा), ईआरडी उपकरण, और स्कीमा के साथ बनाए गए डेटा शब्दकोश
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) COMMENT ON TABLE emp IS Employee master table; COMMENT ON COLUMN emp.salary IS Annual salary in USD (not including bonuses). Stored in system catalog (information_schema.column_comments in MySQL, pg_description in PostgreSQL). Production metadata management: data catalog tools track lineage, ownership, PII classification, business definitions.
व्याख्या (हिन्दी) टेबल एम्प पर टिप्पणी कर्मचारी मास्टर टेबल है; कॉलम पर टिप्पणी emp.salary USD में वार्षिक वेतन है (बोनस शामिल नहीं)। सिस्टम कैटलॉग में संग्रहीत (MySQL में information_schema.column_comments, PostgreSQL में pg_description)। उत्पादन मेटाडेटा प्रबंधन: डेटा कैटलॉग उपकरण वंश, स्वामित्व, पीआईआई वर्गीकरण, व्यावसायिक परिभाषाओं को ट्रैक करते हैं।
102
EN + हिं Easy
GB What is a deferred constraint and when is it used in DDL?
IN विलंबित बाधा क्या है और इसका उपयोग डीडीएल में कब किया जाता है?
A
A constraint that applies only to deferred (future) inserts एक बाधा जो केवल स्थगित (भविष्य) प्रविष्टियों पर लागू होती है
B
A constraint added to the table after its initial creation प्रारंभिक निर्माण के बाद तालिका में एक बाधा जोड़ी गई
C
A constraint that is only checked on a monthly schedule एक बाधा जिसकी जाँच केवल मासिक शेड्यूल पर की जाती है
D
A constraint declared with DEFERRABLE INITIALLY DEFERRED is checked at COMMIT time rather than after each statement; used for circular foreign key references, bulk loading where intermediate states temporarily violate constraints, and complex multi-step operations where the final committed state is valid प्रारंभिक रूप से विलंबित के साथ घोषित बाधा की जाँच प्रत्येक कथन के बाद के बजाय COMMIT समय पर की जाती है; परिपत्र विदेशी कुंजी संदर्भों के लिए उपयोग किया जाता है, थोक लोडिंग जहां मध्यवर्ती राज्य अस्थायी रूप से बाधाओं का उल्लंघन करते हैं, और जटिल बहु-चरण संचालन जहां अंतिम प्रतिबद्ध राज्य मान्य है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Example: tables A and B with FK A.b_id -> B and FK B.a_id -> A. Inserting A first violates B FK (B not yet inserted). With DEFERRABLE: SET CONSTRAINTS ALL DEFERRED; INSERT INTO A...; INSERT INTO B...; COMMIT (constraints checked now - both exist, no violation). PostgreSQL supports DEFERRABLE constraints natively. MySQL: no native deferred constraint support.
व्याख्या (हिन्दी) उदाहरण: तालिका A और B FK A.b_id -> B और FK B.a_id -> A के साथ। पहले A डालने से B FK का उल्लंघन होता है (B अभी तक नहीं डाला गया है)। आस्थगित के साथ: सेट बाधाएं सभी आस्थगित; एक में डालें...; बी में डालें...; प्रतिबद्ध (अब बाधाओं की जाँच की गई - दोनों मौजूद हैं, कोई उल्लंघन नहीं)। PostgreSQL मूल रूप से DEFERRABLE बाधाओं का समर्थन करता है। MySQL: कोई मूल आस्थगित बाधा समर्थन नहीं।
103
EN + हिं Medium
GB What is the difference between DROP TABLE and DROP TABLE IF EXISTS?
IN यदि मौजूद है तो ड्रॉप टेबल और ड्रॉप टेबल के बीच क्या अंतर है?
A
DROP TABLE fails with an error if the specified table does not exist; DROP TABLE IF EXISTS silently succeeds (no error) if the table does not exist - useful in scripts that should be idempotent (safe to run multiple times) like migration scripts or setup scripts that may run on databases where the table may or may not already exist यदि निर्दिष्ट तालिका मौजूद नहीं है तो ड्रॉप तालिका एक त्रुटि के साथ विफल हो जाती है; यदि मौजूद है तो ड्रॉप टेबल चुपचाप सफल हो जाती है (कोई त्रुटि नहीं) यदि टेबल मौजूद नहीं है - उन स्क्रिप्ट्स में उपयोगी जो निष्क्रिय होनी चाहिए (कई बार चलाने के लिए सुरक्षित) जैसे माइग्रेशन स्क्रिप्ट या सेटअप स्क्रिप्ट जो डेटाबेस पर चल सकती हैं जहां तालिका पहले से मौजूद हो सकती है या नहीं भी हो सकती है
B
They produce identical behavior in all database systems वे सभी डेटाबेस सिस्टम में समान व्यवहार उत्पन्न करते हैं
C
IF EXISTS only works for temporary tables not permanent tables IF EXISTS केवल अस्थायी तालिकाओं के लिए काम करता है, स्थायी तालिकाओं के लिए नहीं
D
IF EXISTS drops only empty tables without any rows IF EXISTS बिना किसी पंक्ति के केवल खाली तालिकाएँ छोड़ता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Idempotent migration script: DROP TABLE IF EXISTS old_table; DROP INDEX IF EXISTS old_index ON another_table; CREATE TABLE new_table (...); Safe to run multiple times: first run drops and creates, subsequent runs: IF EXISTS prevents error when old objects already gone. Standard in: MySQL 5.x+, PostgreSQL 9.x+. Without IF EXISTS: wrap in exception handler.
व्याख्या (हिन्दी) इडेम्पोटेंट माइग्रेशन स्क्रिप्ट: यदि पुराना_टेबल मौजूद है तो ड्रॉप टेबल; यदि अन्य_टेबल पर पुराना_इंडेक्स मौजूद है तो इंडेक्स छोड़ें; तालिका बनाएं new_table (...); कई बार चलाने के लिए सुरक्षित: पहले रन ड्रॉप और बनाता है, बाद में रन: IF EXISTS पुरानी वस्तुओं के पहले ही चले जाने पर त्रुटि को रोकता है। मानक में: MySQL 5.x+, PostgreSQL 9.x+। IF EXISTS के बिना: अपवाद हैंडलर में लपेटें।
104
EN + हिं Easy
GB What is a computed or generated column and what are the restrictions on expressions that can be used?
IN एक परिकलित या जनरेट किया गया कॉलम क्या है और जिन अभिव्यक्तियों का उपयोग किया जा सकता है उन पर क्या प्रतिबंध हैं?
A
A column whose value is automatically derived from an expression involving other columns in the same row; restrictions include: expression must be deterministic (no RAND() or NOW()), cannot reference other generated columns, cannot reference other tables, STORED generated columns cannot be updated directly by users एक स्तंभ जिसका मान स्वचालित रूप से उसी पंक्ति में अन्य स्तंभों को शामिल करने वाले अभिव्यक्ति से प्राप्त होता है; प्रतिबंधों में शामिल हैं: अभिव्यक्ति नियतात्मक होनी चाहिए (कोई RAND() या NOW() नहीं), अन्य जेनरेट किए गए कॉलम का संदर्भ नहीं दे सकता, अन्य तालिकाओं का संदर्भ नहीं दे सकता, STORED जेनरेट किए गए कॉलम सीधे उपयोगकर्ताओं द्वारा अपडेट नहीं किए जा सकते
B
A column generated only during INSERT operations not during UPDATE एक कॉलम केवल INSERT संचालन के दौरान उत्पन्न होता है, अद्यतन के दौरान नहीं
C
A column whose value is entered manually by the database administrator एक कॉलम जिसका मान डेटाबेस व्यवस्थापक द्वारा मैन्युअल रूप से दर्ज किया जाता है
D
A column that stores the result of aggregate functions like SUM or AVG एक कॉलम जो SUM या AVG जैसे समग्र कार्यों के परिणाम संग्रहीत करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) MySQL generated columns: full_name VARCHAR(200) GENERATED ALWAYS AS (CONCAT(first_name, ' ', last_name)) STORED. STORED: computed and persisted on disk (can index, takes space). VIRTUAL: computed on access (no storage, cannot always index). Restrictions: no subqueries, no non-deterministic functions. PostgreSQL: no native generated columns before v12; use function-based indexes instead.
व्याख्या (हिन्दी) MySQL द्वारा जेनरेट किए गए कॉलम: पूरा नाम VARCHAR(200) हमेशा जेनरेट किया जाता है (CONCAT(first_name, '', Last_name)) स्टोर किया गया। संग्रहीत: गणना की गई और डिस्क पर कायम रखी गई (अनुक्रमणिका बनाई जा सकती है, स्थान लिया जा सकता है)। आभासी: पहुंच पर गणना की जाती है (कोई भंडारण नहीं, हमेशा अनुक्रमित नहीं किया जा सकता)। प्रतिबंध: कोई उपश्रेणी नहीं, कोई गैर-नियतात्मक कार्य नहीं। PostgreSQL: v12 से पहले कोई मूल जनरेट किया गया कॉलम नहीं; इसके बजाय फ़ंक्शन-आधारित इंडेक्स का उपयोग करें।
105
EN + हिं Medium
GB What is the difference between DROP TABLE and TRUNCATE TABLE?
IN ड्रॉप टेबल और ट्रंकेट टेबल के बीच क्या अंतर है?
A
TRUNCATE TABLE removes the table structure; DROP TABLE only removes data TRUNCATE TABLE तालिका संरचना को हटा देता है; ड्रॉप टेबल केवल डेटा हटाता है
B
DROP TABLE is DDL - removes the table structure, all data, indexes, triggers, and constraints permanently; TRUNCATE TABLE is DDL in most DBMS - removes all data but preserves the table structure, indexes, and column definitions ड्रॉप टेबल डीडीएल है - टेबल संरचना, सभी डेटा, इंडेक्स, ट्रिगर और बाधाओं को स्थायी रूप से हटा देता है; ट्रंकेट टेबल अधिकांश डीबीएमएस में डीडीएल है - सभी डेटा को हटा देता है लेकिन टेबल संरचना, इंडेक्स और कॉलम परिभाषाओं को संरक्षित करता है
C
They are functionally identical DDL operations वे कार्यात्मक रूप से समान डीडीएल ऑपरेशन हैं
D
Both are DML operations दोनों डीएमएल ऑपरेशन हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DROP TABLE: removes everything - table, all data, indexes, triggers, constraints, dependencies. Cannot be reversed after commit. TRUNCATE: removes all rows (fastest, minimal logging), preserves table structure/indexes/constraints. TRUNCATE cannot have WHERE clause.
व्याख्या (हिन्दी) ड्रॉप टेबल: सब कुछ हटा देता है - टेबल, सभी डेटा, इंडेक्स, ट्रिगर, बाधाएं, निर्भरताएं। प्रतिबद्धता के बाद उलटा नहीं किया जा सकता. ट्रंकेट: सभी पंक्तियों को हटाता है (सबसे तेज़, न्यूनतम लॉगिंग), तालिका संरचना/अनुक्रमणिका/बाधाओं को संरक्षित करता है। TRUNCATE में WHERE क्लॉज नहीं हो सकता।
91–105 of 136