Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQL कमांड का परिचय

आज के बढ़े हुए डिजिटलीकरण, बड़े डेटा और क्लाउड कंप्यूटिंग की दुनिया में, डेटा प्रबंधन सबसे महत्वपूर्ण कौशल है जो एक सॉफ्टवेयर इंजीनियर के पास हो सकता है। इसके लिए, सबसे शक्तिशाली डेटाबेस टूल में से एक SQL है।

SQL (संरचित क्वेरी भाषा) मानक प्रोग्रामिंग भाषा है जिसका उपयोग डेटा संरचना वस्तुओं में हेरफेर करने के लिए किया जाता है। वे डेटा पर काम करते हैं जो एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) में निहित है। कुछ प्रसिद्ध RDBMS MySQL और PostgreSQL हैं।

इस गाइड में, आप SQL भाषा के सबसेट और कुछ मूलभूत SQL कमांड का उपयोग करने के तरीके के बारे में जानेंगे, जैसे SELECT , INSERT , UPDATE , और DELETE

SQL के सबसेट

नीचे दी गई सूची में विभिन्न SQL कमांड के विभिन्न भाषा उपसमुच्चय शामिल हैं। प्रत्येक उपसमुच्चय का अपना कार्य और उद्देश्य होता है।

  • डेटा परिभाषा भाषा (डीडीएल):यह आपको डेटाबेस स्कीमा परिभाषाओं (अर्थात्, टेबल और इंडेक्स) को बनाने, हटाने और अपडेट करने की अनुमति देता है, वास्तव में डेटाबेस टेबल के भीतर डेटा में हेरफेर किए बिना।
  • डेटा क्वेरी भाषा (DQL):DQL का उपयोग डेटाबेस से डेटा प्राप्त करने के लिए SELECT . का उपयोग करके किया जाता है बयान।
  • डेटा हेरफेर भाषा (डीएमएल):यह उपभाषा INSERT . का उपयोग करके डेटाबेस में डेटा हेरफेर की अनुमति देती है , UPDATE , और DELETE बयान।

यह मार्गदर्शिका ऊपर सूचीबद्ध प्रत्येक सबसेट के लिए SQL कमांड को आगे प्रदर्शित करने के लिए स्कूल के लिए एक उदाहरण डेटाबेस का उपयोग करती है। छात्रों, पाठ्यक्रमों, ग्रेड आदि के लिए स्कूल डेटाबेस में कई टेबल हैं। Student की परिभाषा तालिका में छात्र के SSNumber . के लिए कॉलम हैं , Firstname , और Lastname , और CourseTaken . की परिभाषा तालिका में SSNumber . के लिए कॉलम हैं , CourseId , NumericGrade , और YearTaken

उदाहरण मानता है कि स्कूल में तीन छात्र हैं, जिनमें से प्रत्येक ने दो पाठ्यक्रम पूरे कर लिए हैं। नमूना डेटा नीचे दी गई तालिका में दिखाया गया है:

<वें शैली=पाठ्य-संरेखण:केंद्र>अंतिम नाम <वें शैली=पाठ्य-संरेखण:केंद्र>प्रथमनाम <वें शैली=पाठ्य-संरेखण:केंद्र>पाठ्यक्रम आईडी <वें स्टाइल=टेक्स्ट-एलाइन:सेंटर>न्यूमेरिकग्रेड <वीं शैली =पाठ-संरेखण:केंद्र> वर्ष लिया गया
SSNumber
111111111 स्मिथ जॉन CSC101 98 2021
111111111 स्मिथ जॉन ENG101 95 2022
222222222 Jones मैरी CSC101 100 2022
222222222 Jones मैरी EEE101 75 2022
3333333333 Hansen रॉबर्ट POL101 92 2021
3333333333 Hansen रॉबर्ट SOC103 84 2022

SQL कमांड का उपयोग करके टेबल्स बनाएं, बदलें, और ड्रॉप करें

कमांड लाइन से, CREATE TABLE का उपयोग करें तालिका और तालिका डेटा के नाम के बाद आदेश। नीचे दिया गया कमांड Student बनाता है टेबल।

CREATE TABLE Student (
  SSNumber CHAR(9) NOT NULL,
  LastName VARCHAR(30) NOT NULL,
  FirstName VARCHAR(20) NOT NULL
);

कोष्ठक प्रत्येक पंक्ति के डेटा को लेबल करने वाले कॉलम से शुरू होने वाले तालिका डेटा को संलग्न करता है। अगला कॉलम उस डेटा प्रकार को इंगित करता है जो इस पंक्ति में है। CHAR एक निश्चित-लंबाई वाले स्ट्रिंग डेटा प्रकार और VARCHAR . को इंगित करता है एक चर-लंबाई स्ट्रिंग डेटा प्रकार इंगित करता है। अंतिम कॉलम में, NOT NULL विशेषता यह सुनिश्चित करती है कि NOT NULL . में से कोई भी रिकॉर्ड तालिका में नहीं जोड़ा जा सकता है कॉलम में उनके साथ संबद्ध डेटा नहीं है।

