>> [Musiikkia]
DOUG Lloyd: Meidän videot web kehitys aiheista,
olemme maininneet käsitteen tietokanta muutaman kerran, eikö?
Joten tietokanta olet luultavasti tuttuja
sanovat Microsoft Excel tai Google Spreadsheets.
Se on oikeastaan ​​vain järjestäytynyt taulukoita, rivejä, ja sarakkeet.
>> Ja tietokanta on missä sivuillamme myymälöissä
tietoa, joka on tärkeä sivuillamme toimii toivotusti.
Jälleen todella yhteinen esimerkki tästä on tallentamiseen käyttäjätunnuksia ja salasanoja
tietokantaan, niin että kun käyttäjä kirjautuu sivuillamme,
tietokanta on mahdollista tiedustella nähdä jos käyttäjä on olemassa tietokannassa.
Ja jos he ovat, tarkistaa, että niiden salasana on oikea.
Ja jos niiden salasana on oikea, voimme antaa heille, mitä sivu
he pyynnön.
>> Joten olet luultavasti taas tuttu tämän ajatuksen Excelistä tai Google
Spreadsheets.
Meillä on tietokannat, taulukot, rivit, ja sarakkeet.
Ja se on todella lajitella perustavaa laatua joukko
hierarkkisten erittely täällä.
Joten tässä on Excel.
Ja jos olet koskaan avannut tämän tai muun vastaavan ohjelman
te tiedätte, että nämä tässä ovat rows-- 1, 2, 3, 4, 5, 6, 7.
Nämä ovat sarakkeissa.
>> Ehkä täällä, vaikka et ehkä käytä tätä toimintoa hirveän much--
Minä zoom in-- meillä tämä ajatus levyn.
Joten ehkä nämä levyt, jos Olen vuorotellen edestakaisin,
ovat erilaisia ​​taulukoita, jotka olemassa tietokannasta.
Ja jos jatkamme esimerkiksi kaikki Muuten, nimi tämän tietokannan
on Book 1.
Ehkä minulla on kirja 2 Kalenteri 3.
Joten jokainen Excel-tiedosto on tietokanta, jokainen arkki on taulukko,
ja jokaisen sisällä taulukon Minulla tämä ajatus rivejä ja sarakkeita.
>> Joten miten työskennellä tämän tietokannan?
Miten saan tietoa siitä?
No siellä on kieli kutsutaan SQL-- jota yleensä vain soittaa Sequel--
ja se edustaa Structured Query Language.
Ja se on ohjelmointikieli, mutta se on melko rajoitettu ohjelmointi
kieli.
Se ei ole aivan kuten muutkin että olemme työskennelleet.
Mutta tässä ohjelmointikieli
on kyselyn tietokantaan, pyytää tietoja tietokannan,
etsiä tietoja tietokantaan, ja niin edelleen.
>> Olemme myös, vuonna CS50-- ja se on hyvin yhteinen foorumi, sitä kutsutaan MySQL.
Sitähän me käytämme aikana.
Se on avoimen lähdekoodin alustan, joka vahvistetaan
ns relaatio database-- tietokannan, tehokkaasti.
Meidän ei tarvitse saada liian paljon yksityiskohtia
mitä relaatiotietokantaan on.
Mutta SQL kieli on erittäin taitava työ
MySQL ja muut vastaavat tyylejä relaatiotietokantojen.
>> Ja monet asennukset MySQL tulevat jotain
nimeltään phpMyAdmin, joka on graafinen
interface-- GUI-- joka tekee siitä hieman enemmän
käyttäjäystävällinen suorittaa tietokantakyselyt,
koska tietokannat eivät ole juuri käytetty kehittyneet ohjelmoijat, eikö?
Joskus on Pienyritykset,
ja ne ei ole varaa palkata joukko ohjelmoijia,
mutta silti täytyy tallentaa tiedot tietokantaan.
>> Jotain phpMyAdmin tekee siitä erittäin helppo joku
joka ei ole koskaan ohjelmoitu ennen poimia ja tutustuu miten
työskennellä tietokantaan.
Ongelmana on, phpMyAdmin, kun taas se on loistava työkalu oppimiseen
noin tietokantoja, se on manuaalinen.
Olet menossa on kirjautua se ja suorittaa komentoja ja tyyppi
asioita käsin.
>> Ja kuten tiedämme meidän esimerkiksi PHP ohjelmointi,
ottaa manuaalisesti tehdä asiat sivuillamme,
jos haluamme dynaaminen, aktiivinen reagoiva verkkosivuilla, ehkä ole paras lähestymistapa.
Haluaisimme löytää tapa ehkä automatisoida tämän jotenkin.
Ja SQL voimme tehdä tämän.
Joten kun aiomme aloittaa työskentelyn SQL,
meidän on ensin oltava tietokanta työskennellä.
Luominen tietokanta jotain luultavasti
tekee phpMyAdmin, koska sinun tarvitsee vain tehdä se kerran,
ja syntaksi tehdä niin on paljon yksinkertaisempi.
Se on paljon helpompaa tehdä se in graafinen käyttöliittymä
kuin kirjoittamalla se ulos komentoa.
Komento voi saada hieman hankala.
Samoin luodaan taulukko voi saada varsin vähän hankalaa samoin.
Ja niin asiat kuten luoda tietokanta ja luoda taulukko, joka olet
luultavasti vain aio tehdä once-- kerran pöytä, kerran database--
se on OK tehdä sen graafinen käyttöliittymä.
Tässä prosessissa luoda taulukko, sinun
on myös määrittävät kaikki sarakkeet, jotka on kyseisessä taulukossa.
Millaisia ​​tietoja do haluat tallentaa taulukon?
Ehkä käyttäjän nimi ja syntymäaika, salasana, käyttäjätunnus numero, ja ehkä
kaupunki ja valtio, eikö?
>> Ja joka kerta haluamme lisätä käyttäjän tietokantaan, haluamme saada kaikki kuusi
niistä paloja tiedot.
Ja teemme sen lisäämällä rivit pöytään.
Joten ensin luoda tietokanta, sitten luoda taulukon.
Osana luomassa pöytä, meiltä kysytään
täsmentää jokainen sarake että haluaisimme tässä taulukossa.
Ja sitten kun alamme lisätä tiedot tietokantaan
ja kyselyn tietokantaan enemmän generally-- ei vain lisäämällä,
mutta kaikki muu me do-- me käsittelemme
riviä taulukossa, joka on yksi käyttäjän tiedot koko joukko.
>> Joten jokainen SQL sarake pystyy jolla tiedot tietyn tietotyypin.
Joten me tavallaan poistanut tämän Ajatus tietotyyppejä PHP,
mutta he ovat tänne SQL.
Ja siellä on paljon tietoa tyyppejä.
Tässä on vain 20 niistä, mutta se ei ole edes niitä kaikkia.
Joten meillä on ajatuksia, kuten INTs-- Integers-- me luultavasti tietää
että tämä sarake mahtuu kokonaislukuja.
Ja on vaihtelua thereon-- SMALLINT, TINYINT, MEDIUMINT, bigint.
Ehkä emme aina tarvitse neljä puree.
Ehkä tarvitsemme kahdeksan tavua, ja niin me voivat käyttää näitä muunnelmia kokonaislukuja
olla hieman enemmän tilaa tehokkaasti.
Voimme tehdä desimaaliluvut, me voi tehdä liukulukuja.
Nämä ovat melko samanlaisia.
On joitakin eroja, ja jos olisit
haluavat etsiä SQL eräänlainen opas, sinua
näet, mitä hieman erot ovat niiden välillä.
>> Ehkä haluamme tallentaa tietoa päivämäärä ja kellonaika.
Ehkä olemme pitää kirjaa kun käyttäjä liittynyt verkkosivuilla,
ja niin ehkä me haluamme on sarake, joka on
päivämäärä aika tai aikaleima, joka ilmaisee kun käyttäjä itse
allekirjoittanut.
Voimme tehdä geometrioita ja linestrings.
Tämä on oikeastaan ​​aika siistiä.
Voisimme kartoittaa maantieteellisellä alueella, käyttämällä
GIS koordinaatit palstoittaa alueella.
Niin voi itse tallentaa tällaista tietojen SQL sarakkeeseen.
>> TEKSTI on vain jättiläinen läiskä tekstiä, ehkä.
Enums ovat sellaisia ​​mielenkiintoisia.
He todella olemassa C. Emme puhua niistä, koska ne eivät ole
kauhean yleisesti käytetty, ainakin CS50.
Mutta se Lueteltujen tietojen tyyppi, joka on pystyttävä pitämään rajoitettu arvoja.
>> Todella hyvä esimerkki tästä olisi luoda ENUM jossa seitsemän
Mahdollisia arvoja ovat sunnuntai, maanantai, Tiistai, keskiviikko, torstai, perjantai,
Lauantai, eikö?
Tämä tietotyyppi päivä Viikko ei ole olemassa,
mutta voisimme luoda luetellut tiedot tyyppiä,
että sarakkeen voi vain pitää yksi niistä seitsemästä mahdollista arvoa.
Olemme lueteltu kaikki mahdollisten arvojen.
>> Sitten meillä on CHAR ja VARCHAR, ja olen väri Vihreiden
koska olemme itse asiassa vie toiseen
puhua ero Näiden kahden asian välillä.
Joten CHAR, toisin kuin C jossa CHAR oli yhden merkin,
SQL CHAR tarkoittaa kiinteä merkkijono.
Ja kun luomme tämän sarake, me oikeastaan
voi määrittää merkkijonon pituus.
>> Joten tässä esimerkissä, voisimme sanoa CHAR (10).
Tämä tarkoittaa sitä, että jokainen osa sarakkeen
koostuu 10 tavua informaatiota.
Ei enempää eikä vähempää.
Joten jos yritämme laittaa 15 bittinen tai 15 merkin elementti
tai arvo tähän sarakkeeseen, me vain saada ensimmäiset 10.
Jos laitamme kaksi merkki pitkä arvo,
aiomme olla kaksi merkkiä, ja sitten kahdeksan null puree.
Emme koskaan olla tehokkaampi kuin.
>> VARCHAR on ikään kuin käsityksemme merkkijono
että olemme tuttuja From C tai PHP.
Se on vaihtuvamittainen merkkijono.
Ja kun luot Tässä kolumnissa juuri
Määritä suurin mahdollinen pituus.
Joten ehkä 99 tai usein 255.
Se olisi pitkä.
Joten jos me tallentamiseen 15 merkkijono,
me käyttäisimme 15 tavua, ehkä 16 tavua null terminaattori.
Jos olimme tallentamiseksi kolme merkkijono,
me käyttäisimme kolme tai neljä tavua.
Mutta emme käytä koko 99.
>> Joten miksi olemme molemmat?
No, jos meidän täytyy selvittää, miten pitkä jotain on kanssa VARCHAR,
meillä on sellaista toistaa poikki sen kuten teimme C
ja selvittää, missä se pysähtyy.
Ottaa huomioon, että jos me tiedämme, että kaiken Tässä sarakkeessa on 10 tavua, ehkä
me tiedämme, että tiedot, voimme hypätä 10 tavua, 10 tavua, 10 tavua, 10 tavua,
ja aina löytää merkkijonon alusta lukien.
>> Joten meillä voi olla joitakin hukkaan tilaa CHAR,
mutta ehkä siellä on kauppa pois ottaa entistä nopeammin
navigoinnin tietokantaan.
Mutta ehkä me haluamme joustavuus VARCHAR
sijasta having-- Jos meidän CHAR oli 255, mutta useimmat käyttäjät
vasta syöttämällä kolme tai neljä tavua arvoinen tietoja tai kolme tai neljä
merkkiä arvoinen tietoa.
>> Mutta jotkut käyttäjät käyttivät koko 255, ehkä
VARCHAR olisi sopivampi siellä.
Se on eräänlainen vaihtokauppa, ja yleensä varten CS50,
sinun ei tarvitse huolehtia liikaa onko käytät CHAR tai VARCHAR.
Mutta todellisessa maailmassa, nämä asiat ei merkitystä, koska kaikki nämä sarakkeet
vievät varsinaista fyysistä tilaa.
Ja fyysinen tila, vuonna todellisessa maailmassa, tulee arvossaan.
>> Joten muuta vastiketta kun olet rakentamassa pöytä
on valita yksi sarake olla mitä kutsutaan perusavain.
Ja perusavain on sarake jossa jokainen yksittäinen arvo on ainutlaatuinen.
Ja se tarkoittaa, että voit helposti poimia yhden rivin vain katsomalla
klo perusavain rivin.
Niinpä esimerkiksi, voit yleensä, käyttäjien kanssa,
halua kaksi käyttäjää, jotka on sama käyttäjätunnus numero.
Ja niin ehkä sinulla on paljon tietoa,
ja ehkä kaksi käyttäjät voivat on sama name--
sinulla on John Smith ja John Smith.
Se ei välttämättä ole ongelma, koska on olemassa useita ihmisiä
maailmassa nimeltä John Smith.
Mutta meillä on vain yksi käyttäjätunnus numero 10, yksi käyttäjä ID-numero 11, 12, 13.
Meillä ei ole kaksi käyttäjää joissa on sama määrä,
ja niin ehkä käyttäjätunnus numerot olisi hyvä ensisijainen avain.
>> Meillä ei ole mitään päällekkäisyyksiä, ja voimme nyt ainutlaatuisen
tunnistaa jokainen rivi vain katsomalla sarakkeen.
Valitsemalla ensisijaisia ​​avaimia voi itse tehdä myöhemmin taulukko toimintaa
paljon helpompaa, koska voit hyödyntää että tietyt rivit
olla ainutlaatuinen, tai tietty sarake tietokannan tai taulukon
on ainutlaatuinen poimia ulos erityisesti rivejä.
>> Voit myös yhteinen ensisijainen avain, joka saatat löytää tilaisuus
käyttää, joka on vain kahden sarakkeiden
on taatusti ainutlaatuinen.
Joten ehkä sinulla on yksi sarake joka on yhtä ja B,
yksi sarake, joka on yksi, kaksi, ja kolme, mutta sinun vain koskaan
on yksi A1, yksi A2, ja niin edelleen, ja niin edelleen.
Mutta saatat olla B2, C2, tai A1, A2, A3, A4.
Joten saatat olla useita Kuten, useita BS, useita niitä, useita kaksittain,
mutta voit vain koskaan yhden A1, B2, C3, ja niin edelleen.
Joten kuten sanoin, SQL on ohjelmointikieli,
mutta se on melko rajoitettu sanastoa.
Se ei ole aivan yhtä laaja kuin C ja PHP ja muita kieliä
että puhumme aikana.
Se on enemmän monisanainen kieli kuin mitä olemme
aio puhua tässä video, koska tämä video
aiomme puhua neljä toimintaa että me
voi suorittaa pöydälle.
>> On enemmän kuin tämä.
Voimme tehdä enemmän kuin tämä, mutta meidän tarkoituksiin,
me yleensä aio käyttää vain neljä operations-- insert,
Valitse, päivittää ja poistaa.
Ja voit todennäköisesti intuitiivisesti arvata mitä kaikki neljä näistä asioista tehdä.
Mutta me mennä vähän yksityiskohtien kullakin yksi.
>> Joten tätä video Oletetaan
Meillä on seuraavat kaksi taulukot yhteen tietokantaan.
Meillä on taulukko nimeltä Käyttäjiä, jotka on neljä columns-- henkilötunnus, käyttäjätunnus,
salasana, ja täydellinen nimi.
Ja meillä on toinen taulukon samaan tietokantaan
nimeltään Moms että vain tallentaa tiedot noin käyttäjätunnuksen ja äiti.
Niin kaikkien esimerkkien Tässä video, käymme
käyttää tätä tietokantaa ja myöhemmät päivitykset sitä.
Joten sanoa haluamme lisätä tietoja taulukkoon.
Sitähän lisäystoimenpide tekee.
Selitetä kaikkia nämä komennot, aion
antaa sinulle yleinen luuranko käyttää.
Koska pohjimmiltaan, kyselyt menossa näyttävät melko samanlaisia,
olemme juuri menossa muuttuvan hieman eri palaset tiedot
tehdä eri asioita pöytä.
>> Joten INSERT, luuranko näyttää ikään kuin tämä.
Haluamme lisätä osaksi erityisesti taulukko.
Sitten meillä on sulkumerkin ja sarakeluettelon
että haluamme asettaa arvot.
Sulje sulkuja, Seuraavat arvot, ja sitten
jälleen, me luetella arvot haluamme laittaa pöytään.
>> Niin esimerkki tästä olisi seuraava.
Haluan lisätä taulukkoon käyttäjät seuraavat columns--
käyttäjätunnus, salasana, ja fullname.
Joten uusi rivi, jossa Laitan näissä kolme saraketta ja olemme
menossa laittaa arvot Newman, USMAIL, ja Newman.
Joten tässä tapauksessa, olen laskemisesta pieniä Newman
osaksi käyttäjätunnus sarakkeessa salasana USMAIL, ja koko nimi pääkaupunki N
Newman osaksi fullname sarakkeeseen.
>> Joten tässä mitä tietokanta näytti ennen.
Tässä mitä käyttäjät taulukko alkuun näytti ennen teimme tämän.
Kun me suorittaa tämän kysely, saamme tämän.
Olemme lisänneet uuden rivin taulukkoon.
Mutta huomaa tämä yksi asia että en täsmentää,
mutta jotenkin minulla arvo varten, joka on tämä 12 täällä.
En sanonut halusin laittaa tunnus siellä.
Halusin laittaa käyttäjätunnus, salasana, fullname.
Ja tein, että se käy hyvin.
>> Mutta olen myös saanut tämän 12.
Miksi saan tämän 12?
No, käy ilmi, että kun olet määrittämässä
sarake tulee olemaan teidän perusavain, joka on yleensä,
kuten sanoin, ID-numero.
Se ei ole aina välttämättä olemaan henkilötunnus,
mutta se on yleensä hyvä idea jonkinlainen kokonaisluku.
Sinulla on mahdollisuus phpMyAdmin kun luot tietokannan
tai taulukon asettaa että sarake kuin auto kasvavalla.
>> Joka on todella hyvä idea, kun olet työskennellyt perusavain,
koska haluat jokainen arvo tähän sarakkeeseen on ainutlaatuinen.
Ja jos unohdat määrittää se enemmän kuin yksi henkilö,
sinulla on nyt tilanteessa, jossa sarakkeen ei ole enää ainutlaatuinen.
Sinulla on kaksi aihioita, joten voit ei enää yksilöimään column--
tai et voi enää yksilöllisesti tunnistaa rivi perustuu tähän sarakkeeseen.
Se on menettänyt kaikki sen arvon perusavain.
>> Ja niin ilmeisesti mitä olen tehnyt täällä on määritetty käyttäjätunnus
sarake auto lisäys niin, että jokainen kerta lisätä tietoja taulukkoon,
se automaattisesti antaa minulle arvo perusavain.
Joten en voi koskaan unohtaa tehdä sen, koska tietokanta tekee sen minulle.
Niin, että on tavallaan mukavaa.
Ja niin siksi saamme 12 siellä, koska olen
perustaa sarakkeen jopa auto lisäys.
Jos Lisäsin joku muu se halua olla 13, jos olen lisännyt
joku muu se olis 14, ja niin edelleen.
>> Joten vain tehdä yksi lisäys.
Me työnnä äitejä pöytä, vuonna Erityisesti käyttäjätunnus ja äiti
sarakkeen arvot Kramer ja Babs Kramer.
Ja niin meillä oli ennen.
Kun olemme suorittaa että SQL, meillä on tämä.
Olemme lisänneet Kramer ja Babs Kramer äidit taulukon.
>> Niin, että lisäämällä.
Select on mitä käytämme purkaa tiedot taulukosta.
Joten tämä on, miten saamme tietoa ulos tietokannasta.
Ja joten valitse komennot tulevat olemaan hyvin usein käytetty ohjelmoinnissa.
Yleinen framework-- yleinen luuranko näyttää tältä.
Valitse sarakkeet alkaen pöytä, ja sitten mahdollisesti
voit määrittää condition-- tai mitä me yleensä kutsumme predikaatti,
on yleensä termi käytämme SQL.
>> Mutta se on pohjimmiltaan mitä erityisesti rivien haluat saada.
Jos haluat, sen sijaan saada kaikki, kaventaa sitä,
tämä on missä haluaisit tehdä.
Ja sitten mahdollisesti, voit myös tilata tietyn sarakkeen.
Joten ehkä haluat olla asioita lajitellaan aakkosjärjestyksessä perustuu yksi sarake
tai aakkosjärjestyksessä perustui toiseen.
>> Jälleen missä ja ORDER BY ovat valinnaisia.
Mutta he todennäköisesti useful-- erityisesti
MISSÄ on hyötyä kaventamaan niin et
saada koko tietokanta takaisin ja täytyy käsitellä sitä, voit vain saada
osia siitä, että välität.
Niinpä esimerkiksi, saatan haluta valita Henkilötunnus ja fullname käyttäjiltä.
Joten mitä tämä voisi näyttää?
Joten tässä on minun käyttäjille pöytä.
Haluan valita idnum ja FULLNAME käyttäjiltä.
Mitä minä saada?
Aion saada tämän.
En kapea se alas, joten olen saada tunnus jokaiselle riville
ja Saan koko nimetä jokaisesta krs.
>> OK.
Mitä jos haluan valita salasana käyttäjiltä WHERE-- niin nyt
Olen lisäämällä ehto, predicate-- jossa idnum on alle 12.
Joten tässä on minun tietokanta uudelleen, minun käyttäjät taulukko alkuun.
Mitä minä saada jos haluan Valitse että tiedot, salasana,
jossa käyttäjätunnus tai idnum on alle 12?
Aion saada tämän tiedot takaisin, eikö?
Se tapahtuu niin, että idnum on 10, vähemmän kuin 12, ID numero 11 vähemmän kuin 12.
Saan salasana niille riviä.
Se mitä pyysin.
Entä tämä?
Mitä jos haluan valita tähti Moms taulukko jossa käyttäjätunnus on sama kuin Jerry?
OK, valitse tähti on erityinen eräänlainen villi kortti ns
että käytämme saada kaikki.
Niin he sanovat valitse käyttäjätunnus pilkku äiti, joka
sattui olemaan ainoa kaksi saraketta Tämän taulukon,
Voin vain valita tähti ja saada kaikki
jossa käyttäjätunnus on sama kuin Jerry.
Ja niin se mitä haluan saada jos tein että kyselyssä.
>> Nyt, tietokannat ovat suuri, koska ne mahdollistavat
voimme järjestää tietoja ehkä hieman tehokkaammin kuin me
muuten.
Emme välttämättä tallentaa kaikkia asiaan tieto
noin käyttäjä samassa taulukossa.
Meillä oli kaksi pöytää siellä.
>> Meidän täytyy tallentaa kaikkien äidin nimi,
ja ehkä meillä ei ole sosiaaliturva numero, meillä on syntymäaika.
Tämä ei aina tarvitse olla samassa pöydässä.
Niin kauan kuin voimme määritellä väliset suhteet tables--
ja se on silloin, että relaatio tietokanta aikavälin sellainen tulee
osaksi play-- niin kauan kuin voimme määritellä väliset suhteet taulukoiden,
voimme tavallaan lokeroida tai abstrakteja asioita tavalla,
jossa meillä on vain todella tärkeitä tietoja
välitämme käyttäjän taulukko.
Ja sitten meillä on sivuinformaation tai ylimääräisiä tietoja muiden taulukoiden
että voimme liittää takaisin tärkein käyttäjät taulukko tietyllä tavalla.
>> Joten tässä meillä on nämä kaksi pöytää, mutta siellä on suhde toisiinsa,
oikea?
Tuntuu siltä käyttäjätunnus saattaa olla jotain
että on olemassa yhteinen välillä nämä kaksi eri pöydissä.
Joten mitä jos meillä on nyt tilanteessa, jossa
haluat saada käyttäjän koko nimen käyttäjän pöytä, ja heidän äitinsä
nimi äidiltä taulukosta?
Meillä ei ole tapa saada että sellaisenaan, eikö?
Ei ole yhden pöydän, joka sisältää sekä täydellinen nimi ja äidin nimi.
Meillä ei ole tätä mahdollisuutta mitä olemme nähneet tähän mennessä.
>> Ja niin meillä on esitellä ajatus liittyä.
Ja liittyy luultavasti kaikkein complex--
se on todella kaikkein monimutkainen operaatio aiomme puhua video.
He hieman monimutkainen, mutta kun saat roikkua sitä,
he oikeastaan ​​ole liian huono.
Se on vain erikoistapaus SELECT.
Aiomme valita joukko sarakkeita taulukon liittyä
toisessa taulukossa joitakin predikaatin.
>> Tässä tapauksessa, mieti sitä pidä this-- pöytä yksi on yksi ympyrä täällä,
pöytä kaksi on toinen ympyrä täällä.
Ja että predikaatti osa keskellä, se on
tavallaan kuin jos luulet suunnilleen yhtä Venn-kaavio, mitä
heillä on yhteistä?
Haluamme yhdistää nämä kaksi pöytää perusteella, mitä heillä on yhteistä
ja luoda tätä hypoteettinen taulukko että on sulautuminen kaksi yhdessä.
Joten näemme tämän Esimerkiksi ja ehkä että autamme
poista sitä hieman.
Joten ehkä haluat valita user.fullname ja moms.mother
käyttäjiltä liittymällä Moms taulukko joka tilanteessa
jossa käyttäjätunnus sarake on sama niiden välillä.
Ja tämä on uusi lauseopillista täällä, tämän käyttäjän.
ja äidit ..
Jos olen tekemässä useita taulukoita yhdessä, voin määrittää pöytä.
Voin erottaa erityisesti että alareunassa siellä.
Voin erottaa käyttäjätunnus sarakkeessa käyttäjien taulukon
alkaen käyttäjätunnus sarakkeessa äidit pöytä, jotka ovat otherwise--
jos me vain sanoi käyttäjätunnuksen vastaa käyttäjänimi, joka ei oikeastaan
merkitse mitään.
Haluamme tehdä sen missä he vastaavat.
>> Joten en voi määrittää taulukon ja sarakkeen nimi, jos tilanne
jos se jäisi epäselväksi mitä puhun.
Niin, että kaikki mitä teen on minä olen sanomalla tämä sarake tästä taulukosta,
ja on hyvin selkeä.
Joten jälleen, olen valitsemalla täydellinen nimi ja äidin nimi
käyttäjiltä taulukosta toisiinsa kanssa äidit taulukon joka tilanteessa
jos he jakavat että column-- niillä että käyttäjätunnuksesi käsite.
>> Joten tässä ovat taulukoita meillä oli ennen.
Tämä on hetkisiin tietokanta sellaisena kuin se on nyt.
Tiedot olemme talteen on tämä aloittaa.
Tämä on uusi taulukko aiomme luoda yhdistämällä nämä yhdessä.
Ja huomaa emme korostamalla Newmanin rivi käyttäjän taulukko,
ja emme korostamalla Kramerin rivin äidit taulukon
koska kumpikaan olemassa molemmat sets-- molemmissa taulukoissa.
>> Ainoa tieto, joka on yhteinen niiden välillä on Jerry on molemmissa taulukoissa
ja gcostanza on molemmissa taulukoissa.
Ja niin kun me teemme SQL liittyä, mitä me get-- ja me teemme todella saada tämän.
Se on eräänlainen väliaikainen muuttuja.
Se on kuin hypoteettinen sulautuminen kaksi taulukkoa.
Me itse saada jotain näin, jos
olemme yhdistettiin taulukot tiedot, joita niillä on yhteistä.
>> Niin huomaa, että users.username ja moms.username sarake,
se on täsmälleen sama.
Se oli tietoa, oli yhdenmukainen käyttäjiltä
pöytä ja äidit pöytä.
Ja niin yhdistimme ne yhteen.
Me hävittää Kramer, koska hän ei ole olemassa käyttäjille taulukossa,
ja me hävittää Newman, koska hän ei ollut olemassa äidit taulukossa.
Joten tämä on hypoteettinen sulautumisen käyttämällä JOIN toiminta SELECT.
>> Ja sitten etsimme käyttäjän koko nimi ja käyttäjän äiti,
ja niin tämä on tieto, että saisimme yleisestä kyselyn
että teimme kanssa SELECT.
Joten liityimme taulukot yhteen ja poimimamme nuo kaksi saraketta,
ja niin sitähän saisimme.
Mutta SQL Liitosten eräänlainen monimutkainen.
Luultavasti ei tee niitä liian paljon, mutta vain on jonkinlainen käsitys siitä luuranko
että voit käyttää yhdistää kaksi taulukoita yhteen jos tarvitaan.
Kaksi viimeistä ovat hieman yksinkertaisempi Lupaan.
Joten päivittäminen, voimme käyttää UPDATE muuttaa tietoja taulukon.
Yleinen muoto on saattaa eräät pöytä, SET jotkut sarakkeen jotain arvoa
Jossa jotkut predikaatti täyttyy.
Niinpä esimerkiksi, saatamme haluta päivittää käyttäjille taulukko
ja asettaa salasanan Yada Yada, jossa tunnus on 10.
>> Joten tässä tapauksessa, olemme päivittää käyttäjille pöydän.
ID numero on 10 että ensimmäinen rivi siellä,
ja haluamme päivittää salasana yada yada.
Ja niin se mitä tapahtuisi.
Se on melko yksinkertainen, eikö?
Se on vain hyvin yksinkertainen muutos pöytään.
>> DELETE on toimintaa käytimme poistaa tietoja taulukosta.
Poista taulukko WHERE jotkut predikaatti täyttyy.
Haluamme poistaa käyttäjät pöytä esimerkiksi
jossa käyttäjätunnus on Newman.
Arvata mitä tulee tapahdu täällä jälkeen toteutamme että SQL
kysely, Newman on mennyt taulukosta.
>> Joten kaikki nämä toiminnot, kuten olen sanonut, ovat erittäin helppo tehdä phpMyAdmin.
Se on erittäin käyttäjäystävällinen käyttöliittymä.
Mutta se ei vaadi manuaalista työtä.
Emme halua palkata manuaalista työtä.
Haluamme ohjelmia tehdä tämän meille, eikö?
Joten saatamme haluta tehdä tämä ohjelmallisesti.
Haluamme sisällyttää SQL ja olla jotain muuta tekemistä tämän meille.
>> Mutta mitä olemme nähneet, jonka avulla meitä ohjelmallisesti tehdä jotain?
Olemme nähneet PHP, eikö?
Se sisältää joitakin dynaamisuutta meidän ohjelmia.
Ja niin onneksi SQL ja PHP pelata hienosti yhteen.
On toiminto PHP nimeltään kysely, jota voidaan käyttää.
Ja voit kulkea kuten parametri tai argumentti
kyselyn SQL-kysely, joka haluaisit toteuttaa.
Ja PHP tekee sen puolestasi.
>> Joten kun olet liittänyt tietokantaan PHP,
siellä on kaksi esivaaleissa teet tämän.
Siinä on jotain kutsutaan mysqli ja jotain kutsutaan SAN.
Emme aio mennä valtava määrä yksityiskohta siellä.
Vuonna CS50 käytämme SAN.
Kun olet liittänyt tietokantaan, sinun
voi sitten tehdä kyselyjä tietokantaan johtamalla kyselyt argumentteina
PHP toimintoja.
Ja kun teet, voit tallentaa tulos asetettu tällainen taulukko.
>> Ja me tiedämme, miten työskennellä assosiatiiviset taulukot PHP.
Joten voisin sanoa jotain kuten this-- $ results--
tämä on PHP-- vastaa kyselyn.
Ja sitten sisällä hakutoiminto että argumentti
että olen ohimennen kyselyn joka näyttää SQL.
Ja itse asiassa, että on SQL.
Se kyselymerkkijonossa että olisin haluavat toteuttaa minun tietokantaan.
>> Ja niin punainen, tämä on PHP.
Tämä on SQL että olen integroitumaan PHP tekemällä
se argumentti hakutoiminto.
Haluan valita fullname alkaen käyttäjät jossa tunnus on 10.
Ja sitten ehkä kun olen tehnyt, että Voisin sanoa jotain tällaista.
Haluan tulostaa viesti Kiitos kirjautumisen.
>> Ja haluan sen interpolate-- haluan interpoloida $ tuloksia fullname.
Ja niin se miten Työskentelen että assosiatiivinen joukko että sain takaisin.
$ Tulokset fullname olisi pohjimmiltaan päätyä tulostamisen,
kiitos kirjautumisen, Jerry Seinfeld.
Se oli täydellinen nimi jossa idnum on 10.
>> Ja niin kaikki olen tekemässä on olen now-- I tallennettu
kysymykseni, tulokset minun kyselyn ja tulokset assosiatiivisia array,
ja fullname on nimi sarake Aloin varten.
Niin se on minun avain tulokset assosiatiivinen joukko että haluan.
Joten Kiitos kirjautumisen, $ tuloksia, fullname tulostaa, kiinni
aivan näiden kihara henkselit, Jerry Seinfeld.
Ja minä haluan tulostaa viesti Kiitos kirjautumisen Jerry Seinfeld.
>> Nyt luultavasti halua kovaa koodi asioita, kuten että, eikö?
Saatamme haluta tehdä jotain tulosta f, jossa voimme korvata ja ehkä
kerätä erilaisia ​​tietoja, tai ehkä on kyselyn prosessi
erilaisia ​​tietoja.
Ja niin kysely, kyselyn toiminto on tämä käsite eräänlainen substituutioiden
hyvin samankaltainen tulostaa f prosenttiin s ja prosenttia C, on kysymysmerkkejä.
>> Ja voimme käyttää kysymys tavaramerkit hyvin analogisesti
tulostaa f korvike muuttujia.
Joten ehkä sinun käyttäjä kirjautunut sisään aikaisemmin, ja olet tallentanut niiden käyttäjän tunnus
in $ _SESSION PHP Super maailmanlaajuinen keskeisillä ID.
Joten ehkä kun he kirjautunut sisään, asetat $ _SESSION tunnus on 10,
ekstrapoloimalla esimerkki me vain näki toinen sitten.
>> Ja niin kun me todella toteuttaa Tämän kyselyn tulokset nyt,
se kytke 10, tai mitä tahansa $ _SESSION ID arvo on.
Ja niin että antaa meille mahdollisuuden olla hieman dynaamisempaa.
Emme kova koodaus asioita enää.
Olemme säästö tietoa jonnekin ja sitten
voimme käyttää näitä tietoja uudelleen tavallaan yleistää, mitä haluamme tehdä,
ja vain plug-in ja muutos käyttäytymistä meidän sivu
sen perusteella, mitä käyttäjän tunnus todella on kun he ovat kirjautuneena.
On myös mahdollista, vaikka, että tulokset asetettu
voisi koostua useita rivejä.
Jolloin, sinulla on joukko arrays--
joukko assosiatiivisia taulukoita.
Ja sinun tarvitsee vain iteroida läpi.
Ja osaamme kerrata kautta array PHP, eikö?
Joten tässä on luultavasti monimutkainen asia olemme nähneet tähän mennessä.
Se todella integroi kolmea kieltä yhdessä.
>> Täällä punainen, tämä on joitakin HTML.
Olen ilmeisesti starting-- tämä on pätkä joitakin HTML että minulla on.
Olen alkanut uusi kohta, joka sanoo äidit television Seinfeld.
Ja sitten heti jälkeenpäin Olen alkanut pöytä.
Ja sitten sen jälkeen, olen on joitakin PHP, eikö?
Minulla on kaikki tämän PHP siellä.
Olen ilmeisesti menossa tehdä kyselyn.
Ja tehdä kyselyn, aion käyttää SELECT äidit äidit.
>> Joten tämä on getting-- tämä on SQL.
Joten sininen on SQL.
Punainen näimme toinen sitten oli HTML.
Ja vihreä tässä PHP.
Joten Teen kyselyn minun tietokanta, olen
valitaan kaikki äidit äidit taulukossa.
Ei vain kapenee se alas erityisesti rivi, pyydän niitä kaikkia.
>> Sitten voin tarkistaa, jos tulos on ei tasavertaisten vastaa vääriä.
Tämä on vain minun tapa tarkistaa lajitella ja jos tulokset eivät ole yhtä null,
että näkisimme C esimerkiksi.
Pohjimmiltaan tämä on vain tarkistaa tehdä varma, että se itse saanut tiedot takaisin.
Koska en halua aloittaa tulostus out tiedot, jos en saa mitään tietoja.
Sitten kunkin tulokset seurauksena foreach syntaksin PHP, kaikki olen tekemässä
tulostaa ulos $ tulos äidit.
Ja niin aion saada joukko kaikkien äitien each--
se joukko assosiatiivisia arrays-- ja olen tulostamalla
jokainen omana rivin taulukossa.
Ja se on todella kaunis paljon kaikki on sitä.
Tiedän, että vähän bittinen tekeillä
tässä viimeksi esimerkiksi ryhmät arrays-- ryhmät assosiatiiviset taulukot.
Mutta se ei todellakaan vain kiehua alas SQL tekemään kyselyn,
yleensä valitsemalla jälkeen olemme jo laittaa tiedot taulukkoon,
ja sitten vain vetämällä se ulos.
>> Ja tämä on me vedä tässä tapauksessa.
Me purkaisi kaikki yksittäiset äidit äidit taulukosta.
Saimme koko joukon niitä, ja me haluavat kerrata kautta ja tulostaa
jokainen.
Niin uudelleen, tämä on luultavasti monimutkaisin esimerkki
olemme nähneet koska me sekoittamalla kolme eri kieliä yhdessä, eikö?
>> Jälleen olemme HTML täällä punainen, höystettyä SQL täällä sininen,
höystettyä PHP vihreä.
Mutta kaikki nämä pelata kauniisti yhteen, se on
vain asia kehittää hyviä tapoja niin, että voit saada
ne toimimaan yhdessä haluamallasi tavalla.
Ja ainoa tapa todella tehdä, että on harjoitella, harjoitella, harjoitella.
Olen Doug Lloyd, tämä on CS50.