यदि आपने रिलेशनल डेटाबेस सिस्टम के साथ काम किया है, तो संभव है कि आपने MySQL, SQL Server या PostgreSQL जैसे लोकप्रिय डेटाबेस सिस्टम के बारे में सुना हो। SQLite एक और अत्यंत उपयोगी RDBMS है जिसे स्थापित करना और संचालित करना बहुत आसान है। साथ ही, अन्य रिलेशनल डेटाबेस की तुलना में इसकी कई विशिष्ट विशेषताएं हैं। यह SQLite ट्यूटोरियल बुनियादी अवधारणाओं को सिखाता है जिन्हें आपको व्यापक व्यावहारिक अभ्यासों की सहायता से जानना आवश्यक है।
इस लेख में जिन विषयों पर चर्चा की गई है वे हैं:
- SQLite क्या है?
- SQLite की विशेषताएं
- Windows पर SQLite इंस्टॉल करना
- SQLite कमांड
- डेटाबेस कमांड
- टेबल कमांड
- सीआरयूडी संचालन
- SQLite खंड/शर्तें
- SQLite में शामिल होता है
- SQLite के नुकसान
SQLite Tutorial:SQLite क्या है?
यहाँ SQLite की उद्योग मानक परिभाषा दी गई है:
SQLite एक ओपन-सोर्स, जीरो-कॉन्फ़िगरेशन, सेल्फ-निहित, स्टैंड-अलोन, ट्रांजेक्शन रिलेशनल डेटाबेस इंजन है जिसे किसी एप्लिकेशन में एम्बेड करने के लिए डिज़ाइन किया गया है।
आप SQLite पर विचार कर सकते हैं "लाइटर . के रूप में अन्य जटिल आरडीबीएमएस (ओरेकल, एसक्यूएल, आदि) का संस्करण, जहां इसका डेटाबेस इंजन स्वतंत्र प्रसंस्करण (इन-प्रोसेस लाइब्रेरी) के लिए कॉन्फ़िगर किया गया है। यानी एक सर्वर-रहित, स्व-निहित, शून्य-कॉन्फ़िगरेशन और लेन-देन संबंधी . यह कम मेमोरी वाले वातावरण में भी अपनी पोर्टेबिलिटी, विश्वसनीयता और मजबूत प्रदर्शन के लिए जाना जाता है। इसके अलावा, SQLite अन्य RDBMS के विपरीत, जहां क्लाइंट-सर्वर DB इंजन कॉन्फ़िगर किया गया है, अंत कार्यक्रमों या अनुप्रयोगों में स्थानीय/क्लाइंट भंडारण के लिए एक एम्बेडेड डेटाबेस के रूप में एक लोकप्रिय विकल्प है।
SQLite की विशेषताएं
SQLite कई विशिष्ट विशेषताएं प्रदान करता है जैसे:
- सर्वर रहित: अधिकांश SQL डेटाबेस को एक अलग सर्वर प्रक्रिया के रूप में कार्यान्वित किया जाता है, लेकिन SQLite में एक अलग सर्वर प्रक्रिया नहीं होती है। यह एक सर्वर रहित डेटाबेस इंजन है। यह सामान्य डिस्क फ़ाइलों को सीधे पढ़ता और लिखता है।
- शून्य-कॉन्फ़िगरेशन: इसे चलाने के लिए किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है। इसका मतलब है, कोई सर्वर प्रक्रिया नहीं है जिसे क्लाइंट/सर्वर सिस्टम की तरह शुरू, बंद या कॉन्फ़िगर करने की आवश्यकता है।
- मैनिफेस्ट टाइपिंग: SQLite मेनिफेस्ट टाइपिंग का उपयोग करता है, जो किसी भी डेटा प्रकार की किसी भी मात्रा को किसी भी कॉलम में बिना किसी कॉलम के घोषित डेटाटाइप के भंडारण की अनुमति देता है। ध्यान दें कि इस नियम के कुछ अपवाद हैं।
- हल्का वजन: जैसा कि नाम से ही स्पष्ट है, SQLite लाइब्रेरी बहुत हल्की है। बात यह है कि, हालांकि यह जिस स्थान का उपयोग करता है वह उस सिस्टम के आधार पर भिन्न होता है जहां इसे स्थापित किया गया है, यह 600KiB से कम स्थान ले सकता है।
- पोर्टेबल: अन्य डीबीएमएस के विपरीत, एक संपूर्ण SQLite डेटाबेस एक फ़ाइल में संग्रहीत किया जाता है। इस फ़ाइल को हटाने योग्य मीडिया या फ़ाइल स्थानांतरण प्रोटोकॉल के माध्यम से बहुत आसानी से साझा किया जा सकता है।
- विविध विकल्प: कई प्रोग्रामिंग भाषाएं SQLite के लिए बाइंडिंग प्रदान करती हैं, जिनमें C, C++, C#, Java, JavaScript, Ruby, Python, और कई अन्य शामिल हैं।
- निःशुल्क: SQLite मुफ़्त और खुला स्रोत है। SQLite के साथ काम करने के लिए एक वाणिज्यिक लाइसेंस की आवश्यकता नहीं है।
जैसा कि ऊपर सूचीबद्ध है SQLite अपने शून्य-कॉन्फ़िगरेशन के लिए जाना जाता है जिसका अर्थ है कि वास्तव में कोई जटिल सेटअप या प्रशासन की आवश्यकता नहीं है। इस SQLite ट्यूटोरियल के अगले भाग में, आइए देखें कि अपने सिस्टम पर SQLite कैसे स्थापित करें।
SQLite ट्यूटोरियल:Windows पर SQLite इंस्टॉल करना
अनुसरण करने के चरण हैं:
चरण1: आधिकारिक SQLite वेबसाइट पर जाएं और पहले से संकलित बायनेरिज़ को डाउनलोड करने के लिए उपयुक्त लिंक पर क्लिक करें।
चरण2: SQLite कमांड-लाइन ज़िप फ़ाइल डाउनलोड करें (यहां:sqlite-tools-win32-x86-3270200.zip) और इन फ़ाइलों को अपनी पसंद के फ़ोल्डर में विस्तृत करें।
इस SQLite कमांड-लाइन टूल में निम्न SQLite उत्पाद शामिल होंगे
- SQLite कोर :SQLite कोर में वास्तविक डेटाबेस इंजन और सार्वजनिक API होता है।
- SQLite3 कमांड-लाइन टूल :sqlite3 एप्लिकेशन एक कमांड-लाइन टूल है जो SQLite कोर के शीर्ष पर बनाया गया है।
- टीसीएल एक्सटेंशन :यह पुस्तकालय अनिवार्य रूप से टीसीएल बाइंडिंग के साथ SQLite कोर की एक प्रति है।
- SQLite विश्लेषक टूल :SQLite विश्लेषक उपकरण का उपयोग डेटाबेस फ़ाइलों का विश्लेषण करने के लिए किया जाता है।
चरण3: उसके बाद, SQLite कमांड लाइन को प्रारंभ करना उतना ही सरल है जितना कि sqlite3 एप्लिकेशन पर क्लिक करना, जो कमांड लाइन को पॉप अप कर देगा।
यदि आप और परीक्षण करना चाहते हैं, तो बस .help टाइप करें sqlite> . से कमांड sqlite3 . में सभी उपलब्ध कमांड देखने का संकेत दें जैसा कि नीचे दिखाया गया है।
नोट: डिफ़ॉल्ट रूप से, SQLite सत्र इन-मेमोरी डेटाबेस का उपयोग करता है, इसलिए, सत्र समाप्त होने पर सभी परिवर्तन समाप्त हो जाएंगे।
काफी सरल है ना? फिर, SQLite कमांड के साथ शुरू करते हैं।
SQLite ट्यूटोरियल:SQLite कमांड्स
SQLite ट्यूटोरियल का यह खंड मूल SQL कथन प्रस्तुत करता है जिसे आप SQLite के साथ उपयोग कर सकते हैं।
नोट: SQLite कमांड एक सेमी-कोलन के साथ समाप्त होते हैं (;
) यह SQLite को बताता है कि आपका आदेश पूरा हो गया है और इसे चलाया जाना चाहिए। साथ ही, आप अपने आदेश को कई पंक्तियों में फैला सकते हैं और अंतिम पंक्ति पर सेमी-कोलन का उपयोग कर सकते हैं।
डेटाबेस कमांड
इस खंड में वे कमांड होते हैं, जिनके द्वारा आप अपने डेटाबेस से निपट सकते हैं। आदेश हैं:
- SQLite डेटाबेस बनाएं
SQLite अन्य रिलेशनल डेटाबेस मैनेजमेंट सिस्टम, जैसे MySQL, SQL सर्वर, आदि की तरह CREATE DATABASE स्टेटमेंट का उपयोग नहीं करता है। SQLite में एक नया डेटाबेस बनाने के लिए, बस sqlite3 दर्ज करें। उस फ़ाइल के नाम से जिसे आप डेटाबेस के लिए उपयोग करना चाहते हैं। निम्न कोड StudentDetails.db: . नामक एक डेटाबेस फ़ाइल बनाता है
उदाहरण
sqlite3 StudentDetails.db; sqlite> .databases main: D:sqliteStudentDetails.db;
- SQLite डेटाबेस अटैच करें
जब आपके पास एक से अधिक डेटाबेस हों, तो आप एक समय में केवल एक का ही उपयोग कर सकते हैं। SQLite में, वर्तमान कनेक्शन के लिए किसी विशेष डेटाबेस को संलग्न करने के लिए ATTACH DATABASE कथन का उपयोग किया जाता है। इस कमांड के बाद, सभी SQLite स्टेटमेंट संलग्न डेटाबेस के तहत निष्पादित किए जाएंगे।
उदाहरण
sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department'; sqlite> .databases main: D:sqliteStudentDetails.db; Department: D:sqliteDepartmentDetails.db
- SQLite डेटाबेस को अलग करें
SQLite में, DETACH DATABASE स्टेटमेंट का उपयोग डेटाबेस कनेक्शन से उपनाम-नामित डेटाबेस को अलग करने के लिए किया जाता है जिसे पहले ATTACH स्टेटमेंट का उपयोग करके संलग्न किया गया था। यदि एक ही डेटाबेस फ़ाइल को कई उपनामों के साथ संलग्न किया गया है, तो यह आदेश केवल दिए गए नाम को डिस्कनेक्ट कर देगा और शेष अनुलग्नक अभी भी मौजूद रहेगा। इन-मेमोरी या अस्थायी डेटाबेस में मौजूद डेटाबेस पूरी तरह से नष्ट हो जाएंगे और सामग्री नष्ट हो जाएगी।
उदाहरण
sqlite> .databases main: D:sqliteStudentDetails.db; Department: D:sqliteDepartmentDetails.db Student: D:sqliteStudentDetails.db DeptInformation: D:sqliteDepartmentDetails.db sqlite> DETACH DATABASE 'Department'; sqlite> .databases main: D:sqliteStudentDetails.db; Student: D:sqliteStudentDetails.db DeptInformation: D:sqliteDepartmentDetails.db
टेबल कमांड
यहां हम सीखेंगे कि SQLite का उपयोग करते समय तालिकाओं से कैसे निपटें।
- SQL तालिका बनाएं
SQLite में, CREATE TABLE स्टेटमेंट का उपयोग एक नई टेबल बनाने के लिए किया जाता है। तालिका बनाते समय, आपको तालिका का नाम देना होगा और उसके स्तंभ और प्रत्येक स्तंभ के डेटा प्रकारों को परिभाषित करना होगा।
वाक्यविन्यास:
CREATE TABLE table_name( Column1 column_type [constraints] Column2 column_type [constraints] [.....] );
उदाहरण
CREATE TABLE StudentInfo( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), DEPARTMENTID INTEGER NOT NULL, PHONE TEXT DEFAULT 'UNKNOWN', FOREIGN KEY(DEPARTMENTID) REFERENCES DepartmentInfo(DeptID) );
आप .tables का उपयोग करके जांच सकते हैं कि तालिका बनाई गई थी या नहीं कमांड जैसा कि नीचे दिखाया गया है। ध्यान दें कि मैंने पहले ही DepartmentInfo . नामक एक तालिका बना ली है जहां DeptID प्राथमिक कुंजी है। विभाग तालिका में छात्र तालिका के लिए एक विदेशी कुंजी बाधा है।
sqlite> .tables StudentInfo Contacts Emp_Master
- SQLite ड्रॉप टेबल
SQLite में, DROP TABLE स्टेटमेंट आपको SQLite डेटाबेस से टेबल को हटाने या हटाने की अनुमति देता है। एक बार तालिका को गिरा देने के बाद, इसमें मौजूद सभी डेटा डेटाबेस से स्थायी रूप से हटा दिए जाते हैं। कोई भी संबद्ध अनुक्रमणिका और ट्रिगर भी हटा दिए जाते हैं। यदि उस तालिका पर कोई विदेशी कुंजी बाधा सक्षम है, तो वह तालिका में प्रत्येक पंक्ति के लिए समान रूप से हटा दी जाएगी और तालिका से जुड़े किसी भी ट्रिगर को भी हटा दिया जाएगा।
वाक्यविन्यास
DROP TABLE [ IF EXISTS ] table_name;
उदाहरण
DROP TABLE Department; Error: no such table: Department DROP TABLE Company; sqlite> .tables StudentInfo
नोट: IF EXISTS, एक वैकल्पिक क्लॉज है। यदि निर्दिष्ट किया गया है, तो DROP TABLE स्टेटमेंट में कोई एक टेबल मौजूद नहीं होने पर कोई त्रुटि नहीं होगी।
इसके अलावा, एक SQLite Alter Table स्टेटमेंट है , जिसे हम इस लेख के अगले कुछ हिस्सों में समझेंगे। अब जब हमने एक तालिका बना ली है, तो आइए देखें कि डेटा कैसे डालें, हटाएं और कैसे बदलें।
SQLite ट्यूटोरियल:CRUD संचालन
- SQLite इन्सर्ट क्वेरी
तालिका बनाने के बाद, निर्दिष्ट तालिका में नई पंक्तियाँ बनाने के लिए कमांड में SQLite सम्मिलित करें का उपयोग किया जा सकता है। SQLite इन्सर्ट स्टेटमेंट के दो अर्थपूर्ण रूप हैं। सम्मिलित करने के लिए मानों की सूची निर्दिष्ट करने के लिए पहला फॉर्म VALUES क्लॉज का उपयोग करता है।
वाक्यविन्यास
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);
उदाहरण
INSERT INTO StudentInfo ( ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE) VALUES (1,'Dean', 20, 'California', 2, '934*******');
आउटपुट
SELECT *from StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934*******
यहां, एक नई पंक्ति बनाई जाती है और प्रत्येक मान को उसके संबंधित कॉलम में दर्ज किया जाता है। ध्यान दें कि दोनों सूचियों में समान . होना चाहिए वस्तुओ की संख्या। यहां, स्तंभों की सूची वैकल्पिक है। हम तालिका में डेटा भी सम्मिलित कर सकते हैं स्तंभों की सूची निर्दिष्ट किए बिना .
उदाहरण
INSERT INTO StudentInfo VALUES ( 2, 'SAM', 22, 'Texas', 2, '976*******');
आउटपुट
SELECT *from StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 2 976*******
SQLite एकाधिक पंक्तियों को सम्मिलित करने . की सुविधा भी प्रदान करता है एक INSERT कथन में। सिंटैक्स नीचे दिखाया गया है।
उदाहरण
INSERT INTO StudentInfo VALUES (3,'John',23,'Norway',1,'923*******'), (4,'Mitch',22,'Houston',3,'934*******');
आउटपुट
Select *from StudentInfo; 1|Dean|20|California|2|934******* 2|SAM|22|Texas|2|976******* 3|John|23|Norway|1|923******* 4|Mitch|22|Houston|3|934*******
जैसा कि आप देख सकते हैं, आउटपुट का प्रारूप पहले वाले के समान नहीं है। तो, आप SQLite में आउटपुट का स्वरूप कैसे बदलते हैं? आइए आउटपुट को प्रारूपित करें ताकि हमारे परिणाम पढ़ने में थोड़ा आसान हो।
- फ़ॉर्मेटिंग
आप आउटपुट मोड को बदलने के लिए .mode का उपयोग कर सकते हैं। उपरोक्त उदाहरण .मोड . का उपयोग करता है सूची, जो परिणामों को सूची के रूप में प्रदर्शित करती है। साथ ही, आप .हेडर . का उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए कथन कि कॉलम हेडर प्रदर्शित करना है या नहीं। एक बार जब आप परिवर्तन कर लेते हैं, तो आप .शो . का उपयोग करके सेटिंग देख सकते हैं आदेश।
उदाहरण
sqlite>.mode 'column' sqlite> .headers on sqlite> .show echo: off eqp: off explain: auto headers: on mode: column nullvalue: "" output: stdout colseparator: "|" rowseparator: "n" stats: off width: filename: StudentDetails.db
आउटपुट
SELECT *FROM StudentInfo; ID NAME AGE ADDRESS DEPARTMENT PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 2 976******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934*******
- SQLite क्वेरी चुनें
SQLite में, Select स्टेटमेंट का उपयोग किसी तालिका से डेटा प्राप्त करने के लिए किया जाता है, जो परिणाम तालिका के रूप में डेटा लौटाता है। इन परिणाम तालिकाओं को परिणाम सेट भी कहा जाता है। SQLite चयन कथन का उपयोग करके हम अपनी आवश्यकताओं के आधार पर सरल गणना या एकाधिक अभिव्यक्ति कर सकते हैं। जब हम डेटा सम्मिलित करते हैं तो हम पहले ही एक SELECT स्टेटमेंट का उपयोग कर चुके होते हैं।
वाक्यविन्यास
SELECT [ALL | DISTINCT] result [FROM table-list] [WHERE expr]
- DISTINCT - जब हम किसी चुनिंदा स्टेटमेंट में अलग कीवर्ड का इस्तेमाल करते हैं तो यह डेटा की केवल अलग-अलग पंक्तियां देता है।
- सभी - यदि हम किसी चुनिंदा कथन में सभी कीवर्ड का उपयोग करते हैं तो यह डेटा की सभी पंक्तियों को लौटाता है, भले ही वह डुप्लिकेट हो।
- तालिका-सूची से - यह उन तालिकाओं की सूची है जिनसे आप डेटा प्राप्त करना चाहते हैं।
- WHERE एक्सप्रेशन - टेबल से आवश्यक डेटा प्राप्त करने के लिए हमारी कस्टम शर्तों को परिभाषित करने के लिए WHERE एक्सप्रेशन का उपयोग किया जाता है।
उदाहरण1
SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;
आउटपुट
ID NAME ---------- ---------- 1 Dean
उदाहरण2
Select NAME FROM StudentInfo WHERE DEPARTMENTID = (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology');
आउटपुट
//fetches people from department whose id is 2 NAME ---------- Dean SAM. है
- SQLite अपडेट क्वेरी
SQLite में, UPDATE स्टेटमेंट का उपयोग किसी तालिका में मौजूदा रिकॉर्ड को संशोधित करने के लिए किया जा सकता है। SQLite के WHERE क्लॉज का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि कौन सी पंक्तियों को अद्यतन किया जाना चाहिए। WHERE क्लॉज द्वारा लागू की गई फ़िल्टरिंग शर्तों के आधार पर आप सभी पंक्तियों, कुछ पंक्तियों या किसी को भी आसानी से अपडेट कर सकते हैं।
वाक्यविन्यास
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
उदाहरण
UPDATE StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2';
आउटपुट
SELECT *FROM StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 4 976******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934*******
- SQLite क्वेरी हटाएं
SQLite में, DELETE स्टेटमेंट का उपयोग तालिका से रिकॉर्ड को हटाने के लिए किया जा सकता है। WHERE क्लॉज द्वारा लागू की गई फ़िल्टरिंग शर्तों के आधार पर आप सभी पंक्तियों, कुछ पंक्तियों या किसी को भी आसानी से हटा सकते हैं।
उदाहरण
DELETE FROM DepartmentInfo WHERE DeptName = 'Science';
आउटपुट
SELECT *FROM DepartmentInfo; DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports 4 Music
यदि आप किसी विदेशी कुंजी द्वारा संदर्भित रिकॉर्ड को हटाने का प्रयास करते हैं, तो आपको एक त्रुटि मिलेगी। प्राथमिक कुंजी रिकॉर्ड को हटाने से पहले, आपको पहले विदेशी कुंजी रिकॉर्ड को हटाना होगा। आइए विभाग विज्ञान को हटाने का प्रयास करें।
उदाहरण
DELETE FROM DepartmentInfo WHERE DeptName = 'Music'; Error: FOREIGN KEY constraint failed
इसलिए, प्राथमिक कुंजी को हटाने से पहले हमें विदेशी कुंजी रिकॉर्ड को हटाना होगा।
DELETE FROM StudentInfo WHERE DEPARTMENTID = 4; sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music'; sqlite> SELECT *FROM DepartmentInfo; DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports SELECT *FROM StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934*******
अब आप जानते हैं कि SQLite डेटाबेस तालिका में रिकॉर्ड्स को कैसे संपादित किया जाता है। इस SQLite ट्यूटोरियल ब्लॉग में आगे बढ़ते हुए, आइए विभिन्न क्लॉज़ और शर्तों पर चर्चा करें जो आपको SQLite में सबसे अधिक बार आती हैं।
SQLite खंड/शर्तें
क्लॉज के साथ शुरू करने से पहले, SQLite में सेलेक्ट स्टेटमेंट का पूरा सिंटैक्स यहां दिया गया है।
वाक्यविन्यास
SELECT [ALL | DISTINCT] result [FROM table-list] [WHERE expr] [GROUP BY expr-list] [HAVING expr] [compound-op select]* [ORDER BY sort-expr-list] [LIMIT integer [(OFFSET|,) integer]]
नोट:मैंने नीचे दिखाए गए अनुसार स्टूडेंटइन्फो और डिपार्टमेंटइन्फो टेबल को अपडेट किया है।
//Student Table ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934******* 3 John 23 Norway 1 923******* 4 Mitch 22 Houston 3 934******* 2 SAM 22 Texas 4 976******* 5 Johny 23 Norway 2 945******* 6 Robin 23 Norway 2 UNKNOWN //Department Details DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports 4 Music 5 Science
- SQLite WHERE
SQLite में, WHERE क्लॉज का उपयोग डेटाबेस में तालिकाओं से आवश्यक डेटा प्राप्त करने के लिए एक या अधिक शर्तों को परिभाषित करके SELECT स्टेटमेंट पर प्रतिबंध लगाने के लिए किया जाता है। यदि निर्दिष्ट शर्त संतुष्ट या सत्य है, तो यह तालिका से विशिष्ट मान लौटाता है। जैसा कि आप पहले देख चुके हैं कि WHERE क्लॉज का इस्तेमाल न केवल SELECT स्टेटमेंट में होता है, बल्कि UPDATE, DELETE स्टेटमेंट आदि में भी होता है।
उदाहरण
SELECT NAME FROM StudentInfo WHERE AGE = 23;NAME ---------- John Johny Robin
SQLite में, कई रिलेशनल ऑपरेटर हैं जिनका उपयोग WHERE क्लॉज के साथ किया जा सकता है।
- SQLite GROUP BY
SQLite में, GROUP BY क्लॉज का उपयोग डेटा को एक पंक्ति में एकत्रित करने के लिए किया जाता है जहां एक या अधिक निर्दिष्ट कॉलम का मान दोहराया जाता है। इस क्लॉज का उपयोग सेलेक्ट स्टेटमेंट में WHERE क्लॉज के साथ किया जाता है और ORDER BY क्लॉज से पहले होता है।
वाक्यविन्यास
SELECT result FROM [table-list] GROUP BY [expr-list]
SELECT NAME, ADDRESS FROM StudentInfo GROUP BY NAME; NAME ADDRESS ---------- ---------- Dean California John Norway Johny Norway Mitch Houston Robin Norway SAM Texas
ध्यान दें कि समूहीकरण प्रक्रिया में दो चरण होते हैं। सबसे पहले, ग्रुप बाय एक्सप्रेशन का उपयोग टेबल पंक्तियों को विभिन्न समूहों में व्यवस्थित करने के लिए किया जाता है। एक बार समूहों को परिभाषित करने के बाद, SELECT स्टेटमेंट परिभाषित करता है कि कैसे उन समूहों को एक पंक्ति में समतल किया जाता है।
- SQLite द्वारा आदेश
आम तौर पर, SQLite टेबल डेटा को अनिर्दिष्ट क्रम में संग्रहीत करते हैं और यह SQLite चयन कथन का उपयोग करके डेटा प्राप्त करते समय उसी अनिर्दिष्ट क्रम में रिकॉर्ड लौटाएगा। ऐसे मामलों में, आप कॉलम रिकॉर्ड को आरोही या अवरोही क्रम में सॉर्ट करने के लिए ORDER BY क्लॉज का उपयोग कर सकते हैं। नीचे दिए गए उदाहरण में, मैंने पते के आधार पर डेटा को 9 अवरोही क्रम में समूहीकृत और क्रमबद्ध किया है।
वाक्यविन्यास
SELECT expressions FROM tables-list [WHERE conditions] ORDER BY column1, column2,... [ ASC | DESC ];
उदाहरण
SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS ORDER BY ADDRESS DESC; ADDRESS COUNT(ADDRESS) ---------- -------------- Texas 1 Norway 3 Houston 1 California 1
- SQLite द्वारा हो रहा है
SQLite में, हैविंग खंड कहां . के समान है खंड। HAVING क्लॉज एक और शर्त है जिसे ग्रुप के साथ चुनिंदा स्टेटमेंट में एग्रीगेशन के बाद लागू किया जाता है। आमतौर पर SQLite में, कहां क्लॉज का उपयोग तालिका में अलग-अलग तत्वों के लिए एक शर्त लागू करने के लिए किया जाता है और HAVING क्लॉज का उपयोग ग्रुप बाय क्लॉज द्वारा बनाए गए समूहों के आधार पर फिल्टर स्थितियों को जोड़ने के लिए किया जाता है।
उदाहरण
SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS HAVING COUNT(*)>1; ADDRESS COUNT(ADDRESS) ---------- -------------- Norway 3
- SQLite सीमा खंड
SQLite में, LIMIT क्लॉज का उपयोग चयन कथन द्वारा लौटाए गए रिकॉर्ड की सीमा निर्धारित करने के लिए किया जाता है। आइए अवधारणा को समझने के लिए एक उदाहरण पर विचार करें।
वाक्यविन्यास
SELECT expressions FROM tables-list [WHERE conditions] LIMIT number_rows OFFSET offset_value;
उदाहरण
SELECT NAME, ADDRESS FROM StudentInfo LIMIT 4 OFFSET 2; NAME ADDRESS ---------- ---------- Mitch Houston SAM Texas Johny Norway Robin Norway
OFFSET वैकल्पिक है और यह परिभाषित करता है कि offset_value के आधार पर परिणाम सेट की शुरुआत में कितनी पंक्तियों को छोड़ना है ।
- SQLite AND &OR
SQLite में, AND &OR ऑपरेटरों का उपयोग हमारी आवश्यकताओं के आधार पर स्टेटमेंट्स को चुनने, डालने, अपडेट करने और हटाने पर कई शर्तों को पूरा करने के लिए किया जाता है। SQLite AND ऑपरेटर उन पंक्तियों या रिकॉर्ड्स को लौटाएगा जो AND ऑपरेटर का उपयोग करके परिभाषित शर्तों को पूरा करते हैं।
उदाहरण1
SELECT NAME FROM StudentInfo WHERE AGE = 22 AND ADDRESS = 'Texas'; NAME ---------- SAM
OR शर्त का उपयोग SQLite कथनों में एकाधिक शर्तों को परिभाषित करने के लिए किया जाता है और यदि कोई एक शर्त संतुष्ट होती है तो यह कथन से पंक्तियों या अभिलेखों को वापस कर देगी।
उदाहरण2
SELECT NAME FROM StudentInfo WHERE (AGE = 22 AND ADDRESS = 'Norway') OR ADDRESS = 'Norway'; NAME ---------- John Johny Robin
- SQLite GLOB ऑपरेटर
SQLite में, GLOB ऑपरेटर का उपयोग यह जांचने के लिए किया जाता है कि दिया गया स्ट्रिंग मान किसी विशिष्ट पैटर्न से मेल खाता है या नहीं। यदि स्ट्रिंग मान पैटर्न मान से मेल खाता है तो यह सत्य . लौटाएगा और यह LIKE ऑपरेटर के समान है। साथ ही, GLOB केस संवेदी है।
वाक्यविन्यास
SELECT * FROM table_name WHERE column_name GLOB 'search-expression'
उदाहरण
SELECT *FROM StudentInfo WHERE NAME GLOB 'Joh*'; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ------------ ---------- 3 John 23 Norway 1 923******* 5 Johny 23 Norway 2 945*******
- SQLite विशिष्ट
SQLite में, DISTINCT कीवर्ड SELECT स्टेटमेंट के परिणाम सेट को स्कैन करेगा और किसी भी डुप्लिकेट पंक्तियों को हटा देगा। साथ ही, NULL मान डुप्लिकेट के रूप में माना जाता है, इसलिए यदि हम DISTINCT क्लॉज़ का उपयोग उस कॉलम के साथ करते हैं जिसमें NULL मान हैं तो यह NULL मान की केवल एक पंक्ति रखेगा। जब आप अनेक स्तंभों के लिए DISTINCT लागू करते हैं, तो कथन coulnm1 के प्रत्येक अद्वितीय संयोजन को लौटाता है और कॉलम2.
उदाहरण
SELECT DISTINCT AGE FROM StudentInfo; AGE ---------- 20 23 22
- SQLite IN ऑपरेटर
SQLite में, IN ऑपरेटर का उपयोग यह निर्धारित करने के लिए किया जाता है कि दिया गया मान दिए गए मानों की सूची से मेल खाता है या सबक्वेरी द्वारा लौटाया गया परिणाम।
उदाहरण
SELECT NAME FROM StudentInfo WHERE ADDRESS IN ('Texas', 'Houston'); NAME ---------- Mitch SAM
- SQLite यूनियन और यूनियन सभी
SQLite में, UNION ऑपरेटर का उपयोग 2 के परिणाम सेट को संयोजित करने के लिए किया जाता है या अधिक चयन कथन और यह विभिन्न चयन कथनों के बीच डुप्लिकेट पंक्तियों को हटा देता है। याद रखें कि UNION ऑपरेटर के साथ हमने जिन SELECT स्टेटमेंट्स का उपयोग किया है, उनमें समान डेटा प्रकारों के साथ परिणाम सेट में फ़ील्ड की संख्या समान होनी चाहिए।
वाक्यविन्यास
SELECT expression1, expression2,... expression_n FROM tables [WHERE conditions] UNION / UNION ALL SELECT expression1, expression2,... expression_n FROM tables [WHERE conditions];
उदाहरण
SELECT DEPARTMENTID FROM StudentInfo UNION SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC; DEPARTMENTID ------------ 1 2 3 4 5
UNION ALL ऑपरेटर का उपयोग 2 या अधिक SELECT स्टेटमेंट के परिणाम सेट को संयोजित करने के लिए किया जाता है और यह डुप्लिकेट सहित सभी पंक्तियों को वापस कर देगा।
उदाहरण
SELECT DEPARTMENTID FROM StudentInfo UNION ALL SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC; DEPARTMENTID ------------ 1 1 2 2 2 2 3 3 4 4 5
इसके साथ, हमने सबसे बुनियादी कमांड को कवर किया है जो आपको SQLite के साथ काम करते समय उपयोग करना पड़ सकता है। इस SQLite ट्यूटोरियल के साथ आगे बढ़ते हुए, आइए SQLite में जॉइन स्टेटमेंट देखें।
SQLite में शामिल होता है
SQLite में, डेटाबेस में दो या दो से अधिक तालिकाओं के रिकॉर्ड को संयोजित करने और हमारी आवश्यकताओं के आधार पर रिकॉर्ड प्राप्त करने के लिए जॉइन का उपयोग किया जाता है। SQLite में उपलब्ध विभिन्न प्रकार के जॉइन हैं:
- आंतरिक जुड़ाव - INNER JOIN का उपयोग SQLite कथनों में परिभाषित शर्तों के आधार पर गुणक तालिकाओं से केवल मिलान रिकॉर्ड को संयोजित करने और वापस करने के लिए किया जाता है।
- बाहरी जुड़ाव - SQLite आउटर जॉइन इनर जॉइन . जैसी ही कई टेबल से मेल खाने वाली पंक्तियों का चयन करेगा और रिश्ते के बाहर कुछ अन्य पंक्तियाँ। सरल शब्दों में, हम कह सकते हैं कि SQLite OUTER JOIN, INNER JOIN का एक अतिरिक्त है। आम तौर पर, हमारे पास SQL मानक में तीन प्रकार के आउटर जॉइन होते हैं जो LEFT, RIGHT और FULL आउटर जॉइन होते हैं लेकिन SQLite केवल LEFT OUTER JOIN का समर्थन करता है।
- क्रॉस जॉइन करें - इसका उपयोग पहली तालिका की प्रत्येक पंक्ति को दूसरी तालिका की प्रत्येक पंक्ति से मिलान करके पंक्तियों का कार्टेशियन गुणनफल प्राप्त करने के लिए किया जाता है।
- स्वयं शामिल हों - इसका उपयोग उसी टेबल को अपने साथ जोड़ने के लिए किया जाता है। सेल्फ जॉइन का उपयोग करने के लिए हमें अपनी आवश्यकताओं के आधार पर संचालन करने के लिए एक ही टेबल के लिए अलग-अलग उपनाम बनाने होंगे।
अवधारणा SQL जैसे अन्य रिलेशनल डेटाबेस सिस्टम के समान है। इसलिए, अधिक जानने के लिए आप इस लेख को SQL Joins पर देख सकते हैं।
इसके साथ, हमने मूल SQLite कमांड को कवर किया है। उन्नत अवधारणाओं को यहां शामिल नहीं किया गया है। तो, उन्नत SQLite अवधारणाओं पर एक और लेख के लिए बने रहें। यहां तक कि SQLite की सभी अच्छी सुविधाओं के साथ, इसके कुछ नुकसान भी हैं।
SQLite ट्यूटोरियल:SQLite के नुकसान
SQLite का उपयोग करने के नुकसान नीचे सूचीबद्ध हैं:
- क्लाइंट/सर्वर आर्किटेक्चर में यह ठीक से काम नहीं करता है।
- ज्यादातर मामलों में SQLite डेटाबेस का आकार 2GB तक सीमित होता है।
- SQLite ने राइट आउटर जॉइन और फुल आउटर जॉइन को लागू नहीं किया है। SQLite के साथ, हम केवल LEFT OUTER JOIN लागू कर सकते हैं।
- SQLite में दृश्य केवल-पढ़ने के लिए हैं। हम व्यू के साथ DML स्टेटमेंट (सम्मिलित करें, अपडेट करें और हटाएं) का उपयोग नहीं कर सकते हैं।
- हम SQLite के साथ GRANT और REVOKE कथनों का उपयोग नहीं कर सकते हैं।
इसी के साथ, हम इस SQLite Tutorial को समाप्त करते हैं।
यदि आप MySQL के बारे में अधिक जानना चाहते हैं और इस ओपन-सोर्स रिलेशनल डेटाबेस को जानना चाहते हैं, तो हमारा MySQL DBA प्रमाणन प्रशिक्षण देखें। जो प्रशिक्षक के नेतृत्व वाले लाइव प्रशिक्षण और वास्तविक जीवन परियोजना अनुभव के साथ आता है। यह प्रशिक्षण आपको MySQL को गहराई से समझने और विषय पर महारत हासिल करने में मदद करेगा।
हमारे लिए एक प्रश्न है? कृपया इस SQLite ट्यूटोरियल के टिप्पणी अनुभाग में इसका उल्लेख करें और मैं आपसे संपर्क करूंगा।