Exam में 80%+ score करें और जीतें Certificate + Gifts!
- ✅ पूरा course free
- 🎓 Final Exam में 80%+ = Certificate
- 📝 50 Questions
- 🎁 Cheat Sheet + Gifts + बहुत कुछ
🧭 SQL बिल्कुल नहीं आता? बस ये 4 बातें समझ लीजिए!
SQL कोई कठिन programming नहीं है। सोचिए आपके पास एक Excel Sheet खुली है और आप उसे type करके बोल रहे हैं कि क्या करना है:
SELECT (क्या देखना है) + FROM (किस sheet से) + WHERE (क्या filter है)।
⚡ Live Interactive SQL Sandbox (Browser Engine)
AlaSQL Engine Activeयहाँ आप live SQL queries चलाकर देख सकते हैं! नीचे दिए गए quick buttons पर click करें या अपना SQL code लिखकर Run Query (Ctrl + Enter) दबाएँ:
🗄️ Active Sandbox Data Tables (हमारा Sample Data)
Sheet 1: Customers 4 Rows
| CustomerID | CustomerName | City | Country |
|---|---|---|---|
| 1 | Amit Sharma | Delhi | India |
| 2 | Pooja Verma | Mumbai | India |
| 3 | John Miller | Berlin | Germany |
| 4 | Sara Smith | London | UK |
Sheet 2: Employees 4 Rows
| EmpID | Name | dept_id | Salary |
|---|---|---|---|
| 101 | Rahul Roy | 10 | 65000 |
| 102 | Sneha Rao | 20 | 48000 |
| 103 | Vikas Jain | 10 | 72000 |
| 104 | Karan Mehta | NULL | 42000 |
Sheet 3: Products 4 Rows
| ProductID | ProductName | Price | SupplierID |
|---|---|---|---|
| 1 | Mechanical Keyboard | 45 | 1 |
| 2 | Gaming Mouse | 25 | 1 |
| 3 | HD Monitor | 180 | 2 |
| 4 | USB Hub | 15 | 3 |
1. SQL Basics & Queries (रोज़मर्रा की Basic Commands)
SQL SELECT & FROM
Sheet से मनपसंद columns का data देखने के लिए।
* (star) लगाते हैं।
SQL SELECT DISTINCT
सिर्फ़ unique (अनोखी) values देखना, duplicate हटाना।
SQL WHERE
शर्त (condition) के आधार पर rows filter करना।
SQL AND, OR, NOT
एक से ज़्यादा शर्तों (conditions) को एक साथ जोड़ना।
SQL ORDER BY
Data को छोटे-से-बड़े या बड़े-से-छोटे क्रम में लगाना।
SQL INSERT INTO
Sheet के अंदर बिल्कुल नई row जोड़ने के लिए।
SQL UPDATE
पहले से मौजूद ग़लत data को ठीक करना।
SQL DELETE
Table से किसी पुरानी row को हमेशा के लिए हटाना।
SQL LIMIT / TOP
सिर्फ़ शुरुआत के गिने-चुने records देखना।
SQL NULL Values
खाली (blank) box को check करना।
= NULL नहीं बल्कि IS NULL लिखते हैं।
2. SQL Aggregate Functions (Automatic गणित और हिसाब)
SQL MIN() & MAX()
सबसे छोटा और सबसे बड़ा number ढूँढ़ना।
SQL COUNT(), SUM(), AVG()
Total गिनना, जोड़ना और average निकालना।
3. Advanced Querying & Joins (Smart Search और दो Sheets मिलाना)
SQL LIKE & Wildcards (%)
नाम के शुरू या आख़िरी अक्षरों से search करना।
SQL BETWEEN & IN
किसी range या specific options के बीच ढूँढ़ना।
SQL Aliases (AS)
Column का नाम temporary, सुंदर और आसान बनाना।
cust_first_nm था, screen पर दिखाते वक़्त उसे Client_Name बोल दिया।
SQL INNER JOIN
दो अलग-अलग sheets को Common ID से आपस में जोड़ना।
dept_id मिलाकर एक नई बड़ी sheet बना दी!
SQL GROUP BY & HAVING
Data के झुंड (Groups) बनाकर summary निकालना।
SQL CASE Statement
Conditions के हिसाब से decision लेना (IF-THEN-ELSE)।
SQL COALESCE / IFNULL
खाली (NULL) जगह पर कोई default number या text दिखाना।
SQL UNION
दो अलग-अलग lists को एक लंबी list में जोड़ना।
4. Database & Table Management (नई File और Sheet बनाना)
SQL CREATE TABLE
एक बिल्कुल नई खाली table (sheet) तैयार करना।
SQL ALTER TABLE
बनी हुई table में नया column जोड़ना या हटाना।
SQL Primary Key
हर row को पहचानने के लिए एक अनोखा ID number।
SQL AUTO_INCREMENT
हर नई entry के साथ ID का automatic 1, 2, 3 बढ़ते जाना।
5. Stored Procedures & Security (Shortcut और सुरक्षा)
SQL Stored Procedure
बड़ी query को shortcut नाम देकर save करना।
SQL Comments (--)
Code के साथ अपनी समझ के लिए notes लिखना।
GROUP BY लगाकर HAVING COUNT(*) > 1 check करते हैं, तो सारे duplicate records निकलकर आ जाते हैं:
| Feature | DELETE (DML) | TRUNCATE (DDL) | DROP (DDL) |
|---|---|---|---|
| करता क्या है | Rows को एक-एक करके हटाता है | सारी rows को एक झटके में खाली करता है | Table और उसके structure दोनों को मिटा देता है |
| WHERE Clause | हाँ (Specific rows filter कर सकते हैं) | नहीं (पूरी sheet साफ़ होगी) | नहीं |
| Rollback | हाँ (Transactions के साथ वापस आ सकता है) | नहीं (बहुत मुश्किल / Engine dependent) | नहीं (Permanently delete) |
| Speed | Slow (हर row का log बनता है) | Very Fast (Storage de-allocate करता है) | Fastest |
e और m) देकर आपस में जोड़ने को SELF JOIN कहते हैं:
SUM(), AVG() नहीं चलते।• HAVING:
GROUP BY होने के बाद calculated summary पर filter लगाता है (जैसे HAVING COUNT(*) > 2)।
2. NULL Value: Primary key कभी भी
NULL नहीं हो सकती। लेकिन Unique key में NULL allow होता है (database के हिसाब से 1 या ज़्यादा)।3. उपयोग: Primary Key row की पहचान होती है (जैसे Roll No)। Unique key extra unique data के लिए होती है (जैसे Email, Phone Number)।
- ROW_NUMBER(): हमेशा लगातार अलग number देगा:
1, 2, 3, 4(कोई tie नहीं मानता)। - RANK(): बराबर आने पर rank repeat करेगा, फिर अगला number skip करेगा:
1, 2, 2, 4(3 छूट गया!)। - DENSE_RANK(): बराबर आने पर rank repeat करेगा, और कोई number skip नहीं करेगा:
1, 2, 2, 3.
' OR '1'='1 लिखकर बिना password के पूरा database hack कर लेता है।बचाव (Defense): कभी भी query में string जोड़कर (concat करके) SQL न चलाएँ। हमेशा Parameterized Queries (Prepared Statements) का use करें जहाँ input को query नहीं बल्कि raw data की तरह treat किया जाता है।
• फ़ायदा (Pros):
SELECT और WHERE search speed 100x fast हो जाती है।• नुकसान (Cons): नया record डालने (
INSERT/UPDATE) पर index को भी update करना पड़ता है, इसलिए write operation थोड़ा slow हो जाता है और extra disk memory लगती है।
📁 इस Project की 3 आपस में जुड़ी हुई Tables (Database Schema):
1. Users (ग्राहक) 5 Rows
| user_id | name | city |
|---|---|---|
| 1 | Aman Gupta | Delhi |
| 2 | Riya Sen | Mumbai |
| 3 | Kabir Das | Delhi |
| 4 | Neha Sharma | Bangalore |
| 5 | Varun Joshi | Jaipur |
2. Items (सामान) 4 Rows
| item_id | title | price (₹) |
|---|---|---|
| 101 | Wireless Earbuds | 1200 |
| 102 | Fast Charger | 500 |
| 103 | Smart Watch | 2500 |
| 104 | Laptop Stand | 800 |
3. Orders (Sales Record) 5 Rows
| order_id | user_id | item_id | status |
|---|---|---|---|
| 501 | 1 | 101 | Delivered |
| 502 | 2 | 103 | Delivered |
| 503 | 1 | 102 | Delivered |
| 504 | 3 | 103 | Cancelled |
| 505 | 4 | 104 | Delivered |
WHERE price >= 1000 ने 500 और 800 वाले items को छानकर हटा दिया, और ORDER BY price DESC ने सबसे महँगे item Smart Watch (2500) को top पर set कर दिया।
INNER JOIN ने Orders और Items table को item_id से मिलाया ताकि rate पता चल सके। WHERE status = 'Delivered' ने cancelled order को बाहर रखा, जिससे exact sale ₹5,000 calculate हुई।
Orders sheet को बीच में रखा, एक तरफ़ से Users का नाम जोड़ दिया और दूसरी तरफ़ से Items की details जोड़ दीं। अब पूरा invoice readable बन गया!
GROUP BY u.city ने शहर के हिसाब से अलग-अलग packets बना दिए और SUM(i.price) ने हर packet का total जोड़कर दिखा दिया। Mumbai ₹2500 के साथ top पर आ गया।
LEFT JOIN लगाने से Varun Joshi list से बाहर नहीं हुआ।2.
COALESCE ने खाली राशि को 0 कर दिया।3.
CASE ने condition के हिसाब से automatic VIP और Inactive tags लगा दिए!