डेवलपर टूलकिट: SQL सहायक

मैं एक डेटाबेस डेवलपर (MS SQL) के रूप में काम करता हूं और मेरा ज्यादातर काम T-SQL कोड लिख रहा है। क्वेरी एनालाइज़र में काम करना, और फिर प्रबंधन स्टूडियो (2005, 2008, 2008R2) में, मेरे पास वास्तव में संपादक कार्यों और अतिरिक्त विकास पर्यावरण कार्यों की कमी है जो विशेष रूप से कोड लिखने, प्रश्नों के निर्माण, आदि की प्रक्रिया के उद्देश्य से हैं ... एमएस विज़ुअल स्टूडियो की तुलना में या Embarcadero RAD Studio, क्वेरी विश्लेषक क्या पेशकश कर सकता है? कोड ब्लॉक के इंडेंटेशन को बदलें, चयनित टेक्स्ट के मामले को बदलें, कोड ब्लॉक पर टिप्पणी करना, रद्द करना और रद्द करना, संपादक विंडो में तालिका या फ़ील्ड (नामों) का नाम खींचें, और चयनित ऑब्जेक्ट को स्क्रिप्ट करें। लेकिन इसमें एक पूर्ण IntelliSense का अभाव था। ये सभी सुविधाजनक ऑटो-पूर्ण फ़ंक्शन, डायल किए गए कोड के लिए इंटरैक्टिव संकेत, वस्तुओं की सूची से एक विकल्प, आदि।

एमएस प्रबंधन स्टूडियो 2005 की रिलीज़ के साथ, स्थिति नहीं बदली है। और केवल MS प्रबंधन 2008 में Transact-SQL IntelliSense दिखाई दिया। हाँ, टाइप किए गए शब्द का एक स्वत: पूर्णीकरण था, डेटाबेस ऑब्जेक्ट्स और टेबल फ़ील्ड्स की एक सूची, सिंटैक्स हाइलाइटिंग (प्रारंभ ... अंत, ())। लेकिन इससे पहले, मैंने SoftTree Technologies से थर्ड-पार्टी SQL असिस्टेंट यूटिलिटी का उपयोग करना शुरू किया। SQL असिस्टेंट द्वारा प्रदान किए जाने वाले अवसरों के बीच, मूल IntelliSense बस ओक है। लेकिन क्या कुछ और प्राप्त करना संभव है, क्योंकि यह एसक्यूएल है, न कि वस्तु-उन्मुख भाषा? आप कर सकते हैं! इस लेख में, मैं SQL सहायक उपयोगिता के बारे में बात करना चाहूंगा, और विशेष रूप से फ़ंक्शन और तकनीकों के बारे में जो मैं SQL कोड लिखते समय उपयोग करता हूं।

सिद्धांत

SQL असिस्टेंट डेवलपर्स और डेटाबेस एडमिनिस्ट्रेटर के लिए एक टूलकिट है। इसका उपयोग छोटे डेटाबेस से जटिल कॉर्पोरेट सिस्टम तक, जटिलता की किसी भी डिग्री की परियोजनाओं पर काम करते समय किया जा सकता है। सॉफ्टवेयर स्थापना के तुरंत बाद उपयोग के लिए तैयार है और इसमें वर्तमान कार्य प्रक्रियाओं का निलंबन शामिल नहीं है। टूलकिट SQL डेवलपर्स की उत्पादकता में सुधार करता है और उच्च गुणवत्ता कोड की गारंटी देता है। पैकेज में एसक्यूएल सिंटैक्स की शुद्धता की जांच करने के लिए उत्कृष्ट उपकरण शामिल हैं, सिंटैक्टिक संरचनाओं के स्वचालित समापन, प्रोग्राम कोड के माध्यम से त्वरित नेविगेशन के साधन, और बहुत कुछ। उपयोगकर्ताओं को एक एकीकृत स्पेकचर भी मिलेगा। उत्पाद के अन्य लाभों में, यह सबसे आम DBMSs (Oracle, SQL Server, DB2, MySQL, Sybase ASE, Sybase ASA, MS Access और संबंधित SQL बोलियों) के समर्थन का उल्लेख करने योग्य है।

