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