[Daqq tal-mużika] Doug LLOYD: Fil videos tagħna fuq suġġetti web iżvilupp, konna semma l-kunċett ta ' database għal xi ftit drabi, id-dritt? Allura database int probabbilment familjari ma minn jgħidu li jużaw Microsoft Excel jew Google Spreadsheets. Huwa verament ftit organizzata sensiela ta 'skedi, ringieli, u kolonni. U database huwa fejn ħwienet websajt tagħna informazzjoni li hija importanti għall-websajt tagħna biex jaħdem kif suppost. Għal darb'oħra, eżempju tassew komuni hawn huwa ħażna usernames u passwords f'database, b'tali mod li meta zkuk utent fis-website tagħna, database tista 'tiġi staqsew biex tara jekk teżisti dak l-utent fid-database. U jekk huma, verifika li password tagħhom hija korretta. U jekk password tagħhom hija korretta, allura nistgħu nagħtuhom x'ikun paġna dawn qed titlob. Allura int probabilment, għal darb'oħra, familjari ma din l-idea minn Excel jew Google Spreadsheets. Għandna databases, tabelli, ringieli u kolonni., U li verament tip tas-sett fundamentali tal tqassim ġerarkika hawn. Allura hawnhekk Excel spreadsheet. U jekk inti stajt qatt fetħet din jew programm ieħor simili inti taf li dawn hawn huma rows-- 1, 2, 3, 4, 5, 6, 7. Dawn huma kolonni. Forsi stabbiliti hawn, għalkemm inti tista ' ma jużawx din il-karatteristika terriblement much-- I ser zoom in-- għandna din l-idea ta 'folja. Allura forsi dawn il-folji, jekk I jalterna u lura, huma tabelli differenti li jeżistu fid-database tiegħi. U jekk aħna nkomplu l-eżempju kollha il-mod, l-isem ta 'din id-database huwa Book 1. Maybe I għandhom Ktieb 2 u Book 3. Allura kull fajl Excel hija database, kull folja huwa tabella, u ġewwa ta 'kull tabella I jkollhom din l-idea ta 'ringieli u kolonni. Allura kif naħdem ma 'din id-database? Kif nista 'nikseb informazzjoni minnha? Ukoll hemm lingwa msejħa SQL-- li I normalment biss sejħa Sequel-- u inhi għall- Strutturat Mistoqsija Lingwa. U huwa lingwa ta 'programmar, imma hija programmazzjoni pjuttost limitat lingwa. Mhuwiex pjuttost simili oħrajn li ħdimna ma. Iżda l-għan ta 'dan lingwa ta 'programmar huwa għall-mistoqsija database, biex titlob informazzjoni ta 'database, isibu l-informazzjoni database, u l-bqija. Aħna wkoll, fil CS50-- u huwa ħafna pjattaforma komuni, huwa msejjaħ MySQL. Dak hu li nużaw fil-kors. Huwa ta 'sors miftuħ pjattaforma li tistabbilixxi hekk imsejħa database-- relazzjonali database, effettiv. Aħna ma bżonn li tikseb fis wisq dettall fuq dak database relazzjonali hu. Iżda l-lingwa SQL huwa ħafna adept li jkun hemm ħidma ma MySQL u simili ieħor stili ta 'databases relazzjonali. U ħafna installazzjonijiet ta MySQL jiġu ma 'xi ħaġa imsejħa phpMyAdmin, li huwa utent grafika interface-- a GUI-- li jagħmilha ftit aktar faċli biex tesegwixxi utent mistoqsijiet database, minħabba databases mhumiex biss użati billi programmaturi avvanzati, id-dritt? Kultant hemm dawn in-negozji ż-żgħar, u ma tistax taffordja li kiri tim ta 'programmaturi, iżda huma għad għandhom bżonn li taħżen informazzjoni f'database. Xi ħaġa simili phpMyAdmin jagħmilha faċli ħafna għal xi ħadd li qatt ma programmati qabel biex pick up u jsiru familjari mal-mod kif li jaħdmu ma 'database. Il-problema hija, phpMyAdmin, filwaqt li huwa għodda meraviljuż għat-tagħlim dwar databases, huwa manwali. Int ser ikollok log fis u tesegwixxi jikkmanda u t-tip affarijiet fil manwalment. U kif nafu mill tagħna pereżempju dwar l-ipprogrammar tal-web PHP, jkollhom jagħmlu manwalment affarijiet fuq il-websajt tagħna, jekk irridu dinamiku, li jirrispondu attiva website, forsi mhux l-aħjar approċċ. Nixtiequ li ssib mod biex forsi awtomat dan b'xi. U SQL se jippermettulna li jagħmlu dan. Allura meta aħna qed tmur biex tibda taħdem ma SQL, għandna l-ewwel jeħtieġ li jkollhom database li jaħdmu magħhom. Ħolqien ta 'database xi ħaġa inti probabilment se tagħmel fil phpMyAdmin, għaliex ikollok bzonn biss li tagħmel dan darba, u l-sintassi biex dan isir huwa ħafna aktar sempliċi. Huwa ħafna aktar faċli li tagħmel dan fil-user interface grafiku minn ittajpjar it out bħala kmand. Il-kmand jista 'jiksbu ineffiċjenti ftit. Bl-istess mod, ħolqien ta 'tabella tista jiksbu pjuttost ftit diffiċli ukoll. U hekk affarijiet simili ħolqien ta 'database u l-ħolqien ta 'tabella, li int probabbilment biss se jagħmlu once-- darba kull tabella, darba kull database-- huwa OK biex tagħmel dan fil interface grafika. Fil-proċess ta ' ħolqien ta 'tabella, inti ser ukoll għandek tispeċifika kollha ta 'l kolonni li se jkunu f'dik it-tabella. X'tip ta 'informazzjoni ma inti tixtieq li taħżen fit-tabella? Forsi isem ta 'utent u data tat-twelid, password, numru user ID u forsi belt u l-istat, id-dritt? U għal kull darba we tixtieq iżżid utent għad-database, aħna rridu nġibu sitt kollha ta 'dawk biċċiet ta' informazzjoni. U nagħmlu dan billi jżid ringieli mat-tabella. Allura aħna ewwel toħloq database, allura noħolqu tabella. Bħala parti mill-ħolqien tabella, aħna huma mitluba li tispeċifika kull kolonna li nixtiequ f'din it-tabella. U mbagħad kif aħna jibdew jammontaw informazzjoni lill-database u query d-database aktar generally-- mhux sempliċement tiżdied, imma kollox aħna do-- aħna ser tkun jittrattaw bil ringieli tat-tabella, li hija waħda informazzjoni utent mis-sett kollu. Allura kull kolonna SQL huwa kapaċi żamma tad-data ta 'tip ta' data partikolari. Allura aħna tip ta 'eliminata din idea ta 'tipi ta' data fil PHP, iżda dawn qed lura hawn fil SQL. U hemm ħafna tipi ta 'data. Hawn biss 20 minnhom, iżda huwa lanqas kollha kemm huma. Allura aħna għandna ideat simili INTs-- Integers-- aħna probabilment taf li din il-kolonna tista 'żżomm interi. U hemm varjazzjonijiet thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. Forsi aħna mhux dejjem bżonn erba gdim. Forsi għandna bżonn tmien bytes, u hekk aħna jistgħu jużaw dawn il-varjazzjonijiet fuq interi li jkun daqsxejn aktar spazju effiċjenti. Nistgħu nagħmlu numri deċimali, aħna tista 'tagħmel f'wiċċ l-ilma punt numri. Dawn huma pjuttost simili. Hemm xi differenzi, u jekk inti tixtieq tfittex l- Tip SQL tal gwida, inti jista 'jara dak l żgħira differenzi huma bejniethom. Forsi aħna tixtieq li taħżen informazzjoni dwar data u l-ħin. Forsi aħna qed iżżomm rekord ta ' meta l-utent ssieħbu websajt tagħna, u hekk forsi rridu li jkollhom kolonna li l- żmien data jew timestamp li jindika meta l-utent fil-fatt ffirmaw. Nistgħu nagħmlu ġeometriji u linestrings. Dan huwa attwalment pretty jibred. Nistgħu tfassal a żona ġeografika bl-użu Koordinati GIS plot out żona. Allura tista 'attwalment jaħżnu dik it-tip ta 'informazzjoni fil-kolonna SQL. TEST huwa biss blobs ġganti ta 'test, forsi. ENUMs huma tip ta 'interessanti. Dawn fil-fatt jeżistu C. Aħna ma jitkellmu dwar minnhom minħabba li mhux qed terriblement komunement użati, mill-inqas CS50. Iżda huwa ta 'tip ta' data enumerata, li huwa kapaċi li jżomm valuri limitati. Eżempju verament tajba hawn ikunu biex toħloq ENUM fejn il-seven valuri possibbli huma Ħadd, it-tnejn, IT-TLIETA, l-Erbgħa, il-Ħamis, il-Ġimgħa, Sibt, id-dritt? Dik il-ġurnata tip ta 'data ta' Ġimgħa ma teżistix, imma aħna tista 'toħloq tip ta 'data enumerati bħal li f'dik il-kolonna jistgħu biss qatt żżomm wieħed minn dawk is-seba valuri possibbli. Imxejna enumerati kollha tal-valuri possibbli. Imbagħad għandna CHAR u varchar, u stajt kulur aħdar dawn għaliex aħna qed attwalment ser tieħu t-tieni biex jitkellmu dwar id-differenza bejn dawn iż-żewġ affarijiet. Allura CHAR, b'differenza C fejn CHAR kien karattru wieħed, fi SQL a CHAR tirreferi għal string tul fiss. U meta aħna joħolqu dan kolonna, aħna fil-fatt tista 'tispeċifika t-tul tas-sekwenza. Allura f'dan l-eżempju, nistgħu ngħidu CHAR (10). Dan ifisser li kull element ta 'dik kolonna se jikkonsisti minn 10 bytes ta 'informazzjoni. Mhux aktar, xejn anqas. Mela jekk nippruvaw u mqiegħda fil-15 bit jew element 15 karattru jew il-valur fis din il-kolonna, aħna qed biss jiksbu l-ewwel 10. Jekk nistaqsu fiż-żewġ valur fit karattru, aħna qed tmur biex ikollhom it-tnejn karattri, u mbagħad tmien gdim nulla. Aħna qatt ma ser tkun aktar effiċjenti minn dak. A varchar huwa tip simili kunċett tagħna ta string li aħna qed familjari bil minn C jew minn PHP. Huwa string tul varjabbli. U meta inti toħloq din il-kolonna, inti biss tispeċifika l-tulijiet massimi possibbli. Allura forsi 99, jew komunement 255. Dan ikun it-tul massimu. U hekk jekk konna ħażna 15 sekwenza ta 'karattri, aħna juża 15 bytes, forsi 16 bytes għall-terminatur null. Jekk konna ħażna ta ' tliet sekwenza ta 'karattri, aħna se jużaw tlieta jew erba 'bytes. Iżda aħna ma se jużaw bis-sħiħ 99. Allura għaliex kieku rridu kemm? Ukoll, jekk għandna bżonn biex insemmu kif xi ħaġa twil huwa ma 'varchar, għandna tip ta 'jtenni madwar hija biss bħal għamilna fis-C u figura fejn huwa obbligat jieqfu. Billi jekk nafu li kollox f'din il-kolonna hija ta '10 bytes, forsi nafu li l-informazzjoni, nistgħu jaqbżu 10 bytes, 10 bytes, 10 bytes, 10 bytes, u dejjem issib l- bidu tas-sekwenza. Allura aħna jista 'jkollhom xi spazju moħli bil-CHAR, imma forsi hemm kummerċ off ta 'wara veloċità aħjar fil-navigazzjoni tal-database. Iżda forsi irridu li l- flessibilità ta 'varchar minflok having-- Jekk CHAR tagħna kien 255, iżda ħafna utenti tagħna kienu inputjar biss tlieta jew erba 'bytes valur ta 'informazzjoni jew tlieta jew erba karattri jiswew ta 'informazzjoni. Iżda xi utenti kienu qed jużaw l-255 kollu, forsi Varchar ikun aktar xieraq hemm. Huwa tip ta 'kummerċ off, u ġeneralment għal finijiet ta 'CS50, inti m'għandekx bżonn ninkwetaw wisq dwar jekk inti tuża CHAR jew varchar. Iżda fid-dinja reali, dawn l-affarijiet do kwistjoni minħabba kollha ta 'dawn il-kolonni jieħdu spazju fiżiku attwali. U l-ispazju fiżiku, fil- dinja reali, waslet fi primjum. Allura konsiderazzjoni ieħor meta int bini ta 'tabella huwa li pick kolonna waħda li tkun dak li sejjaħ kodiċi primarju. U kodiċi primarju huwa kolonna fejn kull valur wieħed huwa uniku. U dan ifisser li inti tista 'faċilment pick out ringiela waħda biss billi tħares fil-kodiċi primarju ta 'dak ringiela. Allura per eżempju, inti ġeneralment, ma 'utenti, Ma rridx żewġ utenti li għandhom l-istess numru user ID. U hekk forsi ikollok lottijiet ta 'informazzjoni, u forsi żewġ utenti jistgħu għandhom l-istess name-- għandek John Smith u John Smith. Li mhux neċessarjament problema, għaliex hemm nies multipli fid-dinja jismu John Smith. Iżda aħna biss numru user wieħed 10, utent wieħed numru 11, 12, 13 ID. Aħna ma jkollhom żewġ utenti bl-istess numru, u għalhekk forsi numri utent ID tkun kodiċi primarju tajba. Aħna ma jkollhom kwalunkwe duplikazzjoni, u nistgħu issa unikament jidentifikaw kull ringiela waħda biss billi tħares lejn il-kolonna. Choosing ċwievet primarja tista 'attwalment jagħmlu operazzjonijiet tabella sussegwenti ħafna aktar faċli għaliex inti tista 'lieva il-fatt li ċerti fillieri se tkun unika, jew kolonna ċerti tal database tiegħek jew tabella se jkun uniku li pick ringieli partikolari out. Tista 'wkoll ikollhom primarja konġunt ewlenin, li inti tista 'ssib okkażjoni għall-użu, li huwa biss kombinazzjoni ta 'żewġ kolonni li huwa garantit li jkun uniku. Allura forsi għandek wieħed kolonna li bħala u Bs, kolonna waħda li wieħed, tnejn, u tlieta, iżda inti ser biss qatt jkollhom A1 waħda, wieħed A2, u hekk u hekk. Imma inti jista 'jkollok B2, a C2, jew A1, A2, A3, A4. Allura inti jista 'jkollok Kif multipli, multipli Bs, dawk multipli, twos multipli, imma int tista 'biss qatt jkollhom A1 waħda, B2, C3, u l-bqija. So kif għidt, SQL huwa lingwa ta 'programmar, iżda għandha vokabularju limitat b'mod ġust. Huwa mhux daqshekk espansiva kif C u PHP u lingwi oħra li nitkellmu fil-kors. Huwa aktar verbose lingwa minn dak li aħna qed ser jitkellmu dwar f'dan video, għaliex f'dan il-video aħna qed tmur biex jitkellmu dwar erba 'operazzjonijiet li aħna jista 'jwettaq fuq mejda. Hemm aktar minn hekk. Nistgħu nagħmlu aktar minn hekk, iżda għall-għanijiet tagħna, aħna qed ġeneralment se tkun qed tuża biss erba daħħal operations--, tagħżel, taġġorna, u ħassar. U inti tista 'probabbilment raden intuwittivament dak l-erba 'dawn l-affarijiet do. Iżda aħna ser jmorru fi ftit ta 'dettall fuq kull wieħed. Allura għal finijiet ta 'dan video, ejja nassumu aħna ġej tnejn tabelli fl database unika. Għandna tabella msejħa Utenti li għandha erba columns-- numru ta 'ID, username, password, u l-isem sħiħ. U aħna għandna t-tieni tabella fl-istess database imsejħa Moms li biss taħżen l-informazzjoni dwar username u omm. Allura għal kulħadd ta 'eżempji f'dan il-video, aħna ser tkun qed tuża din id-database u aġġornamenti sussegwenti għaliha. Mela ejja ngħidu li rridu żid informazzjoni għal tabella. Dak hu l-inserzjoni operazzjoni ma. Biex jispjegaw kollha dawn il-kmandijiet, jien ser nagħtikom skeletru ġenerali għall-użu. Minħabba bażikament, il-mistoqsijiet ser tfittex pretty simili, aħna qed biss ser jinbidlu biċċiet kemmxejn differenti ta 'informazzjoni biex tagħmel affarijiet differenti it-tabella. Allura għall DAĦĦAL, l-iskeletru jistenna tip ta 'bħal dan. Aħna rridu li ddaħħal fil tabella partikolari. Imbagħad għandna parentesi miftuħa u lista ta 'kolonni li aħna tixtieq li jitqiegħed valuri fis. Parentesi qrib, il- wara valuri, u mbagħad għal darb'oħra, aħna lista l-valuri irridu li tqiegħed fit-tabella. Allura eżempju ta 'dan ikun ġej. Irrid li ddaħħal fil-tabella utenti l columns-- wara username, password, u fullname. Allura ringiela ġdida fejn jien tqegħid f'dawn it-tliet kolonni u aħna se timplimenta fil-valuri Newman, USMAIL, u Newman. Allura f'dan il-każ, jien tqegħid tal-Newman zghar fil-kolonna username, password USMAIL, u l-isem kapital sħiħ N Newman fil-kolonna fullname. Allura hawnhekk huwa dak tad-database dehru qishom qabel. Hawn dak il-mejda utenti fuq il- top dehru qishom qabel għamilna dan. Wara we tesegwixxi dan query, irridu jiksbu dan. Imxejna miżjud ringiela ġdida għall-tabella. Iżda Avviż dan ħaġa waħda li jien ma jispeċifikaw, iżda b'xi stajt ltqajna valur għal, li huwa dan 12 dritt hawn. I ma jgħidu jien ridt li jitqiegħdu Numru ID fil hemmhekk. Jien ridt li tpoġġi username, password, fullname. U jien għamilt dan, li l-multa. Imma I wkoll ltqajna dan 12. Għaliex ma I nikseb dan 12? Ukoll, jirriżulta li meta inti qed jiddefinixxu kolonna li se tkun tiegħek kodiċi primarju, li normalment, bħal I said, numru ta 'identifikazzjoni. Mhuwiex dejjem neċessarjament se tkun numru ta 'identifikazzjoni, iżda huwa ġeneralment idea tajba li tkun xi tip ta 'valur sħiħ. Inti għandek l-għażla fil phpMyAdmin meta int ħolqien database tiegħek jew mejda tiegħek biex jistabbilixxu li kolonna kif inkrementazzjoni auto. Liema hija idea verament tajba meta int taħdem ma 'kodiċi primarju, għaliex inti tixtieq kull valur f'dik il-kolonna tkun unika. U jekk tinsa tispeċifika dan għal aktar minn persuna waħda, issa għandek sitwazzjoni fejn f'dik il-kolonna m'għadux uniku. Għandek żewġ blanks, sabiex inti tista 'ebda itwal jidentifika unikament column-- jew inti tista m'għadhomx unikament jidentifikaw ringiela bbażata fuq il-kolonna. Huwa tilef kollha tagħha valur bħala kodiċi primarju. U hekk apparentement dak I għamlu hawnhekk huwa kkonfigurat l-user ID kolonna biex inkrement auto sabiex kull darba I żid informazzjoni lill-mejda, se awtomatikament tagħti me valur għall-kodiċi primarju. So I qatt ma tista tinsa li tagħmel dan minħabba il database se tagħmel dan għalija. Allura dak it-tip ta 'sbieħ. U hekk hu għalhekk irridu jiksbu 12 fil hemm, għaliex stajt stabbilit f'dik il-kolonna sa inkrement auto. Jekk I xi ħadd ieħor miżjud huwa d jkun 13, jekk I miżjuda xi ħadd ieħor huwa d tkun 14, u l-bqija. Mela ejja biss tagħmel wieħed inserzjoni aktar. Aħna ser daħħal fit-tabella moms, fil partikolari, il-username u l-omm kolonna, il-valuri Kramer u Babs Kramer. U hekk kellna dan qabel. Wara aħna tesegwixxi dik Query SQL, aħna għandna dan. Imxejna miżjud Kramer u Babs Kramer għat-tabella moms. Allura dak ddaħħal. SELECT huwa dak li nużaw biex jiġi estratt informazzjoni mit-tabella. Allura dan huwa kif nikbru informazzjoni mill-database. U kmandi hekk TAGĦŻEL ser ikunu użati ta 'spiss ħafna fl-ipprogrammar. Il ġenerali framework-- l iskeletru ġenerali tidher bħal dan. Agħżel sett ta 'kolonni minn tabella, u mbagħad b'għażla inti tista 'tispeċifika condition-- jew dak li aħna tipikament sejħa relattivi, normalment huwa t-terminu li nużaw fil SQL. Imma hija bażikament dak ringieli partikolari inti tixtieq li tikseb. Jekk inti tixtieq li, minflok jkollna kollox, dejqa l-isfel, dan huwa fejn inti tagħmel dan. U allura wieħed irid, inti tista 'ukoll tordna minn kolonna partikolari. Allura forsi inti tixtieq li jkollok affarijiet magħżula alfabetikament bbażata fuq kolonna waħda jew alfabetikament ibbażata fuq ieħor. Għal darb'oħra, FEJN u ORDNI MILL huma fakultattivi. Iżda dawn ser probabbilment ikunu useful-- partikolarment Fejn se jkun utli għal iċekknu sabiex inti ma nikseb database kollu tiegħek lura u jkollhom biex tiġi pproċessata, inti biss tikseb il-biċċiet ta 'li inti care about. Hekk per eżempju, I tista 'tixtieq li tagħżel Numru ta 'identifikazzjoni u fullname mill-utenti. Allura dak li tista 'din look like? Allura hawnhekk tabella utenti tiegħi. Irrid li tagħżel idnum u fullname minn utenti. What am I se tikseb? Jien ser tikseb dan. I ma dejqa l-isfel, hekk jien jkollna l-għadd ID għal kull ringiela u jien jkollna bis-sħiħ isem minn kull ringiela. KOLLOX SEW. X'jiġri jekk I tixtieq li jagħżlu password minn utenti WHERE-- hekk issa Jien żżid kundizzjoni, a predicate-- fejn idnum huwa inqas minn 12. Allura hawnhekk database tiegħi għal darb'oħra, utenti mejda tiegħi il-quċċata. What am I se tikseb jekk irrid tagħżel li l-informazzjoni, l-password, fejn user ID jew idnum huwa inqas minn 12? Jien ser tikseb dan informazzjoni lura, id-dritt? Dan jiġri li idnum huwa 10, anqas minn 12, in-numru ID 11 ta 'inqas minn 12. Jien jkollna l-password għal dawk ringieli. Dak hu li jien mitlub. Xi ngħidu dwar dan? X'jiġri jekk I tixtieq li jagħżlu star mill- moms tabella fejn username ugwali Jerry? OK, star tagħżel hija l-speċjali tip ta 'wild card hekk imsejħa li nużaw biex tikseb kollox. Allura dawn qed tgħid tagħżel username omm comma, li li jkun ġara l-uniku żewġ kolonni ta 'din it-tabella, I tista 'tagħżel biss star u tikseb kollox fejn il-username ugwali Jerry. U hekk dan huwa dak I se tikseb jekk I magħmula dan mistoqsija partikolari. Issa, databases huma kbar għaliex dawn jippermettu ahna torganizza l-informazzjoni forsi ftit aktar effiċjenti milli konna jista 'nkella. Aħna mhux bilfors li jaħżen kull biċċa ta 'informazzjoni rilevanti dwar l-utent fl-istess tabella. Kellna żewġ tabelli hemmhekk. Għandna bżonn li taħżen isem ommu kulħadd, il u forsi aħna ma jkollhomx sigurtà soċjali numru, għandna data tat-twelid tagħhom. Li mhux dejjem bżonn li jkun fl-istess tabella. Sakemm nistgħu jiddefinixxu relazzjonijiet bejn l-tables-- u li fejn dan relazzjonali tul database tip ta niġu fis play-- sakemm nistgħu jiddefinixxu relazzjonijiet bejn il-tabelli, nistgħu tip ta 'jikkompartimentalizzaw jew affarijiet astratt ta 'mod, fejn aħna biss l informazzjoni verament importanti we care about fit-tabella tal-utent. U allura għandna l-informazzjoni anċillari jew informazzjoni addizzjonali fit-tabelli oħra li nistgħu jgħaqqdu lura lill-prinċipali utenti tabella b'mod partikolari. Allura hawnhekk għandna dawn iż-żewġ tabelli, iżda hemm relazzjoni bejniethom, id-dritt? Jidher bħal username tista 'tkun xi ħaġa li teżisti komuni bejn dawn żewġ tabelli differenti. Allura dak li jekk issa għandna sitwazzjoni fejn aħna tixtieq li tikseb l-isem sħiħ ta 'utent minn tabella tal-utent, u omm tagħhom isem mit-tabella omm? Aħna ma jkollhom mod biex jiksbu li kif inhi, id-dritt? M'hemm l-ebda tabella waħda li fiha kemm-isem sħiħ u isem l-omm. Aħna ma jkollhom dik l-għażla minn dak li aħna stajt tidher s'issa. U hekk aħna li jintroduċu l-idea ta 'jissieħbu. U jingħaqad huma probabbilment l-aktar complex-- huwa verament aktar operazzjoni kumplessa aħna qed tmur biex jitkellmu dwar fil-video. Huma qed ftit kumplikata, iżda li ladarba inti tikseb l-hang minnha, dawn qed attwalment mhux wisq ħażina. Huwa biss każ speċjali ta 'TAGĦŻEL. Aħna qed tmur biex jagħżlu sett ta ' kolonni minn tabella li tgħaqqad fit-tieni tabella fuq xi relattivi. F'dan il-każ, taħseb dwarha simili this-- tabella waħda hija ċirku wieħed fuq hawn, tabella tnejn huwa ċirku ieħor minn hawn. U dik il-parti relattivi fin-nofs, huwa tip simili jekk taħseb dwar kif dijagramma Venn, liema ma għandhom in komuni? Aħna rridu li jgħaqqad dawn żewġ tabelli ibbażati fuq dak li għandhom komuni u joħolqu din it-tabella ipotetiku li hija l-għaqda tat-tnejn flimkien. Allura aħna ser tara dan fi Eżempju u forsi li ser jgħinu ċar it up ftit. Allura forsi inti tixtieq li tagħżel user.fullname u moms.mother mill-utenti li tgħaqqad fil- moms tabella f'kull sitwazzjoni fejn il-kolonna username huwa l-istess bejniethom. U dan huwa ġdid livell sintattiku hawn, dan l-utent. u moms .. Jekk qed nagħmel tabelli multipli flimkien, I tista 'tispeċifika tabella. I jista 'jiddistingwi b'mod partikolari dwar li fuq fil-qiegħ nett hemmhekk. I jistgħu jiddistingwu l-username kolonna tat-tabella utenti mill-kolonna username tal- moms tabella, li huma otherwise-- jekk aħna biss qal username ugwali username, li ma verament jfisser xejn. Aħna rridu li jagħmlu dan meta dawn jaqblu. So I tista 'tispeċifika il-mejda u l- Isem kolonna f'każ ta 'sitwazzjoni fejn ikun ċar dak li nkun qiegħed jitkellem dwar. Allura li kollox qed nagħmel hemm jien qal il-kolonna minn din it-tabella, u li espliċitu ħafna. Għalhekk għal darb'oħra, jien għażla tal- isem sħiħ u l-isem tal-omm mit-tabella utenti marbuta flimkien it-tabella moms f'kull sitwazzjoni fejn jaqsmu dak column-- huma jaqsmu dan il-kunċett username. Allura hawn huma l-tabelli kellna qabel. Dan huwa l-istat ta 'tagħna database kif jeżisti dritt issa. L-informazzjoni aħna qed estrazzjoni huwa dan li jibdew bihom. Dan huwa l-tabella l-ġdida aħna qed tmur biex joħolqu tgħaqqad dawn flimkien. U avviż aħna mhux qed jenfasizzaw Ringiela Newman fl tabella l-utent, u aħna mhux qed jenfasizzaw Ringiela Kramer fil-tabella moms minħabba li la jeżisti wieħed fl kemm sets-- fiż-żewġ tabelli. L-informazzjoni biss li hija komuni bejniethom hi Jerry hija kemm tabelli u gcostanza huwa fiż-żewġ tabelli. U hekk meta nagħmlu l-SQL jissieħbu, dak li aħna get-- u aħna nagħmlu fil-fatt tikseb dan. Huwa tip ta 'varjabbli temporanju. Huwa simili ipotetika amalgamazzjoni taż-żewġ tabelli. Aħna fil-fatt tikseb xi ħaġa bħal dan, fejn konna magħquda flimkien it-tabelli fuq l- informazzjoni li huma għandhom in komuni. Allura avviż li users.username u l-kolonna moms.username, huwa eżattament l-istess. Li kienet l-informazzjoni li kien konsistenti mill-utenti tabella u t-tabella moms. U hekk aħna magħquda flimkien. Aħna mormija Kramer għaliex huwa ma kinux jeżistu fit-tabella utenti, u aħna mormija Newman, minħabba huwa ma teżistix fit-tabella moms. Allura dan huwa l-għaqda ipotetika użu tal-operazzjoni jissieħbu tal SELECT. U allura aħna kienu qed ifittxu l- isem sħiħ utent u l-omm l-utent, u għalhekk dan huwa l-informazzjoni li aħna se tikseb mill-mistoqsija ġenerali li għamilna ma 'SELECT. Allura aħna ssieħbu fl-tabelli flimkien u aħna estratt dawn iż-żewġ kolonni, u hekk dan huwa dak li aħna se tikseb. Iżda SQL Jingħaqad tip ta kkumplikata. Inti probabilment mhux se jagħmlu lilhom wisq, imma biss ikollhom xi idea ta 'l-iskeletru li inti tista 'tuża biex jingħaqdu żewġ tabelli flimkien jekk inti meħtieġa biex. L-aħħar tnejn huma bit sempliċi I wegħda. Allura aġġornament, nistgħu nużaw AĠĠORNAMENT għall-bidla l-informazzjoni fit-tabella. Il-format ġenerali hija AĠĠORNAMENT xi mejda, stabbiliti xi kolonna li xi valur Fejn xi relattivi tkun sodisfatta. Hekk per eżempju, aħna tista 'tixtieq li taġġorna l-tabella utenti u tistabbilixxi l-password biex yada yada, fejn in-numru identità hija 10. Allura f'dan il-każ, aħna qed aġġornament tal-mejda utenti. In-numru identità hija 10 għal li l-ewwel ringiela hemm, u rridu li taġġorna l- password biex yada yada. U hekk dan huwa dak li jiġri. Huwa pjuttost sempliċi, id-dritt? Huwa biss sempliċi ħafna modifika għall-tabella. Ħassar huwa l-operazzjoni aħna użati biex tneħħi l-informazzjoni minn tabella. Ħassar MINN FEJN tabella xi relattivi tkun sodisfatta. Aħna tixtieq li tħassar mill- utenti tabella per eżempju fejn il-username huwa Newman. Inti tista 'probabbilment raden dak li għaddej biex jiġri hawn wara we tesegwixxi dik SQL query, Newman hija marret mit-tabella. Allura dawn operazzjonijiet kollha, kif stajt qal, huma faċli ħafna li jagħmlu fil phpMyAdmin. Huwa interface faċli ħafna user. Iżda dan ma jeħtieġx sforz manwali. Aħna ma rridux li jimpjegaw isforz manwali. Irridu programmi tagħna biex tagħmel dan għalina, id-dritt? Allura aħna tista 'tixtieq li tagħmel dan programmatically. Aħna rridu li jinkorporaw SQL u jkollhom xi ħaġa oħra li tagħmel dan għalina. Imma dak ma rajna li tippermetti ahna programmatically jagħmel xi ħaġa? Rajna PHP, id-dritt? Hija tintroduċi xi dinamiżmu fil-programmi tagħna. U hekk fortunatament, SQL u PHP jilagħbu nicely ħafna flimkien. Hemm funzjoni fil-PHP imsejħa mistoqsija, li jistgħu jintużaw. U inti tista 'tgħaddi bħala l- parametru jew l-argument għall-mistoqsija mistoqsija SQL li inti tixtieq li tesegwixxi. U PHP se tagħmel dan għan-nom tiegħek. Allura wara li tkun ħadthom konnessi għad-database tiegħek ma PHP, hemm żewġ primaries inti tagħmel dan. Hemm xi ħaġa imsejħa MySQLi u xi ħaġa imsejħa DPO. Aħna mhux se tidħol fis enormi dettall ammont hemmhekk. Fl CS50 nużaw DPO. Wara li tkun ħadthom konnessi għad-database tiegħek, inti tista 'mbagħad tagħmel mistoqsijiet database tiegħek billi tgħaddi l-mistoqsijiet kif argumenti għall-funzjonijiet PHP. U meta inti tagħmel dan, int taħżen il riżultat stabbilit fil-firxa assoċjattiva. U nafu kif taħdem ma ' arrays assoċjattiva fis PHP. So I jista 'jgħid xi ħaġa bħal this-- $ results-- dan huwa PHP-- ugwali mistoqsija. U allura l ġewwa tal- funzjoni mistoqsija dan l-argument li jien tgħaddi għall-mistoqsija li qisu SQL. U fil-fatt dan huwa SQL. Dik hija l-sekwenza mistoqsija li nixtieq simili li teżegwixxi fuq database tiegħi. U għalhekk bl-aħmar, dan huwa PHP. Dan huwa SQL li jien jintegraw PHP billi dan l-argument għall-funzjoni mistoqsija. I trid tagħżel fullname minn utenti fejn numru ta 'identifikazzjoni ugwali għal 10. U allura forsi wara I ghamilt li, I jista 'jgħid xi ħaġa bħal din. Irrid li jistampa l- messaġġ Grazzi għal qtugħ fil. U nixtieq li interpolate-- Irrid li Interpola riżultati $ fullname. U hekk dan huwa kif I xogħol ma 'dik firxa assoċjattiva li sirt lura. $ riżultati fullname kieku bażikament jispiċċaw istampar out, grazzi għall-qtugħ fil, Jerry Seinfeld. Dan kien l-isem sħiħ fejn idnum ugwali għal 10. U għalhekk kull nagħmel huwa jien now-- I maħżuna mistoqsija tiegħi, ir-riżultati tal-mistoqsija tiegħi u r-riżultati fil-firxa assoċjattiva, u fullname huwa l-isem ta ' il-kolonna I kien jkollna għall. Allura dak ewlieni tiegħi fil-riżultati firxa assoċjattiva li nixtieq. Allura Grazzi għall-qtugħ fil-$ riżultati, fullname se jistampa, se jeħel dritt fl bejn dawk kaboċċi ċingi, Jerry Seinfeld. U jien ser simili li jistampa l-messaġġ Grazzi għal qtugħ fil Jerry Seinfeld. Issa, aħna probabbilment ma jridux hard affarijiet kodiċi bħal dik fil, right? Aħna tista 'tixtieq li tagħmel xi ħaġa bħal print f, fejn nistgħu tissostitwixxi u forsi jiġbru informazzjoni differenti, jew forsi jkollhom l-proċess mistoqsija informazzjoni differenti. U għalhekk mistoqsija, il-funzjoni mistoqsija għandha dan il-kunċett ta 'tip ta' sostituzzjonijiet simili ħafna li jistampaw f mija s u mija c, huwa trade marks in kwistjoni. U nistgħu nużaw kwistjoni marki analogu ħafna li jistampaw f varjabbli sostituti. Allura forsi utent tiegħek illoggjat qabel, u inti ffrankati n-numru tagħhom user fil $ _session ta PHP super globali fil-ID ċavetta. Allura forsi wara li illoggjat, tissettja $ _session ID ugwali għal 10, estrapolazzjoni mill-eżempju aħna biss raw tieni ilu. U hekk meta aħna attwalment tesegwixxi din il-mistoqsija ir-riżultati issa, ikun plagg fil 10, jew kwalunkwe il-valur ID $ _session hu. U sabiex il jippermetti li jkun xi ftit aktar dinamiku. Aħna mhux iebes kodifikazzjoni affarijiet fil aktar. Aħna iffrankar informazzjoni x'imkien u mbagħad nistgħu darb'oħra tuża dik l-informazzjoni lill tip ta 'tiġġeneralizza dak li rridu nagħmlu, u biss plug-in u l-bidla l-imġiba tal-paġna tagħna ibbażati fuq dak in-numru ID tal-utent fil-fatt huwa wara li ħadthom illoggjat. Huwa wkoll possibbli, għalkemm, li r-riżultati tiegħek stabbiliti jistgħu jikkonsistu ringieli multipli. F'liema każ, inti għandek firxa ta 'arrays-- firxa ta 'arrays assoċjattiva. U inti biss jeħtieġ li jtenni permezz tiegħu. U nafu kif jtenni permezz ta 'firxa fil-PHP, id-dritt? Allura hawnhekk huwa probabbilment l-aktar Ħaġa kumpless Rajna s'issa. Hija fil-fatt tintegra tliet lingwi flimkien. Hawnhekk aħmar, dan huwa xi HTML. Jien apparentement starting-- dan huwa snippet ta 'xi HTML li għandi. Jien jibdew paragrafu ġdid li jgħid il-moms ta Seinfeld TV. U mbagħad immedjatament wara Jien jibdew tabella. U mbagħad wara dan, I għandhom xi PHP, id-dritt? I kollha ta 'dan il-kodiċi PHP fil hemmhekk. Jien apparentement ser tagħmel mistoqsija. U biex jagħmlu l-mistoqsija, jien ser tkun qed tuża ommijiet tagħżel minn moms. Allura dan huwa getting-- dan huwa SQL. Allura l-blu huwa SQL. Il aħmar rajna tieni ilu kien HTML. U l-aħdar hawnhekk huwa PHP. Hekk jien jagħmlu query li database tiegħi, jien għażla kollha tal- ommijiet fit-tabella moms. Mhux biss tidjiq l-isfel għal partikolari ringiela, jien tistaqsi għalihom kollha. Imbagħad I jiċċekkjaw jekk riżultat huwa mhux ugwali ugwali falza. Dan huwa biss tiegħi mod ta 'verifika tip ta 'jekk ir-riżultati ma tkunx ugwali għal nulla, li aħna se tara c per eżempju. Bażikament din hija biss verifika biex tagħmel żgur li attwalment marret data b'lura. Minħabba I ma jridu jibdew istampar out data jekk I ma jiksbu ebda data. Imbagħad għal kull riżultati bħala riżultat il- sintassi foreach minn PHP, kollha qed nagħmel Hija twettaq stampar ommijiet $ riżultat. U hekk jien ser tikseb sett kollha tal-ommijiet ta each-- huwa ta 'firxa ta' assoċjattiva arrays-- u jien stampar ta kull wieħed bħala filliera tagħha stess ta 'tabella. U li verament pretty ħafna kollha hemm għaliha. Naf hemm ftit bit għaddejjin hawn f'dan l-aħħar pereżempju arrays ta arrays-- arrays ta arrays assoċjattiva. Imma verament ma biss għalli fl SQL biex tagħmel mistoqsija, normalment għażla wara konna diġà jpoġġu informazzjoni fit-tabella, u mbagħad biss tiġbdu out. U dan huwa aħna se iġbdu f'dan il-każ partikolari. Nixtiequ estratt kollha ta 'l-individwu ommijiet mit-tabella moms. Aħna ltqajna sett sħiħ minnhom, u aħna tixtieq li jtenni permezz ta 'u jistampa kull wieħed. Għalhekk għal darb'oħra, dan huwa probabbilment l-aktar eżempju kumplikata Rajna għaliex aħna qed taħlit tliet lingwi differenti flimkien, id-dritt? Għal darb'oħra, aħna għandna HTML hawn bl-aħmar, mħallta ma 'xi SQL hawn fil-blu, mħallta ma 'xi PHP fl-aħdar. Imma dawn kollha jilagħbu nicely flimkien, huwa biss kwistjoni ta 'żvilupp drawwiet tajba sabiex inti tista 'tikseb biex jaħdmu flimkien il-mod trid. U l-unika mod biex verament tagħmel dan huwa li prattika, il-prattika, il-prattika. Jien Doug Lloyd, dan huwa CS50.