[Powered by Google Translate] [SQL] [Christopher Bartholomew] [Harvardi Ülikool] [See on CS50] [CS50 TV] Nii, programmeerijad kasutavad andmebaase vahend säilitada ja korrastada meie püsivad andmed tabelite sees. See tähendab, et teie andmed on salvestatud mittelenduvad mediaani nagu kõvaketas, ja isegi kui arvuti on välja lülitatud, andmed on veel puutumata. Ja nagu programmeerijad, meie programmid kasutavad andmebaase stsenaariumid nagu ladustamine kasutaja infot veebivormide soojaks inventari, või ajakohastada teavet selle kohta, mida saite kuvada. Aga kuidas me tegelikult suhelda meie andmebaasi, või mida me kasutame lugeda, salvestada, kustutada, ja uuendada meie andmed nendes andmebaasi tabeleid? Noh, vastus on, et me kasutame spetsiaalset tüüpi andmebaasi keel mis suhtleb otse meie andmebaasi tabelid. See nimi on Structured Query Language, [Structured Query Language] või mida ma viidata kui SQL. Nüüd, [SE-quel] või SQL, ei ole programmeerimiskeel, kuid selle asemel, et see on keel, mis annab standardse käsukomplekti hankida ja töödelda andmeid erinevatest andmebaasi juhtimissüsteeme. Selleks, CS50, läheme üle nelja põhilised käsud: valida, lisada, uuendada ja kustutada. Lisaks me kasutada andmebaasi veebiliidese nimetatakse phpMyAdmin, mis paigaldatakse seadme kirjutada meie SQL avaldused. Nii, et aitab teil meeles pidada neid käske, Ma tõin mõned koogikesi kappi aidata meie stsenaariume. Oletame, et teil on cupcake andmebaasi, kuhu salvestada kõik infot oma koogikesi. Nüüd andmebaasid võivad sisaldada palju tabeleid ja tabelid ise võib sisaldada palju veerge. Toas meie cupcake andmebaasi, meil on tabel nimega cupcake_cupboard. See tabel on kasutada säilitada kogu teavet koogikesi mis on, noh, oma kapp. Veerud, mis on sees oma laua esindama atribuutide cupcake. Näiteks cupcake_cupboard on veerud on Kook ID, CakeType, CakeColor ja CakeIsNice. See tõeväärtus-tipitud veerus kasutatakse, et määrata, kui kook on tore või mitte tore. Me läheme alustada kirjalikult valige avaldus. Vali avaldusi kasutatakse andmete toomiseks konkreetse andmebaasi tabeli. Selle stsenaariumi, me tahame teada kõike umbes kõik koogikesi, mis eksisteerivad meie kapp. Süntaks seda teha on "Vali" Space Star, või *, ruumi kosmosest meie lauda mis on cupcake_cupboard. Lähme edasi ja täita selle. Nagu näeme, on need kõik koogikesi meie kapp. See on oluline märkida, et *, või tärn, on jokker iseloomu mis tähistab kogumine kõigi veergude mõned tabel. Tavaliselt saame juurdepääsu konkreetsele veerg või veerud asendades * koos tegeliku veeru nime. Kui me tahame mitut veergu, kuid mitte kõik, me suudame seda saavutada kirjutades veerunimesid piiritlemiseks iga veeru komaga. Näiteks, lähme alla laadida ainult CakeId ja CakeType sisse cupcake_cupboard tabelis. Süntaks seda teha on: SELECT ruumi CakeID koma CakeType ruumi meie lauda cupcake_cupboard. Lähme edasi ja täidab seda. Ja siin me nüüd ainult kaks veergu me täpsustada iga cupcake meie kapp. Saame Samuti täpsustada meie päringu tulemusi, määrates "where" tingimust vahetult pärast tabeli nimi. Näiteks tundub, et cupcake meie kapp et, noh, mitte nii kena vaadata. Olgem nuputada kõik koogikesi meie kapp, mis on, noh, mitte nii kena vaadata kasutades "where" tingimust. Süntaks seda teha on: SELECT ruumi * ruumi kosmosest cupcake_cupboard ruumi, kus ruumi meie tingimisi veerus, antud juhul CakeIsNice =, ja tõeväärtuse False. On oluline märkida, et kui te kasutate stringe, siis peab lisama seda ülakoma. See kehtib kõigi stringid SQL või SQL andmebaas mõttes variant tähemärki tuntud varchar andmetüüp. Sellisel juhul me kasutame Õige või vale, mis on tõeväärtuse ja mitte stringi. Lähme edasi ja seda käsklust. Ennäe imet, see on tõsi, et meil on 1 šokolaad ole nii kena cupcake meie kapp. Edasi me läheme kirjutada lisada avaldus. INSERT avalduste kasutatakse sisestada või lisada täiendavaid ridu andmeid oma andmebaasi tabelisse. Ülevaatamine meie stsenaariumi Oletame, et oleme just uhiuue cupcake. Kuna meil on väga korraldatud cupcake sööjad, me lähed on lisada uue cupcake meie cupcake_cupboard tabelis. Süntaks seda teha on selline: Sisesta kosmoses ruumi meie lauda cupcake_cupboard, tühik (, ja siin me täpsustada veergude nimed, komaga eraldatud, CakeType eralda CakeColor eralda CakeIsNice) ruumi. Pärast seda me kirjutame sõna VALUES ruumi (ja siin me sisestama väärtuse iga veeru vastavalt ka komaga eraldatud. Üks tsitaat, sest nad on kõik varchar väärtusi me ümbritsevad neid ülakoma, MAAPÄHKLIVÕI "koma" helepruun "koma True. Nüüd on oluline anda igale reale identifitseerimiseks kasutataks kordumatut numbrit ise. Autoincrementing veerg annab seda  "Ei ole olemas kahte sama ID-d ei saa kunagi eksisteerida tabelis." Lähme edasi ja täita. Vot nii, kõik organiseeritud. Järgmine SQL et me kirjutame on ajakohastatud aruanne. Uuendus avaldust saab muuta andmeid jooksul veerg mõne muu olemasoleva rea ​​oma andmebaasi tabelisse. Varem meie stsenaariumi, kasutades valige avaldus, me kindlaks cupcake jooksul meie cupcake_cupboard lauale kelle CakeIsNice väärtus oli vale. Oletame, et samal ajal kui meie maapähklivõi cupcake oli ahjus, tegime meie mitte-nii-kena cupcake väga kena. Olles nii erakordselt korraldatud, me tahame, et meie cupcake kajastada seda väärtuse meie cupcake_cupboard tabelis. Seega, olgem uuendada meie šokolaadi cupcake andmebaasis kajastama. Süntaks on: UPDATE ruumi meie lauda cupcake_cupboard, ruumi ruum veerus, et me ei soovi muuta, CakeIsNice =. Siis siin me paneme oma uue väärtuse True ruumi. Nüüd, kuna me ei taha uuendada kõik read selle väärtusega, soovime pakkuda "where" tingimust, mis täpselt meid täpse rida, et me tahame muuta. Sel juhul me teame, et on olemas ainult üks cupcake mis on CakeIsNice väärtuse False. Lisaks me ka tagama, et me oleme ajakohastamine õige rida kasutades "Ja" klausel. Me kasutame "Ja" klausel täiustame oma päringu edasi. Sel juhul, sest me teame, et cupcake on šokolaad, me kasutame seda CakeType veerus. Kui ruumi meie tingimisi veeru ruumi CakeIsNice ruumi = False, ja ruumi CakeType = "šokolaad". Niisiis, paneb ta kõik koos, selle värskenduse kinnitus ütleb Kõik koogikesi meie cupcake kapp, ja kui on cupcake kelle veerg CakeIsNice sisaldab väärtust False ja CakeType sisaldab väärtust CHOCOLATE, me tahame uuendada konkreetne rida CakeIsNice väärtuseks true. Nii, lähme edasi ja täitma avalduse. Ja nüüd, me korraldada. Kõik see jutt koogikesi on mind natuke näljane. Ma arvan, et ma peaks sinna midagi parata, et üks. Aga kui ma tegelikult süüa seda cupcake, ma vähemalt eemaldada ka selle olemasolu  meie cupcake_cupboard tabelis. Selleks me kasutame "Kustuta" avaldusega. "Kustuta" avaldust saab eemaldada kõik või mõned read tabelis. Kui soovite eemaldada mõne konkreetse rea tabelist, peate andma "where" tingimust, seega täpsustades veerg et peaks olema unikaalne rida, mida soovite eemaldada. See on süntaks: kriipsutage kosmosest meie lauda cupcake_cupboard, ruumi. Nüüd, sel hetkel, kui sa oled nii kaugele oma DELETE avaldus sa tahad olla väga ettevaatlik. Näiteks, kui ma tahan teha selle päringu on esitamata mõned "where" tingimust Ma kaotaks kõik andmed selles cupcake_cupboard tabel, aga kuna ma juba tean, et minu kook ID on unikaalne, ma kasutan Red Velvet kook ID minu "where" tingimust. Kui ruumi meie kolonn, CakeID = 1. Sest see on täisarvuline väärtus ei ole vaja ümbritseda see ülakoma. Niisiis, oletame, täita avaldus. Noh, nüüd, et oleme pühkida olemasolu seda cupcake meie cupcake_cupboard tabel, meil on ainult üks asi jäänud: Tee kaovad. Ma olen Christopher Bartholomew. See on CS50.