Chapter 27 — Comprehensive Practice System: 300 Progressive Problems
Is practice system ke saare 300 exercises master sql_mastery database schema ke against execute karne ke liye design kiye gaye hain.
In questions ke saath practice karne ke liye, ensure karein ki aapne [sql_mastery_schema.sql](file:///c:/antigravity/master_sql_guide/sql_mastery_schema.sql) script run karke apna local database initialize kar liya hai.
NOTE
Self-testing ko facilitate karne ke liye is chapter mein solutions aur query explanations intentionally omit kiye gaye hain. Verified solutions aur step-by-step breakdowns ke liye, [Chapter 28 — The Master Answer Key](file:///c:/antigravity/master_sql_guide/hi/28_answer_key.md) refer karein.
Section 1: Database & Table Management (DDL, Types & Constraints)
Beginner Questions (1–10)
- Active
sql_masterydatabase ke andar saari tables display karne ke liye ek SQL statement likhein. departmentstable ki schema definition, datatypes, aur nullability inspect karne ke liye ek statement likhein.- Ek single integer column
idke saathtest_logsnaam ki ek sandbox table create karne ke liye ek command likhein. test_logstable ko sirf tabhi drop karne ke liye ek statement likhein agar wo already exist karti ho (IF EXISTS).code VARCHAR(20)aurdiscount_pct DECIMAL(4,2)(jiska default0.05ho) ke saathcouponstable create karne ke liye query likhein.couponstable meinexpiry_date DATE NOT NULLcolumn add karne wala ekALTER TABLEstatement likhein.couponstable meincodecolumn koVARCHAR(30) NOT NULLmein modify karne wala ekALTER TABLEstatement likhein.couponstable seexpiry_datecolumn ko drop karne wala ekALTER TABLEstatement likhein.couponstable ka naam rename karkepromotional_codeskarne ke liye ek statement likhein.promotional_codestable ko cleanly drop karein.
Intermediate Questions (11–20)
- Auto-increment primary key
team_id, ek uniqueteam_name VARCHAR(50), aurbudget >= 1000.00ensure karne wala check constraint ke saathproject_teamstable create karne ka statement likhein. project_teamsmeinfk_team_leadnaam ka foreign key add karne walaALTER TABLEstatement likhein joteam_lead_idkoemployees(employee_id)se link kare (ON DELETE SET NULLke saath).- Bina kisi row ko copy kiye
productstable ka exact structural cloneproducts_backupcreate karne ke liye ek command likhein. CREATE TABLE ... AS SELECTka use karkeemployeesse un saari rows aur columns ko include karte huehigh_earnerstable banayein jahansalary > 120000.00ho.departmentstable meindepartment_nameke turant baad positionedpriority_level ENUM('Low', 'Medium', 'High') DEFAULT 'Medium'column add karne walaALTER TABLEstatement likhein.- Schema restore karne ke liye
departmentssepriority_levelcolumn ko remove karein. high_earnerstable ko truncate karne ke liye ek statement likhein.high_earnersaurproducts_backuptables ko drop karein.- MySQL dwara
order_itemstable ke liye generate ki gayi complete DDLCREATE TABLEscript dekhne ke liye ek statement likhein. departments(department_name, location)paruq_dept_locnaam ka composite unique constraint add karne walaALTER TABLEstatement likhein.
Advanced Questions (21–25)
order_itemsse per product sold total units ko aggregate karne wali ek temporary tabletemp_sales_summarycreate karne ki script likhein. Explain karein ki MySQL is table ko kab purge karta hai.- Ek
ALTER TABLEstatement likhein jo foreign key checks ko temporarily disable karta hai, foreign key constraint add karta hai, aur foreign key checks ko re-enable karta hai. employeestable mein check constraintsalary > 200000add karne ka attempt karne wala ek statement likhein. Explain karein ki agar existing rows is condition ko violate karti hain toh MySQL is DDL ko reject kyun karta hai.- MySQL 8.0
ALGORITHM=INPLACE, LOCK=NONEka use karkecustomers.phonekoVARCHAR(25)mein modify karne wala ekALTER TABLEstatement construct karein. - Demonstrate karein ki InnoDB table par active
AUTO_INCREMENTattribute wali primary key ko kaise drop kiya ja sakta hai.
Challenge Questions (26–30)
- Schema Migration Challenge: Ek multi-step migration script likhein jo kisi bhi existing customer data ko lose kiye bina
customers.first_nameaurcustomers.last_nameko ek singlefull_name VARCHAR(100)column mein combine kare, aur puraane columns ko drop kare. - Zero-Downtime Column Addition: 10 million rows wali table mein bina exclusive table lock liye default value ke saath ek non-null column add karne ka SQL pattern likhein.
- Foreign Key Integrity Audit:
sql_masterydatabase ke andar saari foreign keys aur unke correspondingON DELETErules ko list karne ke liye MySQL keinformation_schema.table_constraintsaurreferential_constraintsko query karne wali ek query likhein. - Storage Footprint Analysis:
information_schema.tableske against ek query likhein josql_masteryki har table ke liye total data size aur index size ko Megabytes (MB) mein calculate kare. - Composite Key Restructuring: Ek table jisme existing composite primary key
(order_id, product_id)hai, use ek surrogate primary keyitem_id INT AUTO_INCREMENTwali table mein convert karein jabki composite uniqueness ko preserve rakhein.
Section 2: Data Querying, Filtering & Sorting (SELECT, WHERE, ORDER BY, LIMIT)
Beginner Questions (31–40)
departmentstable se saari rows ke liye sabhi columns retrieve karein.customerstable se sirffirst_name,last_name, auremailretrieve karein.- $500.00 se strictly greater
unit_pricewale sabhi products find karein. - Un sabhi customers ko find karein jo
'USA'country mein rehte hain. - Un sabhi orders ko find karein jinka status
'Delivered'hai. - $100.00 aur $400.00 (inclusive) ke beech
unit_pricewale sabhi products retrieve karein. - Un sabhi customers ko find karein jinka koi
staterecorded nahi hai (state IS NULL). - Sabhi employees ko
hire_dateke ascending order mein sort karke retrieve karein (earliest hires pehle). - Company mein top 3 highest-earning employees ko retrieve karein.
customerstable se bina kisi duplicate ke distinct countries retrieve karein.
Intermediate Questions (41–50)
- Un sabhi customers ko find karein jinka
emailaddress'@gmail.com'par end hota hai. category_id1 ya 2 ke un sabhi products ko retrieve karein jinkastock_quantity20 se greater ho.'2023-08-01'aur'2023-08-15'ke beech place kiye gaye un sabhi orders ko find karein jahantotal_amount$300.00 se exceed karta ho.- Un sabhi employees ko find karein jinki
salary$90,000 se greater hai aur jinkamanager_idNOT NULL hai. - Currently active (
is_active = TRUE) products mein se 5 least expensive products retrieve karein. - Un sabhi customers ko find karein jinka
first_name'M'ya'S'se start hota hai aur jinki country'USA'nahi hai. - Status
'Processing'ya'Pending'wale sabhi orders retrieve karein, ordered byorder_datedescending. - UI pagination implement karein:
unit_pricedescending order mein sortedproductstable ki rows 4 se 6 retrieve karein. - Un sabhi products ko find karein jinke product name mein
'Air'ya'Pro'word include hota hai. - Sabhi customers ko is tarah sort karke retrieve karein ki
'USA'wale customers pehle aayein, aur baaki saare countries alphabetically unke neeche sort hon.
Advanced Questions (51–55)
customerstable ke against ek query likhein joloyalty_pointsdescending order mein sort kare, aur jin customers ke loyalty pointsNULLhain unhe sabse neeche place kare.- Ek query likhein jo un sabhi orders ko retrieve kare jahan
shipping_feeorder ketotal_amountka 2% se zyada represent karti ho. - Ek aisi query construct karein jo
productstable mein un products ko search kare jinka name exactly 15 characters ka ho. - Keyset / Cursor Pagination ka use karke,
order_id = 1005ke baad ke 3 orders ka agla page fetch karne ke liye query likhein binaOFFSETkeyword ka use kiye. - Un sabhi employees ko retrieve karein jo kisi odd-numbered month mein hire hue the.
Challenge Questions (56–60)
- Deterministic Pagination Challenge: Explain karein ki agar
order_datemein duplicate/tie values hain tohORDER BY order_date LIMIT 5 OFFSET 5consecutive pages par duplicate rows kyun return kar sakta hai. Iska corrected query likhein. - Complex Pattern Matching:
customerske against ek regular expression query (REGEXP) likhein jo un sabhi phone numbers ko find kare jo strictly555-XXXXpattern ko adhere nahi karte. - Dynamic Threshold Filtering: Ek query likhein jo un products ko retrieve kare jinki current inventory value (
stock_quantity * unit_price) sabhi products ki average inventory value se exceed karti ho. - Multi-Condition Search Filter: Ek query likhein jo e-commerce search bar ko model kare: diye gaye search keyword
'Pro'ke liye, ek saathproduct_name,category_name, aursupplier_nameacross filter karein. - Safe Range Scanning:
orderskoorder_dateke according filter karne wali query likhein jo pure 2023 year ke liye guaranteed SARGable aur index-seekable ho.
Section 3: Built-in SQL Functions (String, Date, Math & Flow)
Beginner Questions (61–70)
- Sabhi employees ke liye
first_nameaurlast_nameko concatenate karke ek single columnfull_namebanayein. - Sabhi supplier company names ko uppercase mein convert karein.
- Har product name ki length (characters count) display karein.
- Har employee ki salary ko nearest thousand par round karein.
- MySQL functions ka use karke current date aur time return karein.
- Sabhi orders ki
order_datese calendar year extract karein. - Ek mathematical function ka use karke 144 ka square root find karein.
customerstable projection mein'USA'ke kisi bhi occurrence ko'United States'se replace karein.IFNULL()ka use karke har customer ka phone number display karein, aur agar phone NULL ho toh'No Phone Provided'show karein.- $-45.50$ ki absolute value calculate karein.
Intermediate Questions (71–80)
- Har customer ki
registered_atdate aur aaj ke beech kitne din bit chuke hain calculate karein. ordersmein sabhiorder_datevalues ko human-readable format'Month Day, Year'(e.g.'August 01, 2023') mein format karein.- Har customer ke
countryke pehle 3 characters extract karein. customers.emailse username portion (@symbol se pehle ka sab kuch) extract karein.- Sabhi products par 15% promotional discount calculate karne wali query likhein, jo 2 decimal places tak truncated (rounded nahi) ho.
TIMESTAMPDIFF()ka use karke har employee ka tenure complete elapsed months mein calculate karein.CONCAT_WS()ka use karke har customer ka complete address:city, state, countryformat karein. Ensure karein ki missing states double commas produce na karein.DATE_ADD()ka use karke sabhi order dates mein 30-day payment grace period add karein.IF()function ka use karke har product ko flag karein: agar price > $500 ho toh'Expensive', warna'Affordable'.MOD()ka use karke order total amounts ko 10 se divide karne par bacha hua remainder calculate karein.
Advanced Questions (81–85)
- Searched
CASEexpression ka use karke customers ko tiers mein classify karein:'Diamond'(points $\ge 700$),'Platinum'(points $\ge 400$),'Silver'(points $\ge 100$), aur baaki sabhi ke liye'Basic'. POWER()function ka use karke SQL mein Compound Annual Growth Rate (CAGR) formula calculate karein.- Ek aisi query likhein jo customer ke first names mein sabhi vowels ko dynamically asterisks (
*) se replace kare. LAST_DAY()ka use karkeordersmein har order ke liye us month ka last day find karne wali query likhein.- Ek aisi query likhein jo employees ke liye total payroll, average salary, minimum salary, aur maximum salary compute kare, aur ensure karein ki NULLs 0 mein convert hon.
Challenge Questions (86–90)
- Working Day Calculation Challenge: Ek SQL expression likhein jo order ki
order_dateaur aaj ke beech business days (Saturdays aur Sundays ko exclude karke) calculate kare. - Email Obfuscation Challenge: Privacy ke liye customer emails ko mask karne wali query likhein, jisme sirf pehle 2 characters aur domain dikhein (e.g.,
emily.watson@gmail.comtransform hokarem*****@gmail.comban jaye). - Safe Division Matrix: Har customer ke liye
loyalty_pointsaur order count ka ratio calculate karne wali query likhein, joNULLIFka use karke division by zero se protect kare. - Fiscal Quarter Determination: Ek aisi expression likhein jo har order date ko enterprise fiscal quarter se map kare, jahan Fiscal Year November 1st ko shuru hota hai.
- String Parsing Challenge: Diye gaye comma-delimited string
'alpha,beta,gamma'se bina procedural loops ke pure SQL string functions ka use karke 2nd element ('beta') extract karein.
Section 4: Grouping & Aggregation (GROUP BY & HAVING)
Beginner Questions (91–100)
- Company mein employees ka total count nikalein.
orderstable mein sabhi order amounts ka total sum find karein.- Sabhi products ka average unit price find karein.
customerstable mein kitne unique countries represented hain count karein.employeestable mein maximum salary aur minimum salary find karein.- Har
category_idse belong karne wale products ki sankhya count karein. - Har
department_idke liye total payroll expenditure calculate karein. - Har
customer_iddwara place kiye gaye orders count karein. order_itemsmein bechi gayi items ki total quantity calculate karein.- Har
countrymein rehne wale customers ki sankhya count karein.
Intermediate Questions (101–110)
- Wo sabhi
department_idgroups find karein jahan average employee salary $100,000 se exceed karti ho. - Un sabhi customers ko find karein jinhone 2 ya usse zyada orders place kiye hain.
orderstable mein harstatusdwara generate kiya gaya total revenue calculate karein.- Har us
category_idko list karein jisme 1 se zyada active product exist karte hain. - Har department ke liye employee first names ki comma-separated list produce karne ke liye
GROUP_CONCATka use karein. - Products ko
supplier_idke according group karein aur minimum price, maximum price, aur price range (max - min) display karein. - Wo sabhi order dates find karein jahan ek hi din par 1 se zyada order place kiye gaye the.
order_itemsmein per order diya gaya average discount calculate karein, aur sirf un orders ko display karne ke liye filter karein jahan average discount > 0 ho.- Customers ko
countryaurstateke according group karein, aur count karein ki har combination mein kitne customers rehte hain. - Har
payment_methodke liye successful payments ka total amount find karein.
Advanced Questions (111–115)
- Employees ko
department_idke accordingWITH ROLLUPke saath group karne wali query likhein, headcount aur total salary calculate karein, aur ek grand total row ko'Company Total'label karein. GROUP BYquery mein unaggregated column select karne par aane waleERROR 1055: only_full_group_byke cause ko explain karein. Is error ko demonstrate karne wali query likhein aur use fix karein.GROUP BY,ORDER BY, aurLIMIT 1ka use karke wo department find karein jiska average salary sabse high hai.- Un sabhi customers ko find karein jinka cumulative order spend company-wide average order value se exceed karta ho.
- Orders ko calendar month ke according group karein aur us month ke total sales, shipping costs, aur order count calculate karein.
Challenge Questions (116–120)
- Multi-Dimensional ROLLUP Analysis:
WITH ROLLUPka use karkeproductskocategory_idaursupplier_idke according group karein, aur subtotal vs grand total rows ko identify karne ke liyeGROUPING()function ka use karein. - Conditional Aggregation (Pivot): Ek aisi single query likhein jo
orderstable ko pivot karkeSUM(CASE ...)ka use karte hue total revenue ko 5 alag-alag columns mein display kare:Pending,Processing,Shipped,Delivered, aurCancelled. - Customer Retention Metric: Customers ko unki registration date ke year ke according group karein aur calculate karein ki unme se kitne customers ne 2023 mein order place kiya hai.
- Pareto Principle Analysis (80/20 Rule): Ek aisi query likhein jo top 20% customers ko identify kare jo total revenue ka 80% generate karte hain.
- Aggregating Pre-Calculated Line Items:
order_itemsse har order ke liye discounts account mein lete hue total net revenue calculate karein, aurHAVINGka use karke un orders ko filter karein jahan net revenue $1,000 se exceed karta ho.
Section 5: Relational JOINs & Set Operations
Beginner Questions (121–130)
- Har employee ka name aur department name display karne ke liye
employeesaurdepartmentske beechINNER JOINperform karein. - Sabhi departments show karne ke liye
departmentsauremployeeske beechLEFT JOINperform karein, un departments samet jinme koi employee nahi hai. - Order IDs aur customer names show karne ke liye
ordersaurcustomersko join karein. - Har product ka title aur category description show karne ke liye
productsaurcategoriesko join karein. - Product names aur supplier contact emails display karne ke liye
productsaursuppliersko join karein. customersaursuppliersse saari distinct cities ko combine karne ke liyeUNIONka use karein.customersaursuppliersse saari cities ko combine karne ke liyeUNION ALLka use karein.- Har order se belong karne wale sabhi item IDs ko list karne ke liye
ordersaurorder_itemsko join karein. - Order IDs aur payment transaction references display karne ke liye
ordersaurpaymentsko join karein. categoriesaurdepartmentske beechCROSS JOINperform karein.
Intermediate Questions (131–140)
- Un sabhi customers ko find karne ke liye ek Anti-Join likhein jinhone kabhi koi order place nahi kiya.
- Un sabhi products ko find karne ke liye ek Anti-Join likhein jo
order_itemsmein kabhi purchase nahi kiye gaye. - Har employee ke name ke saath unke direct manager ka name display karne ke liye
employeespar ekSelf JOINperform karein. - Customer Emily Watson dwara khareede gaye sabhi products list karne ke liye
customers,orders, aurorder_itemsko connect karne wala ek 3-table join likhein. 'Japan'based suppliers dwara supply kiye gaye'Electronics'category ke sabhi products list karne ke liyeproducts,categories, aursuppliersko join karne wali query likhein.- Customer phone numbers aur employee phone numbers ko combine karne ke liye
UNION ALLka use karein, aur har row ko ek'Entity_Type'column ke saath tag karein. - Same department mein kaam karne wale employees ke sabhi pairs find karne ke liye ek
Self JOINperform karein. - Order 1001 ke andar ke items ki total retail value calculate karne ke liye
orders,order_items, aurproductsko join karein. - Wo sabhi departments find karne ke liye query likhein jinme currently zero staff employed hai.
UNIONka use karkedepartmentsauremployeeske beech ekFULL OUTER JOINemulate karein.
Advanced Questions (141–145)
- Per customer per category generate hua total revenue calculate karne ke liye
customers,orders,order_items,products, aurcategoriesko connect karne wala 5-table join likhein. - Ek aisa Non-Equi Join likhein jo un sabhi products ko find kare jinka
unit_pricedepartment 1 ke employees ki average salary se strictly greater ho. LEFT JOINka use karke ek aisi query likhein jahan right table ka filterONclause ke andar placed ho, aur explain karein ki ye resultWHEREclause mein filter place karne se kaise different hota hai.- Relational joins ka use karke un sabhi customers ko find karein jinhone Product 1 AUR Product 3 dono purchase kiye hain.
- Individual parenthesized subqueries ke saath
UNION ALLka use karke top 2 highest-paid employees aur top 2 lowest-paid employees ko combine karein.
Challenge Questions (146–150)
- Full Outer Join Emulation with Nulls:
customersaurorderske beech ek completeFULL OUTER JOINconstruct karein jo accurately un customers ko return kare jinke paas orders nahi hain AUR bina valid customer wale orders ko bhi return kare (agar orphaned hon). - Self Join Hierarchy Tree: 3-way Self Join ka use karke employees, unke managers, aur unke manager ke managers (management hierarchy ke 2 levels) display karne wali query likhein.
- Relational Division Challenge: Un sabhi customers ko find karein jinhone Category 1 (
Electronics) ka har ek product purchase kiya ho. - Basket Analysis (Co-Purchased Products):
order_itemspar ek self-join query likhein jo un product pairs ko identify kare jo same order mein sabse frequently saath khareede jaate hain. - Consolidated Financial Audit:
UNION ALLka use karke completed order revenue, refund deductions, aur shipping costs ko ek chronological general ledger mein merge karne wali ek compound query likhein.
Section 6: Nested Queries & Common Table Expressions (CTEs)
Beginner Questions (151–160)
- Company-wide average salary se zyada earn karne wale sabhi employees ko find karne ke liye ek scalar subquery likhein.
- Un sabhi products ko find karne ke liye
INke saath subquery likhein jo un categories se belong karte hain jinme'Appliances'word aata hai. total_amountke hisaab se single largest order place karne wale customer ko find karne ke liye ek subquery likhein.- Subquery ka use karke Quantum Pro 15 Laptop se higher priced sabhi products find karein.
FROMclause mein derived table ka use karke product prices ko alias karne wali query likhein.- Table mein sabse earliest registration date par register hone wale sabhi customers find karein.
'San Francisco'mein rehne wale customers dwara place kiye gaye sabhi orders find karne ke liye subquery ka use karein.- Active products ko select karne wali
ActiveProductsnaam ki basic CTE likhein, aur usse query karein. - Subquery ka use karke employee David Kim ke saath same manager share karne wale sabhi employees find karein.
- Subquery ke saath
NOT INka use karke un products ko find karein jo kabhi order nahi kiye gaye.
Intermediate Questions (161–170)
- Ek Correlated Subquery likhein jo apne khud ke department ki average salary se zyada earn karne wale sabhi employees ko find kare.
- Kam se kam ek active product supply karne wale sabhi suppliers ko find karne ke liye
EXISTSka use karke query likhein. - Kabhi koi order place na karne wale sabhi customers ko find karne ke liye
NOT EXISTSka use karke query likhein. - Per customer total spending calculate karne wali CTE likhein, aur CTE se query karke un customers ko find karein jinhone $1,000 se zyada spend kiya.
- Category 3 ke sabhi products ke price se greater price wale products find karne ke liye
ALLka use karke query likhein. - Department 4 ke kisi bhi employee ki salary se greater salary wale employees find karne ke liye
ANYka use karke query likhein. SELECTprojection list mein ek aisi subquery likhein jo har employee ki salary ke saath company ki maximum salary bhi display kare.- Do chained CTEs:
CustomerOrdersaurOrderTotalske saath ek modular query likhein jo per customer average order size calculate kare. - Subqueries ka use karke un sabhi customers ko find karein jinhone August 2023 aur September 2023 dono mein order place kiya hai.
- Ek correlated subquery likhein jo har customer ke liye unki most recent order date display kare.
Advanced Questions (171–175)
- 1 se 20 tak integer sequence generate karne wali ek Recursive CTE likhein.
- CEO se lekar individual staff members tak poore organizational management tree ko model karne wali aur hierarchy level depth compute karne wali Recursive CTE likhein.
- Ek correlated subquery likhein jo har category ke andar top 1 highest-priced product find kare.
- CTE ka use karke ek aisi query likhein jo har customer dwara total company revenue mein contribute ki gayi percentage calculate kare.
- Ek deeply nested subquery ko ek linear 3-stage Common Table Expression mein rewrite karein.
Challenge Questions (176–180)
- Recursive Date Series Generator: August 2023 month ke sabhi calendar dates generate karne wali Recursive CTE likhein, aur per day orders count karne ke liye
orderske againstLEFT JOINperform karein (empty days par 0 show karte hue). - BOM (Bill of Materials) Traversal: Ek hierarchical assembly ke liye total component manufacturing cost calculate karne wali recursive CTE query design karein.
- Correlated Subquery Optimization: Running balances calculate karne wali ek slow correlated subquery lein aur use ek derived table ke saath optimized join mein rewrite karein.
- Detecting Circular Management References: Recursive CTE ka use karke manager hierarchies ko traverse karne wali aur detect karne wali query likhein agar koi employee kisi loop ke through ghalti se khud ko report kar raha ho.
- Cumulative Tier Classification: Customer percentiles calculate karne wali CTE likhein aur top 10% customers ko dynamically
'Key Accounts'tag karein.
Section 7: Database Design, Normalization & Views
Beginner Questions (181–190)
- Agar koi column commas se separated multiple phone numbers store karta hai toh kaun sa normal form violate hota hai?
- Composite keys par partial dependencies ko eliminate karna kis normal form ki requirement hai?
- Transitive dependencies ko eliminate karna kis normal form ki requirement hai?
- Product titles, category names, aur prices display karne wala
v_all_productsnaam ka view create karein. - $300.00 se kam price wale products ke liye
v_all_productsview ko query karein. - Sirf active employees ko show karne wala
v_active_employeesnaam ka view create karein. - MySQL mein kisi existing view ki definition inspect karne ka tareeqa show karein.
- View
v_all_productsko drop karein. - Explain karein ki kya koi view table rows ke liye physical disk storage consume karta hai.
- Agar aap kisi underlying base table column ka naam rename kar dete hain toh view ka kya hota hai?
Intermediate Questions (191–200)
country = 'Germany'ke liye filter karne wala updatable viewv_german_customerscreate karein.v_german_customersmeinWITH CHECK OPTIONadd karein aur demonstrate karein ki ye kisi Italian customer ko insert hone se kaise block karta hai.- Ek security view
v_employee_directorycreate karein jo employee salaries aur personal phone numbers ko mask kare. - Ek analytical view
v_monthly_sales_summarycreate karein jo month ke according revenue, order count, aur average order value ko aggregate kare. - Ek unnormalized relation
R(OrderID, CustomerName, CustomerAddress, ProductID, ProductName, Quantity)ko 3NF tables mein normalize karein. courses(course_id, course_code, instructor_id, instructor_office)mein functional dependencies identify karein.- Explain karein ki
orderstable meintotal_amountstore karna ek controlled denormalization decision kyun hai. - Updatable view ke through kisi employee ki salary update karke demonstrate karein.
- Explain karein ki
GROUP BYcontain karne wala view directly update kyun nahi kiya ja sakta. - Customer order invoice summary produce karne ke liye 4 tables ko join karne wala ek view create karein.
Advanced Questions (201–205)
- MySQL mein ek physical summary table aur scheduled event ka use karke Materialized View emulate karein.
- Ek Car Rental Agency (Customers, Vehicles, Rentals, Maintenance Logs) ke liye 3NF schema design karein.
- Ek concrete schema example ke saath Boyce-Codd Normal Form (BCNF) explain karein jahan 3NF satisfy hota hai lekin BCNF violate hota hai.
ALGORITHM = MERGEka use karke ek view create karein aur explain karein ki MySQL view query ko outer user query ke saath kaise combine karta hai.ALGORITHM = TEMPTABLEka use karke ek view create karein aurEXPLAINka use karke iska execution plan analyze karein.
Challenge Questions (206–210)
- Zero-Loss Normalization Decomposition: Relation $R(A, B, C, D, E)$ jisme functional dependencies $A \rightarrow B, C$, $C \rightarrow D$, aur $D \rightarrow E$ hain, use 3NF mein decompose karein, proving lossless join property.
- Security View with Row-Level Tenant Isolation: MySQL ke
SESSION_USER()yaCURRENT_USER()ka use karke ek security view create karein jo users ko restrict kare taaki wo sirf apne department ke records view kar sakein. - Materialized View Refresh Mechanism: Ek stored procedure aur trigger architecture likhein jo
order_itemsmein nayi rows insert hone par materialized view table ko incrementally maintain kare. - Denormalization Trade-off Audit: 10 million transactions ke liye ek normalized 3NF schema vs ek denormalized Star Schema ke beech exact byte storage difference calculate karein.
- Schema Anti-Pattern Refactor: Ek existing Entity-Attribute-Value (EAV) schema anti-pattern lein aur use ek hybrid relational + JSON document design mein refactor karein.
Section 8: Indexes, Transactions & Concurrency Control
Beginner Questions (211–220)
customers(email)paridx_cust_emailnaam ka index create karne ke liye statement likhein.- Index
idx_cust_emailko drop karne ke liye statement likhein. orderstable par currently defined sabhi indexes display karein.- MySQL mein explicit transaction begin karne ke liye kaun si command hoti hai?
- Pending transactional changes ko disk par commit karne ke liye kaun si command hoti hai?
- Uncommitted changes ko rollback karne ke liye kaun si command hoti hai?
- MySQL InnoDB mein default transaction isolation level kya hai?
- Clustered Index kya hota hai, aur
customerstable mein kaun sa column ise represent karta hai? - Explain karein ki ACID acronym ka kya matlab hota hai.
- Savepoint kya hota hai, aur aap ise kaise create karte hain?
Intermediate Questions (221–230)
orders(customer_id, order_date)par ek composite index create karein.- Question 221 ke composite index ko Leftmost Prefix Rule follow karte hue utilize karne wali query likhein.
- Ek aisi query likhein jo Leftmost Prefix Rule violate karne ki wajah se Question 221 ke composite index ko utilize karne mein fail ho jaati hai.
- Ek aisa transaction likhein jo Product 1 ke stock ko decrement kare aur order create kare. Agar stock insufficient ho toh rollback karein.
- Demonstrate karein ki CLI session mein
SET autocommit = 0;transaction persistence ko kaise alter karta hai. - Inventory verification query ke dauran product record ko lock karne ke liye
SELECT ... FOR UPDATEka use karein. - Read-only validation ke liye customer record ko lock karne ke liye
SELECT ... FOR SHAREka use karein. - "Dirty Read" ke naam se jaane jaane wale concurrency anomaly ko explain karein aur batayein ki kaun sa isolation level ise permit karta hai.
- Explain karein ki "Non-Repeatable Read" kya hota hai aur
REPEATABLE READise kaise prevent karta hai. - Explain karein ki "Phantom Read" kya hota hai aur InnoDB ka Next-Key Locking ise kaise prevent karta hai.
Advanced Questions (231–235)
employeespar ek index-covering query demonstrate karein jismeEXPLAINoutput keExtracolumn meinUsing indexshow ho.- MySQL mein do concurrent connections ke beech ek deadlock scenario simulate karein.
SAVEPOINTka use karne wala ek transaction likhein jo parent order ko retain rakhte hue order item insert ko partially roll back kare.- Explain karein ki InnoDB ka Multi-Version Concurrency Control (MVCC) readers ko writers ko block karne se kaise bachaata hai.
- MySQL ki
performance_schema.data_lockstable ka use karke active transaction locks inspect karein.
Challenge Questions (236–240)
- Deadlock Resolution Routine: Application-level retry algorithm (pseudocode ya SQL handler mein) likhein jo MySQL error 1213 (Deadlock found) ko intercept kare aur transaction ko retry kare.
- Covering Index Optimization Challenge: Is query ko sub-millisecond speeds tak accelerate karne ke liye optimal composite index design karein:
SELECT customer_id, order_date, total_amount FROM orders WHERE status = 'Delivered' ORDER BY order_date DESC LIMIT 10;- Index Cardinality Analysis:
customerspar sabhi indexes ka selectivity ratio compute karne wali query likhein taaki decide kiya ja sake ki kaun se indexes drop karne chahiye. - Implicit Commit Disaster Recovery: Ek aisa scenario construct karein jo demonstrate kare ki transaction ke andar
ALTER TABLErun karne se prior DML statements commit ho jaate hain aur atomicity break ho jaati hai. - InnoDB Lock Escalation Mechanics: Explain karein ki InnoDB table-level locking ke bajaye row-level locking kyun use karta hai, aur row locks kab escalate hote hain ya Gap Locks ke through entire ranges ko lock karte hain.
Section 9: Programmability & Advanced Analytics (Procedures, Functions, Triggers, Windows)
Beginner Questions (241–250)
- Sabhi departments ko select karne wala ek basic stored procedure
sp_list_departmentslikhein. sp_list_departmentsprocedure ko execute karne ke liye command likhein.- MySQL CLI mein stored routines create karte waqt
DELIMITERko change karna kyun zaroori hota hai? - Ek deterministic function
fn_add_numbers(a INT, b INT)create karein jo unka sum return kare. employeespar ekBEFORE INSERTtrigger likhein joemailko lowercase mein force kare.- Salary descending order mein sorted sabhi employees ko number karne ke liye
ROW_NUMBER()window function ka use karein. ->>operator ka use karke'{"brand": "Sony", "model": "XM4"}'se JSON value extract karein.sp_my_procnaam ke stored procedure ko drop karne ka tareeqa show karein.- Procedure mein
INparameter aurOUTparameter ke beech difference explain karein. DELETEtrigger mein kaun sa pseudo-record (OLDyaNEW) available hota hai?
Intermediate Questions (251–260)
- Ek procedure
sp_get_customer_spendlikhein joIN p_cust_id INTle aur unka total spendOUT p_total DECIMAL(12,2)ke roop mein return kare. - Net price return karne wala ek stored function
fn_discounted_price(price DECIMAL(10,2), pct DECIMAL(4,2))likhein. orderspar ekAFTER DELETEtrigger likhein jo deletedorder_idaurtotal_amountkoorders_archivetable mein log kare.- Category ke andar price ke hisaab se products ko rank karne ke liye
RANK()aurDENSE_RANK()ko side-by-side use karein. - Har employee aur unke department ke next lower-paid employee ke beech salary difference calculate karne ke liye
LAG()ka use karein. ordersmein har customer ke liye subsequent order date display karne ke liyeLEAD()ka use karein.IF-THEN-ELSEcontrol flow ke saath ek procedure likhein jo performance ratings ke basis par employee salaries update kare.- Ek function likhein jo count kare ki diye gaye customer ne kitne orders place kiye hain.
- Ek
AFTER UPDATEtrigger likhein jo order ka status'Delivered'hone ke baad usketotal_amountko modify hone se prevent kare. - Window function ka use karke
order_dateke according sorted order amounts ka running cumulative total calculate karein.
Advanced Questions (261–265)
CURSORaurCONTINUE HANDLER FOR NOT FOUNDka use karne wala stored procedure likhein jo sabhi active customers par iterate kare aur 50 bonus points award kare.ROWS BETWEEN 2 PRECEDING AND CURRENT ROWka use karke daily order revenue par 3-day moving average calculation likhein.- Customers ko unke lifetime spend ke basis par 4 equal quartiles mein divide karne ke liye
NTILE(4)ka use karein. - Native
JSONcolumn ke saath ek table construct karein aur nested string attribute extract karne wala ek indexed virtual generated column build karein. - Stored procedure ke andar
EXIT HANDLER FOR SQLEXCEPTIONlikhein jo error aane par open transaction ko automatically rollback kar de.
Challenge Questions (266–270)
- Dynamic Pivot Procedure: Ek stored procedure likhein jo arbitrary years across sales data ko columns mein pivot karne ke liye
GROUP_CONCATka use karke dynamically SQL string construct kare aur usePREPAREaurEXECUTEke through run kare. - Year-over-Year (YoY) Growth Window Pipeline: Window functions ka use karne wali ek single SQL query likhein jo monthly revenue, previous year same-month revenue (
LAG 12), aur YoY percentage growth rate calculate kare. - Strict Invariant Trigger Guard:
order_itemspar ekBEFORE UPDATEtrigger likhein joordersmein parent order ketotal_amountko recalculate kare aur agar customer ki credit limit exceed hoti hai toh update ko reject kar de. - Advanced JSON Array Aggregation:
productstable ko query karein aurJSON_ARRAYAGGaurJSON_OBJECTka use karke ek single hierarchical JSON document produce karein jisme har category aur uske nested array of products shamil hon. - Audit Trigger with Deep Diffing:
employeespar ekAFTER UPDATEtrigger likhein joOLDaurNEWke beech har ek column ko compare kare aur har modified attribute ke liye ek normalizedfield_changes_audittable mein separate log entry insert kare.
Section 10: Performance Optimization & Enterprise Security
Beginner Questions (271–280)
customerspar query ke liyeEXPLAINexecution plan generate karne ki command likhein.EXPLAINmein kaun sa access type full table scan indicate karta hai?EXPLAINmein kaun sa access type Primary Key lookup indicate karta hai?- Password
'InternPass2026!'ke saath'intern'@'localhost'naam ka MySQL user account create karein. 'intern'@'localhost'kosql_mastery.*par read-only (SELECT) privileges grant karein.'intern'@'localhost'ko granted active privileges inspect karein.'intern'@'localhost'seSELECTprivileges revoke karein.- User
'intern'@'localhost'ko drop karein. - Query optimization mein SARGable term ka kya matlab hota hai?
- Explain karein ki web queries mein string concatenation SQL Injection vulnerabilities kyun create karta hai.
Intermediate Questions (281–290)
- Is non-SARGable query ko ek SARGable query mein convert karein:
SELECT * FROM employees WHERE YEAR(hire_date) = 2021;- Is non-SARGable query ko ek SARGable query mein convert karein:
SELECT * FROM customers WHERE phone LIKE '555%';customersaurorderske beech join ka actual execution time measure karne ke liyeEXPLAIN ANALYZEka use karein.'analyst_role'naam ka role create karein, usesql_masteryki saari tables parSELECTgrant karein, aur role ko ek user ko assign karein.- Column-level permissions grant karein jo user ko
customersse sirffirst_name,last_name, aurcityview karne allow karein. - MySQL mein
PREPARE,SET, aurEXECUTEka use karke parameterized query prepare aur execute karne ka tareeqa show karein. - Explain karein ki
EXPLAINplan keExtracolumn meinUsing temporaryaurUsing filesortka kya matlab hota hai. --single-transactionka use karkesql_masterybackup karne ke liyemysqldumpcommand likhein.VARCHARcolumn ko integer literal se compare karne (WHERE phone = 5550100) ke performance risk ko identify karein.- MySQL mein Slow Query Log enable karein aur ise 1.0 second se lambi queries capture karne ke liye configure karein.
Advanced Questions (291–295)
- Block Nested Loop (ya Hash Join) show karne wale
EXPLAINplan ko analyze karein aur ise Index Nested Loop Join mein convert karne ke liye required index construct karein. - Ek multi-column covering index design karein jo
WHEREfilter aurORDER BYclause dono contain karne wali query par Filesort ko completely eliminate kare. - MySQL 8.0 mein
caching_sha2_passwordaurmysql_native_passwordke beech security differences explain karein. sys.schema_unused_indexeska use karke ek SQL statement likhein josql_masterymein un indexes ko identify kare jo queries dwara kabhi utilize nahi kiye gaye hain.- Encrypted SSL/TLS connection (
REQUIRE SSL) require karne ke liye user account configure karein.
Challenge Questions (296–300)
- Execution Plan Deconstruction: 4-table join query par
EXPLAIN FORMAT=JSONexecute karein aur cost metrics (query_cost,read_cost,eval_cost) ko interpret karein. - SQL Injection Penetration Scenario: Demonstrate karein ki attacker authentication ko kaise bypass karta hai jab login query is tarah likhi gayi ho:
SELECT * FROM users WHERE username = '$user' AND password = '$password';Exact injection payload show karein aur secure parameterized prepared statement equivalent likhein. 298. Buffer Pool Sizing & Hit Ratio: information_schema aur performance_schema ke against ek query likhein jo InnoDB Buffer Pool Read Hit Ratio percentage calculate kare. 299. Granular Row-Level Access Architecture: MySQL mein multi-tenant security architecture design karein jahan multiple client companies ek single database share karti hain, lekin database-level roles aur views ensure karein ki Tenant A kabhi bhi Tenant B ka data query na kar sake. 300. High-Performance Query Refactoring: 4 subqueries, 2 self-joins, aur ek DISTINCT clause contain karne wali legacy reporting query lein, aur use Common Table Expressions aur Window Functions ka use karke optimized pipeline mein refactor karein, jisse query cost 80% se zyada reduce ho jaye.