[Powered by Google Translate] [SQL] [Christopher Jerneja] [Univerzi Harvard] [To je CS50] [CS50 TV] Torej, programerji uporabo podatkovnih baz kot orodje za shranjevanje in organiziranje naša obstojna podatki v tabelah. To pomeni, da so vaši podatki shranjeni na nehlapnih median, kot so trdi disk, in tudi, ko je računalnik izklopljen, so podatki še vedno nedotaknjen. In, kot programerji, naši programi uporabljajo podatkovne baze za scenarije, kot so skladiščenje uporabnik podatke iz spletnih obrazcev pogledal seznam, ali posodabljanje informacij o tem, kaj strani zaslona. Ampak kako smo dejansko interakcijo z bazo podatkov, ali kaj bomo uporabili za branje, shranjevanje, brisanje, in posodobiti svoje podatke v okviru teh tabel zbirke podatkov? No, odgovor je, da uporabite posebno vrsto jezika zbirke ki je neposredno povezano z našimi tabelah zbirke podatkov. To ime je Structured Query Language, [Structured Query Language] ali kaj mislim, da je SQL. Zdaj, [Se-quel] ali SQL, ni programski jezik, ampak, to je jezik, ki ga predvideva standardni nabor ukazov za pridobivanje in upravljanje podatkov iz različnih sistemov za upravljanje podatkovnih baz. Za CS50, bova šla skozi štiri osnovne ukaze: izberite vstavi, posodabljanje in brisanje. Poleg tega bomo izkoristili vmesnik zbirke podatkov, imenovano spletno phpMyAdmin, ki je nameščen na stroju, da napišete svoje SQL. Torej, da si boste lažje zapomnili te ukaze, Prinesel sem nekaj piškote v omari za pomoč pri naših scenarijev. Recimo, da imate Cupcake v bazo podatkov, kje hrani podatke o vaši piškote. Sedaj lahko baze podatkov vsebuje več tabel in lahko sami tabele vsebujejo veliko stolpcev. Znotraj baze naše Cupcake, imamo tabelo imenovano cupcake_cupboard. Ta tabela se bo uporabljala za shranjevanje vseh podatkov o piškote da so tudi v vaši omari. Kolone, ki so v vašem tabeli predstavljajo atribute cupcake. Na primer, v cupcake_cupboard je stolpci Cake ID, CakeType, CakeColor in CakeIsNice. Ta boolean-natipkan stolpec se uporablja za ugotavljanje, če je lepo torto ali ni lepo. Bomo začeli s pisanjem izberite izjavo. Izberite izkazi se uporablja za pridobivanje podatkov za posamezne tabele zbirke podatkov. V tem primeru želimo, da vedo vse o vseh piškote, ki obstajajo v naši omari. Skladnja za to je "Izberi" prostor zvezda, ali *, vesolje iz vesolja naše tabele, ki je cupcake_cupboard. Pojdimo in izvršitev tega. Kot lahko vidimo, so vse piškote v naši omari. Pomembno je omeniti, da *, ali zvezdico, je joker znak , ki označuje zbiranje vseh stolpcih neke tabele. Običajno lahko do določenega stolpec ali stolpce * z zamenjavo z dejanskim imenom stolpca. Če želimo več stolpcev, a ne vsi, lahko to dosežemo pisno imena stolpcev razmejitvi vsak stolpec z vejico. Na primer, recimo, samo naloľiti CakeId in CakeType v cupcake_cupboard tabeli. Sintaksa za to je: SELECT prostor CakeID vejica CakeType prostora iz naše tabele, cupcake_cupboard. Gremo naprej in izvedbo tega. In tukaj imamo sedaj samo dve koloni smo določene Za vsak cupcake v naši omari. Prav tako lahko izboljšajo svoje rezultate poizvedbe z navedbo "Kje klavzula" samo po ime tabele. Na primer, se zdi, da tortica v naši omari to je, no, ne tako lepo videti. Naj razbrati vse piškote v naši omari, ki so, no, ne tako lepo videti uporabo "Kam" klavzula. Sintaksa za to je: SELECT prostor * prostor IZ cupcake_cupboard prostora Prostor, kjer je prostor našega pogojno stolpec, v tem primeru CakeIsNice =, in boolean vrednost False. Pomembno je opozoriti, da če uporabljate nizov, ga morate priložiti v enojnih narekovajih. To velja za vse nize v SQL, ali, v smislu SQL baze podatkov, varianta znakov znan kot varchar datatype. V tem primeru smo z uporabo True ali False, kar je logična vrednost in ne niz. Pojdimo in poženite ta ukaz. Lo in vidite, da je res, da imamo 1 čokolado Ne tako lepo cupcake v naši omari. Naprej gremo napisati vstaviti izjavo. Vstavi izjave se uporabljajo za vstavljanje ali dodajanje dodatne vrstice podatkov v tabeli zbirke podatkov. Ponovno pregledati naše scenarij, predpostavimo, da smo šele na povsem nov cupcake. Ker smo zelo organizirana Cupcake jedce, bomo morali vstaviti to novo cupcake v našem cupcake_cupboard tabeli. Sintaksa za to je to: Vstavite presledek v vesolje naše tabele, cupcake_cupboard, presledek (, in tu določite stolpce imena, ločene z vejico, CakeType vejico CakeColor vejico CakeIsNice) prostor. Po tem, pišemo prostor besedo vrednot (in tu vnesemo vrednosti za vsak stolpec v tem zaporedju, tudi ločene z vejico. Enojni narekovaj, ker so vse vrednosti varchar jih bomo surround v enojnih narekovajih, Arašidovo maslo "vejica" svetlo rjava vejica "True. Zdaj je pomembno, da vsaka vrstica svojo številko, da se identificirajo. Autoincrementing stolpec določa, da je to  "Ne obstajata dva enaka ID-ji kdaj obstajajo v tej tabeli." Pojdimo in izvrševanje. Takole, vse organizirano. Naslednji SQL izjava, da bomo napisali, je sprememba podatkov. Dopolnitev podatkov je mogoče uporabiti za spreminjanje podatkov v stolpcu za katerokoli obstoječo vrstico v vaši zbirki podatkov. Predhodni v našem scenariju, po ožji izjavo, smo ugotovili, tortica v tabeli naše cupcake_cupboard v katerih CakeIsNice vrednost je False. Denimo, da medtem ko je naša kikirikijevo maslo cupcake je bila v pečici, smo naredili, ne-tako-lepo tortica zelo lepo. Ker je to izjemno organizirano, želimo, da naši cupcake ki bi odražala ta vrednost v našem cupcake_cupboard tabeli. Zato dajmo posodobitev naše čokolade cupcake v podatkovni zbirki s tem. Sintaksa je: UPDATE prostor naša miza, cupcake_cupboard, prostor, prostor stolpec, ki ga želite spremeniti, CakeIsNice =. Potem tukaj je temelj naše nove prave vrednosti prostora. No, saj ne želimo, da posodobite vse vrstice s to vrednostjo, želimo zagotoviti "Where" klavzule, ki nam bo zelo majhnimi točno na vrsti, da ga želimo spremeniti. V tem primeru vemo, da obstaja samo en kolaček ki ima CakeIsNice vrednost False. Poleg tega bomo tudi zagotoviti, da bomo posodobiti pravilno vrstico z uporabo "in" klavzulo. Mi uporabljamo "in" klavzulo za izboljšanje naše poizvedbe naprej. V tem primeru, saj vemo, da je cupcake je čokolada, bomo uporabili to CakeType stolpec. Kadar prostor naša pogojena stolpec prostor CakeIsNice prostor = False, in prostor CakeType = "ČOKOLADA". Torej, ga je dala vse skupaj, ta posodobitev saopsstenju našli vse piškote v naši Cupcake omari, in če je cupcake katerega stolpec CakeIsNice vsebuje vrednost False in CakeType vsebuje vrednost čokolado, želimo posodobiti posebne CakeIsNice vrstic vrednost True. Torej, gremo naprej in izvedbo izjavo. In zdaj smo organizirali smo. Vse to govorjenje o piškote sem bil malo lačen. Mislim, da bi morala sama pomagati enemu. Ampak, če sem dejansko poje to cupcake, naj vsaj odpravila tudi njen obstoj  iz naše cupcake_cupboard mizo. Če želite to narediti, bomo uporabili "Delete" izjavo. V "Delete" Izjava se lahko uporabi, da odstranite vse ali nekatere vrstice iz tabele. Če želite odstraniti nekaj posebno vrstico iz tabele, potem morate zagotoviti "Where" klavzule, s čimer se podate stolpec da bi morala biti enotna za vrstico, ki jo želite odstraniti. To je sintaksa: DELETE FROM prostor prostor naša miza, cupcake_cupboard, prostor. Zdaj, v tem trenutku, ko ste tako daleč v svoji izjavi za brisanje hočeš biti zelo previdni. Na primer, če želim izvesti to vprašanje, kot je, ne da nekaj "Kje" klavzule Jaz bi izgubili vse podatke v tej tabeli cupcake_cupboard, ampak zato, ker že vem, da so moje torto ID edinstvena, bom uporabo Red Velvet torta ID za mojo "kje" klavzule. KJE prostor naša kolona, ​​CakeID = 1. Ker je to celo vrednost ni potrebe, da ga obkroža v enojnih narekovajih. Torej, kaj je izvršitev izjavo. No, zdaj, ko smo obrisal obstoj te cupcake iz naše cupcake_cupboard mizi, imamo samo eno stvar levi: Naj bo izginila. Sem Christopher Bartolomeja. To je CS50.