एमवाईएसक्यूएल (MySQL) एक ओपन-सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। डेटाबेस डेटा का एक व्यवस्थित संग्रह होता है, और डेटाबेस प्रबंधन प्रणाली (DBMS) वह सॉफ्टवेयर है जो इस डेटा को संग्रहीत करने, प्रबंधित करने और पुनर्प्राप्त करने में सहायता करता है। एमवाईएसक्यूएल में डेटा को टेबल्स के रूप में संग्रहीत किया जाता है, जिसमें पंक्तियाँ (Rows) और स्तंभ (Columns) होते हैं। यह एक रिलेशनल डेटाबेस है, जिसका अर्थ है कि विभिन्न टेबल्स को सामान्य कुंजियों के द्वारा आपस में जोड़ा जा सकता है। एमवाईएसक्यूएल स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है, जो डेटा में हेरफेर करने की मानक भाषा है। वेब विकास में एमवाईएसक्यूएल की विशेष भूमिका है; यह एचटीएमएल, पाइथन, पीएचपी जैसी भाषाओं के साथ उपयोग होता है। इस अध्याय में हम डेटाबेस की मूल अवधारणाओं, एसक्यूएल कमांड्स और एमवाईएसक्यूएल के विभिन्न कार्यों का अध्ययन करेंगे।
2. डेटाबेस की मूल अवधारणाएँ (Basic Database Concepts)
डेटा (Data): कच्चे तथ्य, जैसे नाम, अंक, पता।
डेटाबेस (Database): संबंधित डेटा का संगठित संग्रह।
DBMS: डेटाबेस बनाने और प्रबंधित करने वाला सॉफ्टवेयर, जैसे MySQL, Oracle।
RDBMS: रिलेशनल डेटाबेस प्रबंधन प्रणाली, जो टेबल्स के बीच संबंध बनाती है।
टेबल (Table): डेटा को पंक्तियों और स्तंभों में संग्रहीत करने की संरचना।
रो/टपल (Row/Tuple): टेबल की एक क्षैतिज पंक्ति, जो एक रिकॉर्ड दर्शाती है।
स्तंभ/एट्रिब्यूट (Column/Attribute): टेबल का एक लंबवत खंड, जो एक विशेष प्रकार का डेटा रखता है।
कुंजी (Key): रिकॉर्ड को विशिष्ट रूप से पहचानने वाला फील्ड।
प्राथमिक कुंजी (Primary Key): वह कॉलम जो प्रत्येक रो को विशिष्ट (अनोखा) पहचानता है। इसमें NULL मान नहीं हो सकता और डुप्लिकेट मान नहीं हो सकते।
विदेशी कुंजी (Foreign Key): दूसरी टेबल की प्राथमिक कुंजी जो दो टेबल्स को जोड़ती है।
स्कीमा (Schema): डेटाबेस की संरचना का वर्णन।
रिकॉर्ड (Record): एक पंक्ति में संग्रहीत पूर्ण जानकारी।
3. एसक्यूएल कमांड्स के प्रकार (Types of SQL Commands)
एसक्यूएल (Structured Query Language) डेटाबेस के साथ संवाद करने की भाषा है। इसके कमांड्स मुख्यतः दो श्रेणियों में विभाजित होते हैं:
3.1 डीडीएल (DDL - Data Definition Language)
इसका उपयोग डेटाबेस संरचना (टेबल) को परिभाषित करने के लिए होता है:
- CREATE: नई टेबल या डेटाबेस बनाना।
- ALTER: मौजूदा टेबल की संरचना बदलना।
- DROP: टेबल या डेटाबेस को हटाना।
- TRUNCATE: टेबल का सारा डेटा हटाना (संरचना बनी रहती है)।
3.2 डीएमएल (DML - Data Manipulation Language)
इसका उपयोग डेटा में हेरफेर करने के लिए होता है:
- INSERT: नई पंक्ति जोड़ना।
- UPDATE: मौजूदा डेटा बदलना।
- DELETE: पंक्ति हटाना।
- SELECT: डेटा देखना/प्राप्त करना।
4. डेटाबेस और टेबल बनाना (Creating Database and Table)
4.1 डेटाबेस बनाना
CREATE DATABASE विद्यालय;
4.2 डेटाबेस चुनना (Selecting Database)
USE विद्यालय;
4.3 टेबल बनाना
CREATE TABLE छात्र (
रोल INT PRIMARY KEY,
नाम VARCHAR(50),
कक्षा INT,
अंक FLOAT
);
INT: पूर्णांक डेटा प्रकार।
VARCHAR(n): n अक्षरों तक की स्ट्रिंग।
FLOAT: दशमलव संख्या।
DATE: तिथि।
CHAR(n): निश्चित लंबाई की स्ट्रिंग।
PRIMARY KEY से रोल कॉलम को प्राथमिक कुंजी बनाया गया है।
4.4 टेबल दिखाना
SHOW TABLES;
DESCRIBE छात्र;
5. डेटा जोड़ना (Inserting Data)
INSERT INTO छात्र VALUES (1, 'राहुल', 10, 85.5);
INSERT INTO छात्र (रोल, नाम, कक्षा, अंक) VALUES (2, 'सीमा', 10, 92.0);
दूसरी विधि में कॉलम नामों के साथ मान दिए जाते हैं, जिससे क्रम की स्वतंत्रता रहती है।
एक साथ कई पंक्तियाँ जोड़ने के लिए कई VALUES सेट अल्पविराम से लिखे जा सकते हैं।
6. डेटा देखना (Retrieving Data - SELECT)
SELECT * FROM छात्र;
SELECT नाम, अंक FROM छात्र;
* सभी कॉलम का चयन करता है।
किसी शर्त के साथ: SELECT नाम FROM छात्र WHERE अंक > 80;
विशिष्ट मान: SELECT DISTINCT कक्षा FROM छात्र;
क्रमबद्ध: SELECT * FROM छात्र ORDER BY अंक DESC; (अवरोही) या ASC (आरोही)
WHERE क्लॉज़ में ऑपरेटर
तुलना: =, <>, >, <, >=, <=
लॉजिकल: AND, OR, NOT
रेंज: BETWEEN ... AND
पैटर्न: LIKE (जैसे 'रा%' र से शुरू होने वाले नाम)
समूह: IN (जैसे कक्षा IN (9, 10))
7. डेटा अपडेट करना (Updating Data)
UPDATE छात्र SET अंक = 95 WHERE रोल = 1;
सावधानी: यदि WHERE न लगाएँ, तो टेबल की सभी पंक्तियों का मान बदल जाएगा।
एक साथ कई कॉलम बदल सकते हैं: SET अंक = 90, कक्षा = 11
8. डेटा हटाना (Deleting Data)
DELETE FROM छात्र WHERE रोल = 2;
केवल WHERE की शर्त वाली पंक्तियाँ हटती हैं।
बिना WHERE के पूरा डेटा हट जाता है (संरचना बनी रहती है)।
DROP TABLE छात्र; पूरी टेबल (संरचना सहित) हटा देता है।
9. SQL में फंक्शन (Functions in SQL)
COUNT(): पंक्तियों की संख्या। जैसे SELECT COUNT(*) FROM छात्र;
SUM(): कुल योग। जैसे SELECT SUM(अंक) FROM छात्र;
AVG(): औसत मान।
MAX(): अधिकतम मान।
MIN(): न्यूनतम मान।
10. ऑपरेटर्स और क्लॉज़ (Operators and Clauses)
BETWEEN: किसी सीमा के बीच का मान, जैसे WHERE अंक BETWEEN 80 AND 90।
LIKE: पैटर्न से मिलान, जैसे WHERE नाम LIKE 'र%' (र से शुरू)।
IN: सूची में से कोई मान, जैसे WHERE कक्षा IN (9, 10)।
ORDER BY: परिणाम को क्रमबद्ध करना (ASC/DESC)।
GROUP BY: समूह बनाकर एग्रीगेट फंक्शन लगाना।
LIMIT: परिणाम की सीमा निर्धारित करना।
CREATE में नोट
स्ट्रिंग मानों को एकल उद्धरण (' ') में लिखा जाता है।
प्रत्येक कमांड के अंत में अर्धविराम (;) आवश्यक है।
कमांड केस सेंसिटिव नहीं होते, परंतु मान (Values) केस सेंसिटिव हो सकते हैं।
त्वरित पुनरावृत्ति तालिकाएँ
तालिका 1: SQL कमांड्स
कमांड
श्रेणी
कार्य
CREATE
DDL
टेबल/डेटाबेस बनाना
ALTER
DDL
संरचना बदलना
DROP
DDL
टेबल/डेटाबेस हटाना
INSERT
DML
डेटा जोड़ना
SELECT
DML
डेटा देखना
UPDATE
DML
डेटा बदलना
DELETE
DML
डेटा हटाना
तालिका 2: डेटा प्रकार
डेटा प्रकार
उपयोग
INT
पूर्णांक
VARCHAR(n)
परिवर्तनशील लंबाई की स्ट्रिंग
CHAR(n)
निश्चित लंबाई की स्ट्रिंग
FLOAT
दशमलव संख्या
DATE
तिथि
तालिका 3: एग्रीगेट फंक्शन
फंक्शन
कार्य
COUNT()
पंक्तियों की संख्या
SUM()
कुल योग
AVG()
औसत
MAX()
अधिकतम
MIN()
न्यूनतम
माइंड मैप
graph TD
A["MySQL"] --> B["डेटाबेस अवधारणाएँ"]
B --> B1["टेबल, रो, कॉलम"]
B --> B2["प्राथमिक कुंजी"]
A --> C["DDL कमांड्स"]
C --> C1["CREATE, ALTER, DROP"]
A --> D["DML कमांड्स"]
D --> D1["INSERT, SELECT, UPDATE, DELETE"]
A --> E["क्लॉज़"]
E --> E1["WHERE, ORDER BY, GROUP BY"]
A --> F["फंक्शन"]
F --> F1["COUNT, SUM, AVG, MAX, MIN"]
A --> G["ऑपरेटर"]
G --> G1["BETWEEN, LIKE, IN"]
महत्वपूर्ण आरेख (SVG)
टेबल की संरचना
प्राथमिक और विदेशी कुंजी संबंध
सामान्य गलतियाँ
DELETE और DROP में अंतर न समझना; DELETE केवल डेटा हटाता है, DROP पूरी टेबल हटा देता है।
UPDATE या DELETE में WHERE क्लॉज़ भूलना, जिससे पूरी टेबल का डेटा बदल या हट जाता है।
स्ट्रिंग मानों को एकल उद्धरण (' ') में न लिखना।
SELECT में कॉलम नाम के स्थान पर गलत नाम लिखना या टेबल नाम भूलना।
COUNT() और SUM() में भ्रम; COUNT पंक्तियों की संख्या है जबकि SUM संख्याओं का योग।
प्राथमिक कुंजी में डुप्लिकेट मान डालना, जिससे त्रुटि आती है।
LIKE में पैटर्न का गलत उपयोग; 'र%' र से शुरू दर्शाता है जबकि '%र' र पर समाप्त होने वाले।
प्रत्येक कमांड के अंत में अर्धविराम (;) न लगाना।
परीक्षा युक्तियाँ
DDL और DML के कमांड्स को अलग-अलग सूची बनाकर याद रखें।
SELECT के साथ WHERE, ORDER BY, GROUP BY के उदाहरण लिखने का अभ्यास करें।
एग्रीगेट फंक्शन (COUNT, SUM, AVG, MAX, MIN) के उदाहरण तैयार रखें।
प्राथमिक कुंजी और विदेशी कुंजी की परिभाषाएँ और उनके नियम याद करें।
DELETE और DROP, UPDATE बिना WHERE के जैसी खतरनाक स्थितियों के प्रश्न समझें।
डेटा प्रकारों (INT, VARCHAR, FLOAT, DATE) के उपयोग जानें।
एक छोटा पूर्ण उदाहरण (डेटाबेस बनाने से लेकर SELECT तक) अभ्यास करें, क्योंकि परीक्षा में कोड लिखने के प्रश्न आते हैं।
निष्कर्ष
एमवाईएसक्यूएल दुनिया का सबसे लोकप्रिय ओपन-सोर्स डेटाबेस प्रबंधन प्रणाली है, जो डेटा को टेबल्स के रूप में संग्रहीत करता है। इस अध्याय में हमने डेटाबेस की मूल अवधारणाओं, एसक्यूएल के डीडीएल और डीएमएल कमांड्स, डेटा जोड़ने, देखने, बदलने और हटाने के तरीकों तथा एग्रीगेट फंक्शन्स का अध्ययन किया। एसक्यूएल की शक्ति उसके SELECT कथन में निहित है जो डेटा को विभिन्न क्लॉज़ और ऑपरेटरों से फ़िल्टर और व्यवस्थित करता है। वेब अनुप्रयोगों में एमवाईएसक्यूएल पृष्ठभूमि में डेटा का भंडार बनकर कार्य करता है। डेटाबेस का ज्ञान हमें बड़ी मात्रा में डेटा को कुशलतापूर्वक प्रबंधित करने में सक्षम बनाता है। यह अध्याय पाइथन के साथ डेटाबेस संयोजन जैसे उन्नत विषयों का आधार तैयार करता है।