1 00:00:00,000 --> 00:00:03,493 >> [Muzikos grojimo] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 Doug LLOYD: Mūsų video nuo interneto plėtros temomis 4 00:00:07,100 --> 00:00:10,560 mes paminėti sąvoką duomenų bazė kelis kartus, tiesa? 5 00:00:10,560 --> 00:00:12,700 Taigi duomenų esate tikriausiai susipažinęs su iš 6 00:00:12,700 --> 00:00:15,780 pasakyti, naudojant Microsoft Excel ar "Google" skaičiuoklės. 7 00:00:15,780 --> 00:00:20,650 Tai tikrai tik organizuotas lentelių rinkinys, eilutės, ir stulpelius. 8 00:00:20,650 --> 00:00:23,140 >> Ir duomenų bazė yra kur Mūsų svetainė parduotuvės 9 00:00:23,140 --> 00:00:26,760 informacija, kuri yra svarbi mūsų svetainėje, kad tinkamai veiktų. 10 00:00:26,760 --> 00:00:30,150 Vėlgi, tikrai bendra pavyzdys čia yra saugoti naudotojų vardus ir slaptažodžius 11 00:00:30,150 --> 00:00:32,824 į duomenų bazę, taip, kad kai vartotojas prisijungia prie mūsų svetainėje, 12 00:00:32,824 --> 00:00:36,690 duomenų bazė gali būti paieškoma pamatyti jei tas vartotojas yra duomenų bazėje. 13 00:00:36,690 --> 00:00:39,260 Ir jei jie yra, patikrinti, jų slaptažodis yra teisingi. 14 00:00:39,260 --> 00:00:43,420 Ir jei jų slaptažodis yra teisingi, tada mes galime suteikti jiems kokia puslapis 15 00:00:43,420 --> 00:00:45,370 jie prašo. 16 00:00:45,370 --> 00:00:48,590 >> Taigi jūs tikriausiai vėl susipažinę su šia idėja iš Excel arba Google 17 00:00:48,590 --> 00:00:49,430 Skaičiuoklės. 18 00:00:49,430 --> 00:00:52,980 Mes turime duomenų bazes, stalai, eilutės, stulpeliai ir. 19 00:00:52,980 --> 00:00:56,450 Ir tai tikrai Rūšiuoti Svarbiausieji rinkinys 20 00:00:56,450 --> 00:00:58,470 hierarchinės gedimo čia. 21 00:00:58,470 --> 00:00:59,800 Taigi čia Excel skaičiuoklę. 22 00:00:59,800 --> 00:01:02,640 Ir jei jūs kada nors atidarytas tai ar kitą panašią programą 23 00:01:02,640 --> 00:01:06,780 jūs žinote, kad jie čia yra rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Tai yra stulpeliai. 25 00:01:08,760 --> 00:01:11,790 >> Gal žemyn čia, nors jums gali ne naudoti šią funkciją siaubingai much-- 26 00:01:11,790 --> 00:01:15,370 Aš padidinti in-- turime Šis lapo idėja. 27 00:01:15,370 --> 00:01:17,930 Taigi gal šie lakštai, jei Aš pakaitomis pirmyn ir atgal, 28 00:01:17,930 --> 00:01:21,600 Yra įvairių lentelių, kad egzistuoja mano duomenų bazėje. 29 00:01:21,600 --> 00:01:25,210 Ir jei mes ir toliau pavyzdį visus būdas, šio duomenų bazės pavadinimą 30 00:01:25,210 --> 00:01:26,940 yra Užsakyti 1. 31 00:01:26,940 --> 00:01:28,710 Gal turiu knyga 2 ir 3 knygą. 32 00:01:28,710 --> 00:01:33,270 Taigi, kiekvienas Excel failas yra duomenų, kiekvienas lapas yra lentelė, 33 00:01:33,270 --> 00:01:39,530 ir viduje kiekvienos lentelės Turiu Šis eilučių ir stulpelių idėja. 34 00:01:39,530 --> 00:01:41,900 >> Taigi, kaip aš dirbu su šia duomenų bazėje? 35 00:01:41,900 --> 00:01:43,630 Kaip gauti informaciją iš jo? 36 00:01:43,630 --> 00:01:47,540 Na ten kalba vadinama SQL-- kurį aš paprastai tiesiog paskambinkite Sequel-- 37 00:01:47,540 --> 00:01:50,010 ir jis stovi už Struktūrinių užklausų kalba. 38 00:01:50,010 --> 00:01:52,981 Ir tai yra programavimo kalba, bet tai gana ribotas programavimas 39 00:01:52,981 --> 00:01:53,480 kalba. 40 00:01:53,480 --> 00:01:56,407 Tai ne visai kaip ir kiti kad mes dirbo su. 41 00:01:56,407 --> 00:01:58,240 Bet tai tikslas programavimo kalba 42 00:01:58,240 --> 00:02:01,570 yra užklausą duomenų bazę, į paklausti informacijos duomenų bazės, 43 00:02:01,570 --> 00:02:04,480 rasti informacijos į duomenų, ir taip toliau. 44 00:02:04,480 --> 00:02:08,449 >> Mes taip pat, kad CS50-- ir tai labai bendra platforma, ji vadinama "MySQL. 45 00:02:08,449 --> 00:02:10,600 Štai ką mes naudojame kurso. 46 00:02:10,600 --> 00:02:12,880 Tai atviro kodo platforma, kuri nustato 47 00:02:12,880 --> 00:02:16,732 vadinamasis reliacinės database-- duomenų bazė, efektyviai. 48 00:02:16,732 --> 00:02:18,440 Mums nereikia gauti į pernelyg daug detalių 49 00:02:18,440 --> 00:02:20,930 apie tai, kas reliacinės duomenų bazės yra. 50 00:02:20,930 --> 00:02:24,650 Bet SQL kalba yra puikiai sugeba dirbti 51 00:02:24,650 --> 00:02:29,760 su MySQL ir kitų panašių stilius reliacinių duomenų bazių. 52 00:02:29,760 --> 00:02:34,010 >> Ir dar daug įrenginiai MySQL ateiti su kažkuo 53 00:02:34,010 --> 00:02:37,760 vadinamas phpMyAdmin, kuris yra grafinė vartotojo 54 00:02:37,760 --> 00:02:40,970 interface-- yra GUI-- kad todėl šiek tiek daugiau 55 00:02:40,970 --> 00:02:44,410 patogi vykdyti Duomenų bazės užklausos, 56 00:02:44,410 --> 00:02:48,980 nes duomenų bazės nėra tik naudojamas Išplėstinė programuotojų, tiesa? 57 00:02:48,980 --> 00:02:51,510 Kartais yra Šios mažos įmonės, 58 00:02:51,510 --> 00:02:53,900 ir jie negali sau leisti samdyti komandą programuotojų, 59 00:02:53,900 --> 00:02:56,700 bet jie vis tiek reikia laikyti informacija duomenų bazėje. 60 00:02:56,700 --> 00:02:59,300 >> Kažkas panašaus phpMyAdmin labai lengva kažkam 61 00:02:59,300 --> 00:03:03,630 kas manimi niekada užprogramuotas anksčiau, kad pasiimti ir susipažinti su tuo, kaip 62 00:03:03,630 --> 00:03:07,710 dirbti su duomenų baze. 63 00:03:07,710 --> 00:03:11,800 Problema yra, phpMyAdmin, o tai fantastinis įrankis mokymosi 64 00:03:11,800 --> 00:03:14,850 apie duomenų bazių, ji yra instrukcijos. 65 00:03:14,850 --> 00:03:18,050 Jūs ketinate turi prisijungti IT ir vykdyti komandas ir tipas 66 00:03:18,050 --> 00:03:19,910 viskas rankiniu būdu. 67 00:03:19,910 --> 00:03:23,160 >> Ir kaip mes žinome iš mūsų pavyzdys PHP web programavimas, 68 00:03:23,160 --> 00:03:26,550 būtinybės rankiniu būdu padaryti dalykų mūsų svetainėje, 69 00:03:26,550 --> 00:03:30,970 jei norime dinamiškas, aktyvus reaguoja svetainė, galbūt nėra pats geriausias būdas. 70 00:03:30,970 --> 00:03:33,980 Norėtume rasti kelią į galbūt automatizuoti šį kažkaip. 71 00:03:33,980 --> 00:03:37,864 Ir SQL leis tai padaryti. 72 00:03:37,864 --> 00:03:39,780 Taigi, kai mes ketiname pradėti dirbti su SQL, 73 00:03:39,780 --> 00:03:41,220 pirmiausia turime turėti duomenų bazė dirbti. 74 00:03:41,220 --> 00:03:42,510 Sukurti duomenų bazę, yra ką jūs tikriausiai 75 00:03:42,510 --> 00:03:45,350 darys phpMyAdmin, nes jums reikia padaryti, tai tik vieną kartą, 76 00:03:45,350 --> 00:03:49,690 ir už tai sintaksė yra daug paprastesnė. 77 00:03:49,690 --> 00:03:51,940 Tai daug lengviau tai padaryti į grafinę vartotojo sąsają 78 00:03:51,940 --> 00:03:53,520 nei rašyti jį kaip komanda. 79 00:03:53,520 --> 00:03:55,186 Komandą gali gauti šiek tiek sudėtinga. 80 00:03:55,186 --> 00:03:58,889 Be to, kuriant lentelę gali gauti gana šiek tiek sudėtinga, taip pat. 81 00:03:58,889 --> 00:04:01,930 Ir taip tokie dalykai kaip sukurti duomenų bazę ir sukurti lentelę, kuri esate 82 00:04:01,930 --> 00:04:06,270 tikriausiai tik ketinate daryti once-- kartą per stalo, kartą per database-- 83 00:04:06,270 --> 00:04:09,040 viskas OK padaryti, kad grafinė sąsaja. 84 00:04:09,040 --> 00:04:11,570 Atsižvelgiant į proceso sukurti lentelę, jūs 85 00:04:11,570 --> 00:04:14,840 taip pat turi nurodyti visas kolonos, kurios bus iš toje lentelėje. 86 00:04:14,840 --> 00:04:18,149 Kokios informacijos padaryti norite išsaugoti į lentelę? 87 00:04:18,149 --> 00:04:24,520 Gal vartotojo vardas ir gimimo data, slaptažodis, vartotojo ID numerį, o gal 88 00:04:24,520 --> 00:04:26,170 miestas ir valstybė, tiesa? 89 00:04:26,170 --> 00:04:30,080 >> Ir kiekvieną kartą, kai mes norime pridėti vartotoją į duomenų bazę, mes norime gauti visų šešių 90 00:04:30,080 --> 00:04:31,890 iš šių informacijos vienetų. 91 00:04:31,890 --> 00:04:34,840 Ir mes tai darome, kad pridėjus eilutės prie stalo. 92 00:04:34,840 --> 00:04:37,800 Taigi, mes pirmiausia reikia sukurti duomenų bazę, tada mes sukurti lentelę. 93 00:04:37,800 --> 00:04:40,100 Kaip dalis sukuriant lentelė, mes paprašė 94 00:04:40,100 --> 00:04:44,280 nurodyti kiekvieną stulpelį, mes norėtume šioje lentelėje. 95 00:04:44,280 --> 00:04:47,247 Ir tada, kaip mes pradėti pridėti informacija į duomenų bazę 96 00:04:47,247 --> 00:04:49,580 ir užklausos duomenų bazėje daugiau generally-- ne tik pridedant, 97 00:04:49,580 --> 00:04:51,610 bet visa kita mes do-- mes būsime sprendžiant 98 00:04:51,610 --> 00:04:58,870 su eilių stalo, kuris yra vienas vartotojo informacija iš visą rinkinį. 99 00:04:58,870 --> 00:05:03,210 >> Taigi kiekvieną SQL stulpelis yra pajėgi laikydami duomenis tam tikros duomenų tipą. 100 00:05:03,210 --> 00:05:06,560 Taigi, mes tarsi eliminuojamas tai idėja duomenų tipų PHP, 101 00:05:06,560 --> 00:05:08,747 bet jie vėl čia SQL. 102 00:05:08,747 --> 00:05:10,080 Ir ten yra duomenų tipų aikštelė. 103 00:05:10,080 --> 00:05:13,420 Štai tik 20 iš jų, bet tai net ne visi iš jų. 104 00:05:13,420 --> 00:05:16,240 Taigi, mes turime idėjų, kaip INTs-- Integers-- mes tikriausiai žinote 105 00:05:16,240 --> 00:05:17,760 kad šis stulpelis gali turėti sveikieji skaičiai. 106 00:05:17,760 --> 00:05:21,077 Ir yra variacijos thereon-- SMALLINT, tinyint, MEDIUMINT, bigint. 107 00:05:21,077 --> 00:05:22,660 Gal mes ne visada turime keturis įkandimų. 108 00:05:22,660 --> 00:05:26,800 Gal mums reikia aštuoni baitai, ir todėl mes galite naudoti šiuos variantus skaičiais 109 00:05:26,800 --> 00:05:28,510 būti šiek tiek daugiau vietos veiksminga. 110 00:05:28,510 --> 00:05:31,899 Mes galime padaryti dešimtųjų mes gali padaryti slankiojo kablelio skaičių. 111 00:05:31,899 --> 00:05:32,940 Tai yra gana panašios. 112 00:05:32,940 --> 00:05:34,773 Yra keletas skirtumų, o jei būtų 113 00:05:34,773 --> 00:05:37,330 patinka žiūrėti up SQL tarsi vadovas, galite 114 00:05:37,330 --> 00:05:40,670 gali pamatyti, kas šiek tiek skirtumai yra tarp jų. 115 00:05:40,670 --> 00:05:43,250 >> Gal mes norime laikyti informacijos apie datą ir laiką. 116 00:05:43,250 --> 00:05:47,047 Gal mes sekti kai vartotojas prisijungė prie mūsų svetainę, 117 00:05:47,047 --> 00:05:48,880 ir taip gal mes norime turėti stulpelį, kad yra 118 00:05:48,880 --> 00:05:52,820 data laikas arba laiko žymos, kad rodo, kai vartotojas iš tikrųjų 119 00:05:52,820 --> 00:05:54,130 užsiregistravau. 120 00:05:54,130 --> 00:05:56,132 Mes galime padaryti geometrija ir linestrings. 121 00:05:56,132 --> 00:05:57,340 Tai tikrai gana kietas. 122 00:05:57,340 --> 00:06:01,410 Mes galime suplanuoti geografinėje vietovėje aprašoma naudojant 123 00:06:01,410 --> 00:06:05,110 GIS sklypas iš zoną. 124 00:06:05,110 --> 00:06:08,580 Taigi iš tikrųjų galima laikyti, kad rūšiuoti Informacijos SQL skiltyje. 125 00:06:08,580 --> 00:06:11,390 >> Tekstas tik milžinišką BLOB teksto, galbūt. 126 00:06:11,390 --> 00:06:12,840 ENUMs yra rūšies įdomus. 127 00:06:12,840 --> 00:06:16,080 Jie iš tikrųjų egzistuoja C. Mes ne kalbėti apie juos, nes jie nėra 128 00:06:16,080 --> 00:06:19,110 siaubingai dažniausiai naudojamas bent CS50. 129 00:06:19,110 --> 00:06:22,680 Bet tai yra išvardytų duomenų tipas, kuris yra pajėgi Holding Limited reikšmes. 130 00:06:22,680 --> 00:06:25,940 >> Tikrai geras pavyzdys būtų sukurti ENUM kur septynių 131 00:06:25,940 --> 00:06:29,394 Galimos reikšmės yra sekmadienis, pirmadienis, Antradienis, Trečiadienis, Ketvirtadienis, Penktadienis, 132 00:06:29,394 --> 00:06:30,060 Šeštadienį, tiesa? 133 00:06:30,060 --> 00:06:33,311 Tai duomenų tipas diena Savaitė neegzistuoja, 134 00:06:33,311 --> 00:06:35,310 bet mes galime sukurti išvardyti duomenų tipas, pavyzdžiui 135 00:06:35,310 --> 00:06:39,400 kad stulpelis gali tik kada nors turėti vienas iš tų septynių galimų verčių. 136 00:06:39,400 --> 00:06:44,300 Mes išvardyti visi iš galimų reikšmių. 137 00:06:44,300 --> 00:06:47,630 >> Tada mes turime CHAR ir VARCHAR, Ir aš spalva tai žalia 138 00:06:47,630 --> 00:06:49,505 nes mes iš tikrųjų ketina imtis antrą 139 00:06:49,505 --> 00:06:51,950 kalbėti apie skirtumą tarp šių dviejų dalykus. 140 00:06:51,950 --> 00:06:55,780 Taigi CHAR, skirtingai nuo C, kur CHAR buvo vienas simbolis, 141 00:06:55,780 --> 00:07:00,730 SQL char remiasi fiksuoto ilgio eilutę. 142 00:07:00,730 --> 00:07:02,620 Ir kai mes sukurti šią kolona, ​​mes iš tikrųjų 143 00:07:02,620 --> 00:07:05,070 gali nurodyti eilutės ilgį. 144 00:07:05,070 --> 00:07:08,080 >> Taigi, šiame pavyzdyje, mes galime pasakyti, CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Tai reiškia, kad, kad kiekvienas elementas tame stulpelyje 146 00:07:11,190 --> 00:07:13,910 sudarys 10 baitų informacijos. 147 00:07:13,910 --> 00:07:15,770 Ne daugiau, ne mažiau. 148 00:07:15,770 --> 00:07:21,780 Taigi, jei mes stengiamės ir įdėti į 15 bitų ar 15 simbolių elementas 149 00:07:21,780 --> 00:07:25,340 arba vertė į šią skiltį, mes gauti tik pirmąsias 10. 150 00:07:25,340 --> 00:07:27,290 Jei mes įdėti į dvi simbolių ilgio vertė, 151 00:07:27,290 --> 00:07:30,700 mes ketiname turėti du simbolių, tada aštuoni null įkandimų. 152 00:07:30,700 --> 00:07:34,990 Mes niekada efektyviau nei tai. 153 00:07:34,990 --> 00:07:37,727 >> VARCHAR yra lyg Mūsų samprata eilutę 154 00:07:37,727 --> 00:07:39,560 kad mes pažįstami su iš C arba nuo PHP. 155 00:07:39,560 --> 00:07:40,830 Tai kintamo ilgio eilutę. 156 00:07:40,830 --> 00:07:42,560 Ir, kai jūs sukuriate Šioje skiltyje jūs tiesiog 157 00:07:42,560 --> 00:07:44,860 nustatyti didžiausi galimi ilgiai. 158 00:07:44,860 --> 00:07:49,065 Taigi gal 99 ar paprastai 255. 159 00:07:49,065 --> 00:07:50,440 Kad būtų didžiausias ilgis. 160 00:07:50,440 --> 00:07:52,890 Ir todėl, jei mes buvo saugoti 15 simbolių, 161 00:07:52,890 --> 00:07:56,157 mes naudoti 15 baitų, o gal 16 baitų null terminatorius. 162 00:07:56,157 --> 00:07:57,990 Jeigu mes buvo saugoti trijų simbolių, 163 00:07:57,990 --> 00:08:01,120 mes naudoti tris arba keturis baitus. 164 00:08:01,120 --> 00:08:03,050 Bet mes ne naudoti pilną 99. 165 00:08:03,050 --> 00:08:05,190 >> Taigi kodėl mes turime tiek? 166 00:08:05,190 --> 00:08:08,210 Na, jei mes turime išsiaiškinti, kaip seniai kažkas yra su VARCHAR, 167 00:08:08,210 --> 00:08:10,680 turime rūšies pakartoti visoje jis tiesiog, kaip mes padarėme C 168 00:08:10,680 --> 00:08:12,230 ir išsiaiškinti, kur ji sustos. 169 00:08:12,230 --> 00:08:15,920 Kadangi, jeigu mes žinome, kad viskas Šioje skiltyje yra 10 baitų, o gal 170 00:08:15,920 --> 00:08:19,220 Mes žinome, kad informaciją, mes galime šokinėti 10 baitų, 10 baitai, 10 baitai, 10 baitai, 171 00:08:19,220 --> 00:08:21,790 ir visada rasti pradžioje eilutę. 172 00:08:21,790 --> 00:08:25,210 >> Taigi, mes gali turėti tam tikrų iššvaistoma erdvę su CHAR, 173 00:08:25,210 --> 00:08:28,510 bet gal ten prekyba off turintys geresnį greitį 174 00:08:28,510 --> 00:08:30,160 naršyti duomenų bazę. 175 00:08:30,160 --> 00:08:32,330 Bet gal mes norime, kad lankstumas VARCHAR 176 00:08:32,330 --> 00:08:36,710 vietoj having-- Jei mūsų CHAR buvo 255, tačiau dauguma mūsų vartotojams 177 00:08:36,710 --> 00:08:40,537 buvo tik įvedusi tris ar keturis baitus Verta informacijos ir trijų ar keturių 178 00:08:40,537 --> 00:08:41,870 simbolių verta informacija. 179 00:08:41,870 --> 00:08:44,324 >> Tačiau kai kurie vartotojai buvo naudojama visa 255, o gal 180 00:08:44,324 --> 00:08:45,990 VARCHAR būtų tikslingiau ten. 181 00:08:45,990 --> 00:08:49,840 Tai tarsi prekybos išjungti, ir paprastai tikslais CS50, 182 00:08:49,840 --> 00:08:54,107 Jums nereikia nerimauti per daug apie ar jūs naudojate CHAR arba VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Bet realiame pasaulyje, šie dalykai do klausimas, nes visi šie stulpeliai 184 00:08:57,190 --> 00:08:59,300 imtis tikrąją fizinę erdvę. 185 00:08:59,300 --> 00:09:04,150 Ir fizinė erdvė, į realiame pasaulyje, ateina priemoka. 186 00:09:04,150 --> 00:09:06,800 >> Taigi vienas kito atlygio kai kuriate lentelę 187 00:09:06,800 --> 00:09:09,840 yra pasirinkti vieną stulpelį turi būti kas vadinama pirminis raktas. 188 00:09:09,840 --> 00:09:14,350 Ir pirminis raktas yra stulpelis kur kiekvienas vertė yra unikalus. 189 00:09:14,350 --> 00:09:19,980 O tai reiškia, kad jūs galite lengvai išskirti vieną eilutę tiesiog ieškote 190 00:09:19,980 --> 00:09:22,450 į pirminio rakto tos eilės. 191 00:09:22,450 --> 00:09:24,580 Taigi, pavyzdžiui, galite Apskritai, su vartotojais, 192 00:09:24,580 --> 00:09:27,210 nenoriu du vartotojus, kurie turi tą pačią vartotojo ID numerį. 193 00:09:27,210 --> 00:09:28,960 Ir taip gal turite Daug informacijos, 194 00:09:28,960 --> 00:09:30,793 o gal du vartotojai gali turi tą pačią name-- 195 00:09:30,793 --> 00:09:32,650 turite John Smith ir John Smith. 196 00:09:32,650 --> 00:09:34,520 Tai nebūtinai yra problema, nes ten yra keli žmonės 197 00:09:34,520 --> 00:09:35,830 pasaulyje pavadintas John Smith. 198 00:09:35,830 --> 00:09:40,766 Tačiau turime tik vieną vartotojo ID numerį 10, vienas vartotojas ID numeris 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Neturime du vartotojai su tuo pačiu numeriu, 200 00:09:42,640 --> 00:09:46,010 ir tai gal vartotojo ID numeriai būtų geras pirminis raktas. 201 00:09:46,010 --> 00:09:48,610 >> Mes Neturime dubliavimo, Ir mes galime dabar unikaliai 202 00:09:48,610 --> 00:09:52,619 nustatyti kiekvieną eilutę tiesiog pažvelgus tame stulpelyje. 203 00:09:52,619 --> 00:09:55,410 Nurodykite pirminius raktus iš tikrųjų gali vėlesnius stalo operacijas 204 00:09:55,410 --> 00:09:59,710 daug lengviau, nes galite sverto tai, kad kai eilutės bus 205 00:09:59,710 --> 00:10:02,720 būti unikalus, arba tam tikros stulpelis savo duomenų bazės arba stalo 206 00:10:02,720 --> 00:10:06,030 bus unikalus pasirinkti iš konkrečių eilučių. 207 00:10:06,030 --> 00:10:08,790 >> Jūs taip pat gali turėti bendrą pirminis raktas, kuris jums gali rasti proga 208 00:10:08,790 --> 00:10:11,720 naudoti, kuri yra tik derinys iš dviejų stulpelių, kad 209 00:10:11,720 --> 00:10:13,280 garantuoja, kad bus unikalus. 210 00:10:13,280 --> 00:10:16,410 Taigi gal turite vieną stulpelis tai kaip ir BS, 211 00:10:16,410 --> 00:10:19,290 vienas stulpelis, kad vienas, du, ir tris, bet jūs tik kada nors 212 00:10:19,290 --> 00:10:23,660 turėti vieną A1, vieno A2, ir taip toliau, ir taip toliau. 213 00:10:23,660 --> 00:10:28,980 Tačiau galite turėti B2 A C2, arba A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Taigi jums gali turėti keletą Kaip, išsėtinė BS, keli iš jų, daug poromis, 215 00:10:32,840 --> 00:10:38,567 bet jūs galite kada nors tik vieno A1, B2, C3, ir taip toliau. 216 00:10:38,567 --> 00:10:40,400 Taigi, kaip sakiau, "SQL yra programavimo kalba, 217 00:10:40,400 --> 00:10:42,024 bet jis turi gana ribotas žodyną. 218 00:10:42,024 --> 00:10:44,880 Tai ne visai taip, kaip išsiplėtusi C ir PHP ir kitomis kalbomis 219 00:10:44,880 --> 00:10:46,350 kad mes kalbame kurso. 220 00:10:46,350 --> 00:10:49,960 Tai daugiau daugiakalbė kalba, nei ką mes 221 00:10:49,960 --> 00:10:52,789 ketiname kalbėti apie šiame vaizdo, nes šiame video 222 00:10:52,789 --> 00:10:54,830 mes ketiname kalbėti apie keturi operacijos, kad mes 223 00:10:54,830 --> 00:10:55,720 gali atlikti ant stalo. 224 00:10:55,720 --> 00:10:56,761 >> Yra daugiau nei šis. 225 00:10:56,761 --> 00:10:58,730 Mes galime padaryti daugiau nei tai, bet mūsų tikslais, 226 00:10:58,730 --> 00:11:02,250 mes paprastai ketinate naudoti tik keturi operations-- įterpti, 227 00:11:02,250 --> 00:11:05,360 pasirinkti, atnaujinti ir ištrinti. 228 00:11:05,360 --> 00:11:08,750 Ir jūs tikriausiai galite intuityviai atspėti, ką visi šie dalykai keturių daryti. 229 00:11:08,750 --> 00:11:12,520 Bet mes pereiti į šiek tiek detalumo kiekvieną iš jų. 230 00:11:12,520 --> 00:11:15,780 >> Taigi tikslais tai Vaizdo, tarkime, 231 00:11:15,780 --> 00:11:18,870 mes taip du stalai vienoje duomenų bazėje. 232 00:11:18,870 --> 00:11:23,460 Mes turime lentelę vadinamas vartotojų, kurie turi keturių columns-- ID numerį, vardą, 233 00:11:23,460 --> 00:11:25,350 slaptažodis, vardas ir pavardė. 234 00:11:25,350 --> 00:11:27,430 Ir mes turime sekundę lentelėje toje pačioje duomenų bazėje 235 00:11:27,430 --> 00:11:32,129 vadinamas Moms, kad tik saugo informaciją apie vardą ir motinos. 236 00:11:32,129 --> 00:11:33,920 Taigi, visiems pavyzdžių Šiame vaizdo, mes 237 00:11:33,920 --> 00:11:37,945 būti naudojant šią duomenų bazę ir vėlesni atnaujinimai į jį. 238 00:11:37,945 --> 00:11:40,070 Taigi tarkime, mes norime pridėti informaciją stalo. 239 00:11:40,070 --> 00:11:44,460 Štai ką įterpti operacija daro. 240 00:11:44,460 --> 00:11:46,550 Aiškinant visus Šios komandos, aš ruošiuosi 241 00:11:46,550 --> 00:11:48,860 suteikti jums bendrą skeletas naudoti. 242 00:11:48,860 --> 00:11:51,661 Nes iš esmės, užklausų ketinate atrodyti gana panašūs, 243 00:11:51,661 --> 00:11:54,660 mes tik ketina keičiasi šiek tiek įvairią informaciją 244 00:11:54,660 --> 00:11:56,750 daryti skirtingus dalykus su stalo. 245 00:11:56,750 --> 00:11:59,200 >> Taigi INSERT, skeleto atrodo lyg tai. 246 00:11:59,200 --> 00:12:02,230 Mes norime, įterpti į ypač stalo. 247 00:12:02,230 --> 00:12:05,290 Tada mes turime atvirą skliaustų ir stulpelių sąrašas 248 00:12:05,290 --> 00:12:08,070 kad mes norime įdėti vertybes. 249 00:12:08,070 --> 00:12:10,974 Uždaryti skliaustai, The Žemiau reikšmes, ir po to 250 00:12:10,974 --> 00:12:13,390 mes vėl sąrašą iš vertybes mes norime įdėti į lentelę. 251 00:12:13,390 --> 00:12:15,950 >> Taigi To pavyzdys būtų tokia. 252 00:12:15,950 --> 00:12:19,170 Noriu įterpti į lentelę Vartotojų taip columns-- 253 00:12:19,170 --> 00:12:21,010 vartotojo vardą, slaptažodį ir FULLNAME. 254 00:12:21,010 --> 00:12:25,282 Taigi naujos eilutės, kur aš pradėti tose trijų stulpelių ir mes 255 00:12:25,282 --> 00:12:30,030 ketina įdėti į vertybių Newman, USMAIL ir Newmanas. 256 00:12:30,030 --> 00:12:32,730 Taigi šiuo atveju, aš išleisti mažąją Newman 257 00:12:32,730 --> 00:12:38,710 į kolonėlę vardą, slaptažodis USMAIL ir pavardė kapitalo N 258 00:12:38,710 --> 00:12:41,940 Newman į FULLNAME skiltyje. 259 00:12:41,940 --> 00:12:44,240 >> Taigi štai ką duomenų bazė Atrodė anksčiau. 260 00:12:44,240 --> 00:12:48,250 Štai ką vartotojai stalas Top atrodė, kol mes tai padarėme. 261 00:12:48,250 --> 00:12:50,760 Kai mes vykdyti šią užklausa, kurią mes gauname tai. 262 00:12:50,760 --> 00:12:54,790 Mes pridėjome naują eilutę į lentelę. 263 00:12:54,790 --> 00:12:56,810 Bet pastebėsite šį vieną dalyką kad aš nenurodė, 264 00:12:56,810 --> 00:12:59,880 bet kažkaip aš turiu vertę už, kuris yra tai 12 čia. 265 00:12:59,880 --> 00:13:02,820 Aš nesakiau aš norėjau įdėti ID numerį ten. 266 00:13:02,820 --> 00:13:04,900 Norėjau įdėti vardą, slaptažodis, FULLNAME. 267 00:13:04,900 --> 00:13:06,440 Ir aš padariau, kad tai gerai. 268 00:13:06,440 --> 00:13:07,760 >> Bet aš taip pat turiu šį 12. 269 00:13:07,760 --> 00:13:09,490 Kodėl man tai 12? 270 00:13:09,490 --> 00:13:12,904 Na, it turns out, kad kai jūs apibrėžiant 271 00:13:12,904 --> 00:13:15,570 kolona, ​​kuri bus jūsų pirminis raktas, kuris yra paprastai, 272 00:13:15,570 --> 00:13:16,510 Kaip ir sakiau, identifikacinį numerį. 273 00:13:16,510 --> 00:13:18,718 Tai ne visada būtinai ketina tapti ID numerį, 274 00:13:18,718 --> 00:13:22,380 bet tai paprastai yra gera idėja būti šiek tiek sveiko skaičiaus rūšiuoti. 275 00:13:22,380 --> 00:13:25,950 Jūs turite galimybę phpMyAdmin kai kuriate savo duomenų bazę 276 00:13:25,950 --> 00:13:31,130 ar jūsų stalo nustatyti, kad stulpelis kaip auto pokyčio. 277 00:13:31,130 --> 00:13:34,520 >> Kuris yra tikrai gera idėja, kai jūs dirbate su pirminio rakto, 278 00:13:34,520 --> 00:13:39,330 nes norite kiekvieną vertę tame stulpelyje turi būti unikalus. 279 00:13:39,330 --> 00:13:43,310 Ir jei jūs pamiršote nurodyti tai daugiau nei vienam asmeniui, 280 00:13:43,310 --> 00:13:46,240 dabar jūs turite padėtį, kai kad stulpelis nebėra unikalus. 281 00:13:46,240 --> 00:13:50,200 Jūs turite dvi ruošinius, todėl jūs galite ne ilgiau identifikuoti column-- 282 00:13:50,200 --> 00:13:54,150 Arba galite nebėra unikaliai nustatyti eilutę remiantis tame stulpelyje. 283 00:13:54,150 --> 00:13:57,010 Jis prarado visus savo vertė, kaip pirminės raktu. 284 00:13:57,010 --> 00:14:02,010 >> Ir taip, matyt, ką aš padariau Čia yra sukonfigūruota vartotojo ID 285 00:14:02,010 --> 00:14:07,790 stulpelis auto prieaugio, kad kiekvienas kartą aš įdėti informaciją į lentelę, 286 00:14:07,790 --> 00:14:12,220 ji bus automatiškai man vertė už pirminio rakto. 287 00:14:12,220 --> 00:14:15,570 Taigi, aš niekada negali pamiršti tai padaryti, nes duomenų bazė bus tai padaryti už mane. 288 00:14:15,570 --> 00:14:16,587 Taigi, kad tipo gražus. 289 00:14:16,587 --> 00:14:18,670 Ir taip, tai kodėl mes gauname 12 ten, nes aš 290 00:14:18,670 --> 00:14:21,772 nustatyti, kad kolonėlės iki auto prieaugio. 291 00:14:21,772 --> 00:14:23,730 Jei aš pridėjo kažkas tai būčiau 13, jei aš pridėjo 292 00:14:23,730 --> 00:14:27,890 kažkas tai būčiau 14, ir pan. 293 00:14:27,890 --> 00:14:30,190 >> Taigi tegul tiesiog padaryti dar vieną įdėjimo. 294 00:14:30,190 --> 00:14:34,530 Mes įterpti į mamų stalo, į pirma, vardas ir mama 295 00:14:34,530 --> 00:14:37,390 stulpelyje vertės Kramer ir Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 Ir todėl mes turėjome anksčiau. 297 00:14:39,140 --> 00:14:41,800 Kai mes atlikti, kad SQL užklausos, mes turime tai. 298 00:14:41,800 --> 00:14:47,290 Mes pridėjome Kramer ir babs Kramer į mamų stalo. 299 00:14:47,290 --> 00:14:48,350 >> Taigi, kad įterpiant. 300 00:14:48,350 --> 00:14:51,850 PASIRINKITE yra tai, ką mes naudojame išgauti informacija iš lentelės. 301 00:14:51,850 --> 00:14:54,390 Taigi, tai, kaip mes gauti informacija iš duomenų bazės. 302 00:14:54,390 --> 00:14:59,589 Ir taip SELECT komandos bus labai dažnai naudojamas programas. 303 00:14:59,589 --> 00:15:02,130 Bendras framework-- Apskritai skeletas atrodo taip. 304 00:15:02,130 --> 00:15:06,550 Pasirinkite stulpelių rinkinį iš lentelė, o tada, pasirinktinai 305 00:15:06,550 --> 00:15:11,090 galite nurodyti condition-- arba tai, ką mes paprastai vadiname predikato, 306 00:15:11,090 --> 00:15:13,010 paprastai yra terminas, naudojamas SQL. 307 00:15:13,010 --> 00:15:16,490 >> Tačiau tai iš esmės ką ypatingos eilutės norite gauti. 308 00:15:16,490 --> 00:15:19,100 Jei norite, užuot viskas, susiaurinti jį žemyn, 309 00:15:19,100 --> 00:15:20,060 tai kur jums būtų tai padaryti. 310 00:15:20,060 --> 00:15:22,777 Ir tada pasirinktinai, taip pat galite užsisakyti konkretaus skiltyje. 311 00:15:22,777 --> 00:15:25,860 Taigi gal norite turėti dalykų, surūšiuotus abėcėlės tvarka, remiantis vieno stulpelio 312 00:15:25,860 --> 00:15:27,540 ar pagal abėcėlę, remiantis kitu. 313 00:15:27,540 --> 00:15:30,610 >> Vėlgi, kur ir ORDER BY yra neprivalomas. 314 00:15:30,610 --> 00:15:32,681 Bet jie tikriausiai bus useful-- ypač 315 00:15:32,681 --> 00:15:34,680 Kur bus būti naudinga susiaurinti, todėl jūs neturite 316 00:15:34,680 --> 00:15:37,460 gauti savo visą duomenų bazę ir atgal turi apdoroti, jūs tiesiog gauti 317 00:15:37,460 --> 00:15:39,300 Į jį gabalus, kurie jums rūpi. 318 00:15:39,300 --> 00:15:44,932 Taigi, pavyzdžiui, aš galbūt norėsite pasirinkti ID numeris ir FULLNAME iš vartotojų. 319 00:15:44,932 --> 00:15:46,140 Taigi, kas gali tai atrodys? 320 00:15:46,140 --> 00:15:48,270 Taigi čia mano vartotojai stalo. 321 00:15:48,270 --> 00:15:51,080 Noriu pasirinkti idnum ir FULLNAME iš vartotojų. 322 00:15:51,080 --> 00:15:52,300 Ką aš ketina gauti? 323 00:15:52,300 --> 00:15:53,580 Aš ruošiuosi gauti tai. 324 00:15:53,580 --> 00:15:56,930 Aš ne susiaurinti jį žemyn, todėl aš gauti ID numerį kiekvienoje eilutėje 325 00:15:56,930 --> 00:16:00,850 ir aš gaunu visą vardą iš kiekvienos eilės. 326 00:16:00,850 --> 00:16:02,210 >> GERAI. 327 00:16:02,210 --> 00:16:05,640 Ką daryti, jei norite pasirinkti slaptažodį iš vartotojų WHERE-- todėl dabar 328 00:16:05,640 --> 00:16:10,370 Aš pridėti sąlygą, ši predicate-- kur idnum yra mažesnis nei 12. 329 00:16:10,370 --> 00:16:13,660 Taigi čia mano duomenų ir vėl, mano vartotojai stalo viršaus. 330 00:16:13,660 --> 00:16:17,030 Ką aš ketina gauti, jei aš noriu pasirinkti, kad informacija, slaptažodis, 331 00:16:17,030 --> 00:16:21,550 kur vartotojo vardas arba idnum yra mažesnis nei 12? 332 00:16:21,550 --> 00:16:24,910 Aš ruošiuosi gauti šią Informacija atgal, tiesa? 333 00:16:24,910 --> 00:16:29,170 Taip atsitinka, kad idnum yra 10 mažiau nei 12 ID numeris 11 mažiau nei 12. 334 00:16:29,170 --> 00:16:32,160 Gaunu tų eilučių slaptažodį. 335 00:16:32,160 --> 00:16:33,914 Štai ką aš paklausiau. 336 00:16:33,914 --> 00:16:34,580 Ką apie tai? 337 00:16:34,580 --> 00:16:39,170 Ką daryti, jei norite pasirinkti iš sąrašo žvaigždę mama lentelę, kurioje Nick lygus Džeris? 338 00:16:39,170 --> 00:16:43,780 Gerai, pasirinkite žvaigždė yra specialus Rūšiuoti laukinių kortelę vadinamoji 339 00:16:43,780 --> 00:16:45,670 kad mes naudojame gauti viską. 340 00:16:45,670 --> 00:16:48,620 Taigi jie sako pasirinkite naudotojo vardas kableliais motiną, kuri 341 00:16:48,620 --> 00:16:51,060 atsitiko, kad tik du stulpeliai šios lentelės 342 00:16:51,060 --> 00:16:53,260 Galiu tiesiog pasirinkite žvaigždę ir gauti viską 343 00:16:53,260 --> 00:16:55,030 kur Nick lygus Džeris. 344 00:16:55,030 --> 00:16:59,380 Ir taip, kad tai, ką aš norėčiau gauti jei aš padariau, kad ypač užklausą. 345 00:16:59,380 --> 00:17:01,810 >> Dabar, duomenų bazės didelis, nes jie leidžia 346 00:17:01,810 --> 00:17:06,074 mums organizuoti informacijos galbūt šiek tiek efektyviau nei mes 347 00:17:06,074 --> 00:17:06,740 priešingu atveju. 348 00:17:06,740 --> 00:17:10,240 Mes nebūtinai saugoti kiekvienas suinteresuotas gabalas informacijos 349 00:17:10,240 --> 00:17:12,230 apie į tą pačią lentelę vartotojui. 350 00:17:12,230 --> 00:17:13,730 Mes turėjome dvi lenteles ten. 351 00:17:13,730 --> 00:17:15,734 >> Mums reikia saugoti visiems mamos vardas, 352 00:17:15,734 --> 00:17:18,900 o gal mes neturime socialinį saugumą skaičius, turime savo gimimo datą. 353 00:17:18,900 --> 00:17:21,819 Tai ne visada reikia būti toje pačioje lentelėje. 354 00:17:21,819 --> 00:17:25,339 Tol, kol mes galime apibrėžti santykiai tarp tables-- 355 00:17:25,339 --> 00:17:28,440 ir tai, kur, kad reliacinės duomenų terminas rūšies ateina 356 00:17:28,440 --> 00:17:32,130 į play-- tol, kol mes galime apibrėžti santykiai tarp lentelių, 357 00:17:32,130 --> 00:17:35,545 mes galime tarsi skaldo arba abstrakčių dalykų būdą, 358 00:17:35,545 --> 00:17:37,670 kur mes tik turėti tikrai svarbi informacija 359 00:17:37,670 --> 00:17:39,270 mes rūpinamės į vartotojo stalo. 360 00:17:39,270 --> 00:17:43,220 Ir tada mes turime papildoma informacija ar papildomos informacijos kitose lentelėse 361 00:17:43,220 --> 00:17:48,260 kad mes galime prijungti Grįžti į pagrindinį Vartotojų stalo tam tikru būdu. 362 00:17:48,260 --> 00:17:52,200 >> Taigi čia mes turime šias dvi lenteles, bet ten tarp jų santykiai, 363 00:17:52,200 --> 00:17:53,010 tiesa? 364 00:17:53,010 --> 00:17:55,070 Atrodo vardą gali būti kažkas 365 00:17:55,070 --> 00:17:59,909 kad egzistuoja bendra tarp šių dviejų skirtingų lentelių. 366 00:17:59,909 --> 00:18:01,700 Taigi ką daryti, jei mes dabar turime situacija, kai mes 367 00:18:01,700 --> 00:18:06,046 noriu gauti vartotojo vardą, pavardę iš vartotojas stalo ir jų motinos 368 00:18:06,046 --> 00:18:07,170 vardą iš gimtosios stalo? 369 00:18:07,170 --> 00:18:10,960 Neturime būdą, kaip gauti Kad ir kaip ten stovi, tiesa? 370 00:18:10,960 --> 00:18:17,790 Nėra vieno stalo, kad yra tiek vardas, pavardė ir motinos vardas. 371 00:18:17,790 --> 00:18:20,400 Neturime šią parinktį iš to, ką mes matėme iki šiol. 372 00:18:20,400 --> 00:18:22,950 >> Ir todėl mes turime pristatyti iš Uždaroji idėja. 373 00:18:22,950 --> 00:18:24,857 Ir prisijungia tikriausiai labiausiai complex-- 374 00:18:24,857 --> 00:18:27,940 tai tikrai dauguma sudėtinga operacija mes ketiname kalbėti apie vaizdo įrašą. 375 00:18:27,940 --> 00:18:30,040 Jie šiek tiek sudėtinga, bet kai jūs gaunate pakabinti jį, 376 00:18:30,040 --> 00:18:31,248 jie iš tikrųjų nėra labai blogai. 377 00:18:31,248 --> 00:18:32,820 Tai tiesiog ypatingas atvejis pasirinkite. 378 00:18:32,820 --> 00:18:37,120 Mes ketiname pasirinkti iš rinkinio kolonos stalo suvienija 379 00:18:37,120 --> 00:18:40,650 antrame stalo kai tarinio. 380 00:18:40,650 --> 00:18:45,340 >> Šiuo atveju, manau, apie tai patinka this-- viena lentelė yra vienas ratas per čia 381 00:18:45,340 --> 00:18:47,530 dvi lentelės yra dar daugiau čia ratas. 382 00:18:47,530 --> 00:18:49,410 Ir kad tarinys dalis viduryje, tai 383 00:18:49,410 --> 00:18:51,701 tarsi, jei jūs manote apie kaip Veno diagrama, kas 384 00:18:51,701 --> 00:18:52,670 jie turi bendro? 385 00:18:52,670 --> 00:18:55,960 Mes norime susieti šias dvi lenteles remiantis ką jie turi bendro 386 00:18:55,960 --> 00:19:01,230 ir sukurti šį hipotetinį lentelę kad yra du kartu susijungimas. 387 00:19:01,230 --> 00:19:03,480 Taigi mes matome tai nurodytame pavyzdys, o gal, kad padėsime 388 00:19:03,480 --> 00:19:04,521 išvalyti jį šiek tiek. 389 00:19:04,521 --> 00:19:09,260 Taigi gal norite pasirinkti user.fullname ir moms.mother 390 00:19:09,260 --> 00:19:13,220 iš vartotojų prisijungs mama lentelė kiekvienoje situacijoje 391 00:19:13,220 --> 00:19:16,790 kur stulpelis vardas yra tarp jų tos pačios. 392 00:19:16,790 --> 00:19:19,240 Ir tai yra nauja sintaksės čia šį vartotoją. 393 00:19:19,240 --> 00:19:20,460 ir mama .. 394 00:19:20,460 --> 00:19:26,697 Jei darau kelis stalus kartu, galiu nurodyti lentelėje. 395 00:19:26,697 --> 00:19:29,530 Galiu atskirti, visų pirma dėl kad pačioje apačioje ten. 396 00:19:29,530 --> 00:19:33,220 Galiu atskirti vardą skiltyje vartotojų stalo 397 00:19:33,220 --> 00:19:36,010 iš vartotojo vardą skiltyje mama stalas, kurie yra otherwise-- 398 00:19:36,010 --> 00:19:38,070 jei mes ką tik pasakė Nick lygus Nick, kad tikrai ne 399 00:19:38,070 --> 00:19:38,970 reiškia nieko. 400 00:19:38,970 --> 00:19:41,440 Mes norime tai padaryti kur jie nesutampa. 401 00:19:41,440 --> 00:19:46,080 >> Taigi aš galiu nurodyti lentelė ir stulpelis vardas atveju į padėtį, 402 00:19:46,080 --> 00:19:48,370 kur jis būtų neaišku ką aš kalbu apie. 403 00:19:48,370 --> 00:19:51,880 Taigi, kad viskas, ką aš darau yra aš sakydamas šį stulpelį iš šios lentelės, 404 00:19:51,880 --> 00:19:54,020 ir yra labai aiškus. 405 00:19:54,020 --> 00:19:56,810 Taigi dar kartą, aš pasirinkdami vardas, pavardė ir motinos vardas 406 00:19:56,810 --> 00:20:00,950 iš vartotojų lentelės susietos kartu su mama lentelę kiekvienoje situacijoje 407 00:20:00,950 --> 00:20:05,960 kur jie dalijasi kad column-- jie dalijasi ši sąvoka vardą. 408 00:20:05,960 --> 00:20:08,580 >> Taigi čia yra stalai mes turėjome anksčiau. 409 00:20:08,580 --> 00:20:12,210 Tai yra valstybinė mūsų duomenų, kaip jis egzistuoja dabar. 410 00:20:12,210 --> 00:20:16,390 Informacija mes gavybos tai pradėti. 411 00:20:16,390 --> 00:20:19,820 Tai nauja lentelė mes ketiname sukurti derinant, kartu. 412 00:20:19,820 --> 00:20:23,585 Ir pastebėsite mes ne išryškinti Newman anketa eilutė vartotojo stalo, 413 00:20:23,585 --> 00:20:25,960 ir mes ne išryškinti KRAMER anketa eilutė mamų stalo 414 00:20:25,960 --> 00:20:31,250 nes nei vienas egzistuoja tiek sets-- abiejose lentelėse. 415 00:20:31,250 --> 00:20:36,260 >> Vienintelė informacija, kuri yra bendra tarp jų yra Džeris yra abiejose lentelėse 416 00:20:36,260 --> 00:20:39,100 ir gcostanza yra abiejose lentelėse. 417 00:20:39,100 --> 00:20:42,620 Ir todėl, kai mes darome SQL prisijungti, ką mes get-- ir darome iš tikrųjų gauti tai. 418 00:20:42,620 --> 00:20:44,830 Tai tarsi laikinas kintamasis. 419 00:20:44,830 --> 00:20:47,330 Tai kaip hipotetinis Susijungimas iš dviejų lentelių. 420 00:20:47,330 --> 00:20:49,930 Mes iš tikrųjų gauti kažką kaip tai, kur 421 00:20:49,930 --> 00:20:54,730 mes susijungė kartu su ant stalų informacija, kad jie turi bendro. 422 00:20:54,730 --> 00:20:58,334 >> Taigi pastebėti, kad users.username ir moms.username stulpelio 423 00:20:58,334 --> 00:20:59,250 tai lygiai tas pats. 424 00:20:59,250 --> 00:21:01,820 Tai buvo informacija, kuri buvo suderinta iš vartotojų 425 00:21:01,820 --> 00:21:02,890 stalo ir mama lentelė. 426 00:21:02,890 --> 00:21:04,270 Ir todėl mes susijungė juos kartu. 427 00:21:04,270 --> 00:21:06,919 Mes išmesti Kramer, nes jis neegzistavo naudotojų stalo, 428 00:21:06,919 --> 00:21:09,710 ir mes išmesti Newman, nes jis neegzistuoja mama lentelėje. 429 00:21:09,710 --> 00:21:16,450 Taigi tai yra hipotetinis susijungimas naudojant prisijungti operacijos rinktinių. 430 00:21:16,450 --> 00:21:21,250 >> Ir tada mes buvome ieškote vartotojo vardas, pavardė ir vartotojas motina, 431 00:21:21,250 --> 00:21:24,999 ir todėl tai yra informacija, kuri mes gauti iš bendro užklausą 432 00:21:24,999 --> 00:21:26,040 kad mes padarėme su Rinktis. 433 00:21:26,040 --> 00:21:28,873 Taigi, mes prisijungė lenteles kartu ir mes išgauti tuos du stulpelius, 434 00:21:28,873 --> 00:21:31,610 ir taip, kad tai, ką mes norėtume gauti. 435 00:21:31,610 --> 00:21:33,370 Bet SQL prisijungia komplikuoto natūra. 436 00:21:33,370 --> 00:21:36,770 Jūs tikriausiai nebus padaryti jiems per daug, bet tiesiog turėti tam tikrą skeleto idėją 437 00:21:36,770 --> 00:21:41,992 , kad galėtumėte naudotis sujungti du stalai kartu, jei jums reikia. 438 00:21:41,992 --> 00:21:43,700 Paskutiniai du yra tiek paprastesnis pažadu. 439 00:21:43,700 --> 00:21:48,040 Taigi atnaujinti, mes galime naudoti UPDATE pakeisti informaciją lentelėje. 440 00:21:48,040 --> 00:21:53,880 Bendras formatas yra atnaujinti kai stalas, nustatyti tam tikras stulpelį tam tikru vertės 441 00:21:53,880 --> 00:21:55,540 Kur kai tarinys yra įvykdyta. 442 00:21:55,540 --> 00:21:57,850 Taigi, pavyzdžiui, mes norime atnaujinti Vartotojų lentelę 443 00:21:57,850 --> 00:22:04,400 ir nustatykite bla slaptažodį bla, kur identifikacinis numeris yra 10. 444 00:22:04,400 --> 00:22:06,400 >> Taigi, šiuo atveju, mes atnaujinti Vartotojų lentelę. 445 00:22:06,400 --> 00:22:08,275 ID numeris 10 kad pirmoji eilutė ten, 446 00:22:08,275 --> 00:22:10,690 ir mes norime atnaujinti slaptažodis tauškalai. 447 00:22:10,690 --> 00:22:12,170 Ir taip, kad tai, kas nutiktų. 448 00:22:12,170 --> 00:22:13,628 Tai gana paprasta, tiesa? 449 00:22:13,628 --> 00:22:17,990 Tai tiesiog labai paprastas modifikacija į lentelę. 450 00:22:17,990 --> 00:22:22,250 >> DELETE yra operacija mes naudojamas pašalinti informaciją iš lentelės. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM stalo, kur kai tarinys yra įvykdyta. 452 00:22:24,817 --> 00:22:26,900 Mes norime ištrinti iš Vartotojų lentelė pavyzdžiui 453 00:22:26,900 --> 00:22:28,254 kur username is Newmanas. 454 00:22:28,254 --> 00:22:31,420 Jūs tikriausiai galite atspėti, kas vyksta atsitikti čia, kai mes paleisti SQL 455 00:22:31,420 --> 00:22:35,790 Užklausa Newman dingo nuo stalo. 456 00:22:35,790 --> 00:22:40,460 >> Taigi visos šios operacijos, kaip aš jau sakiau, yra labai lengva padaryti phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Tai labai patogi sąsaja. 458 00:22:43,020 --> 00:22:45,930 Tačiau ji reikalauja vadovą pastangų. 459 00:22:45,930 --> 00:22:47,840 Mes nenorime, kad įdarbinti vadovą pastangų. 460 00:22:47,840 --> 00:22:51,280 Mes norime, kad mūsų programas tai padaryti už mus, tiesa? 461 00:22:51,280 --> 00:22:53,190 Taigi mes norime padaryti tai programiškai. 462 00:22:53,190 --> 00:22:56,410 Mes norime įtraukti SQL ir turi kažkas tai padaryti už mus. 463 00:22:56,410 --> 00:23:02,710 >> Bet ką mes matėme, kad leidžia mums programiškai padaryti kažką? 464 00:23:02,710 --> 00:23:03,690 Mes matėme PHP, tiesa? 465 00:23:03,690 --> 00:23:05,760 Ji pristato kai dinamiškumas į mūsų programas. 466 00:23:05,760 --> 00:23:10,430 Ir taip, laimei, SQL ir PHP žaisti labai gražiai kartu. 467 00:23:10,430 --> 00:23:13,230 Yra PHP funkcija vadinamas užklausos, kuris gali būti naudojamas. 468 00:23:13,230 --> 00:23:15,870 Ir jūs galite praeiti, nes parametras arba argumentas 469 00:23:15,870 --> 00:23:19,210 užklausti SQL užklausą, norėtumėte vykdyti. 470 00:23:19,210 --> 00:23:23,250 Ir PHP tai padarys Jūsų vardu. 471 00:23:23,250 --> 00:23:25,564 >> Taigi, kai jūs prijungtas į savo duomenų bazę su PHP, 472 00:23:25,564 --> 00:23:26,980 ten du pirminių jums tai padaryti. 473 00:23:26,980 --> 00:23:29,230 Yra kažkas vadinamas MySQLi ir kažkas vadinamas SKVN. 474 00:23:29,230 --> 00:23:31,063 Mes neisiu į didžiulis suma detalė ten. 475 00:23:31,063 --> 00:23:32,957 Be CS50 mes naudojame SKVN. 476 00:23:32,957 --> 00:23:34,790 Po to, jūs prijungtas į savo duomenų bazę, jums 477 00:23:34,790 --> 00:23:40,980 tada galite padaryti užklausas savo duomenų bazę išlaikius užklausas kaip argumentų 478 00:23:40,980 --> 00:23:42,730 PHP funkcijas. 479 00:23:42,730 --> 00:23:46,460 Ir, kai jūs darote, kad jums laikyti rezultatų rinkinys į masyvą. 480 00:23:46,460 --> 00:23:50,290 >> Ir mes žinome, kaip dirbti su Association masyvai PHP. 481 00:23:50,290 --> 00:23:52,630 Taigi, aš gali pasakyti kažką kaip this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 Tai yra PHP-- lygus užklausą. 483 00:23:55,470 --> 00:23:57,660 Ir tada viduje Užklausa funkcija šis argumentas 484 00:23:57,660 --> 00:24:00,130 kad aš artimųjų užklausą kad atrodo SQL. 485 00:24:00,130 --> 00:24:01,160 Ir iš tiesų tai yra SQL. 486 00:24:01,160 --> 00:24:05,700 Štai Užklausos kad aš patinka vykdyti mano duomenų bazėje. 487 00:24:05,700 --> 00:24:09,250 >> Ir taip raudonai, tai yra PHP. 488 00:24:09,250 --> 00:24:11,890 Tai SQL, kad aš integruojant į PHP darant 489 00:24:11,890 --> 00:24:15,020 tai į užklausos funkcijos argumentas. 490 00:24:15,020 --> 00:24:19,640 Noriu pasirinkti FULLNAME nuo Vartotojų kur identifikacinis numeris prilygsta 10 d. 491 00:24:19,640 --> 00:24:22,560 Ir tada gal po aš padariau, kad Galėčiau pasakyti kažką panašaus į tai. 492 00:24:22,560 --> 00:24:25,550 Noriu išsispausdinti pranešimas Ačiū už prisijungdami. 493 00:24:25,550 --> 00:24:32,530 >> Ir aš noriu ją interpolate-- Noriu interpoliuoti $ rezultatų FULLNAME. 494 00:24:32,530 --> 00:24:36,280 Ir taip, kad, kaip aš dirbu su tuo masyvą, kad aš gavau atgal. 495 00:24:36,280 --> 00:24:39,730 $ rezultatai FULLNAME būtų iš esmės baigti spausdinti, 496 00:24:39,730 --> 00:24:42,870 Ačiū už prisijungdami, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Tai buvo pilnas pavadinimas kur idnum lygus 10. 498 00:24:46,570 --> 00:24:48,850 >> Ir taip visi darau yra aš now-- Aš saugomi 499 00:24:48,850 --> 00:24:52,780 Mano užklausos, iš mano užklausą rezultatai ir padidėja masyvą, 500 00:24:52,780 --> 00:24:56,330 ir FULLNAME yra vardas stulpelis aš buvo gauti už. 501 00:24:56,330 --> 00:25:01,010 Taigi, kad mano raktas į rezultatus masyvą, kad aš noriu. 502 00:25:01,010 --> 00:25:05,930 Taigi Ačiū už prisijungdami $ rezultatus, FULLNAME bus išspausdinti, prilips 503 00:25:05,930 --> 00:25:08,654 tiesiai tarp tų Curly petnešos, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Ir aš norėčiau atsispausdinti pranešimą Ačiū už prisijungdami Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Dabar, mes tikriausiai nenorite sunku kodas tokie dalykai kaip, kad, tiesa? 506 00:25:16,652 --> 00:25:19,860 Mes galbūt norėsite padaryti kažką panašaus Spausdinti F, kur mes galime pakeisti, o gal 507 00:25:19,860 --> 00:25:22,443 rinkti įvairią informaciją, arba gal turite užklausos procesą 508 00:25:22,443 --> 00:25:23,370 skirtinga informacija. 509 00:25:23,370 --> 00:25:27,920 Ir taip užklausą, užklausos funkcija turi tai tarsi pavadavimų samprata 510 00:25:27,920 --> 00:25:32,310 labai panašios į spausdinti f procentų s ir procentai c, yra klaustukai. 511 00:25:32,310 --> 00:25:34,290 >> Ir mes galime naudoti klausimą ženklai labai analogiškai 512 00:25:34,290 --> 00:25:38,400 spausdinti f, kad pakaitinių kintamųjų. 513 00:25:38,400 --> 00:25:44,120 Tai gal savo vartotojo prisijungęs anksčiau, ir jūs išsaugojote savo vartotojo ID numerį 514 00:25:44,120 --> 00:25:51,710 į $ _SESSION PHP super Pasaulinė į rakto ID. 515 00:25:51,710 --> 00:25:55,947 Taigi gal po jos prisijungus, jūs nustatote $ _SESSION ID lygus 10, 516 00:25:55,947 --> 00:25:58,280 ekstrapoliuojamų iš Pavyzdžiui mes tik pamačiau antrą prieš. 517 00:25:58,280 --> 00:26:01,960 >> Ir todėl, kai mes iš tikrųjų įvykdyti Ši užklausa rezultatus dabar 518 00:26:01,960 --> 00:26:08,440 ji prijungti 10, ar kas $ _SESSION ID reikšmė yra. 519 00:26:08,440 --> 00:26:10,790 Ir taip, kad leidžia mums būti šiek tiek labiau dinamiškas. 520 00:26:10,790 --> 00:26:12,699 Mes ne sunku kodavimo dalykų nebėra. 521 00:26:12,699 --> 00:26:14,490 Mes taupymo informacija kur nors ir tada 522 00:26:14,490 --> 00:26:18,924 mes galime naudoti šią informaciją dar kartą rūšiuoti apibendrinti tai, ką norime daryti, 523 00:26:18,924 --> 00:26:21,090 ir tiesiog plug-in ir pakeitimas mūsų puslapyje elgesį 524 00:26:21,090 --> 00:26:26,489 remiantis tuo, kas naudotojo ID numeris iš tikrųjų yra, kai jie jau prisijungęs. 525 00:26:26,489 --> 00:26:28,530 Taip pat įmanoma, nors, kad jūsų rezultatai nustatyti 526 00:26:28,530 --> 00:26:30,840 gali sudaryti kelių eilučių. 527 00:26:30,840 --> 00:26:33,990 Tokiu atveju, jūs turite AN arrays-- masyvo 528 00:26:33,990 --> 00:26:35,334 Association masyvų masyvas. 529 00:26:35,334 --> 00:26:37,000 Ir jūs tiesiog reikia pakartoti per ją. 530 00:26:37,000 --> 00:26:41,950 Ir mes žinome, kaip pakartoti per PHP masyvas, tiesa? 531 00:26:41,950 --> 00:26:45,600 Taigi čia yra tikriausiai labiausiai kompleksas dalykas, mes matėme iki šiol. 532 00:26:45,600 --> 00:26:49,640 Tai iš tikrųjų sujungia trys kalbos kartu. 533 00:26:49,640 --> 00:26:52,920 >> Čia raudonai, tai kai HTML. 534 00:26:52,920 --> 00:26:56,872 Aš, matyt, starting-- tai kokio nors HTML kad aš fragmentą. 535 00:26:56,872 --> 00:26:59,580 Aš pradedu naują pastraipą, kad Sako televizoriaus Seinfeld mamytės. 536 00:26:59,580 --> 00:27:02,350 Ir tada iš karto po Aš pradedu staliuką. 537 00:27:02,350 --> 00:27:06,060 Ir tada, po to, aš turėti tam tikrą PHP, tiesa? 538 00:27:06,060 --> 00:27:08,229 Turiu visą šį PHP kodo ten. 539 00:27:08,229 --> 00:27:09,645 Aš, matyt, ketina padaryti užklausą. 540 00:27:09,645 --> 00:27:14,180 Ir padaryti užklausą, aš ruošiuosi būti naudojant SELECT motinoms IŠ mama. 541 00:27:14,180 --> 00:27:15,970 >> Taigi tai yra getting-- tai SQL. 542 00:27:15,970 --> 00:27:17,300 Taigi mėlyna yra SQL. 543 00:27:17,300 --> 00:27:19,680 Raudona matėme antrą prieš buvo HTML. 544 00:27:19,680 --> 00:27:21,360 Ir žalia čia yra PHP. 545 00:27:21,360 --> 00:27:23,400 Taigi, aš padaryti užklausą mano duomenų bazėje, aš 546 00:27:23,400 --> 00:27:26,040 parenkant visas motinų mama lentelėje. 547 00:27:26,040 --> 00:27:30,710 Ne tik efektingai jį žemyn ypač eilutė, aš prašydama juos visus. 548 00:27:30,710 --> 00:27:33,290 >> Tada aš patikrinti, ar rezultatas yra nėra lygu lygu klaidinga. 549 00:27:33,290 --> 00:27:37,410 Tai tik mano būdas patikrinti Rūšiuoti informacija, jei rezultatai nėra lygus nuliui, 550 00:27:37,410 --> 00:27:40,260 kad mes norėtume pamatyti C pavyzdyje. 551 00:27:40,260 --> 00:27:44,000 Iš esmės tai yra tik patikrinti, kad įsitikinkite, kad jis iš tikrųjų gavo duomenis atgal. 552 00:27:44,000 --> 00:27:47,041 Nes aš nenoriu pradėti spausdinti iš duomenų, jei aš negavau jokių duomenų. 553 00:27:47,041 --> 00:27:50,690 Tada kiekvienai rezultatų kaip rezultatas foreach sintaksė iš PHP, visi darau 554 00:27:50,690 --> 00:27:53,399 spausdina iš $ result motinas. 555 00:27:53,399 --> 00:27:55,940 Ir todėl aš ruošiuosi gauti rinkinį Visų iš each-- motinos 556 00:27:55,940 --> 00:27:59,980 tai yra iš masyvą arrays-- ir aš spausdinti 557 00:27:59,980 --> 00:28:03,649 kiekvienas iš jų, kaip savo eilėje lentelėje. 558 00:28:03,649 --> 00:28:05,690 Ir tai tikrai gana daug visi yra į jį. 559 00:28:05,690 --> 00:28:07,750 Žinau, šiek tiek tiek vyksta čia 560 00:28:07,750 --> 00:28:13,210 Šiame paskutiniame pavyzdyje su matricomis arrays-- masyvus Association matricos. 561 00:28:13,210 --> 00:28:17,340 Bet tai tikrai tik virti nustatytų SQL priėmimo užklausą 562 00:28:17,340 --> 00:28:21,102 paprastai pasirinkdami mes po jau ve įdėti informaciją į lentelę, 563 00:28:21,102 --> 00:28:22,310 ir tada tiesiog traukdami jį. 564 00:28:22,310 --> 00:28:25,710 >> Ir tai mes traukti ją iš šiuo konkrečiu atveju. 565 00:28:25,710 --> 00:28:31,120 Mes būtų išgauti visi individo motinos iš mamų lentelėje. 566 00:28:31,120 --> 00:28:35,970 Mes turime visą rinkinį iš jų, ir mes noriu pakartoti per ir atsispausdinti 567 00:28:35,970 --> 00:28:37,630 kiekvienas. 568 00:28:37,630 --> 00:28:40,510 Taigi dar kartą, tai tikriausiai Sudėtingiausia pavyzdys 569 00:28:40,510 --> 00:28:44,510 mes matėme, nes mes maišymo trys skirtingos kalbos kartu, tiesa? 570 00:28:44,510 --> 00:28:50,100 >> Vėlgi, mes turime HTML čia raudonai, sumaišyti su trupučiu SQL čia, mėlyna, 571 00:28:50,100 --> 00:28:52,049 maišyti su tikru žalia PHP. 572 00:28:52,049 --> 00:28:53,840 Tačiau visi šie žaisti gražiai kartu, tai 573 00:28:53,840 --> 00:28:57,060 tik kurti nesvarbu gerus įpročius taip, kad jūs galite gauti 574 00:28:57,060 --> 00:28:58,780 jiems dirbti kartu, kaip jūs norite. 575 00:28:58,780 --> 00:29:03,790 Ir vienintelis būdas iš tiesų tai padaryti yra praktika, praktika, praktika. 576 00:29:03,790 --> 00:29:06,740 Aš Doug Lloyd, tai CS50. 577 00:29:06,740 --> 00:29:08,647