1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [क्रिस्टोफर BARTHOLOMEW] [हार्वर्ड विश्वविद्यालय] 3 00:00:04,000 --> 00:00:06,000 [इस CS50] [टीवी CS50] 4 00:00:07,950 --> 00:00:11,620 तो, प्रोग्रामर डेटाबेस एक उपकरण के रूप में उपयोग करने के लिए दुकान और संगठित 5 00:00:11,620 --> 00:00:13,620 तालिकाओं के भीतर लगातार हमारे डेटा. 6 00:00:13,620 --> 00:00:18,960 इसका मतलब यह है कि आपके डेटा अनह्रासी medians पर एक हार्ड ड्राइव के रूप में संग्रहीत किया जाता है, 7 00:00:18,960 --> 00:00:22,940 और यहां तक ​​कि जब कंप्यूटर बंद है, डेटा अभी भी बरकरार है. 8 00:00:22,940 --> 00:00:29,530 और, प्रोग्रामर के रूप में, हमारे कार्यक्रमों भंडारण के रूप में ऐसी स्थितियों के लिए डेटाबेस का उपयोग 9 00:00:29,530 --> 00:00:32,890 वेब प्रपत्र से उपयोगकर्ता जानकारी, मालसूची देख रहे हैं, 10 00:00:32,890 --> 00:00:36,210 या साइटों के बारे में क्या प्रदर्शित जानकारी को अपडेट करने के. 11 00:00:37,150 --> 00:00:40,070 लेकिन हम वास्तव में कैसे हमारे डेटाबेस के साथ बातचीत, 12 00:00:40,070 --> 00:00:43,150 या क्या हम पढ़ने, स्टोर, हटाने का प्रयोग करें, 13 00:00:43,150 --> 00:00:46,070 और इन डेटाबेस तालिकाओं के भीतर हमारे डेटा अपडेट करते हैं? 14 00:00:47,280 --> 00:00:49,700 खैर, जवाब है कि हम डेटाबेस भाषा का एक विशेष प्रकार का उपयोग 15 00:00:49,700 --> 00:00:53,400 जो हमारे डेटाबेस तालिकाओं के साथ सूचना का आदान प्रदान. 16 00:00:53,400 --> 00:00:56,740 यह नाम क्वेरी भाषा संरचित है, 17 00:00:56,740 --> 00:00:58,740 [संरचित क्वेरी भाषा] 18 00:00:58,740 --> 00:01:00,740 या क्या मैं एसक्यूएल के रूप में देखें. 19 00:01:00,740 --> 00:01:05,100 >> अब, [quel से, या एसक्यूएल, एक प्रोग्रामिंग भाषा नहीं है, 20 00:01:05,100 --> 00:01:08,580 लेकिन इसके बजाय, यह एक भाषा है कि आदेशों की एक मानक सेट प्रदान करता है 21 00:01:08,580 --> 00:01:13,520 को पुनः प्राप्त करने के लिए और डेटाबेस प्रबंधन प्रणालियों की एक किस्म से आंकड़ों में हेरफेर. 22 00:01:13,520 --> 00:01:17,630 CS50 के प्रयोजन के लिए, हम चार बुनियादी आज्ञाओं जाऊँगा: 23 00:01:17,630 --> 00:01:21,210 का चयन करने के लिए, डालने, अद्यतन, और हटा दें. 24 00:01:21,210 --> 00:01:26,230 इसके अलावा, हम एक डेटाबेस वेब phpMyAdmin बुलाया इंटरफ़ेस का उपयोग करेंगे, 25 00:01:26,230 --> 00:01:29,890 जो उपकरण पर स्थापित करने के लिए हमारे SQL बयान लिखने के. 26 00:01:30,830 --> 00:01:33,050 तो, मदद करने के लिए आप इन आज्ञाओं याद 27 00:01:33,050 --> 00:01:37,080 मैं हमारे परिदृश्यों के साथ सहायता के लिए एक अलमारी में कुछ cupcakes लाया है. 28 00:01:39,650 --> 00:01:42,210 कहते हैं कि आप एक cupcake डेटाबेस है, 29 00:01:42,210 --> 00:01:44,490 जहां आप अपने cupcakes के बारे में सभी जानकारी की दुकान. 30 00:01:44,490 --> 00:01:48,220 अब, डेटाबेस कई तालिकाओं को नियंत्रित कर सकते हैं 31 00:01:48,220 --> 00:01:50,950 और खुद को टेबल कई स्तंभों को शामिल कर सकते हैं. 32 00:01:50,950 --> 00:01:57,020 हमारे cupcake डेटाबेस के अंदर, हम एक मेज cupcake_cupboard बुलाया है. 33 00:01:57,020 --> 00:02:00,500 इस तालिका cupcakes के बारे में सभी जानकारी स्टोर करने के लिए इस्तेमाल किया जाएगा 34 00:02:00,500 --> 00:02:02,990 कर रहे हैं कि अच्छी तरह से अपनी अलमारी में. 35 00:02:02,990 --> 00:02:07,770 कॉलम कि अपने तालिका के अंदर कर रहे हैं एक cupcake की विशेषताओं का प्रतिनिधित्व करते हैं. 36 00:02:07,770 --> 00:02:14,560 उदाहरण के लिए, cupcake_cupboard स्तंभ हैं 37 00:02:14,560 --> 00:02:15,920 केक आईडी, CakeType, CakeColor, और CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 यह बूलियन टाइप स्तंभ निर्धारित करने के लिए प्रयोग किया जाता है अगर केक अच्छा है या नहीं करने के लिए अच्छा है. 39 00:02:23,040 --> 00:02:26,560 हम एक का चयन करें बयान लिखने के साथ शुरू करने जा रहे हैं. 40 00:02:26,560 --> 00:02:32,160 का चयन करें बयान करने के लिए एक विशेष डेटाबेस तालिका के डेटा को वापस लाने के लिए किया जाता हैं. 41 00:02:32,160 --> 00:02:34,890 इस परिदृश्य में, हम सब कुछ जानना चाहते हैं 42 00:02:34,890 --> 00:02:39,080 के बारे में सभी cupcakes कि हमारे अलमारी में मौजूद हैं. 43 00:02:39,080 --> 00:02:48,670 यह करने के लिए वाक्यविन्यास "चुनें" अंतरिक्ष सितारा, या *, हमारी मेज अंतरिक्ष से अंतरिक्ष है, 44 00:02:48,670 --> 00:02:52,050 जो cupcake_cupboard है. 45 00:02:52,050 --> 00:02:54,640 चलो आगे जाना है और निष्पादित. 46 00:02:56,670 --> 00:03:00,140 >> जैसा कि हम देख सकते हैं, हमारे अलमारी में इन सभी cupcakes हैं. 47 00:03:00,140 --> 00:03:05,110 यह महत्वपूर्ण है कि * या तारांकन नोट, एक जंगली कार्ड चरित्र है 48 00:03:05,110 --> 00:03:08,830 कि कुछ तालिका के सभी स्तंभों की सभा अर्थ. 49 00:03:08,830 --> 00:03:13,650 आम तौर पर, हम एक विशिष्ट स्तंभ या स्तंभों का उपयोग कर सकते हैं 50 00:03:13,650 --> 00:03:16,950 * वास्तविक स्तंभ नाम के साथ की जगह. 51 00:03:16,950 --> 00:03:21,220 यदि हम कई कॉलम चाहते हैं, लेकिन सभी नहीं, हम इस लक्ष्य को हासिल कर सकते हैं 52 00:03:21,220 --> 00:03:25,620 स्तंभ नाम एक अल्पविराम के द्वारा प्रत्येक स्तंभ परिसीमन लेखन के द्वारा. 53 00:03:25,620 --> 00:03:28,620 उदाहरण के लिए, केवल CakeId और cupcake_cupboard तालिका में CakeType पुनः प्राप्त. 54 00:03:28,620 --> 00:03:38,370 यह करने के लिए वाक्यविन्यास है SELECT अंतरिक्ष CakeID अल्पविराम: 55 00:03:38,370 --> 00:03:44,370 हमारे cupcake_cupboard, मेज से CakeType अंतरिक्ष. 56 00:03:44,370 --> 00:03:46,370 चलो आगे जाना है और इस पर अमल. 57 00:03:49,340 --> 00:03:52,670 और यहाँ, हम अब केवल दो स्तंभों हम निर्दिष्ट 58 00:03:52,670 --> 00:03:54,670 हमारे अलमारी में प्रत्येक cupcake के लिए. 59 00:03:54,670 --> 00:03:57,710 हम भी निर्दिष्ट द्वारा हमारे क्वेरी परिणामों को परिष्कृत कर सकते हैं 60 00:03:57,710 --> 00:04:00,910 "कहाँ" खंड तालिका नाम के बाद. 61 00:04:02,000 --> 00:04:05,410 उदाहरण के लिए, वहाँ के लिए हमारे अलमारी में एक cupcake प्रतीत होता है 62 00:04:05,410 --> 00:04:08,660 वह यह है कि अच्छी तरह से देख तो अच्छा नहीं. 63 00:04:08,660 --> 00:04:13,950 चलो बाहर हमारे अलमारी में सभी cupcakes कि, अच्छी तरह से अच्छा कर रहे हैं, ऐसा नहीं आंकड़ा देख 64 00:04:13,950 --> 00:04:16,110 "कहाँ" खंड का उपयोग कर. 65 00:04:16,110 --> 00:04:26,390 SELECT अंतरिक्ष * अंतरिक्ष से अंतरिक्ष cupcake_cupboard: यह करने के लिए वाक्यविन्यास 66 00:04:26,390 --> 00:04:34,080 की जगह है जहाँ इस मामले में हमारे सशर्त स्तंभ अंतरिक्ष, CakeIsNice = 67 00:04:34,080 --> 00:04:36,900 और झूठा बूलियन मान. 68 00:04:36,900 --> 00:04:42,750 यह नोट करना महत्वपूर्ण है कि यदि आप तार का उपयोग कर रहे हैं, आप इसे एकल उद्धरण में लगा देना चाहिए. 69 00:04:42,750 --> 00:04:49,620 इस एसक्यूएल में सभी तार के लिए सच है, या SQL डेटाबेस मामले में, भिन्न वर्ण 70 00:04:49,620 --> 00:04:51,620 varchar डेटाप्रकार के रूप में जाना जाता है. 71 00:04:51,620 --> 00:04:57,660 इस मामले में, हम सही है या गलत का उपयोग कर रहे हैं, जो एक बूलीयन मान और एक स्ट्रिंग नहीं है. 72 00:04:59,120 --> 00:05:00,660 चलो आगे जाना है और इस आदेश पर अमल. 73 00:05:00,660 --> 00:05:05,340 >> लो और निहारना, यह मामला है कि हम 1 चॉकलेट 74 00:05:05,340 --> 00:05:07,920 हमारे अलमारी में cupcake इतना अच्छा नहीं. 75 00:05:09,620 --> 00:05:11,460 अगला, हम एक डालने के बयान लिखने के लिए जा रहे हैं. 76 00:05:11,460 --> 00:05:15,560 सम्मिलित बयान डालने या जोड़ने के लिए उपयोग किया जाता है 77 00:05:15,560 --> 00:05:17,770 अपने डेटाबेस तालिका में डेटा की अतिरिक्त पंक्तियाँ. 78 00:05:17,770 --> 00:05:23,160 हमारे परिदृश्य समीक्षा, चलो मान लेते हैं कि हम सिर्फ एक ब्रांड नए कप केक बनाया है. 79 00:05:25,910 --> 00:05:30,080 के बाद से हम बहुत cupcake भक्षण करते आयोजन कर रहे हैं, हम करने के लिए इस नए cupcake डालने के लिए जा रहे हैं 80 00:05:30,080 --> 00:05:32,330 हमारे cupcake_cupboard तालिका में. 81 00:05:32,330 --> 00:05:40,690 यह करने के लिए इस वाक्यविन्यास है: हमारे तालिका अंतरिक्ष में अंतरिक्ष डालें, 82 00:05:40,690 --> 00:05:46,830 (cupcake_cupboard, अंतरिक्ष, 83 00:05:46,830 --> 00:05:51,060 और यहाँ हम स्तंभों नामों निर्दिष्ट करने के लिए, एक अल्पविराम द्वारा सीमांकित 84 00:05:51,060 --> 00:05:59,790 CakeType अल्पविराम CakeColor अंतरिक्ष CakeIsNice अल्पविराम). 85 00:05:59,790 --> 00:06:06,540 इस के बाद, हम शब्द मान (अंतरिक्ष लिखने, यहाँ और 86 00:06:06,540 --> 00:06:12,170 हम प्रत्येक स्तंभ के लिए मूल्य क्रमशः दर्ज करते हैं, तो भी एक अल्पविराम द्वारा सीमांकित. 87 00:06:12,170 --> 00:06:17,830 एकल बोली, क्योंकि वे सभी varchar मान रहे हैं हम उन्हें चारों ओर एकल उद्धरण में हूँ, 88 00:06:17,830 --> 00:06:26,780 मूंगफली का मक्खन 'अल्पविराम' प्रकाश 'ब्राउन अल्पविराम यह सच है. 89 00:06:26,780 --> 00:06:30,480 अब, यह महत्वपूर्ण है कि प्रत्येक पंक्ति ही की पहचान करने के लिए एक अद्वितीय संख्या दे. 90 00:06:30,480 --> 00:06:33,660 एक स्तंभ Autoincrementing के रूप में इस प्रदान करता है 91 00:06:33,660 --> 00:06:37,410  "कोई दो एक ही आईडी कभी इस तालिका में मौजूद कर सकते हैं." 92 00:06:37,410 --> 00:06:39,480 चलो आगे जाने के लिए और निष्पादित. 93 00:06:39,480 --> 00:06:45,380 हम वहाँ जाते हैं, सभी का आयोजन किया. 94 00:06:49,720 --> 00:06:52,100 >> अगले SQL बयान कि हम लिखेंगे एक अद्यतन बयान है. 95 00:06:52,100 --> 00:06:55,650 अद्यतन बयान करने के लिए एक कॉलम के अंदर डेटा को संशोधित करने के लिए इस्तेमाल किया जा सकता है 96 00:06:55,650 --> 00:06:58,440 अपने डेटाबेस तालिका में किसी भी मौजूदा पंक्ति के लिए. 97 00:06:59,670 --> 00:07:03,420 इससे पहले हमारे परिदृश्य में, एक का चयन करें बयान का उपयोग करते हुए, हम एक cupcake में पहचान 98 00:07:03,420 --> 00:07:08,300 हमारे cupcake_cupboard तालिका के भीतर जिसका CakeIsNice मूल्य झूठा था. 99 00:07:08,300 --> 00:07:12,050 चलो मान लेते हैं कि जब हमारे मूंगफली का मक्खन कप केक ओवन में था, 100 00:07:12,050 --> 00:07:15,790 हम हमारे नहीं तो अच्छा cupcake बहुत अच्छा बनाया है. 101 00:07:18,020 --> 00:07:22,240 इतना असाधारण का आयोजन किया जा रहा है, हम हमारे cupcake इस मूल्य को प्रतिबिंबित करने के लिए करना चाहते हैं 102 00:07:22,240 --> 00:07:24,240 हमारे cupcake_cupboard तालिका में. 103 00:07:24,240 --> 00:07:28,710 इसलिए, हमारे डेटाबेस में चॉकलेट cupcake अद्यतन करने के लिए इस प्रतिबिंबित. 104 00:07:28,710 --> 00:07:39,720 अद्यतन अंतरिक्ष हमारे मेज, cupcake_cupboard, अंतरिक्ष सेट अंतरिक्ष: वाक्यविन्यास 105 00:07:39,720 --> 00:07:44,240 स्तंभ है कि हम को बदलना चाहते है, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 यहाँ तो हम हमारे नए मूल्य सच अंतरिक्ष जगह है. 107 00:07:49,210 --> 00:07:54,290 अब, क्योंकि हम इस मूल्य के साथ सभी पंक्तियों को अद्यतन करने के लिए नहीं करना चाहती, 108 00:07:54,290 --> 00:07:57,400 हम एक "कहाँ" खंड है कि हमें तुच्छ होगा प्रदान करना चाहते हैं 109 00:07:57,400 --> 00:07:59,830 सटीक पंक्ति है कि हम को संशोधित करना चाहते हैं. 110 00:07:59,830 --> 00:08:03,690 इस मामले में, हम जानते हैं कि वहाँ केवल एक cupcake 111 00:08:03,690 --> 00:08:06,670 कि झूठी CakeIsNice मूल्य है. 112 00:08:06,670 --> 00:08:11,030 इसके अलावा, हम यह भी सुनिश्चित करना है कि हम सही पंक्ति को अद्यतन कर रहे हैं 113 00:08:11,030 --> 00:08:13,030 "और" खंड का उपयोग करके. 114 00:08:14,340 --> 00:08:17,270 हम "और" खंड का उपयोग करने के लिए हमारे क्वेरी को संशोधित. 115 00:08:17,270 --> 00:08:20,380 इस मामले में, क्योंकि हम जानते हैं कि cupcake चॉकलेट है, 116 00:08:20,380 --> 00:08:23,160 हम इस CakeType स्तंभ का उपयोग करेगा. 117 00:08:23,160 --> 00:08:31,500 जहां हमारे सशर्त स्तंभ अंतरिक्ष CakeIsNice अंतरिक्ष = झूठा अंतरिक्ष, 118 00:08:31,500 --> 00:08:38,330 अंतरिक्ष और CakeType 'चॉकलेट.' = 119 00:08:38,330 --> 00:08:41,880 इसलिए, यह सब एक साथ डाल, इस अद्यतन बयान में कहा गया है कि 120 00:08:41,880 --> 00:08:44,670 हमारे cupcake अलमारी में सभी cupcakes मिल जाए, 121 00:08:44,670 --> 00:08:50,520 और अगर वहाँ एक cupcake स्तंभ जिसका CakeIsNice झूठी मूल्य शामिल है 122 00:08:50,520 --> 00:08:54,130 और CakeType मूल्य चॉकलेट शामिल, 123 00:08:54,130 --> 00:08:58,240 हम सही करने के लिए विशिष्ट पंक्तियों CakeIsNice मूल्य को अद्यतन करने के लिए करना चाहते हैं. 124 00:08:58,240 --> 00:09:01,140 तो, चलो आगे जाना है और बयान निष्पादित. 125 00:09:03,860 --> 00:09:05,860 और अब, हम का आयोजन कर रहे हैं. 126 00:09:06,650 --> 00:09:09,220 >> Cupcakes के सभी इस बात मुझे एक बिट भूखा बना दिया है. 127 00:09:09,220 --> 00:09:11,360 मुझे लगता है कि मैं अपने आप को एक करने के लिए मदद करनी चाहिए. 128 00:09:11,360 --> 00:09:17,670 लेकिन अगर मैं वास्तव में इस कप केक खाने के लिए, मैं कम से कम भी अपने अस्तित्व को दूर करना चाहिए 129 00:09:17,670 --> 00:09:19,670  हमारे cupcake_cupboard तालिका से. 130 00:09:20,650 --> 00:09:22,590 ऐसा करने के लिए, हम "हटाएँ" बयान का उपयोग करेगा. 131 00:09:22,590 --> 00:09:27,400 "हटाएँ" बयान मेज से सभी या कुछ पंक्तियों को हटाने के लिए इस्तेमाल किया जा सकता है. 132 00:09:27,400 --> 00:09:29,920 यदि आप तालिका से कुछ विशिष्ट पंक्ति निकालना चाहते हैं, 133 00:09:29,920 --> 00:09:34,360 तो आप एक "कहाँ" खंड प्रदान करते हैं, इस प्रकार एक स्तंभ निर्दिष्ट होना चाहिए 134 00:09:34,360 --> 00:09:37,660 कि पंक्ति है कि आप को दूर करने के लिए इच्छा के लिए अद्वितीय होना चाहिए. 135 00:09:37,660 --> 00:09:47,370 इस वाक्य रचना है: अंतरिक्ष से अंतरिक्ष हमारे टेबल, अंतरिक्ष cupcake_cupboard, हटाएँ. 136 00:09:47,370 --> 00:09:51,760 अब, इस बिंदु पर, आप अपने को नष्ट बयान में अब तक जब भी यह कर रहे हैं 137 00:09:51,760 --> 00:09:54,240 आप बहुत सावधान रहना चाहते हैं. 138 00:09:54,240 --> 00:09:59,970 उदाहरण के लिए, अगर मैं इस क्वेरी चलाना चाहते हैं के रूप में कुछ "कहाँ" खंड उपलब्ध कराने के बिना है 139 00:09:59,970 --> 00:10:04,500 मैं इस cupcake_cupboard तालिका में सभी डेटा खो जाएगा, 140 00:10:04,500 --> 00:10:09,590 लेकिन क्योंकि मैं पहले से ही पता है कि मेरे केक आईडी अद्वितीय हैं, मैं इस्तेमाल करेंगे 141 00:10:09,590 --> 00:10:12,410 मेरे "कहाँ" खंड के लिए लाल मखमल केक आईडी. 142 00:10:14,550 --> 00:10:20,670 जगह है जहाँ हमारे स्तंभ, = CakeID 1. 143 00:10:20,670 --> 00:10:25,010 क्योंकि यह एक पूर्णांक मान है वहाँ कोई इसे एकल उद्धरण में चारों ओर की जरूरत है. 144 00:10:25,010 --> 00:10:27,020 तो, चलो बयान निष्पादित. 145 00:10:33,560 --> 00:10:35,990 खैर, अब है कि हम इस cupcake के अस्तित्व मिटा दिया है 146 00:10:35,990 --> 00:10:40,360 हमारे cupcake_cupboard तालिका से, हम केवल एक बाएँ बात है: 147 00:10:41,680 --> 00:10:43,680 इसे गायब. 148 00:10:43,680 --> 00:10:46,990 मैं क्रिस्टोफर Bartholomew हूँ. यह CS50 है.