[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.