नोट CREATE TABLE कथन को एक अनुगामी अर्धविराम (;) के साथ सीमांकित किया गया है, हालांकि यह संभव है कि कुछ व्यावसायिक संबंधपरक डेटाबेस सिस्टम को उस सीमांकक की आवश्यकता न हो।
नोट जब तक अन्यथा उल्लेख न किया गया हो, इस गाइड में प्रदर्शित सभी डेटाबेस कमांड MySQL . दोनों पर अच्छी तरह से काम करते हैं और PostgreSQL .

CourseTaken बनाने के लिए तालिका, निम्न आदेश निष्पादित करें:

CREATE TABLE CourseTaken (
  SSNumber CHAR(9) NOT NULL,
  CourseId CHAR(6) NOT NULL,
  NumericGrade INT NOT NULL
);

YearTaken कॉलम जानबूझकर CourseTaken . में शामिल नहीं है ALTER TABLE . के उपयोग को प्रदर्शित करने के लिए तालिका आज्ञा। YearTaken जोड़ने के लिए CourseTaken . में कॉलम तालिका, आपको CourseTaken को छोड़ने की आवश्यकता नहीं है तालिका पूरी तरह से। इसके बजाय, आप DDL ALTER TABLE . का उपयोग कर सकते हैं आज्ञा। निम्न कमांड CourseTaken को बदल देता है तालिका में अनुपलब्ध स्तंभ जोड़कर तालिका।

ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

ऊपर दिया गया कमांड पहले की तरह समान सिंटैक्स का अनुसरण करता है। इसके लिए तालिका के नाम के साथ-साथ तीन तर्कों की आवश्यकता होती है:पंक्ति का नाम, पंक्ति डेटा प्रकार, और NOT NULL गुण। यदि आप CourseTaken को हटाना चाहते हैं तालिका पूरी तरह से, डीडीएल जारी करें DROP TABLE तालिका नाम के बाद आदेश।

DROP TABLE CourseTaken;
सावधानी किसी तालिका को छोड़ने से तालिका का सारा डेटा हट जाता है।

SQL में किसी तालिका में डेटा कैसे सम्मिलित करें

तालिका में डेटा सम्मिलित करने के लिए, SQL INSERT INTO . का उपयोग करें बयान। इस आदेश को कॉल करने के लिए, तालिका का नाम और पंक्ति नामों की सूची (कोष्ठक में) प्रदान करें जिसमें आप डेटा सम्मिलित करना चाहते हैं। इसके बाद VALUES . आता है कीवर्ड और वास्तविक मान (कोष्ठक में) जिन्हें आप सम्मिलित करना चाहते हैं। मानों को पंक्तियों में डाला जाता है जिसके क्रम में उन्हें बुलाया जाता है।

नोट
  • SQL कमांड को सभी लाइनों में तोड़ा जा सकता है। SQL कमांड के अंत को अर्धविराम (; .) द्वारा सीमांकित किया जाता है )।
  • कैरेक्टर डेटा एक ओपनिंग और क्लोजिंग एपॉस्ट्रॉफी ( . द्वारा सीमांकित किया जाता है ), जबकि संख्यात्मक डेटा नहीं है।

निम्नलिखित INSERT कमांड Student . में तीन पंक्तियाँ सम्मिलित करता है टेबल। ये आदेश एकाधिक INSERT . का उपयोग करते हैं बयान।

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');

इसी तरह, आप एक एकल SQL क्वेरी में तालिका में कई पंक्तियाँ भी सम्मिलित कर सकते हैं जैसा कि नीचे दिखाया गया है:

INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
नोट

आप INSERT INTO . का उपयोग कर सकते हैं PostgreSQL . में इसी तरह कमांड करें तालिका में पंक्तियों को जोड़ने के लिए। सुनिश्चित करें कि मान तालिका परिभाषा में स्तंभों के क्रम से मेल खाते हैं।

INSERT INTO student VALUES ('111111111', 'Smith', 'John');

तालिका से डेटा हटाएं

किसी तालिका से डेटा हटाने के लिए, SQL DELETE FROM . का उपयोग करें बयान। WHERE का उपयोग करें शर्त निर्दिष्ट करने के लिए खंड, और यदि एक से अधिक शर्तें हैं, तो AND . का उपयोग करें WHERE . के साथ क्लॉज ।

उदाहरण के लिए, निम्न कमांड CourseTaken . से एक रिकॉर्ड हटाता है SSNumber . के साथ तालिका 333333333 और पाठ्यक्रम आईडी POL101

सावधानी अगर आप WHERE . को छोड़ देते हैं खंड, तालिका के सभी रिकॉर्ड हटा दिए जाते हैं।
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

तालिका में डेटा अपडेट करने के लिए SQL कमांड

