SQL डेटाबेस डेटा के संग्रह को पंक्तियों और स्तंभों में संग्रहीत करता है। आप SQL भाषा का उपयोग करके रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) में डेटा को पुनः प्राप्त और अपडेट कर सकते हैं। उपलब्ध कई SQL डेटाबेस में से, सबसे लोकप्रिय MySQL, PostgreSQL, Microsoft SQL Server और SQLite हैं।
गो में डेटाबेस के साथ इंटरैक्ट करने की कार्यक्षमता डेटाबेस/एसक्यूएल पैकेज में है, जो मानक पुस्तकालय का हिस्सा है।
डेटाबेस/एसक्यूएल पैकेज ड्राइवरों का उपयोग करके एसक्यूएल डेटाबेस के साथ इंटरैक्ट करता है। आप अपने RDBMS के लिए एक उपयुक्त ड्राइवर पैकेज आयात कर सकते हैं और डेटाबेस के साथ बातचीत करने के लिए इसका उपयोग कर सकते हैं।
Go. में SQL डेटाबेस के साथ शुरुआत करना
डेटाबेस/एसक्यूएल पैकेज रिलेशनल डेटाबेस के लिए एक सामान्य इंटरफ़ेस है। एक विशिष्ट डेटाबेस सर्वर के साथ काम करने के लिए, आपको उपलब्ध कई ड्राइवरों में से एक का उपयोग करने की आवश्यकता होगी।
शुक्र है, आपको ड्राइवर से परे विशिष्ट कार्यान्वयन के बारे में चिंता करने की ज़रूरत नहीं है। डेटाबेस/एसक्यूएल पैकेज आपके द्वारा कनेक्ट किए जा रहे सर्वर से स्वतंत्र रूप से डेटाबेस संचालन को संभालता है।
कुछ सबसे लोकप्रिय गो डेटाबेस ड्राइवर हैं:
- गो-एसक्यूएल ड्राइवर (माई एसक्यूएल)
- पी क्यू (पोस्टग्रेएसक्यूएल)
- गो-SQLite3 (एसक्यूलाइट)
- एमएसएसक्यूएल डीबी (माइक्रोसॉफ्ट एसक्यूएल सर्वर)
आप का उपयोग कर सकते हैं लिबहंट ड्राइवरों की सूची के लिए समकक्ष खोजने के लिए अन्य डेटाबेस प्रकार. सूची प्रत्येक डेटाबेस सिस्टम की सापेक्ष लोकप्रियता को भी दर्शाती है:
गो डेटाबेस ड्राइवरों को स्थापित और आयात करना
एक बार जब आप एक गो कार्यक्षेत्र बना लेते हैं और एक गो मॉड्यूल फ़ाइल को इनिशियलाइज़ कर लेते हैं, तो उस ड्राइवर को स्थापित करें जो आपके डेटाबेस सिस्टम से मेल खाता हो। उदाहरण के लिए, MySQL या SQLite ड्राइवर को स्थापित करने के लिए अपने कार्यक्षेत्र निर्देशिका में निम्न में से कोई एक कमांड चलाएँ:
जाओ -यू github.com/go-sql-driver/mysql
जाओ github.com/mattn/go-sqlite3 प्राप्त करें
अपने ड्राइवर को स्थापित करने के बाद, पैकेज से पहले अंडरस्कोर लगाकर साइड इफेक्ट के लिए इसे आयात करें। उदाहरण के लिए, डेटाबेस/एसक्यूएल पैकेज के साथ MySQL ड्राइवर आयात करने के लिए:
आयात (
"डेटाबेस/एसक्यूएल"
_ "github.com/जाओ-एसक्यूएल-ड्राइवर/mysql"
)
साइड इफेक्ट के लिए ड्राइवर पैकेज को आयात करके, आप इसका उपयोग डेटाबेस से कनेक्ट करने और संचालन को निष्पादित करने के लिए कर सकते हैं।
Go. के साथ SQL डेटाबेस से कनेक्ट करना
डेटाबेस ड्राइवरों को आयात करने के बाद, आप का उपयोग करके डेटाबेस कनेक्शन बना सकते हैं खुला हुआ की विधि डेटाबेस/एसक्यूएल पैकेट। यह विधि ड्राइवर का नाम और पथ डेटाबेस (SQLite के लिए) या कनेक्शन स्ट्रिंग (MySQL के लिए) लेती है। उदाहरण के लिए, निम्न में से किसी एक का उपयोग करें:
डीबी, गलती: = sql. ओपन ("sqlite3", "मॉडल/testdb.db") // SQLite
डीबी, गलती: = sql. ओपन ("mysql", "उपयोगकर्ता: पासवर्ड@/dbname") // माई एसक्यूएल
एक बार जब आप कनेक्शन खोलने का प्रयास कर लेते हैं, तो त्रुटि की जांच करना याद रखें:
यदि गलती!= शून्य {
लकड़ी का लट्ठा। फैटॉलन (गलती)
}
आपके डेटाबेस सिस्टम के आधार पर, खुला हुआ यदि डेटाबेस मौजूद नहीं है तो विधि एक त्रुटि लौटा सकती है। एक बार जब आप किसी डेटाबेस से कनेक्ट हो जाते हैं, तो आप क्वेरी निष्पादित कर सकते हैं और डेटाबेस इंस्टेंस का उपयोग करके स्टेटमेंट तैयार कर सकते हैं: खुला हुआ रिटर्न।
SQL कमांड निष्पादित करना
तुम कर सकते हो SQL कमांड निष्पादित करें का उपयोग तैयार करना आपके डेटाबेस उदाहरण की विधि। तैयार करना विधि एक SQL कमांड लेती है और एक त्रुटि ऑब्जेक्ट के साथ निष्पादन के लिए एक तैयार कथन देता है। उदाहरण के लिए, यदि आप एक नई तालिका बनाना चाहते हैं:
आदेश, त्रुटि: = db. तैयार करें ("यदि लॉगिन मौजूद नहीं है तो तालिका बनाएं (उपयोगकर्ता नाम टेक्स्ट, पासवर्ड टेक्स्ट)")
उपरोक्त कथन नाम की एक तालिका बनाता है लॉग इन करें, अगर यह पहले से मौजूद नहीं है। नई तालिका में नामित फ़ील्ड हैं उपयोगकर्ता नाम तथा पासवर्ड, प्रत्येक प्रकार मूलपाठ।
यदि आप अपने प्रोग्राम से अपने प्रश्नों में मान सम्मिलित कर रहे हैं, तो आप प्लेसहोल्डर्स को दर्शाने के लिए प्रश्न चिह्न (?) नोटेशन का उपयोग कर सकते हैं और फिर स्टेटमेंट को निष्पादित करने के लिए पैरामीटर पास कर सकते हैं।
आदेश, त्रुटि: = db. तैयार करें ("लॉगिन में डालें (उपयोगकर्ता नाम, पासवर्ड) मान (?,?)")
एक बार जब आप एक तैयार स्टेटमेंट बना लेते हैं, तो आप इसका उपयोग करके इसे निष्पादित कर सकते हैं कार्यकारी तरीका। यह विधि आपको अपने प्रोग्राम से पैरामीटर मान पास करने देती है:
निष्पादन, त्रुटि: = आदेश। निष्पादन (मान 1, मान 2)
यदि गलती!= शून्य {
वापसी
}
पहला मान जो निष्पादन () रिटर्न आपके डेटाबेस पर SQL क्वेरी का परिणाम है। इस क्वेरी परिणाम का उपयोग करके, आप प्रभावित पंक्तियों की संख्या या अंतिम सम्मिलित आईडी की जांच कर सकते हैं:
प्रभावित, त्रुटि: = निष्पादन। पंक्तियाँ प्रभावित ()
यदि गलती!= शून्य {
वापसी
}एफएमटी प्रिंट्लन (प्रभावित)
आईडी, त्रुटि: = exec. LastInsertId ()
यदि गलती!= शून्य {
वापसी
}
एफएमटी प्रिंट्लन (आईडी)
क्वेरी परिणाम प्राप्त करना
डेटाबेस/एसक्यूएल पैकेज आपको का उपयोग करके डेटाबेस परिणामों को क्वेरी करने देता है सवाल डेटाबेस उदाहरण की विधि:
पंक्तियाँ, त्रुटि: = db. क्वेरी ("उपयोगकर्ता से चुनें *")
यदि गलती!= शून्य {
वापसी
}
सवाल विधि रिटर्न a पंक्तियों संरचना जिसका उपयोग आप अपने परिणाम सेट के साथ काम करने के लिए कर सकते हैं। उदाहरण के लिए, आप का उपयोग कर सकते हैं अगला आपकी पंक्तियों की विधि इस पर पुनरावृति करने और अलग-अलग पंक्तियों के साथ काम करने के लिए:
वर प्रयोक्ता नाम पासवर्ड डोरी
के लिये पंक्तियाँ। अगला() {
त्रुटि: = पंक्तियाँ। स्कैन (और उपयोगकर्ता नाम, और पासवर्ड)यदि गलती!= शून्य {
लकड़ी का लट्ठा। फैटॉलन (गलती)
}
एफएमटी Println (उपयोगकर्ता नाम, पासवर्ड)
}
ऊपर के उदाहरण में, दो स्ट्रिंग चर-उपयोगकर्ता नाम तथा पासवर्ड- प्रत्येक कॉलम मान का प्रतिनिधित्व करें। स्कैन विधि वर्तमान पंक्ति को उन संगत चरों में डिकोड करती है।
SQL डेटाबेस हमेशा काम में आते हैं
गो में डेटाबेस का उपयोग करना डेटाबेस/एसक्यूएल पैकेज के साथ सीधा है। आप आसानी से गो में SQL कमांड को क्वेरी और निष्पादित करने के लिए इसका उपयोग कर सकते हैं।
SQL डेटाबेस कई अनुप्रयोगों के मूल में हैं, विशेष रूप से बड़े या जटिल डेटासेट से निपटने वाले। वेब स्क्रैपिंग, और बॉट बनाने जैसे सरल प्रोजेक्ट के लिए आप इन-मेमोरी SQLite डेटाबेस जैसे डेटाबेस का उपयोग कर सकते हैं।
SQL और डेटाबेस प्रबंधन प्रणालियों का उचित ज्ञान आपके प्रोग्राम में कुशलतापूर्वक उपयोग करने के लिए आवश्यक है। हालाँकि, यदि आप SQL नहीं सीखना चुनते हैं, तो आप सीख सकते हैं कि Go में SQL डेटाबेस के साथ सहभागिता करने के लिए ORM का उपयोग कैसे करें।