1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [KRISTOFORO Baltramiejus] [Harvardo universiteto] 3 00:00:04,000 --> 00:00:06,000 [Tai CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Taigi, programuotojai naudoja duomenų bazes, kaip priemonė, skirta saugoti ir tvarkyti 5 00:00:11,620 --> 00:00:13,620 mūsų nuolatinis duomenų lentelėse. 6 00:00:13,620 --> 00:00:18,960 Tai reiškia, kad jūsų duomenys yra saugomi nelakių medianų, pavyzdžiui, kietajame diske, 7 00:00:18,960 --> 00:00:22,940 ir net tada, kai kompiuteris yra išjungtas, duomenų vis dar yra nesugadintos. 8 00:00:22,940 --> 00:00:29,530 Ir, kaip programuotojų mūsų programos naudoja duomenų bazes, pavyzdžiui, saugoti scenarijus 9 00:00:29,530 --> 00:00:32,890 vartotojo informacija iš interneto formų ieškote inventorizavimas, 10 00:00:32,890 --> 00:00:36,210 arba atnaujinti informaciją apie tai, kas puslapiai rodo. 11 00:00:37,150 --> 00:00:40,070 Bet kaip mes iš tiesų sąveikauja su mūsų duomenų bazėje, 12 00:00:40,070 --> 00:00:43,150 ar tai, ką mes naudojame skaityti, saugoti, ištrinti, 13 00:00:43,150 --> 00:00:46,070 ir atnaujinti duomenis pagal šias duomenų bazės lenteles? 14 00:00:47,280 --> 00:00:49,700 Na, atsakymas yra tai, kad mes naudoti specialaus tipo duomenų bazių kalba 15 00:00:49,700 --> 00:00:53,400 , kuri sąveikauja tiesiogiai su mūsų duomenų bazės lenteles. 16 00:00:53,400 --> 00:00:56,740 Tai pavadinimas Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 arba ką vadiname kaip SQL. 19 00:01:00,740 --> 00:01:05,100 >> Dabar [Se-Quel], arba SQL, nėra programavimo kalba, 20 00:01:05,100 --> 00:01:08,580 bet vietoj to, tai kalba, kuri suteikia standartinį komandų rinkinį 21 00:01:08,580 --> 00:01:13,520 gauti ir manipuliuoti duomenimis iš duomenų bazių valdymo sistemų įvairovė. 22 00:01:13,520 --> 00:01:17,630 CS50 tikslu, mes pereiti keturias pagrindines komandas: 23 00:01:17,630 --> 00:01:21,210 pasirinkti, įterpti, atnaujinti ir ištrinti. 24 00:01:21,210 --> 00:01:26,230 Be to, mes pasinaudoti interneto duomenų bazės sąsaja, kuri vadinama phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 kuris įrengtas ant prietaiso rašyti SQL sakinius. 26 00:01:30,830 --> 00:01:33,050 Taigi, siekiant padėti jums prisiminti šias komandas, 27 00:01:33,050 --> 00:01:37,080 Aš atnešė cupcakes spintoje, padėti su mūsų scenarijų. 28 00:01:39,650 --> 00:01:42,210 Tarkime, jūs turite Cupcake duomenų bazę, 29 00:01:42,210 --> 00:01:44,490 kur laikyti visą informaciją apie savo cupcakes. 30 00:01:44,490 --> 00:01:48,220 Dabar, duomenų bazės gali būti daug lentelių 31 00:01:48,220 --> 00:01:50,950 ir pačias lenteles, gali būti daug stulpelių. 32 00:01:50,950 --> 00:01:57,020 Viduje mūsų keksas duomenų bazę, mes turime lentelėje, pavadintoje cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Ši lentelė bus naudojama saugoti visą informaciją apie cupcakes 34 00:02:00,500 --> 00:02:02,990 , kad yra gerai, savo spintoje. 35 00:02:02,990 --> 00:02:07,770 Stulpelius, kurie yra viduje jūsų stalo - Kurių keksas atributus. 36 00:02:07,770 --> 00:02:14,560 Pavyzdžiui, į cupcake_cupboard stulpeliai 37 00:02:14,560 --> 00:02:15,920 Tortas ID CakeType, CakeColor ir CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Šis Būlio įvedėte kolonėlė naudojama nustatyti, ar pyragas yra gražus, ar ne gražus. 39 00:02:23,040 --> 00:02:26,560 Mes ketiname pradėti rašyti SELECT. 40 00:02:26,560 --> 00:02:32,160 SELECT yra naudojami gauti duomenis tam tikros duomenų bazės lentelę. 41 00:02:32,160 --> 00:02:34,890 Pagal šį scenarijų, mes norime žinoti viską 42 00:02:34,890 --> 00:02:39,080 apie visus cupcakes, kad egzistuoja mūsų spintoje. 43 00:02:39,080 --> 00:02:48,670 Sintaksė, tai padaryti yra "Pasirinkti" Space Star, arba *, vietos iš kosmoso mūsų stalo, 44 00:02:48,670 --> 00:02:52,050 kuris yra cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Eikime į priekį ir vykdyti, kad. 46 00:02:56,670 --> 00:03:00,140 >> Kaip matome, visa tai yra cupcakes mūsų spintoje. 47 00:03:00,140 --> 00:03:05,110 Svarbu atkreipti dėmesį, kad * arba Žvaigždutė, yra laukinių kortelė simbolių 48 00:03:05,110 --> 00:03:08,830 tai reiškia rinkti visų kai kurių lentelės stulpelių. 49 00:03:08,830 --> 00:03:13,650 Paprastai, mes galime pasiekti tam tikrą stulpelį ar stulpelius 50 00:03:13,650 --> 00:03:16,950 pakeičiant * su faktine stulpelio pavadinimo. 51 00:03:16,950 --> 00:03:21,220 Jei norime, kad kelis stulpelius, bet ne visi, mes galime tai pasiekti 52 00:03:21,220 --> 00:03:25,620 kiekvieną stulpelį stulpelių pavadinimus, apribojantis kableliu rašymas. 53 00:03:25,620 --> 00:03:28,620 Pavyzdžiui, galime tik gauti CakeId ir CakeType į cupcake_cupboard stalo. 54 00:03:28,620 --> 00:03:38,370 Sintaksė tai padaryti yra: PASIRINKTI erdvė CakeID kablelis 55 00:03:38,370 --> 00:03:44,370 CakeType erdvė iš mūsų stalo, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Eikime į priekį ir vykdyti. 57 00:03:49,340 --> 00:03:52,670 Ir čia mes dabar tik du stulpelius, nurodytus 58 00:03:52,670 --> 00:03:54,670 kiekvienam mūsų spintoje keksas. 59 00:03:54,670 --> 00:03:57,710 Mes taip pat galime patobulinti užklausų rezultatus, nurodant 60 00:03:57,710 --> 00:04:00,910 "Kur" sąlyga iš karto po lentelės pavadinimo. 61 00:04:02,000 --> 00:04:05,410 Pavyzdžiui, atrodo, kad mūsų spintoje keksas 62 00:04:05,410 --> 00:04:08,660 tai yra, gerai, ne taip gerai atrodo. 63 00:04:08,660 --> 00:04:13,950 Leiskite išsiaiškinti visus mūsų spintoje cupcakes, kurie, gerai, ne taip malonu, ieško 64 00:04:13,950 --> 00:04:16,110 naudojant "Tais atvejais, kai" sąlyga. 65 00:04:16,110 --> 00:04:26,390 Sintaksė, tai padaryti yra: PASIRINKTI erdvė * terpė iš kosmoso cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 erdvė, kurioje erdvė mūsų sąlyginį stulpelį, šiuo atveju CakeIsNice = 67 00:04:34,080 --> 00:04:36,900 ir Būlio vertė Netiesa. 68 00:04:36,900 --> 00:04:42,750 Svarbu atkreipti dėmesį, kad jei jūs naudojate eilutes, turite pridėkite jį viengubomis kabutėmis. 69 00:04:42,750 --> 00:04:49,620 Tai pasakytina ir apie visų SQL stygos, arba, SQL duomenų bazės požiūriu, variantas ženklai 70 00:04:49,620 --> 00:04:51,620 žinomas kaip varchar datatype. 71 00:04:51,620 --> 00:04:57,660 Šiuo atveju, mes naudojate true arba false, kuris yra Būlio vertė ir ne eilutę. 72 00:04:59,120 --> 00:05:00,660 Eikime į priekį ir vykdyti šią komandą. 73 00:05:00,660 --> 00:05:05,340 >> Štai ir štai, tai tas atvejis, kad mes turime 1 šokoladą 74 00:05:05,340 --> 00:05:07,920 ne toks gražus keksas mūsų spintoje. 75 00:05:09,620 --> 00:05:11,460 Be to, mes ketiname rašyti įrašyti pareiškimą. 76 00:05:11,460 --> 00:05:15,560 INSERT naudojamas įterpti arba pridėti 77 00:05:15,560 --> 00:05:17,770 papildomos eilutės duomenų į jūsų duomenų bazės lentelėje. 78 00:05:17,770 --> 00:05:23,160 Aplankant mūsų scenarijų, galime manyti, kad mes ką tik padarė naują keksas. 79 00:05:25,910 --> 00:05:30,080 Kadangi mes esame labai organizuotas Cupcake valgytojai, mes ketiname įterpti šią naują keksas 80 00:05:30,080 --> 00:05:32,330 mūsų cupcake_cupboard stalo. 81 00:05:32,330 --> 00:05:40,690 Sintaksė yra tokia: Įterpti į kosmosą vietos mūsų stalo, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, kosmosas ( 83 00:05:46,830 --> 00:05:51,060 ir čia mes nurodyti stulpeliai vardus, atriboti kableliu, 84 00:05:51,060 --> 00:05:59,790 CakeType kablelis CakeColor kablelis CakeIsNice) erdvę. 85 00:05:59,790 --> 00:06:06,540 Po to, mes rašome žodį vertės vietos (ir čia 86 00:06:06,540 --> 00:06:12,170 mes įvesti kiekvieno stulpelio vertę, taip pat atskirti kableliu. 87 00:06:12,170 --> 00:06:17,830 Viengubas kabutes, nes jie visi yra varchar vertės mes apsupti viengubomis kabutėmis, 88 00:06:17,830 --> 00:06:26,780 Žemės riešutų (arachių) sviestas "kablelis" Šviesiai ruda "kablelis Tiesa. 89 00:06:26,780 --> 00:06:30,480 Dabar svarbu, kad kiekvienoje eilutėje unikalų numerį identifikuoti save. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing stulpelį teikia šią 91 00:06:33,660 --> 00:06:37,410  "Nėra dviejų tos pačios ID kada nors gali egzistuoti šioje lentelėje." 92 00:06:37,410 --> 00:06:39,480 Eikime į priekį ir vykdyti. 93 00:06:39,480 --> 00:06:45,380 Čia mes eiti, organizuotas. 94 00:06:49,720 --> 00:06:52,100 >> Kitas SQL, mes rašyti atnaujinimai. 95 00:06:52,100 --> 00:06:55,650 Atnaujinimai gali būti naudojamas pakeisti duomenis per stulpelio 96 00:06:55,650 --> 00:06:58,440 bet kokio esamo eilutėje jūsų duomenų bazės lentelėje. 97 00:06:59,670 --> 00:07:03,420 Anksčiau mūsų scenarijų, naudojant SELECT, mes nustatėme keksas 98 00:07:03,420 --> 00:07:08,300 per mūsų cupcake_cupboard stalo kurių CakeIsNice vertė buvo melaginga. 99 00:07:08,300 --> 00:07:12,050 Tarkime, kad nors mūsų žemės riešutų sviestas, keksas buvo į krosnį, 100 00:07:12,050 --> 00:07:15,790 mes padarėme mūsų nelabai gražus keksas labai gražus. 101 00:07:18,020 --> 00:07:22,240 , Kai buvo išskirtinai organizuotas, mes norime, kad mūsų keksas, kad atspindėtų šį vertę 102 00:07:22,240 --> 00:07:24,240 mūsų cupcake_cupboard stalo. 103 00:07:24,240 --> 00:07:28,710 Todėl, galime atnaujinti mūsų Šokoladinis keksas į duomenų bazę, kad jame tai atsispindėtų. 104 00:07:28,710 --> 00:07:39,720 Sintaksė yra: UPDATE vieta mūsų stalas, cupcake_cupboard, erdvė SET erdvė 105 00:07:39,720 --> 00:07:44,240 stulpelyje, kad mes norime pakeisti, CakeIsNice = 106 00:07:44,240 --> 00:07:49,210 Tada čia mes vieta mūsų naują reikšmė TRUE erdvę. 107 00:07:49,210 --> 00:07:54,290 Dabar, nes mes nenorime atnaujinti visas eilutes su šiuo dydžiu, 108 00:07:54,290 --> 00:07:57,400 norime pateikti ", kur" sąlyga, kad bus tiksliai nustatyti mumis 109 00:07:57,400 --> 00:07:59,830 su tikslia eilės, kad mes norime pakeisti. 110 00:07:59,830 --> 00:08:03,690 Šiuo atveju, mes žinome, kad yra tik vienas keksas 111 00:08:03,690 --> 00:08:06,670 , kuri turi CakeIsNice vertę False. 112 00:08:06,670 --> 00:08:11,030 Be to, mes taip pat užtikrins, kad mes atnaujinti teisingą eilutę 113 00:08:11,030 --> 00:08:13,030 naudojant "ir" sąlygą. 114 00:08:14,340 --> 00:08:17,270 Mes naudojame "ir" sąlygą patikslinti užklausų. 115 00:08:17,270 --> 00:08:20,380 Šiuo atveju, nes mes žinome, kad keksas yra šokolado, 116 00:08:20,380 --> 00:08:23,160 mes naudosime šį CakeType stulpelį. 117 00:08:23,160 --> 00:08:31,500 Kur vietos mūsų sąlyginis stulpelis erdvė CakeIsNice erdvė = False, 118 00:08:31,500 --> 00:08:38,330 ir kosmoso CakeType = "šokoladas". 119 00:08:38,330 --> 00:08:41,880 Taigi, padėkite jį visi kartu, šis naujinimas pareiškime teigiama, 120 00:08:41,880 --> 00:08:44,670 rasite visą cupcakes mūsų keksas spintoje 121 00:08:44,670 --> 00:08:50,520 ir, jei yra keksas, kurio stulpelio CakeIsNice yra reikšmė FALSE 122 00:08:50,520 --> 00:08:54,130 ir CakeType yra vertės šokolado 123 00:08:54,130 --> 00:08:58,240 mes norime atnaujinti konkretų eilutės CakeIsNice vertę "True". 124 00:08:58,240 --> 00:09:01,140 Taigi, eikime į priekį ir vykdyti pareiškimą. 125 00:09:03,860 --> 00:09:05,860 Ir dabar, mes organizuotas. 126 00:09:06,650 --> 00:09:09,220 >> Visa tai cupcakes aptarimas padarė mane šiek tiek alkanas. 127 00:09:09,220 --> 00:09:11,360 Aš manau, turėtų padėti sau į vieną. 128 00:09:11,360 --> 00:09:17,670 Bet jei aš iš tikrųjų valgyti šį keksas, aš bent jau turėtų taip pat pašalinti savo egzistavimą 129 00:09:17,670 --> 00:09:19,670  iš mūsų cupcake_cupboard stalo. 130 00:09:20,650 --> 00:09:22,590 Norėdami tai padaryti, mes naudosime "Delete" pareiškimą. 131 00:09:22,590 --> 00:09:27,400 "Ištrinti" pareiškimas gali būti naudojamas pašalinti visus arba kai kuriuos iš lentelės eilutes. 132 00:09:27,400 --> 00:09:29,920 Jei norite pašalinti tam tikrą specialią eilutę iš lentelės, 133 00:09:29,920 --> 00:09:34,360 tada jūs turite pateikti ", kur" sąlygą, taip nurodant stulpelį 134 00:09:34,360 --> 00:09:37,660 kad turi būti unikalus eilutę, kurią norite pašalinti. 135 00:09:37,660 --> 00:09:47,370 Tai sintaksė: DELETE iš kosmoso erdvę mūsų stalo, cupcake_cupboard, erdvė. 136 00:09:47,370 --> 00:09:51,760 Dabar, šiuo metu, kai jūs esate taip toli į savo DELETE 137 00:09:51,760 --> 00:09:54,240 norite būti labai atsargūs. 138 00:09:54,240 --> 00:09:59,970 Pavyzdžiui, jei aš noriu paleisti šią užklausą kaip be šiek tiek ", kur" sąlygą, 139 00:09:59,970 --> 00:10:04,500 Aš prarastų visus duomenis šiame cupcake_cupboard stalo, 140 00:10:04,500 --> 00:10:09,590 bet todėl, kad aš jau žinau, kad mano tortas ID yra unikalus, aš naudoti 141 00:10:09,590 --> 00:10:12,410 mano sąlyga ", kur" Red Velvet Cake ID. 142 00:10:14,550 --> 00:10:20,670 Kur erdvė mūsų kolona, ​​CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 , Nes tai yra sveiko skaičiaus reikšmė nereikia, apgaubti jį viengubomis kabutėmis. 144 00:10:25,010 --> 00:10:27,020 Taigi, galime vykdyti pareiškimą. 145 00:10:33,560 --> 00:10:35,990 Na, dabar, mes sunaikino šis keksas 146 00:10:35,990 --> 00:10:40,360 iš mūsų cupcake_cupboard stalo, turime tik vienas dalykas, į kairę: 147 00:10:41,680 --> 00:10:43,680 Padaryti tai išnyksta. 148 00:10:43,680 --> 00:10:46,990 Aš tikiu, Christopher Baltramiejus. Tai CS50.