10 SQL पुनर्प्राप्ति युक्तियां

10 SQL पुनर्प्राप्ति युक्तियाँ - डमीज

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

डेटाबेस संरचना की पुष्टि करें

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

एक टेस्ट डेटाबेस पर प्रश्नों की कोशिश करें

एक टेस्ट डेटाबेस बनाएँ जो आपके उत्पादन डेटाबेस के समान संरचना है, लेकिन तालिकाओं में केवल कुछ प्रतिनिधि पंक्तियों के साथ। डेटा चुनें ताकि आप पहले से जानते हो कि आपके प्रश्नों के परिणाम कैसा होना चाहिए।

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

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

शामिल होने वाले प्रश्नों को दो बार जांचें

शामिल हैं कुख्यात प्रतिद्वंद्विता यदि आपकी क्वेरी में एक है, तो सुनिश्चित करें कि आप WHERE क्लाजों या अन्य जटिल कारकों को जोड़ने से पहले यह अपेक्षा कर रहे हैं।

उपशैच्छों के साथ ट्रिपल-जांच क्वेरी

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

ग्रुप द्वारा

डेटा को संक्षेप करें, कहें कि आपके पास एक टेबल (राष्ट्रीय) है जिसमें नेशनल लीग में प्रत्येक बेसबॉल खिलाड़ी द्वारा नाम (खिलाड़ी), टीम (टीम) और होम रन हिट (होमर्स) की संख्या शामिल है । आप इस तरह से एक क्वेरी के साथ सभी टीमों के लिए टीम होमर कुल प्राप्त कर सकते हैं:

 सेलेक्ट टीम, एसएम (होमर्स) नेशनल ग्रुप द्वारा टीम द्वारा; 

यह क्वेरी प्रत्येक टीम को सूचीबद्ध करती है, इसके बाद सभी टीम के खिलाड़ियों द्वारा घर चलाने की कुल संख्या का पता चलता है

खंड प्रतिबंधों से ग्रुप देखें

मान लीजिए कि आप राष्ट्रीय लीग पावर हिटर्स की सूची चाहते हैं निम्नलिखित प्रश्न पर विचार करें:

 चयन खिलाड़ी, टीम, होमर्स से राष्ट्रीय जहां होम> = 20 ग्रुप टीम द्वारा; 

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

 सेलेक्ट प्लेअर, टीम, होमर्स ऑफ़ द नेशनल ओर होमर्स> = 20 समूह द्वारा टीम, प्लेयर, होमर्स; 

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

और, OR, और NOT

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

पैनेष्ठेस यह भी सुनिश्चित करने में मदद करते हैं कि न कि कीवर्ड को उस शब्द या अभिव्यक्ति पर लागू किया जाता है जिसे आप चाहते हैं कि वह उसे लागू करें

पुनर्प्राप्ति विशेषाधिकारों को नियंत्रित करें

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

अपने डेटाबेस का नियमित रूप से बैकअप लें:

अंडरटेस्टमेंट चेतावनी: बिजली उछाल, आग, भूकंप, या कुछ अन्य आपदा के बाद डेटा को पुनः प्राप्त करना कठिन है, जो आपकी हार्ड ड्राइव को नष्ट कर देता है (याद रखें, कभी-कभी कंप्यूटर्स सिर्फ किसी अच्छे कारण के लिए मर जाते हैं।) अक्सर बैकअप लें और बैकअप मीडिया को एक सुरक्षित स्थान पर रखें।

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

त्रुटि की स्थिति को सुन्दर ढंग से संभालें

क्या आप किसी कार्यस्थान या एंबेडिंग प्रश्नों से तदर्थ प्रश्नों को एक आवेदन में बना रहे हैं, कभी-कभी SQL वांछित परिणाम के बजाय एक त्रुटि संदेश देता है वर्कस्टेशन पर, आप यह फैसला कर सकते हैं कि संदेश लौटाए जाने के आधार पर आगे क्या करना है।

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