1 00:00:00,000 --> 00:00:03,493 >> [Music kucheza] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: Katika video wetu juu ya mada ya maendeleo ya mtandao, 4 00:00:07,100 --> 00:00:10,560 tumekuwa zilizotajwa dhana ya Mbegu mara chache, sawa? 5 00:00:10,560 --> 00:00:12,700 Hivyo orodha uko pengine ukoo na kutoka 6 00:00:12,700 --> 00:00:15,780 kusema kwa kutumia Microsoft Excel au Spreadsheets Google. 7 00:00:15,780 --> 00:00:20,650 Ni kweli tu kupangwa seti ya meza, safu, na nguzo. 8 00:00:20,650 --> 00:00:23,140 >> Na database ni wapi Maduka ya tovuti yetu 9 00:00:23,140 --> 00:00:26,760 habari ambazo ni muhimu kwa tovuti yetu kufanya kazi vizuri. 10 00:00:26,760 --> 00:00:30,150 Tena, mfano kweli ya kawaida hapa ni hifadhi ya majina ya watumiaji na nywila 11 00:00:30,150 --> 00:00:32,824 katika database, hivyo kwamba wakati user magogo katika tovuti yetu, 12 00:00:32,824 --> 00:00:36,690 Mbegu yanaweza aliuliza kuona kama mtumiaji ambao upo katika database. 13 00:00:36,690 --> 00:00:39,260 Na kama ni, kuangalia kwamba password yao ni sahihi. 14 00:00:39,260 --> 00:00:43,420 Na kama password yao ni sahihi, basi tunaweza kuwapa chochote ukurasa 15 00:00:43,420 --> 00:00:45,370 wao ni kuomba. 16 00:00:45,370 --> 00:00:48,590 >> Hivyo wewe pengine, tena, ukoo na wazo hili kutoka Excel au Google 17 00:00:48,590 --> 00:00:49,430 Spreadsheets. 18 00:00:49,430 --> 00:00:52,980 Tuna database, meza, safu, na nguzo. 19 00:00:52,980 --> 00:00:56,450 Na kwamba ni kweli aina seti ya msingi 20 00:00:56,450 --> 00:00:58,470 ya kihierarkia kuvunjika hapa. 21 00:00:58,470 --> 00:00:59,800 Hivyo hapa ni spreadsheet Excel. 22 00:00:59,800 --> 00:01:02,640 Na kama wameweza milele kufunguliwa huu au mpango mwingine sawa 23 00:01:02,640 --> 00:01:06,780 unajua kwamba hawa hapa ni rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Hizi ni nguzo. 25 00:01:08,760 --> 00:01:11,790 >> Labda chini hapa, ingawa wewe may si kutumia kipengele hiki sana much-- 26 00:01:11,790 --> 00:01:15,370 Mimi itabidi kuvuta in-- tuna wazo hili la karatasi. 27 00:01:15,370 --> 00:01:17,930 Hivyo labda karatasi hizi, kama Mimi mbadala na kurudi, 28 00:01:17,930 --> 00:01:21,600 meza mbalimbali ambazo zipo katika orodha yangu. 29 00:01:21,600 --> 00:01:25,210 Na tukiendelea mfano zote njia, jina la orodha hii 30 00:01:25,210 --> 00:01:26,940 ni Kitabu cha 1. 31 00:01:26,940 --> 00:01:28,710 Labda nina Kitabu 2 na Kitabu 3. 32 00:01:28,710 --> 00:01:33,270 Hivyo kila faili Excel ni Mbegu, kila karatasi ni meza, 33 00:01:33,270 --> 00:01:39,530 na ndani ya kila meza nina wazo hili la safu na nguzo. 34 00:01:39,530 --> 00:01:41,900 >> Hivyo ni jinsi gani mimi kufanya kazi na database hii? 35 00:01:41,900 --> 00:01:43,630 Je, mimi kupata maelezo kutoka humo? 36 00:01:43,630 --> 00:01:47,540 Naam kuna lugha inayoitwa SQL-- ambayo mimi kawaida tu kuwaita Sequel-- 37 00:01:47,540 --> 00:01:50,010 na anasimama kwa Uliza muundo lugha. 38 00:01:50,010 --> 00:01:52,981 Na ni lugha ya programu, lakini ni programu ya haki mdogo 39 00:01:52,981 --> 00:01:53,480 lugha. 40 00:01:53,480 --> 00:01:56,407 Siyo kabisa kama wengine kwamba tuna kazi na. 41 00:01:56,407 --> 00:01:58,240 Lakini Madhumuni ya hii lugha ya programu 42 00:01:58,240 --> 00:02:01,570 ni swala Mbegu, kwa kuuliza maelezo ya Mbegu, 43 00:02:01,570 --> 00:02:04,480 kupata taarifa katika Mbegu, na kadhalika. 44 00:02:04,480 --> 00:02:08,449 >> Sisi pia, katika CS50 na ni sana jukwaa la kawaida, ni kuitwa MySQL. 45 00:02:08,449 --> 00:02:10,600 Hiyo ni nini sisi kutumia katika kozi. 46 00:02:10,600 --> 00:02:12,880 Ni wazi chanzo jukwaa kwamba itaanzisha 47 00:02:12,880 --> 00:02:16,732 kinachojulikana kimahusiano database-- Mbegu, kwa ufanisi. 48 00:02:16,732 --> 00:02:18,440 Hatuna haja ya kupata kuingia kwa undani sana 49 00:02:18,440 --> 00:02:20,930 juu ya nini database kimahusiano ni. 50 00:02:20,930 --> 00:02:24,650 Lakini lugha SQL ni hawatambui sana katika kazi 51 00:02:24,650 --> 00:02:29,760 kwa MySQL na mengine yanayofanana mitindo ya database kimahusiano. 52 00:02:29,760 --> 00:02:34,010 >> Na mitambo mingi ya MySQL kuja na kitu 53 00:02:34,010 --> 00:02:37,760 aitwaye phpMyAdmin, ambayo ni user graphical 54 00:02:37,760 --> 00:02:40,970 interface-- GUI-- kwamba inafanya kuwa zaidi kidogo 55 00:02:40,970 --> 00:02:44,410 user kirafiki kutekeleza maswali database, 56 00:02:44,410 --> 00:02:48,980 kwa sababu database ni si tu kutumika na programmers ya juu, sawa? 57 00:02:48,980 --> 00:02:51,510 Wakati mwingine kuna wafanyabiashara hawa wadogo, 58 00:02:51,510 --> 00:02:53,900 na wao hawawezi kuajiri timu ya programmers, 59 00:02:53,900 --> 00:02:56,700 lakini bado wanahitaji kuhifadhi habari katika database. 60 00:02:56,700 --> 00:02:59,300 >> Kitu kama phpMyAdmin inafanya kuwa rahisi sana kwa mtu 61 00:02:59,300 --> 00:03:03,630 ambao kamwe iliyowekwa mbele ya kuchukua na kuwa ukoo na jinsi 62 00:03:03,630 --> 00:03:07,710 kufanya kazi na database. 63 00:03:07,710 --> 00:03:11,800 Tatizo ni, phpMyAdmin, wakati ni ajabu chombo kwa ajili ya kujifunza 64 00:03:11,800 --> 00:03:14,850 kuhusu database, ni mwongozo. 65 00:03:14,850 --> 00:03:18,050 Wewe ni kwenda na kuingia katika hiyo na kutekeleza amri na aina 66 00:03:18,050 --> 00:03:19,910 mambo katika manually. 67 00:03:19,910 --> 00:03:23,160 >> Na kama tunajua kutoka wetu mfano juu ya PHP programu ya mtandao, 68 00:03:23,160 --> 00:03:26,550 kuwa na manually kufanya mambo kwenye tovuti yetu, 69 00:03:26,550 --> 00:03:30,970 kama tunataka nguvu, kazi msikivu tovuti, labda si njia bora. 70 00:03:30,970 --> 00:03:33,980 Tungependa kutafuta njia ya labda aĆ­tomate hii kwa namna fulani. 71 00:03:33,980 --> 00:03:37,864 Na SQL yatatuwezesha kufanya hivyo. 72 00:03:37,864 --> 00:03:39,780 Hivyo wakati tunakwenda kuanza kufanya kazi na SQL, 73 00:03:39,780 --> 00:03:41,220 sisi kwanza haja ya kuwa na Mbegu kufanya kazi pamoja. 74 00:03:41,220 --> 00:03:42,510 Kujenga database ni kitu pengine 75 00:03:42,510 --> 00:03:45,350 atafanya katika phpMyAdmin, kwa sababu utasikia tu haja ya kufanya hivyo mara moja, 76 00:03:45,350 --> 00:03:49,690 na syntax kwa kufanya hivyo ni mengi zaidi moja kwa moja. 77 00:03:49,690 --> 00:03:51,940 Ni rahisi sana kufanya hivyo katika graphic user interface 78 00:03:51,940 --> 00:03:53,520 kuliko kuandika ni nje kama amri. 79 00:03:53,520 --> 00:03:55,186 Amri wanaweza kupata mbaya kidogo. 80 00:03:55,186 --> 00:03:58,889 Vile vile, kujenga meza Unaweza kupata kidogo kabisa mbaya pia. 81 00:03:58,889 --> 00:04:01,930 Na hivyo mambo kama kujenga database na kujenga meza, ambayo uko 82 00:04:01,930 --> 00:04:06,270 pengine tu kwenda kufanya once-- mara moja kwa meza, mara moja kwa database-- 83 00:04:06,270 --> 00:04:09,040 ni sawa kufanya hivyo katika graphical interface. 84 00:04:09,040 --> 00:04:11,570 Katika mchakato wa kujenga meza, utasikia 85 00:04:11,570 --> 00:04:14,840 pia kuwa na bayana wote wa nguzo ambayo itakuwa katika meza hiyo. 86 00:04:14,840 --> 00:04:18,149 Ni aina gani ya habari kufanya unataka kuhifadhi katika meza? 87 00:04:18,149 --> 00:04:24,520 Labda jina la mtumiaji na tarehe ya kuzaliwa, neno la siri, user ID idadi, na labda 88 00:04:24,520 --> 00:04:26,170 mji na serikali, haki? 89 00:04:26,170 --> 00:04:30,080 >> Na kwa kila wakati tunataka kuongeza user Mbegu, tunataka kupata yote sita 90 00:04:30,080 --> 00:04:31,890 ya vipande wale wa habari. 91 00:04:31,890 --> 00:04:34,840 Na sisi kufanya hivyo kwa kuongeza safu ya meza. 92 00:04:34,840 --> 00:04:37,800 Hivyo sisi kwanza kujenga database, kisha sisi kujenga meza. 93 00:04:37,800 --> 00:04:40,100 Kama sehemu ya kujenga meza, sisi ni aliuliza 94 00:04:40,100 --> 00:04:44,280 kutaja kila safu kwamba tungependa katika meza hii. 95 00:04:44,280 --> 00:04:47,247 Na kisha kama sisi kuanza kuongeza habari na database 96 00:04:47,247 --> 00:04:49,580 na swala database zaidi generally-- si tu kuongeza, 97 00:04:49,580 --> 00:04:51,610 lakini kila kitu kingine sisi do-- tutaweza kuwa kushughulika 98 00:04:51,610 --> 00:04:58,870 na safu ya meza, ambayo ni moja Maelezo ya mtumiaji kutoka seti nzima. 99 00:04:58,870 --> 00:05:03,210 >> Hivyo kila safu SQL ni uwezo wa kuikopesha data ya pekee data aina. 100 00:05:03,210 --> 00:05:06,560 Hivyo sisi aina ya kuondolewa huu wazo la aina ya data katika PHP, 101 00:05:06,560 --> 00:05:08,747 lakini wao ni nyuma hapa katika SQL. 102 00:05:08,747 --> 00:05:10,080 Na kuna mengi ya aina data. 103 00:05:10,080 --> 00:05:13,420 Hapa ni 20 tu kati yao, lakini siyo hata wote. 104 00:05:13,420 --> 00:05:16,240 Hivyo tuna mawazo kama INTs-- Integers-- sisi pengine kujua 105 00:05:16,240 --> 00:05:17,760 kwamba safu hii inaweza kushikilia integers. 106 00:05:17,760 --> 00:05:21,077 Na kuna tofauti thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Labda hatuwezi daima haja kuumwa nne. 108 00:05:22,660 --> 00:05:26,800 Labda tunahitaji ka nane, na hivyo sisi Unaweza kutumia tofauti hizi kwenye integers 109 00:05:26,800 --> 00:05:28,510 kuwa nafasi kidogo zaidi ufanisi. 110 00:05:28,510 --> 00:05:31,899 Tunaweza kufanya idadi alisema, sisi anaweza kufanya yaliyo idadi uhakika. 111 00:05:31,899 --> 00:05:32,940 Hizi ni pretty sawa. 112 00:05:32,940 --> 00:05:34,773 Kuna baadhi ya tofauti, na kama wewe ungekuwa 113 00:05:34,773 --> 00:05:37,330 kama kuangalia up SQL aina ya mwongozo, wewe 114 00:05:37,330 --> 00:05:40,670 unaweza kuona nini kidogo Tofauti ni kati yao. 115 00:05:40,670 --> 00:05:43,250 >> Labda tunataka kuhifadhi taarifa kuhusu tarehe na wakati. 116 00:05:43,250 --> 00:05:47,047 Labda sisi ni kuweka wimbo wa wakati mtumiaji alijiunga tovuti yetu, 117 00:05:47,047 --> 00:05:48,880 na hivyo labda tunataka kuwa na safu hiyo ni 118 00:05:48,880 --> 00:05:52,820 tarehe wakati au timestamp kwamba inaonyesha wakati mtumiaji kweli 119 00:05:52,820 --> 00:05:54,130 saini. 120 00:05:54,130 --> 00:05:56,132 Tunaweza kufanya geometries na linestrings. 121 00:05:56,132 --> 00:05:57,340 Hii ni kweli pretty baridi. 122 00:05:57,340 --> 00:06:01,410 Tunaweza ramani nje eneo la kijiografia kwa kutumia 123 00:06:01,410 --> 00:06:05,110 GIS kuratibu njama nje eneo hilo. 124 00:06:05,110 --> 00:06:08,580 Hivyo unaweza kweli kuhifadhi aina hiyo wa habari katika safu SQL. 125 00:06:08,580 --> 00:06:11,390 >> TEXT ni matone kubwa ya maandishi, labda. 126 00:06:11,390 --> 00:06:12,840 ENUMs ni aina ya kuvutia. 127 00:06:12,840 --> 00:06:16,080 Wao kweli zipo katika C. Hatuna majadiliano juu yao kwa sababu wao siyo 128 00:06:16,080 --> 00:06:19,110 sana kawaida kutumika, angalau CS50. 129 00:06:19,110 --> 00:06:22,680 Lakini ni aina data enumerated, ambayo ni uwezo wa kufanya maadili mdogo. 130 00:06:22,680 --> 00:06:25,940 >> Mfano mzuri hapa itakuwa kujenga enum ambapo saba 131 00:06:25,940 --> 00:06:29,394 maadili inawezekana ni Jumapili, Jumatatu, Jumanne, Jumatano, Alhamisi, Ijumaa, 132 00:06:29,394 --> 00:06:30,060 Jumamosi, sawa? 133 00:06:30,060 --> 00:06:33,311 Aina hiyo data Siku ya Wiki haipo, 134 00:06:33,311 --> 00:06:35,310 lakini tunaweza kujenga enumerated aina takwimu hizo 135 00:06:35,310 --> 00:06:39,400 kwamba safu kwamba anayeweza kamwe tu kushikilia mmoja wa wale saba maadili iwezekanavyo. 136 00:06:39,400 --> 00:06:44,300 Tumekuwa enumerated zote maadili iwezekanavyo. 137 00:06:44,300 --> 00:06:47,630 >> Basi tuna CHAR na VARCHAR, na nimekuwa rangi ya kijani hizi 138 00:06:47,630 --> 00:06:49,505 kwa sababu sisi ni kweli kwenda kuchukua pili 139 00:06:49,505 --> 00:06:51,950 kuzungumzia tofauti kati ya mambo haya mawili. 140 00:06:51,950 --> 00:06:55,780 Hivyo CHAR, tofauti na C ambapo CHAR ilikuwa tabia moja, 141 00:06:55,780 --> 00:07:00,730 katika SQL CHAR inahusu fasta urefu wa kamba. 142 00:07:00,730 --> 00:07:02,620 Na wakati sisi kujenga hii safu, sisi kweli 143 00:07:02,620 --> 00:07:05,070 Unaweza kutaja urefu wa kamba. 144 00:07:05,070 --> 00:07:08,080 >> Hivyo katika mfano huu, tunaweza kusema CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Hiyo ina maana kwamba kila kipengele cha safu kwamba 146 00:07:11,190 --> 00:07:13,910 itakuwa na wajumbe wa 10 ka wa habari. 147 00:07:13,910 --> 00:07:15,770 Hakuna zaidi, si chini. 148 00:07:15,770 --> 00:07:21,780 Hivyo kama sisi kujaribu na kuweka katika 15 kidogo au kipengele 15 tabia 149 00:07:21,780 --> 00:07:25,340 au thamani katika safu hii, sisi ni tu kupata kwanza 10. 150 00:07:25,340 --> 00:07:27,290 Kama sisi kuweka katika wawili tabia ya muda mrefu thamani, 151 00:07:27,290 --> 00:07:30,700 tunakwenda kuwa na mbili wahusika, na kisha nane null kuumwa. 152 00:07:30,700 --> 00:07:34,990 Tutaweza kamwe kuwa na ufanisi zaidi kuliko hiyo. 153 00:07:34,990 --> 00:07:37,727 >> VARCHAR ni aina ya kama dhana yetu ya kamba 154 00:07:37,727 --> 00:07:39,560 kwamba sisi ni ukoo na kutoka C au kutoka PHP. 155 00:07:39,560 --> 00:07:40,830 Ni urefu wa kamba kutofautiana. 156 00:07:40,830 --> 00:07:42,560 Na wakati kujenga safu hii, wewe tu 157 00:07:42,560 --> 00:07:44,860 kutaja kiwango cha juu urefu iwezekanavyo. 158 00:07:44,860 --> 00:07:49,065 Hivyo labda 99, au kawaida 255. 159 00:07:49,065 --> 00:07:50,440 Hiyo itakuwa upeo wa urefu. 160 00:07:50,440 --> 00:07:52,890 Na hivyo kama tulikuwa kuhifadhi 15 tabia kamba, 161 00:07:52,890 --> 00:07:56,157 tunataka kutumia 15 ka, labda 16 ka for Terminator. 162 00:07:56,157 --> 00:07:57,990 Kama tulikuwa kuhifadhi kamba tabia tatu, 163 00:07:57,990 --> 00:08:01,120 tunataka kutumia ka mitatu au minne. 164 00:08:01,120 --> 00:08:03,050 Lakini sisi bila kutumia full 99. 165 00:08:03,050 --> 00:08:05,190 >> Hivyo ni kwa nini tuna zote mbili? 166 00:08:05,190 --> 00:08:08,210 Naam, kama tunahitaji kufikiri jinsi muda mrefu kitu ni pamoja na VARCHAR, 167 00:08:08,210 --> 00:08:10,680 tuna aina ya iterate hela yake tu kama tulivyofanya katika C 168 00:08:10,680 --> 00:08:12,230 na takwimu nje ambapo ataacha. 169 00:08:12,230 --> 00:08:15,920 Wakati kama tukijua kwamba kila kitu katika safu hii ni 10 ka, labda 170 00:08:15,920 --> 00:08:19,220 tunajua kwamba habari, tunaweza kuruka Ka 10, 10 ka, 10 ka, 10 ka, 171 00:08:19,220 --> 00:08:21,790 na daima kupata mwanzo wa kamba. 172 00:08:21,790 --> 00:08:25,210 >> Hivyo sisi kuwa na baadhi ya kupita nafasi kwa CHAR, 173 00:08:25,210 --> 00:08:28,510 lakini labda kuna biashara mbali ya kuwa na kasi bora 174 00:08:28,510 --> 00:08:30,160 katika punde database. 175 00:08:30,160 --> 00:08:32,330 Lakini labda tunataka mabadiliko ya VARCHAR 176 00:08:32,330 --> 00:08:36,710 badala ya having-- Kama CHAR yetu ilikuwa 255, lakini zaidi ya watumiaji wetu 177 00:08:36,710 --> 00:08:40,537 walikuwa tu inputting ka mitatu au minne thamani cha habari au tatu au nne 178 00:08:40,537 --> 00:08:41,870 wahusika thamani ya habari. 179 00:08:41,870 --> 00:08:44,324 >> Lakini baadhi ya watumiaji walikuwa wanatumia 255 mzima, labda 180 00:08:44,324 --> 00:08:45,990 VARCHAR itakuwa sahihi zaidi huko. 181 00:08:45,990 --> 00:08:49,840 Ni aina ya biashara mbali, na ujumla kwa madhumuni ya CS50, 182 00:08:49,840 --> 00:08:54,107 huna haja ya kuwa na wasiwasi sana kuhusu kama wewe kutumia CHAR au VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Lakini katika ulimwengu wa kweli, mambo hayo je jambo kwa sababu yote ya nguzo hizi 184 00:08:57,190 --> 00:08:59,300 kuchukua nafasi halisi ya kimwili. 185 00:08:59,300 --> 00:09:04,150 Na nafasi ya kimwili, katika ulimwengu wa kweli, anakuja katika premium. 186 00:09:04,150 --> 00:09:06,800 >> Hivyo kuzingatia wengine moja wakati wewe ni kujenga meza 187 00:09:06,800 --> 00:09:09,840 ni kuchukua safu moja kuwa kile kinachoitwa muhimu ya msingi. 188 00:09:09,840 --> 00:09:14,350 Na muhimu ya msingi ni safu ambapo kila moja thamani ni ya kipekee. 189 00:09:14,350 --> 00:09:19,980 Na hiyo ina maana kwamba unaweza kwa urahisi kubaini nje safu moja tu kwa kuangalia 190 00:09:19,980 --> 00:09:22,450 katika msingi muhimu wa mstari huo. 191 00:09:22,450 --> 00:09:24,580 Hivyo kwa mfano, wewe ujumla, kwa watumiaji, 192 00:09:24,580 --> 00:09:27,210 hawataki watumiaji wawili ambao kuwa sawa user ID idadi. 193 00:09:27,210 --> 00:09:28,960 Na hivyo labda una kura ya habari, 194 00:09:28,960 --> 00:09:30,793 na labda watumiaji mbili Unaweza na name-- sawa 195 00:09:30,793 --> 00:09:32,650 una John Smith na John Smith. 196 00:09:32,650 --> 00:09:34,520 Hiyo ni si lazima tatizo, kwa sababu kuna watu mbalimbali 197 00:09:34,520 --> 00:09:35,830 katika dunia aitwaye John Smith. 198 00:09:35,830 --> 00:09:40,766 Lakini sisi tu user moja ID idadi 10, mtumiaji mmoja ID namba 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Hatuna watumiaji mbili na idadi sawa, 200 00:09:42,640 --> 00:09:46,010 na hivyo labda user ID nambari itakuwa muhimu ya msingi mzuri. 201 00:09:46,010 --> 00:09:48,610 >> Hatuna kurudia wowote, na tunaweza sasa ya kipekee 202 00:09:48,610 --> 00:09:52,619 kutambua kila safu moja tu kwa kuangalia safu hiyo. 203 00:09:52,619 --> 00:09:55,410 Uchaguzi wa funguo za msingi kweli anaweza kufanya shughuli meza baadae 204 00:09:55,410 --> 00:09:59,710 rahisi sana kwa sababu unaweza kujiinua ukweli kwamba safu fulani mapenzi 205 00:09:59,710 --> 00:10:02,720 kuwa ya kipekee, au safu fulani ya Mbegu yako au meza 206 00:10:02,720 --> 00:10:06,030 itakuwa ya kipekee ya kuchukua nje hasa safu. 207 00:10:06,030 --> 00:10:08,790 >> Unaweza pia kuwa na msingi pamoja muhimu, ambayo unaweza kupata tukio 208 00:10:08,790 --> 00:10:11,720 kutumia, ambayo ni haki mchanganyiko wa nguzo mbili kwamba 209 00:10:11,720 --> 00:10:13,280 ni uhakika kuwa ya kipekee. 210 00:10:13,280 --> 00:10:16,410 Hivyo labda una moja safu hiyo ni Kama na Bs, 211 00:10:16,410 --> 00:10:19,290 safu moja hiyo ni moja, mbili, na tatu, lakini utasikia milele tu 212 00:10:19,290 --> 00:10:23,660 kuwa A1 moja, moja A2, na kadhalika na kadhalika. 213 00:10:23,660 --> 00:10:28,980 Lakini unaweza kuwa na B2, C2, au A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Hivyo unaweza kuwa na As nyingi, nyingi Bs, ndio nyingi, wawili-wawili nyingi, 215 00:10:32,840 --> 00:10:38,567 lakini unaweza tu milele kuwa moja A1, B2, C3, na kadhalika. 216 00:10:38,567 --> 00:10:40,400 Hivyo kama nilivyosema, SQL ni lugha ya programu, 217 00:10:40,400 --> 00:10:42,024 lakini ina msamiati haki mdogo. 218 00:10:42,024 --> 00:10:44,880 Siyo kabisa kama pana kama ilivyo C na PHP na lugha nyingine 219 00:10:44,880 --> 00:10:46,350 kwamba tunazungumza katika mwendo. 220 00:10:46,350 --> 00:10:49,960 Ni zaidi verbose a lugha ya nini tuko 221 00:10:49,960 --> 00:10:52,789 kwenda kuzungumza kuhusu katika hii video, kwa sababu katika video hii 222 00:10:52,789 --> 00:10:54,830 sisi ni kwenda kuzungumza kuhusu shughuli nne kwamba sisi 223 00:10:54,830 --> 00:10:55,720 anaweza kufanya juu ya meza. 224 00:10:55,720 --> 00:10:56,761 >> Kuna zaidi ya hii. 225 00:10:56,761 --> 00:10:58,730 Tunaweza kufanya zaidi ya hayo, lakini kwa madhumuni yetu, 226 00:10:58,730 --> 00:11:02,250 sisi ni ujumla itakuwa ni ya kutumia tu nne operations-- kuingiza, 227 00:11:02,250 --> 00:11:05,360 kuchagua, update, na kufuta. 228 00:11:05,360 --> 00:11:08,750 Na pengine unaweza nadhani intuitively nini zote nne za mambo hayo kufanya. 229 00:11:08,750 --> 00:11:12,520 Lakini tutaweza kwenda katika kidogo cha zaidi juu ya kila mmoja. 230 00:11:12,520 --> 00:11:15,780 >> Hivyo kwa madhumuni ya hii video, hebu kudhani 231 00:11:15,780 --> 00:11:18,870 tuna zifuatazo miwili meza katika database moja. 232 00:11:18,870 --> 00:11:23,460 Tuna meza inayoitwa Watumiaji ambayo ina nne columns-- ID idadi, jina la mtumiaji, 233 00:11:23,460 --> 00:11:25,350 neno la siri, na jina kamili. 234 00:11:25,350 --> 00:11:27,430 Na tuna pili meza katika orodha hiyo 235 00:11:27,430 --> 00:11:32,129 aitwaye Moms kwamba maduka ya habari tu kuhusu jina la mtumiaji na mama. 236 00:11:32,129 --> 00:11:33,920 Hivyo kwa wote wa mifano katika video hii, tutaweza 237 00:11:33,920 --> 00:11:37,945 kutumia orodha hii na updates na baadae yake. 238 00:11:37,945 --> 00:11:40,070 Basi hebu kusema tunataka kuongeza habari kwa meza. 239 00:11:40,070 --> 00:11:44,460 Hiyo ni nini operesheni kuingiza gani. 240 00:11:44,460 --> 00:11:46,550 Katika kueleza yote ya amri hizi, mimi nina kwenda 241 00:11:46,550 --> 00:11:48,860 kukupa mifupa ujumla kutumia. 242 00:11:48,860 --> 00:11:51,661 Kwa sababu kimsingi, maswali wanaenda kuangalia pretty sawa, 243 00:11:51,661 --> 00:11:54,660 tunakwenda tu kuwa kubadilisha vipande tofauti kidogo cha habari 244 00:11:54,660 --> 00:11:56,750 kufanya mambo mbalimbali na meza. 245 00:11:56,750 --> 00:11:59,200 >> Hivyo kwa Insert, mifupa Inaonekana aina ya kama hii. 246 00:11:59,200 --> 00:12:02,230 Tunataka kuingiza ndani Hasa meza. 247 00:12:02,230 --> 00:12:05,290 Basi tuna mabano wazi na orodha ya nguzo 248 00:12:05,290 --> 00:12:08,070 kwamba tunataka kuweka maadili ndani. 249 00:12:08,070 --> 00:12:10,974 Karibu mabano, kufuatia maadili, na kisha 250 00:12:10,974 --> 00:12:13,390 tena, sisi orodha nje maadili tunataka kuweka katika meza. 251 00:12:13,390 --> 00:12:15,950 >> Hivyo Mfano wa hili itakuwa yafuatayo. 252 00:12:15,950 --> 00:12:19,170 Nataka kuingiza ndani ya meza watumiaji columns-- zifuatazo 253 00:12:19,170 --> 00:12:21,010 username, password, na majina kamili. 254 00:12:21,010 --> 00:12:25,282 Hivyo safu mpya ambapo mimi nina kuweka katika nguzo wale watatu na tuko 255 00:12:25,282 --> 00:12:30,030 kwenda kuweka katika maadili Newman, USMAIL, na Newman. 256 00:12:30,030 --> 00:12:32,730 Hivyo katika kesi hii, mimi nina kuweka NEWMAN ndogo 257 00:12:32,730 --> 00:12:38,710 ndani ya safu username, password USMAIL, na jina kamili mtaji N 258 00:12:38,710 --> 00:12:41,940 Newman katika safu majina kamili. 259 00:12:41,940 --> 00:12:44,240 >> Hivyo hapa ni nini orodha inaonekana kama kabla. 260 00:12:44,240 --> 00:12:48,250 Hapa ni nini meza watumiaji juu ya juu inaonekana kama kabla sisi alifanya hivyo. 261 00:12:48,250 --> 00:12:50,760 Baada ya sisi kutekeleza hii swala, sisi kupata hii. 262 00:12:50,760 --> 00:12:54,790 Tumekuwa aliongeza safu mpya ya meza. 263 00:12:54,790 --> 00:12:56,810 Lakini taarifa neno hili kwamba sikuwa kutaja, 264 00:12:56,810 --> 00:12:59,880 lakini kwa namna fulani mimi nimepata thamani kwa, ambayo ni hii 12 hapa hapa. 265 00:12:59,880 --> 00:13:02,820 Mimi hakusema nilitaka kuweka idadi ID huko. 266 00:13:02,820 --> 00:13:04,900 Nilitaka kuweka jina la mtumiaji, neno la siri, majina kamili. 267 00:13:04,900 --> 00:13:06,440 Na mimi kwamba, hiyo ni nzuri. 268 00:13:06,440 --> 00:13:07,760 >> Lakini mimi pia alipata huu 12. 269 00:13:07,760 --> 00:13:09,490 Kwa nini mimi kupata hii 12? 270 00:13:09,490 --> 00:13:12,904 Naam, ni zamu nje kwamba wakati wewe ni kufafanua 271 00:13:12,904 --> 00:13:15,570 safu kwamba ni kwenda kuwa yako muhimu ya msingi, ambayo ni kawaida, 272 00:13:15,570 --> 00:13:16,510 kama nilivyosema, namba ya kitambulisho. 273 00:13:16,510 --> 00:13:18,718 Siyo kila mara lazima kwenda kuwa idadi ID, 274 00:13:18,718 --> 00:13:22,380 lakini ni kawaida wazo nzuri ya kuwa baadhi ya aina ya thamani integer. 275 00:13:22,380 --> 00:13:25,950 Una fursa katika phpMyAdmin wakati wewe ni kujenga orodha yako 276 00:13:25,950 --> 00:13:31,130 au meza yako kuweka kwamba safu kama auto incrementing. 277 00:13:31,130 --> 00:13:34,520 >> Ambayo ni wazo nzuri kwa kweli wakati wewe ni kufanya kazi na muhimu ya msingi, 278 00:13:34,520 --> 00:13:39,330 sababu unataka kila thamani katika safu kwamba kuwa ya kipekee. 279 00:13:39,330 --> 00:13:43,310 Na kama wewe kusahau kutaja ni kwa zaidi ya mtu mmoja, 280 00:13:43,310 --> 00:13:46,240 sasa una hali ambapo safu hiyo ni tena ya kipekee. 281 00:13:46,240 --> 00:13:50,200 Una nafasi zilizoachwa wazi miwili, hivyo unaweza hakuna tena kipekee kutambua column-- 282 00:13:50,200 --> 00:13:54,150 au huwezi tena ya kipekee kutambua mstari kulingana na safu hiyo. 283 00:13:54,150 --> 00:13:57,010 Ni kupoteza wote wa wake thamani kama msingi muhimu. 284 00:13:57,010 --> 00:14:02,010 >> Na hivyo inaonekana nini nimefanya hapa kimeundwa user ID 285 00:14:02,010 --> 00:14:07,790 safu ya magari ya nyongeza ili kila wakati mimi kuongeza habari kwa meza, 286 00:14:07,790 --> 00:14:12,220 itakuwa moja kwa moja nipe thamani ya muhimu ya msingi. 287 00:14:12,220 --> 00:14:15,570 Hivyo siwezi kamwe kusahau kufanya hivyo kwa sababu Mbegu atafanya hivyo kwa ajili yangu. 288 00:14:15,570 --> 00:14:16,587 Hivyo hiyo ni aina ya nzuri. 289 00:14:16,587 --> 00:14:18,670 Na hivyo ndiyo sababu sisi kupata 12 katika huko, kwa sababu nimekuwa 290 00:14:18,670 --> 00:14:21,772 kuweka kwamba safu hadi auto nyongeza. 291 00:14:21,772 --> 00:14:23,730 Kama mimi aliongeza mtu mwingine d kuwa 13, ikiwa mimi aliongeza 292 00:14:23,730 --> 00:14:27,890 mtu mwingine d kuwa 14, na kadhalika. 293 00:14:27,890 --> 00:14:30,190 >> Basi hebu tu kufanya moja zaidi kuingizwa. 294 00:14:30,190 --> 00:14:34,530 Tutaweza kuingiza ndani moms meza, katika Hasa, jina la mtumiaji na mama 295 00:14:34,530 --> 00:14:37,390 safu, maadili Kramer na Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Na hivyo tulikuwa na hii kabla. 297 00:14:39,140 --> 00:14:41,800 Baada ya sisi nitafanya kwamba Swala SQL, tuna hii. 298 00:14:41,800 --> 00:14:47,290 Tumekuwa aliongeza Kramer na Babs Kramer kwa akina mama meza. 299 00:14:47,290 --> 00:14:48,350 >> Hivyo hiyo ni kuingiza. 300 00:14:48,350 --> 00:14:51,850 SELECT ni nini sisi kutumia ili kutoa taarifa kutoka meza. 301 00:14:51,850 --> 00:14:54,390 Hivyo hii ni jinsi sisi kupata Maelezo nje ya database. 302 00:14:54,390 --> 00:14:59,589 Na amri hiyo SELECT ni kwenda kuwa mara nyingi sana kutumika katika kompyuta. 303 00:14:59,589 --> 00:15:02,130 Mkuu framework-- mkuu mifupa inaonekana kama hii. 304 00:15:02,130 --> 00:15:06,550 Kuchagua seti ya nguzo kutoka meza, na kisha hiari 305 00:15:06,550 --> 00:15:11,090 unaweza kutaja condition-- au kile sisi kawaida wito prediketo, 306 00:15:11,090 --> 00:15:13,010 ni kawaida mrefu sisi kutumia katika SQL. 307 00:15:13,010 --> 00:15:16,490 >> Lakini ni kimsingi nini safu fulani, unataka kupata. 308 00:15:16,490 --> 00:15:19,100 Kama unataka, badala ya kupata kila kitu, nyembamba ni chini, 309 00:15:19,100 --> 00:15:20,060 hii ni wapi ingeweza kufanya hivyo. 310 00:15:20,060 --> 00:15:22,777 Na kisha hiari, unaweza pia ili kwa safu fulani. 311 00:15:22,777 --> 00:15:25,860 Hivyo labda unataka kuwa na mambo yamepangwa alphabetically kulingana na safu moja 312 00:15:25,860 --> 00:15:27,540 au alphabetically kulingana na mwenzake. 313 00:15:27,540 --> 00:15:30,610 >> Tena, WAPI na ORDER BY ni hiari. 314 00:15:30,610 --> 00:15:32,681 Lakini wao itabidi pengine kuwa useful-- hasa 315 00:15:32,681 --> 00:15:34,680 WAPI itakuwa na manufaa kwa nyembamba chini hivyo huna 316 00:15:34,680 --> 00:15:37,460 kupata Mbegu yako yote nyuma na kuwa na mchakato yake, wewe tu kupata 317 00:15:37,460 --> 00:15:39,300 vipande vya hiyo unaowajali. 318 00:15:39,300 --> 00:15:44,932 Hivyo kwa mfano, mimi kutaka kuchagua Nambari ya kitambulisho na majina kamili kutoka kwa watumiaji. 319 00:15:44,932 --> 00:15:46,140 Hivyo kile anaweza huu kuangalia kama? 320 00:15:46,140 --> 00:15:48,270 Hivyo hapa ni watumiaji yangu meza. 321 00:15:48,270 --> 00:15:51,080 Nataka kuchagua idnum na majina kamili kutoka kwa watumiaji. 322 00:15:51,080 --> 00:15:52,300 Nataka kwenda kupata? 323 00:15:52,300 --> 00:15:53,580 Mimi nina kwenda kupata hii. 324 00:15:53,580 --> 00:15:56,930 Sikuwa nyembamba ni chini, hivyo mimi nina kupata idadi ID kwa kila mstari 325 00:15:56,930 --> 00:16:00,850 na mimi nina kupata full jina kutoka kila mstari. 326 00:16:00,850 --> 00:16:02,210 >> SAWA. 327 00:16:02,210 --> 00:16:05,640 Nini kama nataka kuchagua password kutoka kwa watumiaji WHERE-- hivyo sasa 328 00:16:05,640 --> 00:16:10,370 Mimi nina kuongeza hali, predicate-- ambapo idnum ni chini ya 12. 329 00:16:10,370 --> 00:16:13,660 Hivyo hapa ni orodha yangu tena, watumiaji yangu juu ya meza. 330 00:16:13,660 --> 00:16:17,030 Nataka kwenda kupata kama nataka kuchagua habari kwamba, neno la siri, 331 00:16:17,030 --> 00:16:21,550 ambapo mtumiaji ID au idnum ni chini ya 12? 332 00:16:21,550 --> 00:16:24,910 Mimi nina kwenda kupata hii habari nyuma, haki? 333 00:16:24,910 --> 00:16:29,170 Ni hutokea kwamba idnum ni 10, chini kuliko 12, ID namba 11 chini ya 12. 334 00:16:29,170 --> 00:16:32,160 Mimi nina kupata password kwa safu hizo. 335 00:16:32,160 --> 00:16:33,914 Hiyo ni nini mimi aliuliza kwa. 336 00:16:33,914 --> 00:16:34,580 Nini kuhusu hili? 337 00:16:34,580 --> 00:16:39,170 Nini kama mimi unataka kuchagua nyota kutoka akina mama meza ambapo jina la mtumiaji sawa na Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, kuchagua nyota ni maalum aina ya kadi ya pori kinachojulikana 339 00:16:43,780 --> 00:16:45,670 kwamba sisi kutumia ili kupata kila kitu. 340 00:16:45,670 --> 00:16:48,620 Hivyo wao ni kusema kuchagua jina la mtumiaji comma mama, ambayo 341 00:16:48,620 --> 00:16:51,060 kilichotokea kwa kuwa tu nguzo mbili ya meza hii, 342 00:16:51,060 --> 00:16:53,260 Siwezi kuchagua tu nyota na kupata kila kitu 343 00:16:53,260 --> 00:16:55,030 ambapo jina la mtumiaji sawa na Jerry. 344 00:16:55,030 --> 00:16:59,380 Na hivyo kwamba ni nini napenda kupata kama mimi alifanya kwamba swala fulani. 345 00:16:59,380 --> 00:17:01,810 >> Sasa, databaser ni kubwa kwa sababu wao kuruhusu 346 00:17:01,810 --> 00:17:06,074 sisi kuandaa taarifa labda kidogo kwa ufanisi zaidi kuliko sisi 347 00:17:06,074 --> 00:17:06,740 inavyopaswa. 348 00:17:06,740 --> 00:17:10,240 Sisi si lazima kuhifadhi kila kipande muhimu cha habari 349 00:17:10,240 --> 00:17:12,230 kuhusu user katika meza moja. 350 00:17:12,230 --> 00:17:13,730 Tulikuwa na meza mbili huko. 351 00:17:13,730 --> 00:17:15,734 >> Tunahitaji kuhifadhi jina la mama ya kila mtu wa, 352 00:17:15,734 --> 00:17:18,900 na labda hatuna usalama wa jamii idadi, tuna tarehe yao ya kuzaliwa. 353 00:17:18,900 --> 00:17:21,819 Hiyo haina daima haja kuwa katika meza moja. 354 00:17:21,819 --> 00:17:25,339 Muda mrefu kama tunaweza kufafanua mahusiano kati ya tables-- 355 00:17:25,339 --> 00:17:28,440 na hapo ndipo kwamba kimahusiano Mbegu mrefu aina ya kuja 356 00:17:28,440 --> 00:17:32,130 ndani ya play-- kwa muda mrefu kama tunaweza kufafanua mahusiano kati ya meza, 357 00:17:32,130 --> 00:17:35,545 tunaweza aina ya compartmentalize au mambo ya kufikirika njia, 358 00:17:35,545 --> 00:17:37,670 ambapo sisi tu Maelezo kweli ni muhimu 359 00:17:37,670 --> 00:17:39,270 sisi huduma ya juu katika mtumiaji meza. 360 00:17:39,270 --> 00:17:43,220 Na kisha tuna maelezo saidizi au maelezo ya ziada katika meza nyingine 361 00:17:43,220 --> 00:17:48,260 kwamba tunaweza kuungana nyuma kuu watumiaji meza kwa namna ya pekee. 362 00:17:48,260 --> 00:17:52,200 >> Hivyo hapa tuna mbao hizo mbili, lakini kuna uhusiano kati yao, 363 00:17:52,200 --> 00:17:53,010 sawa? 364 00:17:53,010 --> 00:17:55,070 Inaonekana kama jina la mtumiaji inaweza kuwa kitu 365 00:17:55,070 --> 00:17:59,909 ambayo ipo katika kawaida kati hizi mbao mbili tofauti. 366 00:17:59,909 --> 00:18:01,700 Basi nini kama sisi sasa kuwa hali ambapo sisi 367 00:18:01,700 --> 00:18:06,046 wanataka kupata mtumiaji jina kamili kutoka mtumiaji meza, na mama zao 368 00:18:06,046 --> 00:18:07,170 jina kutoka meza mama? 369 00:18:07,170 --> 00:18:10,960 Hatuna njia ya kupata kuwa kama ilivyo sasa, sawa? 370 00:18:10,960 --> 00:18:17,790 Hakuna meza moja ambayo ina wote jina kamili na jina la mama. 371 00:18:17,790 --> 00:18:20,400 Hatuna chaguo kwamba kutokana na kile tumeona hadi sasa. 372 00:18:20,400 --> 00:18:22,950 >> Na hivyo tuna kuanzisha wazo la kujiunga. 373 00:18:22,950 --> 00:18:24,857 Na kujiunga na pengine zaidi complex-- 374 00:18:24,857 --> 00:18:27,940 ni kweli zaidi operesheni tata tunakwenda kuzungumzia katika video. 375 00:18:27,940 --> 00:18:30,040 Wao ni kidogo ngumu, lakini mara moja kupata hutegemea yake, 376 00:18:30,040 --> 00:18:31,248 wao ni kweli si mbaya sana. 377 00:18:31,248 --> 00:18:32,820 Ni tu kesi maalum ya SELECT. 378 00:18:32,820 --> 00:18:37,120 Tunakwenda kuchagua seti ya nguzo kutoka meza ya kujiunga na 379 00:18:37,120 --> 00:18:40,650 katika meza ya pili juu ya baadhi prediketo. 380 00:18:40,650 --> 00:18:45,340 >> Katika kesi hiyo, fikiria kuhusu hilo kama Haya meza moja ni mzunguko mmoja zaidi ya hapa, 381 00:18:45,340 --> 00:18:47,530 meza mbili ni mduara mwingine zaidi ya hapa. 382 00:18:47,530 --> 00:18:49,410 Na kwamba prediketo sehemu katikati, ni 383 00:18:49,410 --> 00:18:51,701 aina ya kama kama unafikiri kuhusu kama mchoro Venn, nini 384 00:18:51,701 --> 00:18:52,670 gani wao kwa pamoja? 385 00:18:52,670 --> 00:18:55,960 Tunataka kuunganisha mbao hizo mbili kulingana na kile walichonacho kwa pamoja 386 00:18:55,960 --> 00:19:01,230 na kujenga meza hii kubuni kuwa ni muungano wa mbili pamoja. 387 00:19:01,230 --> 00:19:03,480 Hivyo tutaweza kuona hii katika mfano na labda kwamba utakuwa msaada 388 00:19:03,480 --> 00:19:04,521 wazi ni juu kidogo. 389 00:19:04,521 --> 00:19:09,260 Hivyo labda unataka kuchagua user.fullname na moms.mother 390 00:19:09,260 --> 00:19:13,220 kutoka kwa watumiaji kujiunga katika akina mama meza katika kila hali 391 00:19:13,220 --> 00:19:16,790 ambapo safu jina la mtumiaji ni sawa baina yao. 392 00:19:16,790 --> 00:19:19,240 Na hii ni mpya syntax hapa, mtumiaji huyu. 393 00:19:19,240 --> 00:19:20,460 na moms .. 394 00:19:20,460 --> 00:19:26,697 Kama mimi nina kufanya meza nyingi pamoja, siwezi kutaja meza. 395 00:19:26,697 --> 00:19:29,530 Siwezi kutofautisha katika juu ya hasa kuwa juu ya chini sana huko. 396 00:19:29,530 --> 00:19:33,220 Siwezi kutofautisha jina la mtumiaji safu ya meza watumiaji 397 00:19:33,220 --> 00:19:36,010 kutoka jina la mtumiaji safu ya akina mama meza, ambayo ni otherwise-- 398 00:19:36,010 --> 00:19:38,070 kama sisi tu alisema jina la mtumiaji sawa na jina la mtumiaji, kwamba kweli haina 399 00:19:38,070 --> 00:19:38,970 maana yoyote. 400 00:19:38,970 --> 00:19:41,440 Tunataka kufanya hivyo ambako mechi. 401 00:19:41,440 --> 00:19:46,080 >> Hivyo siwezi kutaja meza na safu jina katika kesi ya hali 402 00:19:46,080 --> 00:19:48,370 ambapo itakuwa ni wazi nini mimi kuzungumza juu. 403 00:19:48,370 --> 00:19:51,880 Hivyo kwamba wote mimi nina kufanya kuna mimi nina akisema safu hii kutoka meza hii, 404 00:19:51,880 --> 00:19:54,020 na kuwa wazi sana. 405 00:19:54,020 --> 00:19:56,810 Hivyo tena, mimi nina kuchagua jina kamili na jina la mama 406 00:19:56,810 --> 00:20:00,950 kutoka kwa watumiaji meza wanaohusishwa pamoja na moms meza katika kila hali 407 00:20:00,950 --> 00:20:05,960 ambapo wao kushiriki kwamba column-- wao kushiriki kwamba jina la mtumiaji dhana. 408 00:20:05,960 --> 00:20:08,580 >> Hivyo hapa ni meza sisi alikuwa mbele. 409 00:20:08,580 --> 00:20:12,210 Hii ni hali ya yetu Mbegu kama ilivyo hivi sasa. 410 00:20:12,210 --> 00:20:16,390 Maelezo tuko kuchimba ni hii ya kuanza kwa. 411 00:20:16,390 --> 00:20:19,820 Hii ni meza mpya tunakwenda kujenga kuchanganya hizi kwa pamoja. 412 00:20:19,820 --> 00:20:23,585 Na taarifa sisi siyo kuonyesha Newman mstari katika mtumiaji meza, 413 00:20:23,585 --> 00:20:25,960 na sisi siyo kuonyesha Kramer mstari katika moms meza 414 00:20:25,960 --> 00:20:31,250 kwa sababu wala moja ipo katika wote sets-- katika meza zote mbili. 415 00:20:31,250 --> 00:20:36,260 >> Maelezo pekee ambayo ni ya kawaida katika kati yao ni Jerry ni katika meza wote 416 00:20:36,260 --> 00:20:39,100 na gcostanza ni katika meza zote mbili. 417 00:20:39,100 --> 00:20:42,620 Na hivyo wakati sisi kufanya SQL JOIN, nini sisi get-- na sisi kufanya kweli kupata hii. 418 00:20:42,620 --> 00:20:44,830 Ni aina ya kutofautiana kwa muda. 419 00:20:44,830 --> 00:20:47,330 Ni kama nadharia muungano wa meza mbili. 420 00:20:47,330 --> 00:20:49,930 Sisi kwa kweli kupata kitu kama hii, ambapo 421 00:20:49,930 --> 00:20:54,730 tumekuwa ilijiunga pamoja na meza juu ya habari kwamba wao kuwa pamoja. 422 00:20:54,730 --> 00:20:58,334 >> Hivyo taarifa kwamba users.username na moms.username safu, 423 00:20:58,334 --> 00:20:59,250 ni sawa. 424 00:20:59,250 --> 00:21:01,820 Hiyo ilikuwa habari kwamba alikuwa sambamba na watumiaji 425 00:21:01,820 --> 00:21:02,890 meza na akina mama meza. 426 00:21:02,890 --> 00:21:04,270 Na hivyo sisi ilijiunga nao pamoja. 427 00:21:04,270 --> 00:21:06,919 Sisi kuondolewa Kramer kwa sababu yeye haikuwepo katika meza watumiaji, 428 00:21:06,919 --> 00:21:09,710 na sisi kuondolewa Newman, kwa sababu yeye hayupo katika moms meza. 429 00:21:09,710 --> 00:21:16,450 Hivyo hii ni muungano kubuni kutumia JOIN uendeshaji wa SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Na kisha tulikuwa kuangalia kwa mtumiaji jina kamili na mama mtumiaji, 431 00:21:21,250 --> 00:21:24,999 na hivyo hii ni habari ambazo tunataka kupata kutoka swala ujumla 432 00:21:24,999 --> 00:21:26,040 kwamba sisi kufanywa na SELECT. 433 00:21:26,040 --> 00:21:28,873 Hivyo sisi alijiunga meza pamoja na sisi kuondolewa nguzo hizo mbili, 434 00:21:28,873 --> 00:21:31,610 na hivyo kwamba ni nini tunataka kupata. 435 00:21:31,610 --> 00:21:33,370 Lakini SQL anaungana aina ya ngumu. 436 00:21:33,370 --> 00:21:36,770 Pengine si kufanya nao sana, lakini tu na wazo baadhi ya mifupa 437 00:21:36,770 --> 00:21:41,992 kwamba unaweza kutumia kwa kuunganisha mbili meza pamoja kama zinahitajika. 438 00:21:41,992 --> 00:21:43,700 Mbili za mwisho ni kidogo rahisi mimi ahadi. 439 00:21:43,700 --> 00:21:48,040 Hivyo kuhuisha, tunaweza kutumia UPDATE kubadili habari katika meza. 440 00:21:48,040 --> 00:21:53,880 Muundo wa jumla ni UPDATE baadhi meza, SET baadhi safu ya baadhi ya thamani 441 00:21:53,880 --> 00:21:55,540 WAPI baadhi prediketo ni kuridhika. 442 00:21:55,540 --> 00:21:57,850 Hivyo kwa mfano, sisi kutaka update meza watumiaji 443 00:21:57,850 --> 00:22:04,400 na kuweka neno la siri kwa yada yada, ambapo nambari ya kitambulisho ni 10. 444 00:22:04,400 --> 00:22:06,400 >> Hivyo katika kesi hii, tuko kuhuisha meza watumiaji. 445 00:22:06,400 --> 00:22:08,275 Nambari ya kitambulisho ni 10 kwa kwamba safu ya kwanza huko, 446 00:22:08,275 --> 00:22:10,690 na tunataka update password yada yada. 447 00:22:10,690 --> 00:22:12,170 Na hivyo ndiyo nini kitatokea. 448 00:22:12,170 --> 00:22:13,628 Ni pretty moja kwa moja, sawa? 449 00:22:13,628 --> 00:22:17,990 Ni tu rahisi sana muundo wa meza. 450 00:22:17,990 --> 00:22:22,250 >> Kufuta ni operesheni tulikuwa kuondoa habari kutoka meza. 451 00:22:22,250 --> 00:22:24,817 Kufuta kutoka meza WAPI baadhi prediketo ni kuridhika. 452 00:22:24,817 --> 00:22:26,900 Tunataka kufuta kutoka watumiaji meza kwa mfano 453 00:22:26,900 --> 00:22:28,254 ambapo jina la mtumiaji ni Newman. 454 00:22:28,254 --> 00:22:31,420 Pengine unaweza nadhani nini kinaendelea kutokea hapa baada ya sisi nitafanya kwamba SQL 455 00:22:31,420 --> 00:22:35,790 swala, Newman ni gone kutoka meza. 456 00:22:35,790 --> 00:22:40,460 >> Hivyo shughuli zote hizi, kama nilivyosema, ni rahisi sana kufanya katika phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Ni user sana kirafiki. 458 00:22:43,020 --> 00:22:45,930 Lakini haina kuhitaji juhudi mwongozo. 459 00:22:45,930 --> 00:22:47,840 Hatutaki kuajiri juhudi za mikono. 460 00:22:47,840 --> 00:22:51,280 Tunataka mipango yetu kwa kufanya hivyo kwa ajili yetu, haki? 461 00:22:51,280 --> 00:22:53,190 Hivyo sisi kutaka kufanya hii programmatically. 462 00:22:53,190 --> 00:22:56,410 Tunataka kuingiza SQL na kuwa na kitu kingine kwa kufanya hivyo kwa ajili yetu. 463 00:22:56,410 --> 00:23:02,710 >> Lakini nini sisi kuonekana kwamba inaruhusu sisi programmatically kufanya kitu? 464 00:23:02,710 --> 00:23:03,690 Tumeona PHP, sawa? 465 00:23:03,690 --> 00:23:05,760 Ni utangulizi baadhi mabadiliko katika mipango yetu. 466 00:23:05,760 --> 00:23:10,430 Na hivyo kwa bahati nzuri, SQL na PHP kucheza vizuri sana pamoja. 467 00:23:10,430 --> 00:23:13,230 Kuna kazi katika PHP aitwaye swala, ambayo inaweza kutumika. 468 00:23:13,230 --> 00:23:15,870 Na unaweza kupita kama parameter au hoja 469 00:23:15,870 --> 00:23:19,210 swala swala SQL kwamba ungependa kutekeleza. 470 00:23:19,210 --> 00:23:23,250 Na PHP atafanya hivyo kwa niaba yako. 471 00:23:23,250 --> 00:23:25,564 >> Kwa hiyo baada ya umefanya kushikamana Mbegu yako na PHP, 472 00:23:25,564 --> 00:23:26,980 kuna mchujo mbili wewe kufanya hivyo. 473 00:23:26,980 --> 00:23:29,230 Kuna kitu kinachoitwa MySQLi na kitu kinachoitwa PDO. 474 00:23:29,230 --> 00:23:31,063 Sisi si kwenda katika mkubwa Kiasi undani huko. 475 00:23:31,063 --> 00:23:32,957 Katika CS50 tunatumia PDO. 476 00:23:32,957 --> 00:23:34,790 Baada ya umefanya kushikamana Mbegu yako, wewe 477 00:23:34,790 --> 00:23:40,980 Basi unaweza kufanya maswali Mbegu yako kwa kupita maswali kama hoja 478 00:23:40,980 --> 00:23:42,730 kwa kazi PHP. 479 00:23:42,730 --> 00:23:46,460 Na wakati wa kufanya hivyo, kuhifadhi Matokeo yake kuweka katika safu associative. 480 00:23:46,460 --> 00:23:50,290 >> Na tunajua jinsi ya kufanya kazi na associative arrays katika PHP. 481 00:23:50,290 --> 00:23:52,630 Hivyo mimi anaweza kusema kitu kama hii $ results-- 482 00:23:52,630 --> 00:23:55,470 hii ni katika PHP-- sawa na swala. 483 00:23:55,470 --> 00:23:57,660 Na kisha ndani ya swala kazi ambayo hoja 484 00:23:57,660 --> 00:24:00,130 kwamba mimi nina kupita swala kwamba inaonekana kama SQL. 485 00:24:00,130 --> 00:24:01,160 Na katika ukweli kwamba ni SQL. 486 00:24:01,160 --> 00:24:05,700 Hiyo ni kamba swala ambalo napenda kama nitafanya kwenye orodha yangu. 487 00:24:05,700 --> 00:24:09,250 >> Na hivyo katika nyekundu, hii ni PHP. 488 00:24:09,250 --> 00:24:11,890 Hii ni SQL kwamba mimi nina kuunganisha katika PHP kwa kufanya 489 00:24:11,890 --> 00:24:15,020 ni hoja kwa kazi swala. 490 00:24:15,020 --> 00:24:19,640 Nataka kuchagua majina kamili kutoka watumiaji ambapo nambari ya kitambulisho sawa na 10. 491 00:24:19,640 --> 00:24:22,560 Na kisha labda baada ya mimi tumefanya kwamba, Mimi anaweza kusema kitu kama hiki. 492 00:24:22,560 --> 00:24:25,550 Nataka magazeti nje Ujumbe Shukrani kwa magogo katika. 493 00:24:25,550 --> 00:24:32,530 >> Na mimi nataka interpolate-- nataka interpolate matokeo $ majina kamili. 494 00:24:32,530 --> 00:24:36,280 Na hivyo hiyo ni jinsi mimi kazi na kwamba safu associative kwamba mimi got nyuma. 495 00:24:36,280 --> 00:24:39,730 $ matokeo majina kamili ingekuwa kimsingi kuishia uchapishaji nje, 496 00:24:39,730 --> 00:24:42,870 shukrani kwa ajili ya magogo katika, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Hiyo ilikuwa jina kamili ambapo idnum sawa na 10. 498 00:24:46,570 --> 00:24:48,850 >> Na hivyo wote mimi nina kufanya ni mimi nina now-- mimi kuhifadhiwa 499 00:24:48,850 --> 00:24:52,780 swala yangu, matokeo ya swala yangu na matokeo katika safu associative, 500 00:24:52,780 --> 00:24:56,330 na majina kamili ni jina la safu nilikuwa kupata kwa. 501 00:24:56,330 --> 00:25:01,010 Hivyo hiyo ni muhimu yangu katika matokeo safu associative kwamba nataka. 502 00:25:01,010 --> 00:25:05,930 Hivyo Shukrani kwa magogo katika, matokeo $, majina kamili magazeti nje, itakuwa fimbo 503 00:25:05,930 --> 00:25:08,654 haki katika kati ya wale curly braces, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Na mimi itabidi kama magazeti nje ujumbe Shukrani kwa ajili ya kuingia katika Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Sasa, sisi pengine hawataki ngumu kificho mambo kama hayo katika, sawa? 506 00:25:16,652 --> 00:25:19,860 Sisi kutaka kufanya kitu kama magazeti f, ambapo tunaweza mbadala na labda 507 00:25:19,860 --> 00:25:22,443 kukusanya taarifa mbalimbali, au labda na mchakato swala 508 00:25:22,443 --> 00:25:23,370 taarifa mbalimbali. 509 00:25:23,370 --> 00:25:27,920 Na hivyo swala, kazi swala ina wazo hili la aina ya mabadilisho 510 00:25:27,920 --> 00:25:32,310 sawa na asilimia s magazeti f na asilimia c, ni alama ya kuuliza. 511 00:25:32,310 --> 00:25:34,290 >> Na tunaweza kutumia swali alama kama mfano sana 512 00:25:34,290 --> 00:25:38,400 magazeti f kwa vigezo mbadala. 513 00:25:38,400 --> 00:25:44,120 Hivyo labda user yako watumiaji katika mapema, na kuokolewa mtumiaji zao idadi ID 514 00:25:44,120 --> 00:25:51,710 katika $ _session ya PHP super kimataifa katika ID ufunguo. 515 00:25:51,710 --> 00:25:55,947 Hivyo labda baada ya wao umeingia, kuweka $ _session ID sawa na 10, 516 00:25:55,947 --> 00:25:58,280 extrapolating kutokana na mfano sisi tu kuona pili iliyopita. 517 00:25:58,280 --> 00:26:01,960 >> Na hivyo wakati sisi kweli nitafanya hii swala matokeo sasa, 518 00:26:01,960 --> 00:26:08,440 ingekuwa kuziba katika 10, au chochote $ _session ID thamani ya kitu. 519 00:26:08,440 --> 00:26:10,790 Na hivyo kuwa inaruhusu sisi kuwa kidogo nguvu zaidi. 520 00:26:10,790 --> 00:26:12,699 Sisi siyo ngumu coding mambo katika tena. 521 00:26:12,699 --> 00:26:14,490 Sisi ni kuokoa maelezo mahali fulani na kisha 522 00:26:14,490 --> 00:26:18,924 tunaweza kutumia taarifa ambazo tena kwa aina ya kujumlisha nini tunataka kufanya, 523 00:26:18,924 --> 00:26:21,090 na kuziba-katika haki na mabadiliko tabia ya ukurasa wetu 524 00:26:21,090 --> 00:26:26,489 kulingana na kile mtumiaji ID idadi kweli ni baada ya wameweza watumiaji katika. 525 00:26:26,489 --> 00:26:28,530 Ni pia inawezekana, ingawa, kwamba matokeo yako kuweka 526 00:26:28,530 --> 00:26:30,840 inaweza wajumbe wa safu mbalimbali. 527 00:26:30,840 --> 00:26:33,990 Katika kesi ambayo, una safu ya arrays-- 528 00:26:33,990 --> 00:26:35,334 safu ya associative arrays. 529 00:26:35,334 --> 00:26:37,000 Na wewe tu haja ya iterate kwa njia hiyo. 530 00:26:37,000 --> 00:26:41,950 Na tunajua jinsi ya iterate kupitia safu katika PHP, sawa? 531 00:26:41,950 --> 00:26:45,600 Hivyo hapa pengine ni Jambo tata tumeona hadi sasa. 532 00:26:45,600 --> 00:26:49,640 Ni kweli samlar lugha tatu kwa pamoja. 533 00:26:49,640 --> 00:26:52,920 >> Hapa katika nyekundu, hii ni baadhi HTML. 534 00:26:52,920 --> 00:26:56,872 Mimi inaonekana starting-- hii ni snippet ya baadhi HTML kwamba nina. 535 00:26:56,872 --> 00:26:59,580 Mimi nina kuanza aya mpya ambayo Anasema akina mama wa TV Seinfeld. 536 00:26:59,580 --> 00:27:02,350 Na kisha mara baada ya Mimi nina kuanza meza. 537 00:27:02,350 --> 00:27:06,060 Na kisha baada ya hapo, mimi kuwa na baadhi ya PHP, sawa? 538 00:27:06,060 --> 00:27:08,229 Nina yote haya kificho PHP huko. 539 00:27:08,229 --> 00:27:09,645 Mimi inaonekana kwenda kufanya swala. 540 00:27:09,645 --> 00:27:14,180 Na kufanya swala, mimi nina kwenda kwa kuwa kwa kutumia akina mama SELECT kutoka moms. 541 00:27:14,180 --> 00:27:15,970 >> Hivyo hii ni getting-- hii ni SQL. 542 00:27:15,970 --> 00:27:17,300 Hivyo bluu ni SQL. 543 00:27:17,300 --> 00:27:19,680 Nyekundu tuliona pili iliyopita mara HTML. 544 00:27:19,680 --> 00:27:21,360 Na kijani hapa ni PHP. 545 00:27:21,360 --> 00:27:23,400 Hivyo mimi nina kufanya swala Mbegu yangu, mimi nina 546 00:27:23,400 --> 00:27:26,040 kuchagua yote ya akina mama katika moms meza. 547 00:27:26,040 --> 00:27:30,710 Si tu nyembamba ni chini ya fulani mstari, mimi nina kuuliza kwa ajili yao wote. 548 00:27:30,710 --> 00:27:33,290 >> Kisha mimi kuangalia kama matokeo ni si sawa sawa na uongo. 549 00:27:33,290 --> 00:27:37,410 Hii ni njia yangu ya kuangalia namna ya kama matokeo si sawa kwa null, 550 00:27:37,410 --> 00:27:40,260 kwamba tunataka kuona c kwa mfano. 551 00:27:40,260 --> 00:27:44,000 Kimsingi hii ni kuangalia tu kufanya kuhakikisha kwamba ni kweli got data nyuma. 552 00:27:44,000 --> 00:27:47,041 Kwa sababu mimi si unataka kuanza kuchapa nje data kama sikuweza kupata data yoyote. 553 00:27:47,041 --> 00:27:50,690 Kisha kwa kila matokeo kutokana foreach syntax na PHP, kila mimi nina kufanya 554 00:27:50,690 --> 00:27:53,399 ni uchapishaji nje akina mama $ matokeo. 555 00:27:53,399 --> 00:27:55,940 Na hivyo mimi nina kwenda kupata kuweka ya yote ya akina mama wa each-- 556 00:27:55,940 --> 00:27:59,980 ni safu associative ya arrays-- na mimi nina uchapishaji nje 557 00:27:59,980 --> 00:28:03,649 kila mmoja kama mwenyewe mstari wake wa meza. 558 00:28:03,649 --> 00:28:05,690 Na kwamba ni kweli pretty much wote kuna hiyo. 559 00:28:05,690 --> 00:28:07,750 Najua kuna kidogo kidogo kinachoendelea hapa 560 00:28:07,750 --> 00:28:13,210 katika mfano huu wa mwisho na arrays ya arrays-- arrays ya arrays associative. 561 00:28:13,210 --> 00:28:17,340 Lakini ni kweli haina jipu tu chini katika SQL kwa kufanya swala, 562 00:28:17,340 --> 00:28:21,102 Kwa kawaida kuchagua baada tumekuwa tayari kuweka habari katika meza, 563 00:28:21,102 --> 00:28:22,310 na kisha tu kuunganisha ni nje. 564 00:28:22,310 --> 00:28:25,710 >> Na hii ni tunataka kuvuta ni nje katika kesi fulani. 565 00:28:25,710 --> 00:28:31,120 Tunataka kutafuta wote wa mtu binafsi akina mama kutoka moms meza. 566 00:28:31,120 --> 00:28:35,970 Tulipata seti nzima ya yao, na sisi wanataka iterate kupitia na magazeti nje 567 00:28:35,970 --> 00:28:37,630 kila mmoja. 568 00:28:37,630 --> 00:28:40,510 Hivyo tena, hii pengine ni mfano ngumu zaidi 569 00:28:40,510 --> 00:28:44,510 tumeona sababu sisi ni kuchanganya tatu lugha mbalimbali pamoja, sawa? 570 00:28:44,510 --> 00:28:50,100 >> Tena, tuna HTML hapa katika nyekundu, kuchanganywa na baadhi SQL hapa katika bluu, 571 00:28:50,100 --> 00:28:52,049 kuchanganywa na baadhi PHP katika kijani. 572 00:28:52,049 --> 00:28:53,840 Lakini yote haya kucheza vizuri pamoja, ni 573 00:28:53,840 --> 00:28:57,060 suala la kuendeleza tabia nzuri ili uweze kupata 574 00:28:57,060 --> 00:28:58,780 wafanye kazi pamoja njia unataka. 575 00:28:58,780 --> 00:29:03,790 Na njia pekee ya kweli kufanya hivyo ni kufanya mazoezi, mazoezi, mazoezi. 576 00:29:03,790 --> 00:29:06,740 Mimi nina Doug Lloyd, hii ni CS50. 577 00:29:06,740 --> 00:29:08,647