SQL क्या है? DDL, DML और DQL
SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) रिलेशनल डेटाबेस बनाने और चलाने की मानक भाषा है। MySQL मुफ़्त, ओपन-सोर्स DBMS है जो SQL समझता है। SQL कीवर्ड में छोटे-बड़े अक्षर का फ़र्क नहीं; हर कथन सेमीकोलन ; पर ख़त्म होता है।
- DDL (डेटा डेफ़िनिशन लैंग्वेज): ढाँचा परिभाषित करता है।
CREATE,ALTER,DROP। - DML (डेटा मैनिपुलेशन लैंग्वेज): पंक्तियों का डेटा बदलता है।
INSERT,UPDATE,DELETE। - DQL (डेटा क्वेरी लैंग्वेज): डेटा पढ़ता है।
SELECT।
MySQL में डेटा प्रकार
INT/INTEGER: पूर्ण संख्याएँ (रोल नं., अंक)।FLOAT,DECIMAL(p, s): दशमलव वाली संख्याएँ; DECIMAL(7,2) → 99999.99 तक।CHAR(n): तय लंबाई का टेक्स्ट; हमेशा n अक्षर की जगह (पिन कोड, फ़ोन नंबर के लिए अच्छा)।VARCHAR(n): n तक बदलती लंबाई का टेक्स्ट; जितनी ज़रूरत उतनी जगह (नामों के लिए अच्छा)।DATE: 'YYYY-MM-DD' रूप में तारीख़।
टेक्स्ट और तारीख़ एकल उद्धरण में: 'Asha', '2026-04-01'।
CREATE DATABASE, CREATE TABLE, DROP और ALTER
CREATE DATABASE school; USE school; SHOW TABLES; CREATE TABLE student ( Roll INT PRIMARY KEY, Name VARCHAR(20) NOT NULL, Marks INT, City VARCHAR(15) ); DESCRIBE student; -- ढाँचा देखें ALTER TABLE student ADD Phone CHAR(10); ALTER TABLE student MODIFY City VARCHAR(25); ALTER TABLE student DROP Phone; DROP TABLE student; -- तालिका + डेटा हटाता है DROP DATABASE school;
PRIMARY KEY और NOT NULL कंस्ट्रेंट (नियम जिन्हें DBMS जाँचता है) हैं। ALTER से प्राइमरी की भी जोड़ सकते हैं: ALTER TABLE student ADD PRIMARY KEY (Roll);
INSERT: पंक्तियाँ जोड़ना
INSERT INTO student VALUES (1, 'Asha', 92, 'Delhi'); INSERT INTO student (Roll, Name, Marks) VALUES (3, 'Mohan', 58); -- City NULL बनेगा
मान स्तंभों के क्रम में और डेटा प्रकार से मेल खाते हों। दोहराई प्राइमरी की अस्वीकार होती है।
WHERE के साथ SELECT
SELECT * FROM student; -- सब पंक्तियाँ, सब स्तंभ SELECT Name, Marks FROM student; -- चुने स्तंभ SELECT * FROM student WHERE Marks > 80;
संबंधात्मक ऑपरेटर: = <> (या !=) < > <= >=।
BETWEEN
WHERE Marks BETWEEN 60 AND 80 दोनों सिरे (60 और 80) शामिल करता है। यह Marks >= 60 AND Marks <= 80 जैसा है।
तार्किक ऑपरेटर
AND (दोनों सच), OR (कम से कम एक सच), NOT (उलटा)। WHERE City = 'Delhi' AND Marks > 90।
IS NULL
NULL का अर्थ "अज्ञात" है, इसलिए = NULL कभी काम नहीं करता। WHERE City IS NULL या IS NOT NULL लिखें।
UPDATE और DELETE
UPDATE student SET Marks = Marks + 5 WHERE Marks < 70; UPDATE student SET City = 'Agra' WHERE Roll = 3; DELETE FROM student WHERE City IS NULL; DELETE FROM student; -- सारी पंक्तियाँ हटती हैं, तालिका रहती है
पहले WHERE हमेशा जाँचें। इसके बिना UPDATE हर पंक्ति बदल देता है और DELETE तालिका ख़ाली कर देता है। DELETE पंक्तियाँ हटाता है (DML); DROP ख़ुद तालिका हटाता है (DDL)।
करके देखें: MySQL में अपनी कक्षा
MySQL इंस्टॉल करें (या कोई ऑनलाइन SQL प्लेग्राउंड)। 5 दोस्तों की Roll, Name, Marks, City वाली तालिका बनाएँ। पंक्तियाँ डालें, एक City ख़ाली छोड़ें। हर क्वेरी चलाने से पहले लिखें कि कौन-से नाम आएँगे: 80 से ज़्यादा, 60 से 80 के बीच, City IS NULL। फिर चलाएँ। 3D के कदम 6 से मिलान करें।
मुख्य सूत्र और परिभाषाएँ
- DDL: CREATE, ALTER, DROP · DML: INSERT, UPDATE, DELETE · DQL: SELECT
- SELECT स्तंभ FROM तालिका WHERE शर्त;
- x BETWEEN a AND b ⇔ x >= a AND x <= b (दोनों सिरे शामिल)
- IS NULL / IS NOT NULL लिखें, = NULL कभी नहीं
हल किए गए उदाहरण
1. BOOK तालिका बनाने का कमांड लिखें: ISBN (13 अक्षर, प्राइमरी की), Title (40 अक्षर तक), Price (2 दशमलव)।
CREATE TABLE book (ISBN CHAR(13) PRIMARY KEY, Title VARCHAR(40), Price DECIMAL(8,2));
2. BOOK में Author VARCHAR(30) स्तंभ जोड़ें।
ALTER TABLE book ADD Author VARCHAR(30);
3. STUDENT तालिका (Asha 92 Delhi, Ravi 75 Pune, Mohan 58 NULL, Zoya 81 Delhi, Kabir 66 Jaipur) में SELECT Name FROM student WHERE Marks BETWEEN 60 AND 80; क्या लौटाएगा?
Ravi (75) और Kabir (66)। Asha, Zoya 80 से ऊपर; Mohan 60 से नीचे।
4. दिल्ली के उन छात्रों के नाम दिखाएँ जिनके 90 से ज़्यादा अंक हैं।
SELECT Name FROM student WHERE City = 'Delhi' AND Marks > 90; → Asha।
5. जिन छात्रों का शहर दर्ज नहीं है, उन्हें ढूँढें।
SELECT * FROM student WHERE City IS NULL; → Mohan।
6. 70 से कम वालों को 5 ग्रेस अंक दें, फिर बिना शहर वाली पंक्तियाँ हटाएँ। कितनी पंक्तियाँ बचेंगी?
UPDATE: Mohan 58 → 63, Kabir 66 → 71। DELETE से Mohan (City NULL) हटा। 4 पंक्तियाँ बचीं।
7. DELETE FROM student; और DROP TABLE student; में क्या अंतर है?
DELETE सारी पंक्तियाँ हटाता है पर ख़ाली तालिका रहती है (DML)। DROP तालिका और उसका ढाँचा पूरी तरह हटा देता है (DDL)।
आम गलतियाँ
- WHERE City = NULL लिखना; IS NULL लिखें।
- UPDATE या DELETE में WHERE भूलना, जिससे हर पंक्ति बदल जाए।
- यह सोचना कि BETWEEN 60 AND 80 में 60 और 80 शामिल नहीं; दोनों शामिल हैं।
- टेक्स्ट मान बिना उद्धरण लिखना: Name = 'Asha' की जगह Name = Asha।