[Powered by Google Translate] [SQL] [KRISTOFORO Baltramiejus] [Harvardo universiteto] [Tai CS50] [CS50 TV] Taigi, programuotojai naudoja duomenų bazes, kaip priemonė, skirta saugoti ir tvarkyti mūsų nuolatinis duomenų lentelėse. Tai reiškia, kad jūsų duomenys yra saugomi nelakių medianų, pavyzdžiui, kietajame diske, ir net tada, kai kompiuteris yra išjungtas, duomenų vis dar yra nesugadintos. Ir, kaip programuotojų mūsų programos naudoja duomenų bazes, pavyzdžiui, saugoti scenarijus vartotojo informacija iš interneto formų ieškote inventorizavimas, arba atnaujinti informaciją apie tai, kas puslapiai rodo. Bet kaip mes iš tiesų sąveikauja su mūsų duomenų bazėje, ar tai, ką mes naudojame skaityti, saugoti, ištrinti, ir atnaujinti duomenis pagal šias duomenų bazės lenteles? Na, atsakymas yra tai, kad mes naudoti specialaus tipo duomenų bazių kalba , kuri sąveikauja tiesiogiai su mūsų duomenų bazės lenteles. Tai pavadinimas Structured Query Language, [Structured Query Language] arba ką vadiname kaip SQL. Dabar [Se-Quel], arba SQL, nėra programavimo kalba, bet vietoj to, tai kalba, kuri suteikia standartinį komandų rinkinį gauti ir manipuliuoti duomenimis iš duomenų bazių valdymo sistemų įvairovė. CS50 tikslu, mes pereiti keturias pagrindines komandas: pasirinkti, įterpti, atnaujinti ir ištrinti. Be to, mes pasinaudoti interneto duomenų bazės sąsaja, kuri vadinama phpMyAdmin, kuris įrengtas ant prietaiso rašyti SQL sakinius. Taigi, siekiant padėti jums prisiminti šias komandas, Aš atnešė cupcakes spintoje, padėti su mūsų scenarijų. Tarkime, jūs turite Cupcake duomenų bazę, kur laikyti visą informaciją apie savo cupcakes. Dabar, duomenų bazės gali būti daug lentelių ir pačias lenteles, gali būti daug stulpelių. Viduje mūsų keksas duomenų bazę, mes turime lentelėje, pavadintoje cupcake_cupboard. Ši lentelė bus naudojama saugoti visą informaciją apie cupcakes , kad yra gerai, savo spintoje. Stulpelius, kurie yra viduje jūsų stalo - Kurių keksas atributus. Pavyzdžiui, į cupcake_cupboard stulpeliai Tortas ID CakeType, CakeColor ir CakeIsNice. Šis Būlio įvedėte kolonėlė naudojama nustatyti, ar pyragas yra gražus, ar ne gražus. Mes ketiname pradėti rašyti SELECT. SELECT yra naudojami gauti duomenis tam tikros duomenų bazės lentelę. Pagal šį scenarijų, mes norime žinoti viską apie visus cupcakes, kad egzistuoja mūsų spintoje. Sintaksė, tai padaryti yra "Pasirinkti" Space Star, arba *, vietos iš kosmoso mūsų stalo, kuris yra cupcake_cupboard. Eikime į priekį ir vykdyti, kad. Kaip matome, visa tai yra cupcakes mūsų spintoje. Svarbu atkreipti dėmesį, kad * arba Žvaigždutė, yra laukinių kortelė simbolių tai reiškia rinkti visų kai kurių lentelės stulpelių. Paprastai, mes galime pasiekti tam tikrą stulpelį ar stulpelius pakeičiant * su faktine stulpelio pavadinimo. Jei norime, kad kelis stulpelius, bet ne visi, mes galime tai pasiekti kiekvieną stulpelį stulpelių pavadinimus, apribojantis kableliu rašymas. Pavyzdžiui, galime tik gauti CakeId ir CakeType į cupcake_cupboard stalo. Sintaksė tai padaryti yra: PASIRINKTI erdvė CakeID kablelis CakeType erdvė iš mūsų stalo, cupcake_cupboard. Eikime į priekį ir vykdyti. Ir čia mes dabar tik du stulpelius, nurodytus kiekvienam mūsų spintoje keksas. Mes taip pat galime patobulinti užklausų rezultatus, nurodant "Kur" sąlyga iš karto po lentelės pavadinimo. Pavyzdžiui, atrodo, kad mūsų spintoje keksas tai yra, gerai, ne taip gerai atrodo. Leiskite išsiaiškinti visus mūsų spintoje cupcakes, kurie, gerai, ne taip malonu, ieško naudojant "Tais atvejais, kai" sąlyga. Sintaksė, tai padaryti yra: PASIRINKTI erdvė * terpė iš kosmoso cupcake_cupboard erdvė, kurioje erdvė mūsų sąlyginį stulpelį, šiuo atveju CakeIsNice = ir Būlio vertė Netiesa. Svarbu atkreipti dėmesį, kad jei jūs naudojate eilutes, turite pridėkite jį viengubomis kabutėmis. Tai pasakytina ir apie visų SQL stygos, arba, SQL duomenų bazės požiūriu, variantas ženklai žinomas kaip varchar datatype. Šiuo atveju, mes naudojate true arba false, kuris yra Būlio vertė ir ne eilutę. Eikime į priekį ir vykdyti šią komandą. Štai ir štai, tai tas atvejis, kad mes turime 1 šokoladą ne toks gražus keksas mūsų spintoje. Be to, mes ketiname rašyti įrašyti pareiškimą. INSERT naudojamas įterpti arba pridėti papildomos eilutės duomenų į jūsų duomenų bazės lentelėje. Aplankant mūsų scenarijų, galime manyti, kad mes ką tik padarė naują keksas. Kadangi mes esame labai organizuotas Cupcake valgytojai, mes ketiname įterpti šią naują keksas mūsų cupcake_cupboard stalo. Sintaksė yra tokia: Įterpti į kosmosą vietos mūsų stalo, cupcake_cupboard, kosmosas ( ir čia mes nurodyti stulpeliai vardus, atriboti kableliu, CakeType kablelis CakeColor kablelis CakeIsNice) erdvę. Po to, mes rašome žodį vertės vietos (ir čia mes įvesti kiekvieno stulpelio vertę, taip pat atskirti kableliu. Viengubas kabutes, nes jie visi yra varchar vertės mes apsupti viengubomis kabutėmis, Žemės riešutų (arachių) sviestas "kablelis" Šviesiai ruda "kablelis Tiesa. Dabar svarbu, kad kiekvienoje eilutėje unikalų numerį identifikuoti save. Autoincrementing stulpelį teikia šią  "Nėra dviejų tos pačios ID kada nors gali egzistuoti šioje lentelėje." Eikime į priekį ir vykdyti. Čia mes eiti, organizuotas. Kitas SQL, mes rašyti atnaujinimai. Atnaujinimai gali būti naudojamas pakeisti duomenis per stulpelio bet kokio esamo eilutėje jūsų duomenų bazės lentelėje. Anksčiau mūsų scenarijų, naudojant SELECT, mes nustatėme keksas per mūsų cupcake_cupboard stalo kurių CakeIsNice vertė buvo melaginga. Tarkime, kad nors mūsų žemės riešutų sviestas, keksas buvo į krosnį, mes padarėme mūsų nelabai gražus keksas labai gražus. , Kai buvo išskirtinai organizuotas, mes norime, kad mūsų keksas, kad atspindėtų šį vertę mūsų cupcake_cupboard stalo. Todėl, galime atnaujinti mūsų Šokoladinis keksas į duomenų bazę, kad jame tai atsispindėtų. Sintaksė yra: UPDATE vieta mūsų stalas, cupcake_cupboard, erdvė SET erdvė stulpelyje, kad mes norime pakeisti, CakeIsNice = Tada čia mes vieta mūsų naują reikšmė TRUE erdvę. Dabar, nes mes nenorime atnaujinti visas eilutes su šiuo dydžiu, norime pateikti ", kur" sąlyga, kad bus tiksliai nustatyti mumis su tikslia eilės, kad mes norime pakeisti. Šiuo atveju, mes žinome, kad yra tik vienas keksas , kuri turi CakeIsNice vertę False. Be to, mes taip pat užtikrins, kad mes atnaujinti teisingą eilutę naudojant "ir" sąlygą. Mes naudojame "ir" sąlygą patikslinti užklausų. Šiuo atveju, nes mes žinome, kad keksas yra šokolado, mes naudosime šį CakeType stulpelį. Kur vietos mūsų sąlyginis stulpelis erdvė CakeIsNice erdvė = False, ir kosmoso CakeType = "šokoladas". Taigi, padėkite jį visi kartu, šis naujinimas pareiškime teigiama, rasite visą cupcakes mūsų keksas spintoje ir, jei yra keksas, kurio stulpelio CakeIsNice yra reikšmė FALSE ir CakeType yra vertės šokolado mes norime atnaujinti konkretų eilutės CakeIsNice vertę "True". Taigi, eikime į priekį ir vykdyti pareiškimą. Ir dabar, mes organizuotas. Visa tai cupcakes aptarimas padarė mane šiek tiek alkanas. Aš manau, turėtų padėti sau į vieną. Bet jei aš iš tikrųjų valgyti šį keksas, aš bent jau turėtų taip pat pašalinti savo egzistavimą  iš mūsų cupcake_cupboard stalo. Norėdami tai padaryti, mes naudosime "Delete" pareiškimą. "Ištrinti" pareiškimas gali būti naudojamas pašalinti visus arba kai kuriuos iš lentelės eilutes. Jei norite pašalinti tam tikrą specialią eilutę iš lentelės, tada jūs turite pateikti ", kur" sąlygą, taip nurodant stulpelį kad turi būti unikalus eilutę, kurią norite pašalinti. Tai sintaksė: DELETE iš kosmoso erdvę mūsų stalo, cupcake_cupboard, erdvė. Dabar, šiuo metu, kai jūs esate taip toli į savo DELETE norite būti labai atsargūs. Pavyzdžiui, jei aš noriu paleisti šią užklausą kaip be šiek tiek ", kur" sąlygą, Aš prarastų visus duomenis šiame cupcake_cupboard stalo, bet todėl, kad aš jau žinau, kad mano tortas ID yra unikalus, aš naudoti mano sąlyga ", kur" Red Velvet Cake ID. Kur erdvė mūsų kolona, ​​CakeID = 1. , Nes tai yra sveiko skaičiaus reikšmė nereikia, apgaubti jį viengubomis kabutėmis. Taigi, galime vykdyti pareiškimą. Na, dabar, mes sunaikino šis keksas iš mūsų cupcake_cupboard stalo, turime tik vienas dalykas, į kairę: Padaryti tai išnyksta. Aš tikiu, Christopher Baltramiejus. Tai CS50.