[Powered by Google Translate] [SQL] [क्रिस्टोफर BARTHOLOMEW] [हार्वर्ड विश्वविद्यालय] [इस CS50] [टीवी CS50] तो, प्रोग्रामर डेटाबेस एक उपकरण के रूप में उपयोग करने के लिए दुकान और संगठित तालिकाओं के भीतर लगातार हमारे डेटा. इसका मतलब यह है कि आपके डेटा अनह्रासी medians पर एक हार्ड ड्राइव के रूप में संग्रहीत किया जाता है, और यहां तक ​​कि जब कंप्यूटर बंद है, डेटा अभी भी बरकरार है. और, प्रोग्रामर के रूप में, हमारे कार्यक्रमों भंडारण के रूप में ऐसी स्थितियों के लिए डेटाबेस का उपयोग वेब प्रपत्र से उपयोगकर्ता जानकारी, मालसूची देख रहे हैं, या साइटों के बारे में क्या प्रदर्शित जानकारी को अपडेट करने के. लेकिन हम वास्तव में कैसे हमारे डेटाबेस के साथ बातचीत, या क्या हम पढ़ने, स्टोर, हटाने का प्रयोग करें, और इन डेटाबेस तालिकाओं के भीतर हमारे डेटा अपडेट करते हैं? खैर, जवाब है कि हम डेटाबेस भाषा का एक विशेष प्रकार का उपयोग जो हमारे डेटाबेस तालिकाओं के साथ सूचना का आदान प्रदान. यह नाम क्वेरी भाषा संरचित है, [संरचित क्वेरी भाषा] या क्या मैं एसक्यूएल के रूप में देखें. अब, [quel से, या एसक्यूएल, एक प्रोग्रामिंग भाषा नहीं है, लेकिन इसके बजाय, यह एक भाषा है कि आदेशों की एक मानक सेट प्रदान करता है को पुनः प्राप्त करने के लिए और डेटाबेस प्रबंधन प्रणालियों की एक किस्म से आंकड़ों में हेरफेर. CS50 के प्रयोजन के लिए, हम चार बुनियादी आज्ञाओं जाऊँगा: का चयन करने के लिए, डालने, अद्यतन, और हटा दें. इसके अलावा, हम एक डेटाबेस वेब phpMyAdmin बुलाया इंटरफ़ेस का उपयोग करेंगे, जो उपकरण पर स्थापित करने के लिए हमारे SQL बयान लिखने के. तो, मदद करने के लिए आप इन आज्ञाओं याद मैं हमारे परिदृश्यों के साथ सहायता के लिए एक अलमारी में कुछ cupcakes लाया है. कहते हैं कि आप एक cupcake डेटाबेस है, जहां आप अपने cupcakes के बारे में सभी जानकारी की दुकान. अब, डेटाबेस कई तालिकाओं को नियंत्रित कर सकते हैं और खुद को टेबल कई स्तंभों को शामिल कर सकते हैं. हमारे cupcake डेटाबेस के अंदर, हम एक मेज cupcake_cupboard बुलाया है. इस तालिका cupcakes के बारे में सभी जानकारी स्टोर करने के लिए इस्तेमाल किया जाएगा कर रहे हैं कि अच्छी तरह से अपनी अलमारी में. कॉलम कि अपने तालिका के अंदर कर रहे हैं एक cupcake की विशेषताओं का प्रतिनिधित्व करते हैं. उदाहरण के लिए, cupcake_cupboard स्तंभ हैं केक आईडी, CakeType, CakeColor, और CakeIsNice. यह बूलियन टाइप स्तंभ निर्धारित करने के लिए प्रयोग किया जाता है अगर केक अच्छा है या नहीं करने के लिए अच्छा है. हम एक का चयन करें बयान लिखने के साथ शुरू करने जा रहे हैं. का चयन करें बयान करने के लिए एक विशेष डेटाबेस तालिका के डेटा को वापस लाने के लिए किया जाता हैं. इस परिदृश्य में, हम सब कुछ जानना चाहते हैं के बारे में सभी cupcakes कि हमारे अलमारी में मौजूद हैं. यह करने के लिए वाक्यविन्यास "चुनें" अंतरिक्ष सितारा, या *, हमारी मेज अंतरिक्ष से अंतरिक्ष है, जो cupcake_cupboard है. चलो आगे जाना है और निष्पादित. जैसा कि हम देख सकते हैं, हमारे अलमारी में इन सभी cupcakes हैं. यह महत्वपूर्ण है कि * या तारांकन नोट, एक जंगली कार्ड चरित्र है कि कुछ तालिका के सभी स्तंभों की सभा अर्थ. आम तौर पर, हम एक विशिष्ट स्तंभ या स्तंभों का उपयोग कर सकते हैं * वास्तविक स्तंभ नाम के साथ की जगह. यदि हम कई कॉलम चाहते हैं, लेकिन सभी नहीं, हम इस लक्ष्य को हासिल कर सकते हैं स्तंभ नाम एक अल्पविराम के द्वारा प्रत्येक स्तंभ परिसीमन लेखन के द्वारा. उदाहरण के लिए, केवल CakeId और cupcake_cupboard तालिका में CakeType पुनः प्राप्त. यह करने के लिए वाक्यविन्यास है SELECT अंतरिक्ष CakeID अल्पविराम: हमारे cupcake_cupboard, मेज से CakeType अंतरिक्ष. चलो आगे जाना है और इस पर अमल. और यहाँ, हम अब केवल दो स्तंभों हम निर्दिष्ट हमारे अलमारी में प्रत्येक cupcake के लिए. हम भी निर्दिष्ट द्वारा हमारे क्वेरी परिणामों को परिष्कृत कर सकते हैं "कहाँ" खंड तालिका नाम के बाद. उदाहरण के लिए, वहाँ के लिए हमारे अलमारी में एक cupcake प्रतीत होता है वह यह है कि अच्छी तरह से देख तो अच्छा नहीं. चलो बाहर हमारे अलमारी में सभी cupcakes कि, अच्छी तरह से अच्छा कर रहे हैं, ऐसा नहीं आंकड़ा देख "कहाँ" खंड का उपयोग कर. SELECT अंतरिक्ष * अंतरिक्ष से अंतरिक्ष cupcake_cupboard: यह करने के लिए वाक्यविन्यास की जगह है जहाँ इस मामले में हमारे सशर्त स्तंभ अंतरिक्ष, CakeIsNice = और झूठा बूलियन मान. यह नोट करना महत्वपूर्ण है कि यदि आप तार का उपयोग कर रहे हैं, आप इसे एकल उद्धरण में लगा देना चाहिए. इस एसक्यूएल में सभी तार के लिए सच है, या SQL डेटाबेस मामले में, भिन्न वर्ण varchar डेटाप्रकार के रूप में जाना जाता है. इस मामले में, हम सही है या गलत का उपयोग कर रहे हैं, जो एक बूलीयन मान और एक स्ट्रिंग नहीं है. चलो आगे जाना है और इस आदेश पर अमल. लो और निहारना, यह मामला है कि हम 1 चॉकलेट हमारे अलमारी में cupcake इतना अच्छा नहीं. अगला, हम एक डालने के बयान लिखने के लिए जा रहे हैं. सम्मिलित बयान डालने या जोड़ने के लिए उपयोग किया जाता है अपने डेटाबेस तालिका में डेटा की अतिरिक्त पंक्तियाँ. हमारे परिदृश्य समीक्षा, चलो मान लेते हैं कि हम सिर्फ एक ब्रांड नए कप केक बनाया है. के बाद से हम बहुत cupcake भक्षण करते आयोजन कर रहे हैं, हम करने के लिए इस नए cupcake डालने के लिए जा रहे हैं हमारे cupcake_cupboard तालिका में. यह करने के लिए इस वाक्यविन्यास है: हमारे तालिका अंतरिक्ष में अंतरिक्ष डालें, (cupcake_cupboard, अंतरिक्ष, और यहाँ हम स्तंभों नामों निर्दिष्ट करने के लिए, एक अल्पविराम द्वारा सीमांकित CakeType अल्पविराम CakeColor अंतरिक्ष CakeIsNice अल्पविराम). इस के बाद, हम शब्द मान (अंतरिक्ष लिखने, यहाँ और हम प्रत्येक स्तंभ के लिए मूल्य क्रमशः दर्ज करते हैं, तो भी एक अल्पविराम द्वारा सीमांकित. एकल बोली, क्योंकि वे सभी varchar मान रहे हैं हम उन्हें चारों ओर एकल उद्धरण में हूँ, मूंगफली का मक्खन 'अल्पविराम' प्रकाश 'ब्राउन अल्पविराम यह सच है. अब, यह महत्वपूर्ण है कि प्रत्येक पंक्ति ही की पहचान करने के लिए एक अद्वितीय संख्या दे. एक स्तंभ Autoincrementing के रूप में इस प्रदान करता है  "कोई दो एक ही आईडी कभी इस तालिका में मौजूद कर सकते हैं." चलो आगे जाने के लिए और निष्पादित. हम वहाँ जाते हैं, सभी का आयोजन किया. अगले SQL बयान कि हम लिखेंगे एक अद्यतन बयान है. अद्यतन बयान करने के लिए एक कॉलम के अंदर डेटा को संशोधित करने के लिए इस्तेमाल किया जा सकता है अपने डेटाबेस तालिका में किसी भी मौजूदा पंक्ति के लिए. इससे पहले हमारे परिदृश्य में, एक का चयन करें बयान का उपयोग करते हुए, हम एक cupcake में पहचान हमारे cupcake_cupboard तालिका के भीतर जिसका CakeIsNice मूल्य झूठा था. चलो मान लेते हैं कि जब हमारे मूंगफली का मक्खन कप केक ओवन में था, हम हमारे नहीं तो अच्छा cupcake बहुत अच्छा बनाया है. इतना असाधारण का आयोजन किया जा रहा है, हम हमारे cupcake इस मूल्य को प्रतिबिंबित करने के लिए करना चाहते हैं हमारे cupcake_cupboard तालिका में. इसलिए, हमारे डेटाबेस में चॉकलेट cupcake अद्यतन करने के लिए इस प्रतिबिंबित. अद्यतन अंतरिक्ष हमारे मेज, cupcake_cupboard, अंतरिक्ष सेट अंतरिक्ष: वाक्यविन्यास स्तंभ है कि हम को बदलना चाहते है, CakeIsNice =. यहाँ तो हम हमारे नए मूल्य सच अंतरिक्ष जगह है. अब, क्योंकि हम इस मूल्य के साथ सभी पंक्तियों को अद्यतन करने के लिए नहीं करना चाहती, हम एक "कहाँ" खंड है कि हमें तुच्छ होगा प्रदान करना चाहते हैं सटीक पंक्ति है कि हम को संशोधित करना चाहते हैं. इस मामले में, हम जानते हैं कि वहाँ केवल एक cupcake कि झूठी CakeIsNice मूल्य है. इसके अलावा, हम यह भी सुनिश्चित करना है कि हम सही पंक्ति को अद्यतन कर रहे हैं "और" खंड का उपयोग करके. हम "और" खंड का उपयोग करने के लिए हमारे क्वेरी को संशोधित. इस मामले में, क्योंकि हम जानते हैं कि cupcake चॉकलेट है, हम इस CakeType स्तंभ का उपयोग करेगा. जहां हमारे सशर्त स्तंभ अंतरिक्ष CakeIsNice अंतरिक्ष = झूठा अंतरिक्ष, अंतरिक्ष और CakeType 'चॉकलेट.' = इसलिए, यह सब एक साथ डाल, इस अद्यतन बयान में कहा गया है कि हमारे cupcake अलमारी में सभी cupcakes मिल जाए, और अगर वहाँ एक cupcake स्तंभ जिसका CakeIsNice झूठी मूल्य शामिल है और CakeType मूल्य चॉकलेट शामिल, हम सही करने के लिए विशिष्ट पंक्तियों CakeIsNice मूल्य को अद्यतन करने के लिए करना चाहते हैं. तो, चलो आगे जाना है और बयान निष्पादित. और अब, हम का आयोजन कर रहे हैं. Cupcakes के सभी इस बात मुझे एक बिट भूखा बना दिया है. मुझे लगता है कि मैं अपने आप को एक करने के लिए मदद करनी चाहिए. लेकिन अगर मैं वास्तव में इस कप केक खाने के लिए, मैं कम से कम भी अपने अस्तित्व को दूर करना चाहिए  हमारे cupcake_cupboard तालिका से. ऐसा करने के लिए, हम "हटाएँ" बयान का उपयोग करेगा. "हटाएँ" बयान मेज से सभी या कुछ पंक्तियों को हटाने के लिए इस्तेमाल किया जा सकता है. यदि आप तालिका से कुछ विशिष्ट पंक्ति निकालना चाहते हैं, तो आप एक "कहाँ" खंड प्रदान करते हैं, इस प्रकार एक स्तंभ निर्दिष्ट होना चाहिए कि पंक्ति है कि आप को दूर करने के लिए इच्छा के लिए अद्वितीय होना चाहिए. इस वाक्य रचना है: अंतरिक्ष से अंतरिक्ष हमारे टेबल, अंतरिक्ष cupcake_cupboard, हटाएँ. अब, इस बिंदु पर, आप अपने को नष्ट बयान में अब तक जब भी यह कर रहे हैं आप बहुत सावधान रहना चाहते हैं. उदाहरण के लिए, अगर मैं इस क्वेरी चलाना चाहते हैं के रूप में कुछ "कहाँ" खंड उपलब्ध कराने के बिना है मैं इस cupcake_cupboard तालिका में सभी डेटा खो जाएगा, लेकिन क्योंकि मैं पहले से ही पता है कि मेरे केक आईडी अद्वितीय हैं, मैं इस्तेमाल करेंगे मेरे "कहाँ" खंड के लिए लाल मखमल केक आईडी. जगह है जहाँ हमारे स्तंभ, = CakeID 1. क्योंकि यह एक पूर्णांक मान है वहाँ कोई इसे एकल उद्धरण में चारों ओर की जरूरत है. तो, चलो बयान निष्पादित. खैर, अब है कि हम इस cupcake के अस्तित्व मिटा दिया है हमारे cupcake_cupboard तालिका से, हम केवल एक बाएँ बात है: इसे गायब. मैं क्रिस्टोफर Bartholomew हूँ. यह CS50 है.