[Powered by Google Translate] [SQL] [CHRISTOPHER BARTHOLOMEW] [Harvard] [ÞETTA ER CS50] [CS50 TV] Svo skaltu nota forritarar gagnagrunna sem tæki til að geyma og skipuleggja viðvarandi gögn okkar innan borðum. Það þýðir að gögn eru geymd á non-rokgjarnra miðgildi svo sem a harður ökuferð, og jafnvel þegar tölva er slökkt, the gögn er enn ósnortinn. Og, sem forritari, nýta forrit okkar gagnagrunna fyrir aðstæður eins og að geyma upplýsingar um notandann úr formum á vefsíðum, að horfa upp birgðum, eða uppfæra upplýsingar um hvaða síður sýna. En hvernig eigum við að hafa samskipti í raun við okkur, eða hvað notum við til að lesa, vista, eyða, og uppfæra gögn okkar innan þessara gagnasafn matskeið? Jæja, svarið er að við nota sérstaka tegund af tungumáli gagnagrunni sem samskipti beint við borðum gagnagrunninum okkar. Nafn það er Structured Query Language, [Structured Query Language] eða það sem ég vísa til sem SQL. Nú [SE-QueL], eða SQL er ekki forritunarmál, en í staðinn er það tungumál sem veitir staðlað sett af skipunum til að sækja og vinna gögn úr ýmsum gagnasafn stjórnun kerfi. Að því er varðar CS50, munum við fara yfir fjórar helstu skipanir: velja, INSERT, UPDATE og eyða. Ennfremur munum við nýta vefur gagnasafn tengi heitir phpMyAdmin, sem uppsett á tækinu til að skrifa SQL yfirlýsingar okkar. Svo, til að hjálpa þér að muna þessar skipanir, Ég hef fært nokkrar Cupcakes í skáp til að aðstoða við aðstæður okkar. Segjum að þú ert gagnagrunni A Cupcake er, þar sem þú geymir allar upplýsingar um Cupcakes þínu. Nú, gagnasöfn geta innihaldið marga töflur og töflur sjálf geta innihaldið marga dálka. Inni gagnagrunni Cupcake okkar, höfum við töflu sem heitir cupcake_cupboard. Þessi tafla verður notaður til að geyma allar upplýsingar um Cupcakes sem eru, vel, í skáp þínu. Súlurnar sem eru inni töflunni tákna eiginleika a Cupcake. Til dæmis, eru dálkar í cupcake_cupboard er Kaka ID, CakeType, CakeColor og CakeIsNice. Þetta Boolean-tegund súla er notuð til að ákvarða hvort kaka er gott eða ekki gott. Við ætlum að byrja með að skrifa upp á að velja yfirlýsingu. Veldu yfirlýsingar eru notuð til að sækja gögn af tiltekinni gagnagrunni töflunni. Í þessari atburðarás, viljum við að vita allt um alla Cupcakes sem ríkir í skáp okkar. The setningafræði til að gera þetta er "Select" rúm stjörnu, eða *, rúm frá rúm borð okkar, sem er cupcake_cupboard. Við skulum fara á undan og keyra það. Eins og sjá má eru þetta allt Cupcakes í skáp okkar. Það er mikilvægt að hafa í huga að * eða stjörnu, er villtur nafnspjald karakter sem táknar safna öllum dálkum sumra borðið. Venjulega getum við aðgang að tilteknum dálk eða dálka með því að skipta * við raunverulegan dálki nafn. Ef við viljum marga dálka, en ekki allt, við getum ná þessu með því að skrifa dálkinum nöfn afmarkar hver dálkur með kommu. Til dæmis, við skulum aðeins sækja CakeId og CakeType í cupcake_cupboard töflunni. The setningafræði til að gera þetta er: SELECT pláss CakeID kommu CakeType pláss frá borðið okkar, cupcake_cupboard. Við skulum fara á undan og framkvæma þetta. Og hér, nú við aðeins hafa tvo dálka sem við tilgreindar fyrir hvern Cupcake í skáp okkar. Við getum einnig betrumbæta fyrirspurn niðurstöður okkar með því að tilgreina "Hvar" lið bara eftir töflunni nafn. Til dæmis, það virðist vera Cupcake í skáp okkar sem er, vel, ekki svo gott að leita. Við skulum reikna út alla Cupcakes í skáp okkar sem eru, vel, ekki svo gott að leita nota "þar sem" ákvæði. The setningafræði til að gera þetta er: SELECT rúm * rúm frá cupcake_cupboard rúm rými þar sem rými skilyrt dálki okkar, í þessu tilfelli CakeIsNice =, og Boole gildi False. Það er mikilvægt að hafa í huga að ef þú ert að nota strengi, þú verður að láta hana í einn quotes. Þetta er satt fyrir alla strengi í SQL, eða, í SQL gagnagrunn skilmálum, afbrigði stafir þekktur sem VARCHAR datatype. Í þessu tilfelli erum við að nota True eða False, sem er Boole gildi og ekki band. Við skulum fara á undan og keyra þessa skipun. Lo og sjá, það er mál sem við höfum 1 súkkulaði ekki svo gott Cupcake í skáp okkar. Næst ætlum við að skrifa setja inn yfirlýsingu. Setja yfirlýsingar eru notuð til að setja eða bæta fleiri línur af gögnum í töflu gagnagrunninn. Endurlit atburðarás okkar, við skulum gera ráð fyrir að við höfum bara gert nýtt Cupcake. Þar sem við erum mjög skipulögð Cupcake eaters, við erum að fara að setja þessa nýju Cupcake í töflu cupcake_cupboard okkar. The setningafræði til að gera þetta er þetta: Settu pláss í rúm borð okkar, cupcake_cupboard, rúm (, og hér við að skilgreina dálka nöfn, afmarkast með kommu, CakeType kommu CakeColor kommu CakeIsNice) rúm. Eftir þetta, skrifa við orðið gildum pláss (og hér við inn í gildi fyrir hvern dálk um sig, einnig afmörkuð með kommu. Single vitna, því að þeir eru allir VARCHAR gildi munum við umlykja þá í einum vitna, Ljósbrúnt "Comma" hnetusmjör "komma True. Nú er mikilvægt að gefa hverri línu einstakt númer til að auðkenna sig. Autoincrementing dálk veitir þetta sem  "Engar tvær sömu auðkenni getur alltaf vera í þessari töflu." Við skulum fara á undan og keyra. Svona, allir skipulagt. Næsta SQL staðhæfing sem við munum skrifa er að uppfæra yfirlýsingu. The endurnýja yfirlýsingu má nota til að breyta gögnum innan dálki fyrir núverandi röð í töflunni gagnagrunninn. Fyrr í atburðarás okkar, með því að nota velja yfirlýsingu, auðkennd við a Cupcake í töflunni cupcake_cupboard okkar CakeIsNice gildi Hvers var False. Við skulum gera ráð fyrir að á meðan hnetusmjör Cupcake okkar var í ofninum, við gert ekki-svo-gott Cupcake okkar mjög gott. Tilvera svo einstaklega skipulagður, viljum við Cupcake okkar til að endurspegla þetta gildi í töflu cupcake_cupboard okkar. Því skulum uppfæra súkkulaði cupcake okkar í gagnagrunninum til að endurspegla þetta. The setningafræði er: UPDATE pláss borð okkar, cupcake_cupboard, rúm SET rúm dálkinum sem við viljum breyta, CakeIsNice =. Þá hér við setja nýtt gildi okkar True pláss. Nú, vegna þess að við viljum ekki að uppfæra allar færslur með þessu gildi, við viljum veita "þar sem" lið sem munu miðla okkur að nákvæmlega röð sem við viljum breyta. Í þessu tilfelli, vitum við að það er aðeins einn Cupcake sem hefur CakeIsNice gildi False. Þá munum við einnig að tryggja að við erum að uppfæra rétta röð með því að nota "og" ákvæði. Við notum "og" ákvæði að betrumbæta fyrirspurn okkar frekar. Í þessu tilfelli, vegna þess að við vitum að Cupcake er súkkulaði, við munum nota þennan CakeType dálki. Þar sem rými skilyrt dálki rúm CakeIsNice okkar rúm = False, og rúm CakeType = 'súkkulaði. " Svo, setja það allt saman, þessa uppfærslu yfirlýsingu segir finna allar Cupcakes í Cupcake skáp okkar, og ef það er Cupcake sem dálki CakeIsNice inniheldur gildi False og CakeType inniheldur gildi súkkulaði, við viljum að uppfæra sérstaka raðir CakeIsNice gildi True. Svo, við skulum fara á undan og framkvæmum. Og nú erum við skipulögð. Allt þetta tal um Cupcakes hefur gert mig svolítið svangur. Ég held að ég ætti að hjálpa mér í eitt. En ef ég borða reyndar þetta cupcake, ætti ég að minnsta kosti einnig fjarlægja tilvist sína  frá töflu cupcake_cupboard okkar. Til að gera þetta, munum við nota "Eyða" yfirlýsingu. The "Eyða" yfirlýsingu er hægt að nota til að fjarlægja allt eða sumir raðir í töflunni. Ef þú vilt fjarlægja sumir sérstakur röð í töflunni, þá verður þú að gefa upp "þar sem" ákvæði, þannig að skilgreina dálk sem ætti að vera einstakt að röðinni sem þú vilt fjarlægja. Þetta er setningafræði: DELETE rúm frá rúm borð okkar, cupcake_cupboard, rúm. Nú, á þessum tímapunkti, þegar þú ert svona langt í eyða yfirlýsingu þína þú vilt vera mjög varkár. Til dæmis, ef ég vil keyra þessa fyrirspurn sem er án þess að veita nokkur "þar sem" ákvæði Ég myndi missa öll gögn í þessu cupcake_cupboard töflunni heldur vegna þess að ég veit nú þegar að kaka auðkenni mínir eru einstök, ég nota Red Velvet kaka auðkenni fyrir "þar sem" minn ákvæði. Þar sem rými dálki okkar, CakeID = 1. Vegna þess að þetta er heiltala gildi það er engin þörf til að umlykja það í einn quotes. Svo, við skulum framkvæma yfirlýsingu. Jæja, nú þegar við höfum þurrka tilvist þessa Cupcake frá töflu cupcake_cupboard okkar, höfum við aðeins eitt eftir: Gerðu það hverfa. Ég er Christopher Bartholomew. Þetta er CS50.