किसी तालिका में मौजूदा रिकॉर्ड को अद्यतन करने के लिए, SQL UPDATE का उपयोग करें आज्ञा। SET क्लॉज का उपयोग किसी विशेष कॉलम में एक नया मान सेट (अपडेट) करने के लिए किया जाता है और WHERE क्लॉज का उपयोग चयनित पंक्तियों को अपडेट करने के लिए किया जाता है।

उदाहरण के लिए, निम्न कमांड NumericGrade को अपडेट करता है CourseTaken . का कॉलम SSNumber . के साथ रिकॉर्ड के लिए तालिका 222222222 और पाठ्यक्रम आईडी EEE101

UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';

एक तालिका से डेटा प्राप्त करने के लिए SQL कमांड

रिलेशनल डेटाबेस सिस्टम की वास्तविक शक्ति SQL SELECT के माध्यम से एक मल्टी-टेबल स्कीमा में जानकारी को पुनः प्राप्त करने की क्षमता में है। कमांड, और सामान्य कुंजियों के माध्यम से तालिकाओं में शामिल होने की क्षमता। हालांकि यह परिचयात्मक मार्गदर्शिका उन कुंजियों का उपयोग करके कुंजियों और अनुक्रमणिकाओं के निर्माण की जांच नहीं करती है, यह SSNumber का उपयोग करती है सूचना उत्पन्न करने के लिए तालिकाओं से संबंधित (या जुड़ने) के लिए वाहन (कुंजी) के रूप में प्रत्येक तालिका का स्तंभ। निम्न उदाहरण SQL SELECT . का उपयोग करने के विभिन्न उपयोग के मामले प्रदान करते हैं कमांड लाइन से कमांड।

उदाहरण 1: स्कूल में सभी छात्रों की सूची लाने के लिए।

SELECT * from Student;

आउटपुट:

+-----------+----------+-----------+
| SSNumber  | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith    | John      |
| 222222222 | Jones    | Mary      |
| 333333333 | Hansen   | Robert    |
+-----------+----------+-----------+

उदाहरण 2: उनके द्वारा लिए गए सभी छात्रों और पाठ्यक्रमों की सूची लाने के लिए।

SELECT Student.SSNumber, Student.LastName,
       Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;

आउटपुट:

+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
नोट उपरोक्त कमांड में, दो टेबल, Student और CourseTaken आवश्यक जानकारी प्राप्त करने के लिए शामिल हो गए हैं। SELECT . में कॉलम के नाम और WHERE स्पष्टता के लिए क्लॉज उनके टेबल नामों के साथ उपसर्ग करते हैं। हालांकि, SSNumber . के मामले में कॉलम में, हमें उपयुक्त तालिका नाम उपसर्ग निर्दिष्ट करने की आवश्यकता है, क्योंकि दोनों तालिकाएं समान कॉलम नाम साझा करती हैं। FROM क्लॉज उन तालिकाओं को इंगित करता है जिनका उपयोग इस क्वेरी में किया जा रहा है।

उदाहरण 3: CourseId . के साथ छात्रों की सूची प्राप्त करें CSC101 और जिस वर्ष उन्होंने यह कोर्स किया।

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';

आउटपुट:

+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith    | John      | CSC101   |      2021 |
| Jones    | Mary      | CSC101   |      2022 |
+----------+-----------+----------+-----------+

उदाहरण 4: उन छात्रों के नाम, लिए गए पाठ्यक्रम और प्राप्त ग्रेड की सूची प्राप्त करें, जिनके पास 90 से ऊपर के पाठ्यक्रम ग्रेड थे ।

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;

आउटपुट:

+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith    | John      | ENG101   |           95 |
| Smith    | John      | CSC101   |           98 |
| Jones    | Mary      | CSC101   |          100 |
+----------+-----------+----------+--------------+

ध्यान दें AND ऊपर दिए गए कमांड में क्लॉज आपको सशर्त ग्रेड स्कोर टेस्ट द्वारा परिणामों को फ़िल्टर करने की अनुमति देता है।

निष्कर्ष

SQL कमांड पर यह गाइड डेटाबेस स्कीमा बनाने और उन डेटाबेस के भीतर डेटा में हेरफेर करने के तरीके पर एक प्रारंभिक प्राइमर है। हालांकि यहां पेश की गई अवधारणाएं रिलेशनल डेटाबेस सिस्टम के उपयोग के संबंध में केवल सतह को खरोंचती हैं, यह बुनियादी और आवश्यक कमांड और अवधारणाओं के लिए एक अच्छा प्रारंभिक बिंदु है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में ब्लॉग प्रबंधन के लिए डेटाबेस डिजाइन करने के लिए गाइड

  2. MySQL डेटाबेस में धीमी क्वेरी (धीमी क्वेरी लॉग) की लॉगिंग सक्षम करें

  3. SCUMM डैशबोर्ड के साथ MySQL की प्रभावी निगरानी:भाग 3

  4. मैं MySQL में कमांड लाइन का उपयोग करके SQL फ़ाइल कैसे आयात करूं?

  5. MySQL गलत डेटाटाइम मान:'0000-00-00 00:00:00'