SQL असिस्टेंट को प्रबंधन स्टूडियो में एम्बेड किया गया है और इसके सभी कमांड मुख्य मेनू आइटम के माध्यम से या कोड संपादक के संदर्भ मेनू के माध्यम से उपलब्ध हैं।



यहाँ मुख्य विशेषताएं हैं:


मूल जानकारी आधिकारिक वेबसाइट पर और प्रलेखन (लेख के अंत में लिंक) में पाई जा सकती है। और यहां मैं इस उपयोगिता के सबसे महत्वपूर्ण कार्य के बारे में बात करना चाहता हूं, सहायक ही - एक संदर्भ-संवेदनशील पॉप-अप विंडो जो कोड संपादक में दिखाई देती है।



अभ्यास

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



मैं खंड से एक अनुरोध लिखना शुरू करता हूं। पहली तालिका का नाम इंगित किया गया है, मैं आंतरिक जुड़ता हूं और खिड़की में सहायक उन तालिकाओं की एक सूची प्रदर्शित करता है जिनमें उत्पाद तालिका से विदेशी कुंजी मौजूद हैं। लाल रंग में हाइलाइट किए गए फ़ील्ड का उपयोग दो तालिकाओं में शामिल होने के लिए किया जाएगा। मैं ProductInventory तालिका के लिए एक कनेक्शन का चयन करता हूं और कोड प्राप्त करता हूं:

का चयन करें
से
उत्पादन। उत्पाद पी
INNER प्रोडक्शन से जुड़ते हैं। ProductInventory pi1 ON pi1। ProductID = पी। ProductID


इसके बाद, मैं क्वेरी बनाना जारी रखता हूं, इनर जॉइन टाइप करता हूं और असिस्टेंट उन टेबलों की एक सूची प्रदर्शित करता है, जिनके लिए विदेशी कुंजियाँ पहले से ही ProductInventory table से मौजूद हैं, लेकिन उत्पाद तालिका से कनेक्शन भी उपलब्ध हैं।



लिंक बिल्डिंग सेक्शन में काम करता है, अर्थात्। और चयन के लिए, सम्मिलित करें, हटाएं, अपडेट करें। यदि यह उन तालिकाओं के बीच संबंध बनाने के लिए आवश्यक है जो एक विदेशी कुंजी से जुड़े नहीं हैं, तो आपको इन तालिकाओं को निर्दिष्ट करने की आवश्यकता है और SQL सहायक समान नाम वाले क्षेत्रों द्वारा संबंध बनाने की पेशकश कर सकते हैं।

प्राप्त अनुरोध कोड:

का चयन करें
से
उत्पादन। उत्पाद पी
INNER प्रोडक्शन से जुड़ते हैं। ProductInventory pi1 ON pi1। ProductID = पी। ProductID
INNER प्रोडक्शन से जुड़ते हैं। स्थान l पर l ठिकाना = pi1। LocationID
INNER प्रोडक्शन से जुड़ते हैं। ProductReview जनसंपर्क जनसंपर्क परProductID = पी। ProductID


प्रारूप फ़ंक्शन का उपयोग करके वांछित फॉर्म में लाएं। कोड स्वरूपण नियम अनुकूलन योग्य हैं।

का चयन करें
से
उत्पादन। उत्पाद पी
INNER प्रोडक्शन से जुड़ते हैं। उत्पाद सूची pi1
पर
PI1। ProductID = पी। ProductID
INNER प्रोडक्शन से जुड़ते हैं। स्थान एल
पर
एल। ठिकाना = pi1। LocationID
INNER प्रोडक्शन से जुड़ते हैं। ProductReview जनसंपर्क
पर
जनसंपर्क। ProductID = पी। ProductID


कर्सर को सेलेक्ट सेक्शन में ले जाकर, असिस्टेंट उन फील्ड्स को चुनने के लिए हिंट दिखाएगा जो सेक्शन में लिस्टेड टेबल से सिलेक्शन में शामिल होंगे। अनुरोध के किसी भी भाग में समान सिद्धांत (जहां, समूह द्वारा, क्रम से)।



