SQL क्या है? डेटाबेस की भाषा को आसान भाषा में समझें
SQL (Structured Query Language, जिसे "S-Q-L" या "sequel" कहा जाता है) रिलेशनल डेटाबेस के साथ काम करने की मानक भाषा है, यानी वे डेटाबेस जो डेटा को पंक्तियों और स्तंभों वाली तालिकाओं में रखते हैं, जैसे Postgres, MySQL, SQLite और SQL Server। आप SQL से अपने डेटा से सवाल पूछते हैं ("इस महीने कौन से ग्राहकों ने बुकिंग की?") और रिकॉर्ड जोड़ते, बदलते या हटाते हैं। यह 1970 के दशक से है, एक अंतरराष्ट्रीय मानक है, और दुनिया के बहुत बड़े हिस्से के ऐप इसी पर चलते हैं।
AI के साथ बनाते समय SQL क्यों मायने रखता है
जब आप किसी AI ऐप बिल्डर से "ऑर्डर सेव करो" या "आने वाली बुकिंग की सूची दिखाओ" कहते हैं, तो कुछ न कुछ डेटाबेस से बात करता है, और ज़्यादातर ऐप में वह SQL होता है, या तो सीधे लिखा हुआ या ORM से बना।
आपको खुद SQL लिखने की ज़रूरत नहीं, पर थोड़ी समझ फ़ायदेमंद है:
- आप अपना डेटा जाँच सकते हैं। एक छोटी क्वेरी "इस हफ़्ते हमें कितने साइन-अप मिले?" का जवाब नई स्क्रीन बनाने से तेज़ी से देती है।
- आप बेहतर रिपोर्ट माँग सकते हैं। "आय को महीने और सेवा के हिसाब से समूहित करो" एक SQL विचार है। इसे जानने से आपका अनुरोध ज़्यादा साफ़ होता है।
- आप खतरनाक बदलाव पकड़ सकते हैं।
WHEREक्लॉज़ के बिनाDELETEयाUPDATEहर पंक्ति को प्रभावित करता है। चलने से पहले इसे पकड़ना ज़रूरी है। - आपका डेटा बंद नहीं होता। SQL एक साझा मानक है, इसलिए SQL डेटाबेस का डेटा कई टूल से ले जाया और पढ़ा जा सकता है।
रोज़मर्रा की एक मिसाल
एक बहुत व्यवस्थित लाइब्रेरी और एक लाइब्रेरियन सोचिए जो सिर्फ़ एक सटीक, सरल भाषा बोलता है।
आप खुद अलमारियाँ नहीं खंगालते। आप लाइब्रेरियन को एक पर्ची देते हैं: "इस लेखक की सारी किताबें ढूँढो, जो 2010 के बाद छपी हैं, नई पहले।" लाइब्रेरियन इमारत को अंदर से जानता है और ठीक वही किताबें, उसी क्रम में, लाकर देता है।
SQL वही पर्ची की भाषा है। आप क्या चाहिए बताते हैं, कैसे ढूँढना है यह नहीं। सबसे तेज़ रास्ता डेटाबेस खुद तय करता है।
SQL कैसे काम करता है: तालिकाएँ, पंक्तियाँ और स्तंभ
एक रिलेशनल डेटाबेस डेटा तालिकाओं में रखता है। हर तालिका एक तरह की चीज़ रखती है, हर पंक्ति एक रिकॉर्ड है और हर स्तंभ जानकारी का एक टुकड़ा:
customers
| id | name | city | |
|---|---|---|---|
| 1 | Lena Ortiz | lena@example.com | Lisbon |
| 2 | Sam Patel | sam@example.com | Leeds |
orders
| id | customer_id | total | placed_at |
|---|---|---|---|
| 101 | 1 | 42.00 | 2026-09-20 |
| 102 | 2 | 18.50 | 2026-09-22 |
| 103 | 1 | 25.00 | 2026-09-27 |
customer_id स्तंभ हर ऑर्डर को एक ग्राहक से जोड़ता है। यही जोड़ डेटाबेस को "रिलेशनल" बनाता है।
एक उदाहरण: असली सवालों के जवाब
1. डेटा पढ़ना: "लिस्बन के सभी ग्राहक दिखाओ":
SELECT name, email
FROM customers
WHERE city = 'Lisbon';
2. क्रम लगाना और सीमित करना: "पाँच सबसे नए ऑर्डर":
SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;
3. तालिकाओं को जोड़ना: "हर ऑर्डर के साथ ग्राहक का नाम":
SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;
4. सारांश बनाना: "हर ग्राहक का कुल खर्च":
SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;
इस नमूना डेटा के साथ, यह Lena Ortiz को 67.00 और Sam Patel को 18.50 लौटाता है।
5. डेटा बदलना:
INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');
UPDATE customers SET city = 'Porto' WHERE id = 1;
DELETE FROM orders WHERE id = 102;
ये लगभग हर ऐप की चार बुनियादी क्रियाओं से मेल खाते हैं: create, read, update और delete, जिन्हें CRUD कहते हैं।
एक चेतावनी: WHERE क्लॉज़ के बिना UPDATE customers SET city = 'Porto'; हर ग्राहक को बदल देता है। कोई बदलाव चलाने से पहले हमेशा WHERE जाँचें।
SQL के मुख्य कमांड
| कमांड | यह क्या करता है |
|---|---|
SELECT | डेटा पढ़ना |
INSERT | नई पंक्तियाँ जोड़ना |
UPDATE | मौजूदा पंक्तियाँ बदलना |
DELETE | पंक्तियाँ हटाना |
CREATE TABLE / ALTER TABLE | तालिका की संरचना बनाना या बदलना |
WHERE | फ़िल्टर करना कि कौन सी पंक्तियाँ प्रभावित हों |
JOIN | संबंधित तालिकाओं को जोड़ना |
GROUP BY | पंक्तियों को समूहों में सारांशित करना, COUNT, SUM, AVG के साथ |
ORDER BY / LIMIT | नतीजों को क्रम में लगाना और सीमित करना |
SQL मानकीकृत है, पर हर डेटाबेस अपनी अतिरिक्त चीज़ें जोड़ता है, जिन्हें dialect कहते हैं। Postgres, MySQL और SQLite ऊपर के उदाहरण समझते हैं, जबकि तारीख़ वाले फ़ंक्शन जैसी बारीकियाँ थोड़ी अलग होती हैं।
मुख्य शब्द
| शब्द | मतलब |
|---|---|
| Query | एक SQL स्टेटमेंट, खासकर वह जो डेटा पढ़ता है। |
| Table / row / column | एक तरह की चीज़ / एक रिकॉर्ड / एक गुण। |
| Primary key | वह स्तंभ जो हर पंक्ति को अनोखे रूप से पहचानता है, आम तौर पर id। |
| Foreign key | एक स्तंभ जो दूसरी तालिका की किसी पंक्ति की ओर इशारा करता है, जैसे customer_id। |
| Index | एक लुकअप संरचना जो किसी स्तंभ में खोज को कहीं तेज़ बनाती है। |
| Schema | सभी तालिकाओं और स्तंभों का ढाँचा। |
| Transaction | बदलावों का एक समूह जो एक साथ सफल होता है या एक साथ विफल। |
| SQL injection | एक हमला जिसमें उपयोगकर्ता का इनपुट चुपके से क्वेरी में डाला जाता है। पैरामीटराइज़्ड क्वेरी से इसे रोका जाता है। |
आम गलतफ़हमियाँ
- "SQL एक डेटाबेस है।" SQL भाषा है; Postgres, MySQL और SQLite वे डेटाबेस हैं जो इसे बोलते हैं।
- "SQL पुराना है, इसलिए पुराना हो गया।" यह परिपक्व है, अप्रचलित नहीं। आधुनिक डेटाबेस और डेटा टूल आज भी इसे इस्तेमाल करते हैं, और नए भी अक्सर SQL सपोर्ट जोड़ते हैं।
- "सिर्फ़ डेवलपर ही SQL इस्तेमाल कर सकते हैं।" विश्लेषक, मार्केटर और संस्थापक रोज़ सरल क्वेरी इस्तेमाल करते हैं।
- "SQL लचीले डेटा को नहीं संभाल सकता।" कई SQL डेटाबेस JSON भी store करते हैं। Postgres में, उदाहरण के लिए,
jsonbटाइप है। देखें SQL बनाम NoSQL। - "AI को प्रोडक्शन पर कोई भी SQL चलाने देना ठीक है।" पढ़ने के काम कम जोखिम वाले हैं; लाइव डेटा पर बदलाव और हटाने के लिए बैकअप और दूसरी नज़र ज़रूरी है। देखें अपने ऐप के डेटाबेस का बैकअप कैसे लें।
अपने AI बिल्डर से क्या माँगें
- "मेरे डेटाबेस की तालिकाएँ और हर स्तंभ का मतलब दिखाओ।"
- "सिर्फ़ पढ़ने वाली क्वेरी लिखो: पिछले 30 दिनों में हर दिन कितने नए साइन-अप हुए?"
- "कोई भी UPDATE या DELETE चलाने से पहले मुझे क्वेरी और यह दिखाओ कि कितनी पंक्तियाँ प्रभावित होंगी।"
- "जिन स्तंभों पर हम सबसे ज़्यादा फ़िल्टर और क्रम करते हैं, उन पर index जोड़ो।"
- "पक्का करो कि उपयोगकर्ता इनपुट इस्तेमाल करने वाली हर क्वेरी पैरामीटराइज़्ड हो।"
- "ऑर्डर और पेमेंट के अपडेट को एक transaction में लपेटो, ताकि वे आधे-अधूरे सफल न हों।"
Mythex में SQL
जब आपके ऐप को डेटा सहेजना हो, तो Mythex प्रोजेक्ट में एक समर्पित Postgres डेटाबेस जोड़ता है। चैट में पूछें, जैसे "वेटलिस्ट के ईमेल डेटाबेस में सहेजो", या /database कमांड इस्तेमाल करें (Database)। एजेंट तालिकाएँ बनाता है और क्वेरी लिखता है, और आप Ask मोड में उससे किसी भी क्वेरी को सादे शब्दों में समझाने को कह सकते हैं। डेटाबेस के बारे में ज़्यादा जानने के लिए Postgres क्या है पढ़ें।
सवाल
सरल शब्दों में SQL क्या है?
SQL (Structured Query Language) रिलेशनल डेटाबेस के साथ काम करने की मानक भाषा है। इससे आप अपने डेटा से सवाल पूछते हैं, जैसे 'इस हफ़्ते कौन से ऑर्डर आए', और रिकॉर्ड जोड़ते, बदलते या हटाते हैं।
SQL का उच्चारण कैसे करते हैं?
'S-Q-L' (हर अक्षर अलग बोलकर) और 'sequel' दोनों आम और सही हैं। इस भाषा का मूल नाम SEQUEL था, वहीं से दूसरा उच्चारण आता है।
क्या SQL एक प्रोग्रामिंग भाषा है?
SQL डेटा संभालने के लिए बनी एक क्वेरी भाषा है। आप बताते हैं कि आपको कौन सा नतीजा चाहिए, और डेटाबेस तय करता है कि उसे कैसे पाना है। इससे अकेले पूरे ऐप नहीं बनाए जाते, पर लगभग हर ऐप में, जो रिलेशनल डेटाबेस इस्तेमाल करता है, यह उसका हिस्सा होती है।
क्या SQL सीखना मुश्किल है?
बुनियादी बातें आसान हैं: SELECT, WHERE, ORDER BY, INSERT, UPDATE और DELETE ज़्यादातर रोज़मर्रा की ज़रूरतें पूरी कर देते हैं और लगभग अंग्रेज़ी जैसे पढ़े जाते हैं। Joins, grouping और परफ़ॉर्मेंस ट्यूनिंग में ज़्यादा समय लगता है।
क्या AI से ऐप बनाने के लिए SQL जानना ज़रूरी है?
नहीं। AI बिल्डर आपके लिए SQL या डेटाबेस कोड लिख देता है। थोड़ा जानने से आप अपने डेटा की जाँच कर सकते हैं, रिपोर्ट माँग सकते हैं, और खतरनाक बदलावों को होने से पहले पकड़ सकते हैं।