[Powered by Google Translate] [SQL]
[CHRISTOPHER Bartholomew] [Harvard University]
[Dette er CS50] [CS50 TV]
Så, programmerere bruke databaser som et verktøy for å lagre og organisere
våre vedvarende data i tabeller.
Dette betyr at dataene er lagret på ikke-flyktige median for eksempel en harddisk,
og selv når datamaskinen er slått av, er dataene fortsatt intakt.
Og, som programmerere, våre programmer utnytte databaser for scenarier som lagring
bruker informasjon fra webskjemaer, ser opp inventar,
eller oppdatering av informasjon om hvilke nettsteder vise.
Men hvordan gjør vi faktisk bruker vår database,
eller hva bruker vi å lese, lagre, slette,
og oppdatere våre data innenfor disse databasetabeller?
Vel, svaret er at vi bruker en spesiell type database språk
som samhandler direkte med våre databasetabeller.
Det navnet er Structured Query Language,
[Structured Query Language]
eller hva jeg refererer til som SQL.
>> Nå [Se-Quel], eller SQL, er ikke et programmeringsspråk,
men i stedet er det et språk som gir et standard sett med kommandoer
å hente og manipulere data fra en rekke database management system.
For hensikten med CS50, vil vi gå over fire grunnleggende kommandoer:
velge, sette inn, oppdatere og slette.
Videre vil vi benytte en database web-grensesnitt kalt phpMyAdmin,
som er installert på maskinen for å skrive våre SQL-setninger.
Så, for å hjelpe deg å huske disse kommandoene,
Jeg har tatt noen cupcakes i et skap for å hjelpe til med våre scenarier.
Si du har en cupcake database,
der du lagrer all informasjon om din cupcakes.
Nå kan databaser inneholde mange tabeller
og selve tabellene kan inneholde mange kolonner.
Inne vår cupcake database, har vi en tabell som kalles cupcake_cupboard.
Denne tabellen vil bli brukt til å lagre all informasjon om cupcakes
som er, vel, i skapet.
Kolonnene som er inne tabellen representerer attributtene for en cupcake.
For eksempel, cupcake_cupboard spalter er
Cake ID, CakeType, CakeColor, og CakeIsNice.
Dette boolsk-skrev kolonnen brukes til å avgjøre om kaken er fin eller ikke hyggelig.
Vi kommer til å starte med å skrive en utvalgt uttalelse.
Velg uttalelser brukes til å hente data fra en bestemt database tabell.
I dette scenariet, ønsker vi å vite alt
om alle cupcakes som finnes i skapet.
Syntaksen som skal gjøre dette på er "Select" Space Star, eller *, plass fra verdensrommet vårt bord,
som er cupcake_cupboard.
La oss gå videre og utføre det.
>> Som vi kan se, disse er alle cupcakes i skapet.
Det er viktig å merke seg at *, eller en stjerne, er et wild card karakter
som betegner samlingen av alle kolonnene i noen tabell.
Normalt kan vi få tilgang til en bestemt kolonne eller kolonner
ved å erstatte * med selve kolonnenavnet.
Hvis vi ønsker flere kolonner, men ikke alle, kan vi oppnå dette
ved å skrive kolonnenavnene avgrensende hver kolonne med komma.
For eksempel, la oss bare hente CakeId og CakeType i cupcake_cupboard tabellen.
Syntaksen som skal gjøre dette på er: SELECT plass CakeID komma
CakeType plass fra vårt bord, cupcake_cupboard.
La oss gå videre og utføre dette.
Og her har vi nå bare har to kolonner vi spesifisert
for hver cupcake i skapet.
Vi kan også avgrense våre spørringsresultatene ved å angi
"Hvor"-klausulen like etter tabellen navn.
For eksempel, det synes å være en cupcake i skapet
som er, vel, ikke så hyggelig ser.
La oss finne ut alle cupcakes i skapet som er, vel, ikke så hyggelig ser
bruke "Hvor" klausul.
Syntaksen som skal gjøre dette på er: SELECT plass * plass fra verdensrommet cupcake_cupboard
plass der plass vårt betinget kolonne, i dette tilfellet CakeIsNice =,
og boolean verdi av False.
Det er viktig å merke seg at hvis du bruker strenger, må du legge den i enkle anførselstegn.
Dette er sant for alle strenger i SQL, eller, i SQL database vilkår, variant tegn
kjent som VARCHAR datatype.
I dette tilfellet bruker vi Sant eller usant, som er en boolsk verdi og ikke en streng.
La oss gå videre og utføre denne kommandoen.
>> Lo og se, er det slik at vi har en sjokolade
ikke så fint cupcake i skapet.
Deretter skal vi skrive et innstikk uttalelse.
Sett uttalelser blir brukt til å sette eller legge
flere rader med data i databasen tabellen.
Revisiting vårt scenario, la oss anta at vi har nettopp laget en helt ny cupcake.
Siden vi er veldig organisert cupcake eaters, vi nødt til å sette inn denne nye cupcake
i vår cupcake_cupboard tabellen.
Syntaksen som skal gjøre dette på er dette: Sett inn mellomrom i verdensrommet vårt bord,
cupcake_cupboard, plass (,
og her er vi angi kolonner navn, avgrenset av et komma,
CakeType komma CakeColor komma CakeIsNice) plass.
Etter dette skriver vi ordet VALUES plass (og her
Vi angi verdien for hver kolonne henholdsvis også avgrenset med komma.
Enkelt sitat, fordi de er alle VARCHAR verdier vi vil omgi dem i enkle anførselstegn,
Peanøttsmør 'komma' LIGHT BROWN 'komma True.
Nå er det viktig å gi hver rad et unikt nummer for å identifisere seg selv.
Autoincrementing en kolonne gir dette som
"Ingen det samme IDer kan noensinne eksistere i denne tabellen."
La oss gå videre og utføre.
Der vi går, alle organisert.
>> Den neste SQL-setning som vi vil skrive er en oppdatering uttalelse.
Oppdateringen setningen kan brukes for å modifisere data i en kolonne
for eksisterende rad i databasen tabellen.
Tidligere i vårt scenario, med en utvalgt uttalelse, identifiserte vi en cupcake
innenfor vår cupcake_cupboard bord som CakeIsNice verdi var falsk.
La oss anta at mens vår peanøttsmør cupcake var i ovnen,
Vi har gjort vårt ikke-så-hyggelig cupcake veldig hyggelig.
Blir så eksepsjonelt organisert, ønsker vi at vår cupcake å reflektere denne verdien
i vår cupcake_cupboard tabellen.
Derfor, la oss oppdatere vår sjokolade cupcake i databasen for å reflektere dette.
Syntaksen er: UPDATE plass vårt bord, cupcake_cupboard, plass SET plass
kolonnen som vi ønsker å endre, CakeIsNice =.
Så her vi setter vår nye verdien SANN plass.
Nå, fordi vi ikke ønsker å oppdatere alle rader med denne verdien,
vi ønsker å gi en "Hvor" klausul som vil finne oss
den eksakte rad at vi ønsker å endre.
I dette tilfellet, vet vi at det er bare én cupcake
som har en CakeIsNice verdi False.
Videre vil vi også sikre at vi oppdaterer riktig rad
ved å bruke "Og"-klausulen.
Vi bruker "Og"-klausulen å forbedre vår søket ytterligere.
I dette tilfellet, fordi vi vet at cupcake er sjokolade,
Vi vil bruke denne CakeType kolonnen.
HVOR vår plass betinget kolonne plass CakeIsNice plass = False,
og plass CakeType = 'Chocolate.
Så å sette det hele sammen, sier denne oppdateringen uttalelse
finne alle cupcakes i vår cupcake skap,
og hvis det er en cupcake som kolonne CakeIsNice inneholder verdien False
og CakeType inneholder verdien CHOCOLATE,
Vi vil oppdatere den spesifikke rader CakeIsNice verdi til True.
Så, la oss gå videre og utføre setningen.
Og nå er vi organisert.
>> Alt dette snakket om cupcakes har gjort meg litt sulten.
Jeg tror jeg skal hjelpe meg selv til en.
Men hvis jeg spiser faktisk denne cupcake, bør jeg i det minste også fjerne dens eksistens
fra vår cupcake_cupboard bord.
For å gjøre dette, vil vi bruke "Slett" statement.
"Delete"-utsagn kan brukes til å fjerne alle eller noen rader fra tabellen.
Hvis du ønsker å fjerne noen bestemt rad fra tabellen,
må du gi en "Hvor" klausulen, og dermed spesifisere en kolonne
som bør være unikt i raden du ønsker å fjerne.
Dette er syntaksen: SLETT plass fra vår plass bord, cupcake_cupboard, plass.
Nå, på dette punktet, når du er så langt i din delete uttalelse
Vil du være svært forsiktig.
For eksempel, hvis jeg ønsker å kjøre denne spørringen er som uten å gi noen "Hvor" klausul
Jeg ville miste alle data i denne cupcake_cupboard tabellen,
men fordi jeg allerede vet at mine kake-IDer er unike, vil jeg bruke
Red Velvet kake ID for min "Hvor" klausul.
HVOR vår plass kolonne, CakeID = 1.
Fordi dette er et helt tall verdi er det ikke behov for å omgi den i enkle anførselstegn.
Så, la oss utføre setningen.
Vel, nå som vi har tørket eksistensen av denne cupcake
fra vår cupcake_cupboard bord, vi har bare én ting igjen:
Gjøre det forsvinne.
Jeg er Christopher Bartholomew. Dette er CS50.