फ़ील्ड के प्रकार के बारे में जानकारी के अलावा, प्राथमिक कुंजी बनाने वाले क्षेत्रों के लिए, एक आइकन को पीले कुंजी, एक हरे रंग की कुंजी - एक विदेशी कुंजी के क्षेत्रों, बिजली - के रूप में प्रदर्शित किया जाता है - एक सूचकांक फ़ील्ड पर बनाया गया है।
अन्य सर्वर डेटाबेस के वर्तमान डेटाबेस से अन्य ऑब्जेक्ट भी सूची में उपलब्ध हैं। यदि आप किसी तालिका से एक फ़ील्ड का चयन करते हैं जो अनुभाग से नहीं है, तो यह स्वचालित रूप से अनुभाग से जोड़ा जाएगा। यह केवल संचार के लिए आवश्यक शर्तें जोड़ने के लिए बनी हुई है।

सामान्य तौर पर, उनके घटकों के साथ निम्नलिखित वस्तुओं को सूची में प्रदर्शित किया जा सकता है:


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



लेकिन ऑपरेटर को लिखने के समय एक सहायक का उपयोग करना अधिक सुविधाजनक है। डालने का कथन लिखने के बाद, सहायक मुझे डेटाबेस ऑब्जेक्ट का चयन करने के लिए कहता है।



आवश्यक तालिका का चयन करने के बाद, मैं स्वचालित रूप से निम्नलिखित कोड प्राप्त करूंगा:

INSERT INTO Production स्थान
(
- LocationID - यह कॉलम मान स्वतः-जनरेट किया गया है
नाम,
CostRate,
उपलब्धता,
ModifiedDate
)
मान
(
/ * {नाम} * / ,
/ * {CostRate} * / ,
/ * {उपलब्धता} * / ,
/ * {मोडीफाइडडेट} * /
)


यह इसी तरह अपडेट ऑपरेटर के साथ प्राप्त किया जाता है। कोड स्वचालित रूप से एक समान इनपुट अनुक्रम के साथ उत्पन्न होता है:

अद्यतन उत्पादन। स्थान
सेट
- स्थानआईडी =? - यह स्तंभ मान स्वतः जनरेट किया गया है
नाम = ;
CostRate = ; और
उपलब्धता = ;
संशोधित =


तुम भी तालिका संरचना के आधार पर चर घोषित कर सकते हैं। मैं घोषणा करता हूं और स्थान तालिका का चयन करता हूं, जिसके परिणामस्वरूप कोड उत्पन्न होता है:

घोषित
@LocationID SMALLINT ,
@ नाम,
@ कॉस्टलेट SMALLMONEY ,
@ उपयुक्तता अवधि ( 8 , 2 ) ,
@ModifiedDate डेटाटाइम


किसी कार्यविधि या फ़ंक्शन के लिए कॉल बनाएँ।



यहां तक ​​कि वे ऑब्जेक्ट जो कोड में बनाए या घोषित किए गए हैं, सहायक विंडो में उपलब्ध हो जाते हैं। इसमें अस्थायी टेबल के निर्माण, चर की घोषणा, तालिका वाले सहित, को ध्यान में रखा गया है।




यदि मैं कोड के अनुसार एक चर से मिलता हूं, तो Ctrl कुंजी दबाए रखें और इस चर पर क्लिक करें, मैं उस स्थान पर पहुंचूंगा जहां यह चर घोषित किया गया था। लेकिन टूलटिप प्राप्त करने के लिए कर्सर को इस चर पर ले जाना आसान है जो चर के प्रकार को इंगित करेगा। तालिका के लिए, इसकी संरचना और लिंक एक स्क्रिप्ट बनाने के लिए, सामग्री के त्वरित दृश्य और अधिक जानकारी के लिए प्रदर्शित किए जाएंगे। प्रणाली
प्रक्रिया के लिए - मापदंडों की एक सूची, आदि। अन्य वस्तुओं के लिए।





अंतर्निहित कार्यों के लिए, फ़ंक्शन का एक संक्षिप्त विवरण के साथ एक टूलटिप। और सहायक मापदंडों में प्रवेश करने में मदद करेगा।



निष्कर्ष

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

संदर्भ

आधिकारिक साइट एसक्यूएल सहायक
प्रलेखन (पीडीएफ, 7.2 एमबी)

Source: https://habr.com/ru/post/In141084/


All Articles