[Musika jotzen] DAVID MALAN: Ondo da, hau CS50 da. Aste honetan zortzi bukaera da. Eta gaur egun, hasten gara den pieza batzuk bete orduan eraikitzen da web orrian gauzak. Beraz, gogoratzen astelehenean a denbora asko gehiago gastatzen dugu PHP, zein bizia denez programazio hizkuntza horretan irteera aukera ematen digu, besteak beste Gauzak, HTML eta beste hainbat eduki Hori nahi dugu egingo den ikusi. Baina ez dugu benetan nola begiratu zion Edozein informazio gordetzeko goaz. Izan ere, ia edozein horren super du bisitatzen duzun gaur webgune interesgarriak datu-basearen mota batzuk atzeko amaieran, ezta? Facebook zalantzarik gordetzen datuak asko buruz guztiok eta Gmail denda guztietan Zure emailak. Eta horrela, beste hainbat guneak ez dira soilik eduki estatikoa hori da informatzailea. Egia esan, nolabait dinamikoa da. Ematen duzu sarrera, eguneratzen beste pertsona batzuen orrialdeetan. Mezuak, bidali duzu mezuak, eta abar. Beraz, gaur egun, gertuagotik begiratzen dugu Proiektu baten underpinnings egingo duzula hurrengo murgiltzea astean, CS50 Ogasun, bertan da benetan eraiki behar joan Ez C, baina PHP zerbait. Itxura bat webgunea A honen antzeko zerbait apur ahalbidetzen duen erosi eta saldu egia esan, izakinen denbora errealean gainean marraztu joan Stock datuak Yahoo Ogasun from. Eta beraz, azken finean, behar dituzu Zerorrek eta erabiltzaileentzako ilusioa duzula benetan erosi eta saltzen ari stock eta denbora ia benetako lortzean eguneratzeak, kudeatzeko bat kartera, denak ere izatea eskatzen da joan, azken finean, erabiltzaile-base bat. Beraz, zure hitzetan, Oraindik ez baduzu batez ere super ordenagailua ezagutzen Zientzia edo datu-base, zer Ziur bat jakin nahi izan oraintxe, nontechnical dagokionez? Zer da? Nola litzateke deskribatuko duzu pisukide bat edo lagun bati? Ikusleak: [INAUDIBLE] Informazio [INAUDIBLE] DAVID MALAN: Beraz, informazioaren zerrenda bat, edo informazioaren zerrenda bat store-- bat baliteke gorde nahi duzu zerbait, erabiltzaile batek legez. Eta zer egin erabiltzaile horiei lotutako? Oraindik Facebook edo erabiltzailea bazara Gmail, zeintzuk dira ezaugarriak guztiok erabiltzaile izan? Atsegin dut, zer batzuk izan liteke Kalkulu-orriaren zutabe zein dugu aipatu azken aldiz? Berriro, ahal izango duzulako datu-baseko uste fancy Excel fitxategi batean edo Google benetan gisa Kalkulu-orri edo Apple zenbakiak fitxategia. Beraz, zer uste duzu Erabiltzaile batek uste duzu? Zer dute? Zer da hori? Ikusleak: izen bat. DAVID MALAN: izen bat. Beraz, bada, izen-abizenak, bezala, David Malan Erabiltzaile batzuek izena izango litzateke. Zer gehiago Erabiltzaile bat izan? Ikusleak: NAN An. DAVID MALAN: NAN An. Beraz, NAN zenbakia batekin, zure Harvard bezalako NAN edo zure Yale ID garbiak edo antzekoak. Zer gehiago ditzake erabiltzaile bat? Ikusleak: pasahitza. DAVID MALAN: pasahitza A, agian bat helbidea, agian, telefono zenbaki bat, agian, helbide elektroniko bat. Beraz, ez da soro eta hau sortak ezin Sort espiral kontroletik kanpo hasten duzun bezala azkar, ahalik eta azkarren , konturatu oh, dezagun gordetzeko honetan eta dezagun gordetzeko eta bestera. Baina, nola ez, ez dugu benetan? Beraz, berriro ere, mental eredua gaur egun, izan dugun bezala Benetako SQL murgiltzea, Kontsulta-lengoaia egituratu, itxura hau, datu-base bat da. Lerro eta zutabe besterik ez da. Eta Google Spreadsheets imajinatu dezakezu edo beste edozein programatan kopurua. Baina zer da MySQL, hau da, atal gako datu-basea software gabiltza erabili joan, libreki argi eta garbi available-- Facebook erabilerak da eta beste edozein websites-- kopurua database gauzak gordetzen erlazionalean. Eta datu-base erlazional bat bakar bat esan nahi du, hitzez hitz bere datuak gordetzen lerro eta zutabe batean. Gisa duten bezain sinplea da. Beraz, nahiz eta Oracle antzeko zerbait izan dezakezu, oro har, entzuna datu-base erlazional bat da. Eta kanpaia azpian, hura datuak lerro eta zutabe azalera. Eta Oracle kobratzen duzu bat Diru asko dagoela egiteko, MySQL gastuak, berriz, bera egiteko ezer. Beraz, SQL digute va gutxienez lau eragiketak. Gaitasuna datuak hautatzeko, irakurrita bezala datuak, sartu, ezabatu eta eguneratu datuak. Beste era batera esanda, horiek dira benetan lau eragiketak gakoa direla aldatu gaitu egingo lerro eta zutabe horietan gauza. Erabili ez dugu gaur bereziki tresna hauek SQL ikasi eta jolastu Berriro deritzo PHP MyAdmin. Web oinarritutako tresna da. Kasualitatea Guztira dagoela Honez escrito en PHP. Baina nik digute grafiko bat doa Erabiltzaile interfaze ahal dugun benetan, beraz, lerro eta zutabe horiek sortzeko eta, ondoren, haiekin hitz kode bidez. Beraz, dezagun hasteko orain Zer uste dut Egia da fun prozesua mota Atzera webguneak amaieran eraikitzen, zatiak erabiltzaileek ez ikusi, baina ziur asko egin zaintza, hori delako baizik datuak joatekoa. Beraz, C eta bat antzekoa gutxi PHP bezalako gutxiago, SQL, edo onartzen dituen datu-basea SQL, gutxienez, datu hauek ezberdin ditu eta besteen sortak. CHAR, VARCHAR, INT, bigint, Dezimaletik eta ordua. Eta ez dago oso bat da beste ezaugarri mordo, baina utzi egin dezagun arabera Benetako adibide moduan. CS50 IDE sartu naiz Bertan, aldez aurretik, ez dut oraindik eta nik URL bat ere bisitatu for I PHP MyAdmin izeneko tresna hau. Eta arazo ezarritako zazpi egingo dugu esango zehazki nola interfaze hau eskuratu baita. Goiko ezkerreko izkinan, nabarituko hitzaldia dio. Eta hori besterik esan nahi du Aldez aurretik, sortu dut datu-basea izeneko hitzaldia huts bat duela bertan kalkulu orriak ez oraindik. Ez da, lerro eta zutabe no. Lehenengoa delako gauza egin behar dugu joan mahai bat sortzeko hasiko da hori da gure erabiltzaileek gordetzeko. Beraz, literalki baino gehiago Hemen eskubidea, naiz datu-basea kontatzeko joan Erabiltzaileak izeneko taula bat egin nahi dut. Beraz, hau fitxategia bezalakoa da hori I Nire datu guztiak gordetzeko nahi. Eta zenbat zutabe? Beno, goazen simple mantentzeko oraingoz. Nahi besterik ez dut nahi bat bezala gordetzeko izena eta erabiltzaile izen bat. Txiki hasiko gara. Beraz, bi zutabe guztira nahi dut. Eta aurrera noa, eta egin klik joango gara. Eta gero, hauen zutabeak, zer noa Internetera hau bada zuzen ere, egin cooperates-- guztiak eskubidea, beraz ari gara horretan berriro saiatu da. Izeneko mahai bat sortzeko noa Bi zutabeak, Erabiltzaileak sakatu Joan, OK. Orain lortu dugu benetan azkarra da. Eskerrik asko, oso ondo egina. Ondo da, beraz, zer egin nahi dugun zutabe horien deitu behar da? Beraz, deitu behar Username Honez bat doa. Beraz, guztia ikusten dut hemen eta interfazea Egia lortzen pixka bat itsusi, azkenean, Una vez hasteko, datu horiek guztiak idazten. Baina zer polita moduko hori da paradoxikoki, zutabeak sortzen ari naiz, baina tresna ditu foolishly ezarri zituen lerroetan dut, beraz, zutabe horien konfigura ditzakezu. Beraz, ez da bi hutsuneak han azpian izena. Eta eremu horiek bat dut Username izeneko nahi, eta beste eremu deitzeko izena nahi dut. Eta orain aukeratu behar dut Datu gauza horiek mota. Beraz, Excel berriz eta Google Spreadsheets, zutabe bat egin nahi baduzu, literalki duzu idatzi izena edo erabiltzaile-izena, sakatu Sartu. Agian ausart agertu egin duzu besterik gabe, argitasuna, baina hori da. Ez duzu zehaztu du zutabeen mota. Orain Google Spreadsheets edo Excel, zuk ere Datu errendatzen zehaztu ditzake. Formatu menu joan ahal izango duzu, eta zuk dolarraren bezalako ikur hori erakusteko zehaztu daiteke, koma mugikorreko balio bezala agertuko honetan. Beraz, antzeko espirituz da zer egin ari gara, baina hori benetan behartzeko joan datuen mota jakin bat izan nahi du. Orain, nahiz eta une bat duela, nahiz eta I esan Datu mota gutxi batzuk besterik ez da, ez da benetan bat Asko osoa, eta ari dira espezifikotasun maila desberdinetan. Eta alde batera utzita, zuk nahiz eta beste gauza egin dezakezu biltegiratze geometriarik bezala datu-baseko barruan. Gauzak gorde ahal izango duzu GPS koordenadak bezala eta benetan aurkitu, matematikoki, beste batzuk, hurbil diren puntuak. Baina goaz hau super simple mantentzeko eta igo hemen, guztia katea mota deiturikoak. Beraz, hemen bat-zerrenda bat da Aukera sorta osoa. CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. Eta erabatekoa mota da. Eta zoritxarrez, zertxobait paradoxikoki C, CHAR bat ez da benetan CHAR bat. Datu base batean zehazten baduzu Zure datu-mota hori CHAR da, horrek esan nahi du, hori bai, bat da CHAR, baina karakteretan bat edo gehiago da. Eta zehaztu behar duzu zenbat karakteretan nahi duzun. Beraz, zer da tipikoa Erabiltzaile izen bat luzera? Ba al dago muga bat normalean? Ikusleak: [INAUDIBLE] DAVID MALAN: 16, agian? Horrelako zerbait. , Badakizu atzealdean Egun, zortzi izan ohi da. Batzuetan da 16 batzuetan are gehiago, hori baino gehiago da. Eta beraz, horrek ez du Esan nahi CHAR bat eman dit. Horrek esan nahi zehaztu behar dut eremuan luzera du, eta orain agian 16 antzeko zerbait esan dut. Eta ez dago merkataritza bat hemen off da. Beraz, une batean ikusi dugu horrek esan nahi du inork, Erabiltzaile izen guztietan du 16 karaktere izan. Baina itxaron minutu bat, M-A-L-A-N. Hori bada Nire erabiltzaile izena ez dut bost bakarrik erabiliz, zer litzateke proposatzen database duzula Nahi beste 11 karaktere ez dagoela Erreserbatuta Nik espazio? Zer egingo zenuke? Ikusleak: [INAUDIBLE] DAVID MALAN: Bai, besterik egiteko horiek null guztiak. Egin horiek espazioak. Baina seguruenik nulua, beraz, bat backslash zero asko. Beraz, alde batetik, dugu orain egin ziurtatu dezaket hori ez 16 karaktere baino gehiago izan daiteke. Eta hori alde irauli egin da Hori name benetan luze bat banu edo nahi benetan luze zuetako batzuek bezala erabiltzaile Mutil liteke unibertsitateko horretan izan edo Yale.edu berean, ezin duzu bat. Eta hain zuzen ere, nik baduzu inoiz webgune batean erregistratuta eta esaten ari duzu oihu urratsak Pasahitza luzeegia da edo erabiltzaile-izena luzeegia da, da, Besterik gabe programatzailea, betiere delako bere datu-basearen konfigurazioa erabaki hori eremu hori izango no luzera hau baino luzeagoa izan. Ondo da, beraz, zer bada izendatzeko jarraitu dugu? Zenbat denbora behar bat tipikoa giza izena izan? Karaktere Zenbat, 16? Naiz asmatzen genezakeela gela honetan norbait aurkitu non bere lehen plus azken arabera name 16 karaktere baino gehiago ditu. Beraz, zer da hori, 17 baino hobeto? 18? 25? Bigger? 30? Ikusleak: [INAUDIBLE] DAVID MALAN: 5.000, ai ene Jainkoa. Beraz, hori da ziurrenik duina muga, esan egingo dugu. Eta hemen, mota horretako dugu epaia dei bat egin. Atsegin dut, ez dago erantzunik egokiena da hemen. Infinite ez da oso posible, Azkenean garelako Oraindik ez dugu have-- joan den memoria agortu joan. Beraz, bat egin behar dugu epaia uneren deia. Oso ohikoa izango litzateke, esate baterako, use-- eta utzi Zehaztu hemen me CHAR lehenago bezala 255 literalki zen datu-basea software honen goiko muga Duela urte. Eta, beraz, gizakiak asko besterik esango, fina. 255 muga da. Dezagun erabili gehienezko. Eta hau da, nahiko barregarria. Atsegin dut, zuk idazten ari bada norbaiten 200 plus pertsonaiak izendatzeko, Pixka bat barregarria. Baina, gogoan izan: ASCII ez da karaktere sistema bakarra. Eta, beraz, batez ere, bat ere Asiako hizkuntzak asko han pertsonaiak ezin dugu Nire gu bezala teklatuetan adierazteko teklatua, pertsonaia batzuk benetan hartu da 16 bit zortzi bit ordez. Eta, beraz, hau benetan ez da hori guztia unreasonable gehiago behar dugula espazioa bada moldatzen nahi dugu Oso US baino pertsonaiak handiagoak centric direnak joera dugun eztabaidatzeko. Beraz, muga bat behar dugu. Ez dakit onena bat zer den, baina, oro har, 255 komun bat. 25 sentitzen txikia. 16, 32 baxua sentitzen. Nuke alde err zerbait handiagoa. Baina ez dago merkataritza bat off, beti bezala. Zer da, agian, bistakoa merkataritzaren 255 karakteretan erreserbatzea off Guztion nire datu-basean izen for? Ikusleak: [INAUDIBLE] DAVID MALAN: Zer da hori? Ikusleak: [INAUDIBLE] DAVID MALAN: a memoria asko, ezta? M-A-L-A-N. Dut alferrik galtzen 250 pertsonaiak besterik nire izena gordetzeko markagailuarekin, badaezpada norbait Klase izen oso luzea du. Bidegabeko denerako dirudienez. Beraz, bihurtzen da SQL hori, database hizkuntza hau, benetan zerbait onartzen VARCHAR, edo CHAR aldakorra izeneko. Eta hau da, mota hori ere polita ematen du, ez finko bat zehazteko aukera zabalera, baizik eta, zabalera aldakorreko bat. Eta, zehatzago esanda, a eremu gehienezko zabalera. Beraz, horrek esan nahi du izen bat ezin dela izan 250 baino gehiago ez pertsonaiak, baina, zalantzarik gabe, gutxiago izan. Eta datu-basea da smart izango. Ez duzu M-A-L-A-N jarri nahi, nik bakarrik bost erabili joan, Agian sei byte bezala amaierako null pertsonaia, eta ez pasatzeko gehigarria 249 edo 250 byte alferrik. Beraz, hau behar dut dirudienez dute istorio honekin hasi. Baina ez da beti denerako. Beraz, alde batetik, erabiltzaile izen bat dut to hard 16 kodetu zehaztu, eta, agian, ez zen eskubidea deia, agian, da, baina zergatik ez erabili Dena VARCHARs? Arrazoi bat existitzen da. Zergatik ez erabili VARCHARs eremu bakoitzean bere luzera, ez duzu jakin, aldez aurretik gauza handia izan da, dirudienez, ezta? Espazio bakarrik bezainbeste erabili eman behar duzu muga hau? Ikusleak: motelagoa. DAVID MALAN: Speller? Ikusleak: Makes motelagoa? DAVID MALAN: Oh, motelagoa da. Ona, hori da ia beti, Erantzuna, Egia. Atsegin dut, zer da denerako? Leku gehiago du, bai kostatzen edo denbora gehiago kostatzen da. Beraz, kasu honetan, motelagoa izango da agian. Zergatik? Ikusleak: [INAUDIBLE] zehazteko [INAUDIBLE]. DAVID MALAN: Ongi. Beraz, nahiz eta baliteke gogoratzen PSED5, zure planteamendu jolastuz , hiztegian izanez gero esleitu memoria dinamikoki edo gorde buffer bat hazten, hori benetan izan daiteke motela. Malloc deitu behar baduzu kanpaia azpian, eta, agian, hori da, zer egiten ari da MySQL orain segur aski, hori horrela izan daiteke. Eta horrela uste baduzu Atzera PSet-- edo are Bi aste, noiz egin genuen bezala gauzak bilaketa bitarra edo bilaketa lineala are, hitz bakoitzak buruz gauza polit bat base bat edo hitz bakoitzak zutabe batean ere zehazki luzera bera izatea, nahiz eta bada karaktere horiek sorta oso bat daude hutsik, hori erabili ahal izango duzu Zure datuak on ausazko sarbidea, ezta? Baldin badakizu bakoitza hitza da 16 karaktere kanpoan, erakuslea aritmetika erabili ahal izango duzu, beraz, hitz egiten, eta guri joan 16, 32, 48, 64, eta besterik salto egin dezakezu berehala aritmetikoa erabiliz Zure datu hitz edozein. Berriz VARCHAR bat izanez gero, zer egin ordez duzu egin? [Telefono dei-] VARCHAR bat bada, zuk Ezin ausazko sarbidea erabiltzeko. Zer bilatu edo egin behar duzu? Bai? Ikusleak: [INAUDIBLE] DAVID MALAN: Begira the whole-- arrastorik bidez zerrenda osoa bitartez zer bila, ziurrenik? Nolako balio bereziko? Ikusleak: [INAUDIBLE] DAVID MALAN: Looking nulua terminators for hori mugatzen hitz bereizketa. Beraz, berriro ere, denerako, eta ez dago erantzunik egokiena da. Baina hori da, non, batez ere, denean zure erabiltzaile lortu askok izan nahi du eta zure karga zure zerbitzarietan, etorri Jende kopuru erabiliz lortzen da, horiek nontrivial erabakiak, egia esan. Beraz, utzi ahal izango dugu horiek ez horixe, baina dezagun scroll down eskubidea baino gehiago hemen. Orain, ez dago zutabeak pare bat non epaia dei bat egin nahi izan dugu. Ba al du zentzurik baimendu Erabiltzaile bat izendatzeko, erabiltzaile baten erabiltzaile-izen eta erabiltzailearen izena, nulua izan behar du? Hau da, besterik gabe, hutsik. Apur bat sentitzen zentzugabeko, beraz, ez dut Ez kaxa horiek egiaztatu egingo. Baina bihurtzen da bat ere datu-basea, esan dezakezu, Norbaitek aukeran balio hau izan daiteke. Zutabe hau ez dauka benetan ez. Orain, ez dago jaitsiera honetan menua da. Eta konturatu naiz oraindik lehen lerroan dago, beraz, orain username buruz ari naiz. Eta bihurtzen da datu base bat dela, soilak soil bat kalkulu bezala, indizeak izeneko ezaugarri indartsua dauka. Eta indizea kontatzeko modu bat da Aldez aurretik datu-basea I giza dela zuk baino azkarragoa naiz. Zer nolako kontsulten, hautatu ezagutzen dut edo txertatu edo ezabatzeko edo eguneratzeko, Nire kode hori Amaierara joan database honetan lan egiteagatik. Datu asko irakurri nahi dut. Datu asko sartu nahi dut. Etengabe nahi dut datu asko ezabatu. Naiz duten I izango da ezagutzen dut bada eremu bat asko sartzeagatik Username bezala, I preemptively esan ahal du datu-basea, zu baino gehiago ezagutzen dut, eta dekretu nahi dut Indize arlo horretan hitz egin beharra dago. Non eremu edo zutabe bat indexatzeko Horregatik, aldez aurretik datu-basea , bezalako ideia batzuk maileguan hartu behar, Aste lau eta bost eta sei CS50 eta benetan eraikitzeko bilaketa bitarra baten antzeko zerbait zuhaitz edo zerbait Oro har, B zuhaitz bat izeneko Hori ikasi nahi duzun Klase bezala CS124 batean Harvard at, algoritmoak klase bat, edo beste edozein plaza kopurua. Databaseak eta adimenduna Nork martxan pertsona irudikatu nola gordetzeko informazio mahai horretan bilaketak oroimenez, beraz, eta beste eragiketa super azkarrak dira. Ez duzu egin behar den. Ez daukazu ezartzea Bilaketa lineala edo bilaketa bitarra edo batu sort edo hautapena ordenatu, edozein. Databaseak ez da zuretzat kontatzen baduzu preemptively indizea den eremu hori egiten. Eta gehiegi ikusi ahal izango dituzu, ez da beste ezaugarri batzuk esan ahal dugu datu-basea betearazi. Zer liteke esan nahi, aukeratu dut Berezi bada menu honen bidez, intuizioz? Bai? Ikusleak: [INAUDIBLE] DAVID MALAN: Bai, Erabiltzaile izena dauka, berezia izango da. Hau al da gauza ona edo txarra datu base bat, erabiltzaileekin webgune bat? Erabiltzaile izen berezia izan behar du? Bai, seguruenik. Horrela bada zer egin eremu saioa hasteko erabiltzen dugu, ez duzu benetan pertsona izatea nahi dirudi bera edo izen berdina. Beraz, izan dezakegu database betearazi beraz Hori orain nire PHP kodea edo edozein hizkuntzatan, Nik ez dut nahi, adibidez, egiaztatu nahitaez erabiltzaile izen hau ez existitzen norbaitek erregistratu utzi nuen aurretik? Databaseak ez du pertsona bi izendatu utzi David edo Malans kasu honetan izena emateko. Eta alde batera utzita, nahiz eta hau, nahiz menu bat aukeratu duzu bakarrik ematen dizu, indize berezia inork hori da performance super azkar indexatuta, baina berezitasuna betearaziko du ere. Eta egingo da itzuli dugu zer egin Beste bi une bat besterik ez du esan nahi. Bien bitartean, joan nintzen bada Nire bigarren ilaran, eta horrek erabiltzailearen izena da, I zehaztu behar izen hori bakarra izan behar du? Ez, zalantzarik gabe, ezin duzu delako have-- ez dago bi David Malans gela honetan, segur aski. Baina beste izen bat aukeratzen badugu, ziur aski liteke daukaguna talkak. Think atzera mahaiak eta antzekoak hash. Beraz, ez dugu zalantzarik ez dute nahi Izena eremuan berezia egin behar izan du. Beraz, besterik ez gabiltza utzi joan marra, marratxoa, marra, ezer ez bezala. Eta ez dut utziko joan beste guztia bakarrik. Izan ere, eremu horietan gehienak ez dute egingo dugun zaintzeko. Eta prest da hau gorde nahi dut, Interneten Coopera bada, Ezkutatu I Save, eta oso, oso, oso astiro datu basean gorde du. Eta orain itzuli naiz horri dut interface, admittedly, Lehen begiratuan erabatekoa da. Baina hori guztia egin noa click da Hitz goiko ezkerreko erabiltzaileak gainean. Igo noa, egin klik Erabiltzaileek, eta besterik ezean, hura SQL batzuk ezarri ditu, baina Une batean, gehiago. Hemen, besterik gabe, zer egin nuen laburpena da. Eta ez du ikusten duzu kezkatu Latin eta Suediako hemen aipatu. Horiek dira, besterik gabe, lehenetsiak, ezarpenak, zeren MySQL jatorriz, edo PHP MyAdmin, bietako bat gertatu Suediera pertsona batzuk idatzi behar. Baina gure kasuan, ez du inolako garrantzirik hemen. Ondo da, beraz, zergatik da hau guztia interesgarria? Zera gertatzen da, datuak sartu ahal izango dut kodea idatziz datu base batean sartu. Eta aurrera joan nintzen eta nire fitxategia hemen ere, naiz Aurrera joan eta atsegin itxurak joan hau da, datu-base hori, kable bertan Ez dago une honetan, baina borondatea izan denean lortu arazoa dugu ezarri zazpi. Eta aurrera noa, eta joan kontsultaren izeneko funtzio bat martxan, eta horrek emango dizu dugu arazo ezarritako zazpi banaketa kodea, hori gutxienez argumentu bat hartzen du, Kate bat besterik ez da. SQL kodea katea. Beraz, Oraindik ikasteko nola buruz idatzi kontsulta-lengoaia egituratu. Lerro berri bat sartu nahi sartu nahi badut nire database delako norbait bidali Nire kode formulario bat, literalki nuke idatzi INSERT INTO erabiltzaile jarraian eremuak: izena, koma, izen, balioak, eta orain txertatu behar dut Malan, aipatu eta antzeko zerbait, unquote 'David Malan.' Eta, orain nahiz eta horiek SQL Ohituta, zergatik Komatxo erabiltzen dut katea berde honen barruan? Zergatik izan liteke hemen? Iragarki co-nahasturik bi hizkuntzetan naiz. Kontsultaren PHP funtzio bat da, baina argumentu bat hartzen du. Eta argumentu hori bera behar duela izan izeneko beste hizkuntza batean idatzitako SQL, kontsulta-lengoaia egituratu. Beraz, dena dela I Oraintxe hemen nabarmendu SQL izeneko hizkuntza hau. Beraz, zer da Komatxo batera, besterik behatu check azkar bat bezala? Segi aurrera. Kateak ari dira. Beraz, aurrekontua, unquote Malan eta aurrekontua, unquote David Malan kateak dira. Eta besterik gabe, intuizioa pentsatzen gaur egun, dakizuna C eta PHP buruz jakitea, zergatik ez hori egin dut, nik normalean kateak komatxo erabiltzen? Zergatik ez zuen nahi nuen hori egin? Bai? Ikusleak: [INAUDIBLE] DAVID MALAN: Zehazki. I dagoeneko erabiltzen ari delako Bidean komatxo Argumentu kanpo PHP funtzioa den, Besterik ez dut nahastu litzateke interpretea. Horrela ez da ezagutzen, ez horiek elkarrekin joan? Ez horiek elkarrekin joan? Ez horiek elkarrekin joan? Beraz, horren ordez tartekatu dut. Edo honen antzeko zerbait egin izan dut, backslash aurrekontua edo backslash aurrekontua. Egia, hori besterik hasten oso irakurtezina eta itsusi. Baina hori lortzea litzateke emaitza bera baita. Beraz, hori exekutatu banintz den kontsultaren orain, ikus dezagun zer gertatzen den. Gaur egun, eta, hobeto esanda, aurrera joan noa PHP kodea, exekutatu baino bertan Hor dituzu jolasteko arazo girotuta zazpi, Ordez PHP MyAdmin joan noa. Eta eskuz noa SQL fitxan joan, eta utzi gerturatzeko me interfazean. Eta ez dut ere itsatsi joan gauza idatzi dut. Eta kolore kodetze ditu Pixka bat aldatu, orain, Programa formatuen delako Gauzak apur bat ezberdina. Baina konturatu hori guztia egin dut da esan dut, erabiltzaileak txertatzeko. Zehaztu dut, gero, koma bat ere bereizita parentesi zerrenda bien Hori txertatu nahi ditut eremu, eta ondoren, literalki Nik esan balioak paren beste ondoren, eta, ondoren, bi balioak Plug-in nahi dut, eta orain neurri ona, Puntu eta koma bat jarri dut amaieran. Beraz, hau ez da C. Hau ez da PHP. Hau da, gaur egun, SQL, eta itsasteko naiz Web oinarritutako interfaze hori da sartu besterik ez dit utzi du, bezain laster egin klik I Go bezala, Kontsulta hau exekutatu datu-basean CS50 IDE barrutik martxan. Beraz, hau ona da. Oharra dagoela esan lerro bat txertatuko, joan super azkarra, 0,0054 segundutan datu horiek txertatzeko. Beraz, hori nahiko osasuntsu soinuak. Nire kontsultan birformateatzen It Niri hemen besterik ez da ikusi kolore kode bertsioa moduko batean. Baina orain, I klik egiten baduzu Arakatu, nabarituko, nahiz eta ez gehiegi asko izan arren pantailan, nire mahaia orain bi ilara ditu. Beraz, goazen aurrera eta beste bat egin zidan. Horren ordez, utzi niri SQL fitxan joan berriro. Eta oraingoan antzeko zerbait txertatu dut Rob eta bere izena Rob Bowden izango da. Bowden. Dezagun sakatu Save. Ene, baizik eta Joan. Egin klik Arakatu berriro, eta orain nabarituko bi ilaratan daukat. Beraz, hau konplexu besterik modu gehiago da Irekitze Google Spreadsheets modu eta besterik ilara batean idazten zutabe batean. Baina, zer da garrantzitsua dela orain sintaxia daukagu horrekin kodea idatzi behar da, beraz azken finean, benetan izan dugu batzuk eta hori egin. Gogoratu PHP onartzen duen aldagai super global. Zer dolarraren da barruan lehenengo saioa azpimarra PHP lortu? Begirada bat hartu genuen batean edo bi adibide sinplea. Eta PSet6, gogoratzen duzu kaixo dot PHP aldagai hau erabiltzen duten. Zer ez doa? Edo zer da? Apur bat altuagoa. Ikusleak: [INAUDIBLE] DAVID MALAN: elurra da array hazia, eta horrek bat esaten modu dotore bat besterik ez da array duten gako bikote ditu. Eta gakoak ez daude zenbakizko. Hitz edo kateak ari dira. Eta, zehazki, zer dira gako bikote horiek? Non datoz? Sentitzen dugu? Ikusleak: [INAUDIBLE] DAVID MALAN: No? Nora egin gakoa horiek balio bikoteka datoz? Esan berriro? Berriz ere? Ni naiz entzumena zerbait bakarra? [Barreak] Hori da, bai? Ikusleak: [INAUDIBLE] DAVID MALAN: Bai, dute katea datoz. Beraz, denboran atzera egiteko baduzu denean Google jokatu dugu eta nik Google.com barra dugu joan bilaketa galdera ikurra q berdinen katuak, hit banintz Sartu eta bada Google PHP ezarri ziren, PHP kodea Google idatzia dela dolarraren ikurra sarbidea izango litzateke azpimarra GET horietatik barruan izeneko gako Q eta balio bat da Katuak izeneko ondoren, erabili ahal izango dela uneko bilaketa bat egiten zuena. Beraz, hain zuzen ere, zer naiz joan ez da orain atzera nire PHP kodeari izango duzula berriro PSet7 ere gehiago ikusiko. Eta ordez plugging kodetuak hard balioak ere bertan horrek ez dirudiela Oso webgune dinamikoa, You teaser bat noa Zein da zure benetako kodea egingo lukeen. You bitan jarriko litzateke Galdera hau bezalako markatzen. Ez dakit erabiltzaile izena zein den. Ez dakit zer egin izen izango da, baina ezagutzen dut nik, ahal boki dinamikoki. Beraz, gero kodearen orain idazten ari garen Kodea Googleren zerbitzarietan exekutatzen, edo hori da, kaixo dot bada PHP, horrek PSet6 dator, Ra sartu pasatzen dut Kontsulta-funtzioa bezala printf, beste bi argudioak. GET, aurrekontua, unquote username, eta GET, aurrekontua, unquote izen. Eta, orain, konturatu zer egin egitura orokorra da hemen. Ezkerrean dut lortu eskuko deia aldean, kontsultaren izeneko funtzio hau PHP. Lehen bezala oraindik daukat Argumentu, besterik testu-kate bat. Baina testu-kate hori da SQL izeneko hizkuntza batean idatzita. Eta Egia, ez da hizkuntza handi batean. Ari gara buruz hitz bakarra joan gaur formalki da, benetan. Eta gero, arazo ezarri zazpi, ez da nahiko ezaugarri batzuk direla gaude leverage joan. Galdera ikurrak, nahiz eta, esan plug Hemen balio bat eta plug balio bestean hemen. Eta, adi, zehazten ez dut zer the quote-- madarikatua osoko aipu inguruan it Denbora honetan ospatzen da. Aipu zehazten ez dut Galdera-ikur inguruan markak, Barkatu, honen inguruan. Beraz, zer da honi buruz nice Galdera-ikur funtzioa du, PHP, onartzen Ruby joera eta Python eta beste hizkuntza batzuk, hau besterik plug esan batzuetan Hemen baloratzen eta badakizu zer? Irudikatu nahi erabili ala ez Komatxo edo komatxo. Ez kezkatu me horiekin Xehetasun intelektualki izanarren. Baina, ziurtatu zuzena da nire kodea da, azken finean, orain operatiboa eta segurua da egingo luze baino lehen esanahi bat dute. Orain, zenbat argumentuak osotara, besterik gabe, izan argi, da kontsulta funtzioa hartzea? Edonork nahi den bi baino gehiago botoa emateko? Hiru? Noski, zergatik? Zergatik hiru? Ikusleak: [INAUDIBLE] DAVID MALAN: Zehazki. Lehenengo zatian katea da. Bigarren argumentua dolarraren ikurra da azpimarra GET parentesi erabiltzaile izena. Eta hirugarren argumentu da Gauza bera, baina besterik izena. Beste era batera esanda, orain, orain web formulario bat banu Hori testu-eremuak behar izan, Erabiltzaile-izena beste bat, Bere izena bere alde bat edo, besterik gabe, bezalako webgune batean zenukete ikusi denean erregistratu webgune batzuk, agian hau atzeko amaieran kodea izaten dela benetan txertatzeko egiten orain datu-basean sartu. Orain aitzitik, goazen azkar aurrera. Demagun erabiltzaile bat da orain eta saioa hasi eta nahi duzun PHP duten ala ez egiaztatzen kodea idatzi pertsona bakarrik oraindik pertsonaren Benetan erabiltzaile batek, ezin duzu sintaxia nahiko erraz erabiltzeko. SELECT esan dezakezu, demagun izarra, non izar dena. Ez dakit zer I nahi, beraz, besterik gabe, ematen dit mahaitik zutabe guztiak erabiltzaile non esaten zaio, eta hau da, polita. Aukeratu zer da onartzen predikatu bat deitzen zaio, hau da, nahi duzuna sailkatzeko modu bat bezala. Non username berdinen aurrekontua, unquote Malan. Beraz, hemen ere, kapsulatutako Nik argudioa barruan PHP funtzioa, SQL kode lerro bat. Eta SQL kodea duten honetan denbora literalki joan bilatu aurrekontua, unquote Malan. Orain ez da hori guztia dela erabilgarria, beraz, naiz dela albo batera noa eta naiz kanpoan jarri nahi dut Brady punta honetan, eta joan eta plug-in ordez Galdera-ikur bat hemen. Beraz, argi izaten, zer Nire bigarren argudio den norbait besterik ez du, eta I oraindik bada begiratu nahi zuen, edo bada benetan erabiltzailea? Ikusleak: [INAUDIBLE] DAVID MALAN: Bai. Dolarraren ikurra azpimarra entzuten dut Talde aurrekontua, unquote erabiltzaile izena. Eta ni itzultzeko ilaratan edozein nire datu-basean Hori Malan erabiltzaile bat dute. Orain, zorionez, naiz back lortu nahi dut zero bada Malan inoiz hemen egon dira, edo inork zuen badu. Nik ez nuen atzera eskuratu Bi edo hiru edo lau. Zergatik? Ikusleak: [INAUDIBLE] DAVID MALAN: berezia da, ezta esan dut? Simple arrazoia. Erran baitut nahi da lortu berezia izango da, besterik gabe, logikoki, zuk besterik ezin dute zero edo bat Malans datu-basearen konkretu horretan. Orain ikusten bat alde batera utzita, besterik ez, beraz dituzun da, erabiltzen jarraitu dut, nahiz GET eta nahiz PSet6 bakarrik erabili Talde, zalantzarik izan dezakezu POST. Eta gogoratzen Post hori beste kontu bat da Informazio aurkezteko teknika Sasoi batean, baina ez duela erakusten URL. Pixka bat gehiago seguru zalantzarik for izenak eta pasahitzak bezalako gauzak, bertan PSet7 izango da, hain zuzen ere, inplikatzeko. Beraz, egin dezagun PHP utzi MyAdmin eta ikusi zer gertatzen den. MySQL fitxa joan noa. Eta lehenetsia horretarako balio du nabarituko PHP MyAdmin, besterik lagungarria izan saiatzeko, da erabiltzaileek non batetik izar hautatzeko. Ba, nik beti egia, beraz, hau dauka silly eraginkorra ren hautatu dena. Baina ez dut pixka bat izango da gehiago pedantekeriazko eta eskuz Idazten egindako SELECT izar erabiltzaileen. Orain, teknikoki, ahal duzun mahaiak izenean aipatu. Arraroa da dituzula, baina konturatu horiek ez dira Zure US teklatuan komatxo normal. Hau backtick deiturikoak, da bertan da, oro har, on goiko ezker zure teklatua txoko. Baina arraroa da zuk egingo duten benetan behar duten kezkatu behar, beraz, besterik ez dut ahantzi hala ere. Beraz, orain, utzi aurrera me eta hit joan. Eta zenbat errenkada behar lortuko dut Atzera aukeratzean I erabiltzaileen izar? Ikusleak: [INAUDIBLE] DAVID MALAN: errenkada kopurua, ziur. Baina honetan, zenbat Istorioa hormigoizko oraintxe? Bi, ez delako me eta ez zen Rob. Beraz, egin klik I Go bada, ikusmen dagoela ikusten dut I ahaztuak dugu atzera, hain zuzen ere, bi lerrotan. Ez dago gehiegi asko da on pantaila, baina bi ilaratan bakarrik ikusten dut. Por el contrario, berriro egiten badut hau eta egin SELECT izar erabiltzaileei, non lankide izenetik aurrekontua, unquote berdinen Malan, egin klik dut joan bada, Naiz lerro bat atzera egin nahi bakarrik joan. Eta, azkenik, ez dut honen antzeko zerbait, demagun dut ez axola buruz guztia lortzeko, hau da, mota zentzugabeak orain, zutabe bi bakarrik ez delako. Ez da hautatzen dut datu-kopuru handi bat. Demagun, aurrera joan nintzen ez hautatu izena FROM erabiltzaile, non username berdinen Malan, Zer da SQL buruz polita zintzotasunez, benetan besterik ez da hori zer esan nahi duzun egin. Nahiko laburra da, baina literalki duzu besterik esango du zer egin nahi duzun. Aukeratu erabiltzaile nondik name Erabiltzaile izen berdina Malan. Eta benetan esplizituak direla. Beraz, gaur egun, Go, zenbat hit badut ilaratan naiz back lortu nahi dut? One, besterik ez delako Malan, zorionez. Edo zero ez zuen bada han, baina bat Gehienez. Eta zenbat zutabe izango itzuli dut? Zenbat zutabe? Oraingo honetan, besterik ez dut joan bat eskuratu ez nuen delako hautatu izarra, bertan dena da. Orain besterik izena hautatzen dut, beraz, I besterik atzera zutabe bat eta errenkada bat. Eta moduko itxura hura egokian barregarria, besterik bilatzen super Hau bezalako txiki. Beraz, benetan zer gertatzen ari? SQL bat exekutatzen aukera-kontsulta erabiliz, zer ari zaren lortzean basetik itzuli Aldi baterako taula bat bezalakoa da lerro eta zutabe batekin, agian, baina hori ezikusia dela ezer ez zen benetan zuk hautatzeko. Beraz, norbait handi bat izan balitz bezala ikasle guztien kalkulu-orria batengatik erregistratuta Ikasle talde, eta, esan duzu eman dit FRESHMAN dut nor guztia Gure ikasle talde erregistratuta, zer Zure lankide batean Ikasle talde egin liteke hau da, besterik gabe ezin entregatu dute duzu kalkulu osoak. Hori hautatu izar esatea bezala da. Eta apur bat gogaikarriak izanez da freshman soilik nahi duzu. Eta, beraz, horren ordez, esan duzu bada, datu-basearen hautatu izar non urte berdinen aurrekontua, unquote freshman, Zure laguna balu bezala Ikasle talde batean literalki nabarmendu eta kopiatutako freshman bakarrik ilaretan, itsatsiko horiek Google berri bat sartu Kalkulu-orri edo Excel fitxategi bat, eta atzealdean entregatu fitxategia ondorioz bakarrik. Hori da hori gertatzen guztiak kontzeptualki hemen. Beraz, azken batean, egin ahal izango dugu Nahiko beste gauza batzuk Erabiltzaile izen gordetzeko arabera eta pasahitzak eta antzekoak. Baina, bihurtzen da, zer egin behar dugu Pixka bat hau baino ezberdinean. Ez da hori bakarrik adimendunetan Erabiltzaile izen eta pasahitz bat gorde. Norbaitek lehenago, uste dut Hemen behera, identifikazio bat proposatu. Orain identifikazio bat bezala zen Harvard NAN edo Yale NAN garbiak, baina are errazagoa izan zitekeen gure kasuan. Eta hain zuzen ere, kasu komuna zutabe beste bat izan. Eta naiz joango Animatu eta nire mahai editatu. Eta inguruan jolastu ahal izanez gero, Interfaze hau PSet7 egiteko, ikusten egiaztatu dezakezu dituzu botoi hau hemen eta gehitu eremu mahaiaren hasieran bat. Eta egin klik I Go orain bada, joan da Niri emateko inprimakiak horietakoa lehenago. NAN izeneko eremua bat sartu noa. Eta ez dut joan da zenbakizko mota bat egiteko. Sorta oso bat daukat ren numerics balioak. Besterik ez naiz INT bat aukeratu behar eta Ez tamainak desberdinak kezkatu. Nik ez dut nahi zehaztu luzera edo balio bat, bertan izan da joan delako 32 bit axola zer. Atributuak, ez genuen ikusi aurretik. Horietako edozeinetan edozein interes menu aukera une honetan? Int bat? Zer proposatzen duzu? No? Ba horiek edozein zentzurik? Bai. Bai, sinatu gabe, ezta? Oro har, eman goaz bada denek ez den zenbaki bat, eta horrek Hor istorio hau da joan, benetan I bakarrik nahi Pertsona bat zero bezalako kopuruaren dute eta bat eta bi eta hiru eta lau. Ez dut behar den landu zenbaki negatiboak dituzten. It Bidegabeko konplexutasuna dirudienez besterik. Lau milioi balio posible egin nahi dut, Ez lau milioi ahalik eta balioak, beraz, bikoiztu besterik ez dut egin Nire INT ahalmena. Alde batera utzita, erlazionatzeko nahi badituzu gisa Facebook bezalako zerbait hau, nire eguna denean moduko atzera Facebook lehen atera zen, Zer izan ziren, nire ustez, Beren MySQL datu-basea erabiliz gordetzeko Erabiltzaile bat identifier, int bat izan zen. Baina, jakina, asko da Munduko pertsona errealaren. Ez dago faltsuak Facebook asko da munduko kontuak. Eta beraz, azkenean, Facebook gainez INT baten tamaina, lau mila milioi balio. Hori dela-eta, begiratzen baduzu inguruan eta ez da webgune Hori esan dezake zer NANaren zenbakia berezia da. Eta inoiz ez duzu Erabiltzaile izen bat aukeratu badu ere Facebook, NANaren zenbakia berezia ikusiko duzu. Uste dut Profil dot PHP da Galdera-ikur ID zerbait berdin. Hau da, gaur egun handi baten antzeko zerbait INT, edo luze bat izango bada, horietatik 64-bit balio bat da edo antzeko zerbait. Beraz, nahiz eta mundu errealean egin horiek gaiak, azken finean, batzuetan axola. Eta bihurtzen da hemen, naiz bada Nire erabiltzaile ID berezia guztia emanez, Super esplizituak izan nahi dut eta Zauri egiteko eremu hau berezia. Dena dela, ez da inor gaur nomenklatura pieza gehiegi hori lehen mailako gakoa da. Zuk datubase bat diseinatzen ari bada mahai eta aldez aurretik badakizu mahai horretan zutabeetako batean dagoela eta bakarrean identifikatu behar izango ilaratan taulan, nahi duzun zehaztu eta datu-basean kontatzeko, hau da nire lehen mailako gakoa da. Bikoiztuak batzuk ere izan liteke Beste esparru batzuetan, baina hori datu-basearen kontatzen dut Nire lehen da, nire eremu garrantzitsuena, hori bermatuta berezia izan da. Orain, hau erredundantea dela dirudi. Orain dugun naiz proposatuz gehitu, Save hemen klik eginez, eremu called-- bat eta banoa Aurrera joan eta sakatu AI, zaitugu itzuli nahi une batean, gorde. Orain dela proposatzen dut Nire mahai itxura hau. INT eremu baten NAN izeneko daukat, CHAR eremu bat Username deitzen, VARCHAR eremu baten izena deitzen, baina NAN, Lehen eta beraz, berezia da, bada, zergatik hondakinak nuen besterik denbora zer sartuz eraginkorrean da bigarren bat berezia eremu ID int bat da deitzen? Username, oroitzapen, izan zen Dagoeneko berezia, esan dugu. Beraz, besterik gabe, logikoki, ez duzu behar edozein datu-base arrazoi esperientzia hau, zergatik bidez Baliteke sartu ditut INT bat nire identifikatzaile bakarra baita? Zer ari da Halako esan berriro? Ikusleak: [INAUDIBLE] DAVID MALAN: Random sarbide errazagoa da, zergatik? Ikusleak: [INAUDIBLE] DAVID MALAN: Bai, da besterik zenbakiak sartzean. Beraz, honen uste baduzu benetan taula bat da, array bat bezala, orain identifikadore berezia daukat Salto inguruan ahal izango dela. Eta hori baino hobea dela oraindik nola big INT bat berriro izango da? 32 bit edo lau byte. Zein handia da nire erabiltzaile izena izango da? Gehienez? 16 byte. Beraz, baduzu benetan zaintzearen dira Zure kodea errendimendua, Uste pset5 atzera, nahiago zenuke bilatu lau byte balio edo 16 bat egiteko byte balio du, ezta? Benetan da hori bezain erraza. Lau aldiz, askoz ere lan gisa egin behar duzu bilatu Erabiltzaile izen horiek direla eta 16 byte. Beraz, izan literalki duzu 16 byte alderatu nahi izan Ziur baietz, hau username nahi dut. Int bat, ahal duzun Berriz ez da bakarrik lau byte batera. Eta alde batera dutenentzat bezala ordenagailuaren hardware interesa, bihurtzen da horrelako zerbait doi dezakezu INT edo 32-bit zerbait balio bat Ordenagailu bat erregistro bat izeneko CPU, eta horrek esan nahi du, super da, super azkarra, nahiz eta txikiena ordenagailuaren hardware-maila. Beraz, ez abantailak besterik guztiak inguruan. Beraz, zer esan nahi du horrek? Izan ere, diseinatzen ari zaren bat datu-basearen, ia denbora guztia dira, ez dute zuk joan bakarrik arduratu dituzun datuak, baina, era berean, antzeko zerbait identifikatzaile bakarra Hau da ere joan utzi gauza batzuk egiten digu. Eta dezagun bidaia hemen arazo bat baino gehiago. Demagun erabiltzaile izan ez besterik izenak eta izenak, baina hiri bezala gauzak ere badute eta estatu eta posta kodeak, gutxienez Hemen AEBetan. Beraz, aurrera joan nahi dut eta besterik azkar esan, eman zidan hiru zutabeak gehiago Mahaiaren amaieran. Eta hau da Udala izango da, hau da Estatuko izango da, eta hau da Zip izango. Orain Hiria, zein datu mota hau izan behar du, agian? VARCHAR? Ez dakit zer egin luzeena izen hiria da. Somewhere Amerikan, ez da seguruenik hitza ridiculously luze batzuk, beraz dezagun 255 joan besterik ez, zertxobait historikoki edo arbitrarioki. Estatuko, zer egin nahi duzu? Epaiketaren deia, ezta? Zer da agian eraginkorrenak? Zenbat pertsonaiak? Agian, ahal izanez gero, bi besterik ez dugu ihes besterik egiten, bezala, MA Massachusetts, eta abar. Beraz, nik CHAR bi balio bat joan behar dut. Posta kode bat interesgarria da. Hemen gaude 02138 ere, eta, beraz, iradokitzen zer erabili behar dugu? INT bat da, ezta? INT, INT, labur? Short funtzionatuko luke. No? CHAR edo bost, baina I INT bat nahi. Zergatik bultza atzera INT batean? Didak honetatik. Zer da ergelak INT bat, nire ideia buruz? Bai. Ikusleak: Hartu memoria gehiago. DAVID MALAN: Hartu memoria gehiago. Lau byte, baina ez bazara posta kode bat proposatzeko Bost byte bezala edo norbaitek CHAR bat bezala izan zen, bertan eh bezala sentitzen da, hori ez da benetan kasu. Beno, istorio dibertigarria. Urte, zuk erabili ohi nuen Microsoft Outlook nire posta elektronikoan, Azkenean nahi nuen Gmail aldatzeko. Eta, beraz, guztia esportatu dut nire Outlook kontaktuak CSV fitxategi gisa. Komaz bereizitako balioak, bertan, besterik gabe, esan nahi dut Nire lagun izen guztiak izan eta azken Izen eta telefono zenbakiak eta posta kodeak eta hori guztia. Eta gero egin nuen ireki eman akatsa Excel, hau da, bat orriko programa hori ulertzen CSV fitxategiak ikusi dugun bezala. Baina, ondoren, gelditu behar izan dut, bezala, Komandoa edo Kontrol S puntu bat. Eta Excel garai hartan itxuraz Ezaugarri bat edozein unetan zeinaren izan da zenbaki bat ikusi, lagungarria izan nahi izan da. Eta kopuru horrekin hasi bada zero izango litzateke, besterik gabe, horiek kentzeko. Zergatik liderra behar duzu Osoko zenbaki zeroen? Zentzugabeak ari dira, matematikoki. Oraindik ez dira zentzugabeak US Postal sisteman. Beraz, urtez izan dut, Egun honetarako, I oraindik lagun izan orduan Kasu arraroak behar dut norbaiten egun hauetan jorratuko, Oraindik ere izango dut ez dudala ikusi Cambridge lagun bat, Massachusetts, 2138. Eta gogaikarriak bazaude ren programazioaren ordenatzeko saiatzen kartazalak sortzen edo besterik jot behera. Eta hori dela eta hau dela eta, Datu-mota okerra aukeratu nuen. Beraz, maite dut zure ideia. Erabili dezagun CHAR eremu bat. Bost pertsonaiak, salbu ez izkinan kasu bat da. Zuk oraindik bidali bada mail, Batzuetan posta kodeak egun hauetan, , Oraindik dute atsegin, gehi lau. Beraz, gidoi bat eta, ondoren, behar dugu lau zenbaki gehiago behar dugu. Beraz, zintzoa izan, izan liteke era askotara joaten. Oraingoz, gorde noa besterik ez da simple eta ez naiz esateko bat dela joan bost CHAR balio eta ez gara marratxo osoak gehi lau albo batera doa. Baina horiek Transakzioak mota dira. Eta pentsa dezakezu diren arazoak bera Telefono zenbakiak edo beste esparru batzuetara. Eta orain, hau da, benetan inozoak errepide bat behera joan. Demagun bi Rob eta I eta Hannah eta Maria eta [? Davo?] Eta Andy eta beste batzuk, langile guztiek bizitzeko Cambridge, Massachusetts, 02138 ere. Hau benetan ergela naizela sentitzen Nire erabiltzaile taula gehituz, hiria, herrialdea, eta tirolina. Zergatik? Ikusleak: [INAUDIBLE] DAVID MALAN: Esan berriro? Ikusleak: [INAUDIBLE] DAVID MALAN: beti ari dira elkarrekin joan, ezta? Atera bihurtzen, pentsatzeko erabiltzen ditugun Hau horrela izan zen, zehatz genuen arte AEBetako osoak bilatu bai, eta han bihurtzen duten inkoherentzia batzuk non hainbat herritan dute zip bera, hau da, bitxi. Baina, alde zeintzuk izango bagenu, orain dela 02138 beti Cambridge, Massachusetts, zergatik munduko litzateke gorde duzula Zure datu-basea Cambridge eta MA eta 02138 Niretzat eta Hannah eta Rob eta for [? Davo?] Eta bizi diren besteentzat Hemen Cambridge, da Primeran erredundantea. Koa lortu behar dugu besterik zer gordetzeko batekin? Just kodea du. Baina gero, bada besterik gordetzen dugu kodea, nahi dut, ziurrenik, Nire web for non 02138 den jakin nahi. Beraz, beste taula bat behar dut. Eta hori OK. Eta hain zuzen ere, hau da, bat diseinu diseinatzeko mahaiak prozesuak egingo duzula PSet7 egin baita eta horren bidez faktore komun datuak nahi duzun. Just like out izan dugu factoring Nik komunak kodea eta factoring egindako komuna CSS, hemen estiloak too datu-base batean, 02138 bakarra dut behar bada bakarrean norbaiten jaioterrian identifikatzeko, Ez gorde Cambridge, Mass for darn zure mahai erabiltzaile guztiek. Horren ordez, mahai bereizi bat deitzen dute Kremailerak hori behar dute zer zutabeak? Seguruenik IDa eremu bat, besterik ez, zeren printzipioak orain buruz hitz egiten ari gara. Seguruenik zip 02138 dagoen eremu batean. Eta gero, zer ziurrenik beste zutabe? Hiria eta egoera, baina bakarra izan Ilara 02138 egiteko, lerro bat 02139 egiteko, 90210 ilara bat. Eta hori da, hitzez hitz the posta kodeak guztia dakit. Beraz, gaur egun, zer egin dezakezu? Hau problematikoa da, zeren orain bi mahai lortu nuen. Beraz, nire erabiltzaileek gehienbat hemen baino gehiago daude, baina beren hiriaren egoera informazioa hemen baino. Beraz, bihurtzen da SQL, Ez benetan modu bat informazio batzeko, eta hau ikusiko duzu pset ere. Baina bihurtzen da ahal duzun honen antzeko zerbait egin. SELECT izar erabiltzaile batzuen, apunta kremailerak ON erabiltzaile dot zip berdinen kremailerak dot zip. Zein wordy txiki bat da, admittedly, baina hori besterik ez hautatu dena esan nahi du Nire erabiltzaile taula hartzeko prozesua eta nire kremailerak mahaia. Elkartu horiek bat on eremu dute zutabean dute. Beraz, literalki zerbait egiten Hau atsegin, eta iezadazu Aldi baterako taula berria hori da zabalagoa, handiagoa da, duela guztia Horietako bi zutabeak. Eta hori, nahiko besterik gabe, izango litzateke honen antzeko zerbait egiten sintaxia. Beraz, ez da hau, aurretik, baina ez da joan diseinu bestelako erabakiak izan behar dituzu , egiteko indizeak ez bakarrik dute baina, aldi berean erronka topo. Izan ere, ez da erronka bat da Edozein datu-basearen diseinu Horren bidez, batzuetan, bi pertsona liteke nahi Datu-basean bi ilara bereko sartzeko mahaia. Beraz, hau da, zerbait ez dugu PSet7 ere topo baita. Baina batean nuke begiratu pentsatu nuen eraso hori posible SQL ere. Zer dira batzuk sor daitezkeen arazoak? Beraz, topo egingo duzu hau PSet7 ere. Eta esango dugu zaie zer egin kodeketa arazo honen konponbidea da. Baina, maila class altuagoa hartzen badira, batez ere, sistema eragileak, topo joan zaren atomicity arazo bat, egiten saiatzen arazoa Hainbat gauza guztiak aldi berean etenik gabe. Eta hau aurkeztu nuen pentsatu nuen PSet7 ideia metafora batekin Neure buruari ikasi dudala Margo ere Seltz en CS164 sistema eragileak Duela class urte. Demagun gela hauetako bat duzula Zure gela gela edo etxe batean hozkailuak, eta esnea benetako joera bat behar duzu. Eta, beraz, etxera klaseak bertatik egun batean, hozkailua ireki duzu. Oh, madarikatua da. Ez dago hozkailuan esnea ez da. Beraz, hozkailuan ixten duzunean, atea blokeatu, blokeatu zure gela, Korner paseatu CVS den, lerro lortu, eta hasteko egiaztapena esne batengatik. Eta nik, berriz, bat hartu du, horiek madarikatua auto checkout delako kontagailuen hartu betiko erabiltzen jarraitzeko. Beraz, bere aldetik, zure gelakide etxera. He edo benetan gustuko zuen esnea baita. Etortzen gela gelan sartu dute, hozkailua ireki, ai, darn. Ez dago esne gehiago ez da. Beraz, zuen, halaber, izkinan inguruan doa. Baina orain, ez dago geroztik bi like edo hurbileko hiru edo lau CVSes, gertatuko dute bat joan plazan zenbaitzuk. Minutu eta, beraz, orain gutxi, a geroago, biak duzun etxeratu eta ugh, arazo txarrena izan dute. Orain gehiegi esnea behar duzu Honez gazi joan behar duelako. Eta esnea nahi duzu, baina zuk ez benetan gustatzen esnea. Beraz, gaur egun, hau izan zen garestia Akats biak duzun delako oinarritutako erabaki bat hartu aldagai batzuen egoera hori prozesua hasi zen ari you by aldatu, esnea lortzeko ari sortzailea. Beraz, zer da, beharbada, giza a Arazo horri irtenbidea? Ikusleak: [INAUDIBLE] DAVID MALAN: ohar bat utzi, ezta? Beti utzi ohar bat, ez bazaude ikuskizun hori ezagutzeko. Bai, ez da gurekin bi dira. Beraz, beti ohar bat utzi, edo literalki blokeatu hozkailuan giltzarrapo mota batzuk edo Horrelako gora zerbait. Baina hori ez da benetan izan joan datu-basearen diseinu arazo nagusia, batez ere, baliteke duzu Nabigatzaile baino gehiago, hainbat ordenagailu eramangarriak, hainbat erabiltzaile guztiei nahian Informazio eguneratu aldi berean. Informazio bereziki sentikorra finantza informazioa bezala, Stock merkataritza batekin zeinaren Zu bezalako webgune eraikitzeko zaizu, zer dirua zenbat egiaztatu nahi baduzu duzu eta, ondoren, nahikoa izan beharko duzu, Erosi stock batzuk? Baina zer gertatzen da beste norbaitek nor joint kontu bat du zurekin aldi berean, dudarik stock batzuk erosi? Beraz, egiaztapena berak da saldoa, bai atzera bera Erantzuna, ez esnea ez da. Edo biok atzera erantzuna, 100 $ kontuan izan. Biak duzun saiatu erabakia enpresaren stock batzuk kuota bat erosteko. Eta orain, zer gertatzen da? Bi akzio duzu? No akzioak duzu? Horrelako arazoak sor daitezke. Beraz, hori topo egingo dugu. SQL injekzio erasoak, zorionez, Zerbait lagunduko zaitugu dira, baina horiek ez dira beldurgarriarekin egun hauetan ohikoa oraindik. Beraz, honen adibide bat besterik ez da. Egin dut erreklamazioak ez dagoela Harvard PIN sistema da eraso hau, bereziki zaurgarria. Saiatu gara. Baina, badakizu dugun Hau bezalako eremu bat dute. Eta Yale NAN Garbia antzeko bat du pantaila ari da egun hauetan. Eta bihurtzen da, agian du PIN sistema da PHP ezarri. Eta hori were-- bada egin dute egun ez da itxura hau kodea izan dezake. Bi aldagai dute. Give me-izena eta pasahitza Post super aldagai global batetik hitz egiten dugun lehenago. Agian Harvard kontsultaren bat du SELECT izar erabiltzaile batzuen antzera non username berdinen eta pasahitza berdinen. Eta konturatu besterik naizela plugging erabiliz giltza kizkur beste batetik idazkera Egun, horrek esan nahi du, besterik gabe, balio bat konektatu hemen. Ez dut erabiliz Galdera-ikur teknika. Ez dut inolako bigarren dute edo hirugarren argumentuak. Besterik literalki naiz katea neure burua eraikitzeko. Arazoa, ordea, hori da Norbaitek scroob bat nahi izanez gero, bertan film bat aipatzen da, erregistroak honen antzeko zerbait, eta kendu Nik puntuak Ohi duten estaltzeko sortu pasahitzak, zuen da zer bada bereziki maltzur eta bere pasahitza agian 12345, "Spaceballs" izeneko filma per baina zuen kritikoan mota bat barra arrunta bost ondoren, orduan, hitzez hitz edo espazioan, eta, ondoren, aurrekontua, Bat unquote berdin aurrekontua bat, Baina konturatu zuen kendutako zer? He kendutako aurrekontua du eskuin hegaletik eta zuen kendutako ezkerreko aurrekontua du. Bada delako erasotzaile honetan scroob en presuntzioa da jendea nork idatzi duten PHP kodea ez ziren hain distiratsua, agian, besterik ez dute bakar batzuk Interpolazio inguruan aipatzen giltzen aldagai baten? Eta beraz, agian, mota izan zuen euren pentsamendu osatzeko beraientzat, baina modu batean hori joan hacked PIN sisteman sartu zion utzi. Beste era batera esanda, eman dezagun hori Kodea da eta orain zer scroob mekanografiatuak plug dugu. Eta gorria da, txarra delako. Eta azpiko testua da idatzi sartu zuen, scroob Harvard zerbitzari engainatu liteke SQL kontsulta bat eraikitzeko sartu katea itxura hau. Pasahitza berdinen 12345 edo berdin bat. Emaitza horietatik, logikoki, da hori scroob saioa izango bere pasahitza baldin bada ere 12345 edo bat bada berdinen bat, eta hori egia da, noski, beti, horrek esan nahi du scroob beti lortzen. Eta beraz, konpontzen modu honek, kasu asko bezala, abantailari eusteko idatzi litzateke. Antzeko zerbait da, gure Benetako kontsulta funtzioa, eta horrek PSet7, non plug dugun ikusi ahal izango dituzu Galdera antzeko zerbait markatzen hemen. Eta edertasuna kontsulta funtzioa garela eman da duzu horien aurka defendatzen da SQL injekzio erasoak deiturikoak, non Norbait zure kodea tricking sartu bere kabuz SQL kodea injektatzen. Kontsultaren zer funtzioa delako Egia esan, ez dizu emango dugu, Galdera-ikur sintaxia erabiltzen baduzu eta bigarren eta hirugarren argudio bat hemen, da zer gehitu behar da input erabiltzaileak emandako? Backslash horiek aipatzen. Beraz, edozein potentzialki ihes egiten pertsonaiak arriskutsua. Badirudi orain bitxi, baina ez da ahulagoak Hala ez delako logika jada aldatu pasahitza osoa duten dagoelako orain barra arrunta ez da hori, hain zuzen ere, scroob pasahitza. Beraz, ez da txiste batzuk hau urteetan zehar buruz. Beraz, hau izan da, argazki bat hartu aparkaleku batean geek batzuk Horren bidez, zenbait hiri duten jakin dezakezu eta estatu zure lizentzia eskaneatu saiatu plaka duzu edo txartelaren fakturatzen duzu bidez joan behar izanez gero, egin gabe bezala, E-Z mendatean gauza. Beraz, pertsona hau ustezko agian hori jendea E-Z mendatean sisteman idazten ez ziren hain distiratsua, eta, agian dute besterik kateatu elkarrekin kate bat, berak, beraz, ez nuke maltzurki ez bakarrik beren pentsamendu osatzeko, baina, egia esan, komando txarra exekutatu, bertan dugu oraindik ez aipatu, baina ziurrenik dezakezu. Gain, ezabatzeko eta txertatu eta eguneratzea eta hautatu, ez da ere beherakada izeneko gako-hitza, horrek literalki guztia ezabatzen ditu datu-basea, eta horrek da bereziki txarra. Handiagotzeko izango dugu hau bada Pixka bat gogorra ikusi da. Hau da, gaur egun, cartoon ospetsua da hori da wonderfully clever orain eta ulergarria. [Barreak] Bai, cool. Kind of out geeking. Beraz, hauek dira, bada, SQL injekzio erasoak. Eta hain erraz erabiliz saihesteko ari dira Eskuineko kodea edo eskuineko liburutegiak. Eta PSet7 ikusiko dituzu, hori da horregatik zuk kontsulta funtzioa emango dugu. Beraz, teasers pare bat pentsatu genuen genuke Hemen ematen dizute, gure minutu geratzen elkarrekin. Beraz, gogoratu ahala aste zero, dugu Bi argi bonbilla horiek sartu bertan dira politak, besterik ez delako Nahiko ari dira, eta koloretsua, baina zerbait onartzen dutelako API baten eskaera bat deitzen, Programetarako lengoaia Eta CS50 beraz, orain arte, dugu gehienbat GET bideratuta eta POST, baina bihurtzen da beste HTTP PUT bezalako aditzak ez da. Eta hain zuzen ere, hori izan zen aste zero diapositiba bat Horren bidez, kodea idatzi baduzu bidaltzen la PSet6 HTTP eskaera bat dela honelako itxura testu zatia honekin beheko aldean, hau da JSON deitzen denean, edo JavaScript egingo dugun hurrengo astean buruz hitz egin, piztu dezakezu edo desaktibatu edo aldaketa horiek bezalako argiak kolorea. Beraz CS50, gainera, zenbait gain badu bonbilak horiek hemen New Haven of maileguan nahi izanez gero horiek azken proiektu, Microsoft batzuk Bandak, bertan bezalakoak dira erlojuak eskumuturra inguruan jarrita dagoela era berean, hori da, beraz, API bat behar duzu Zure software propioa idatzi daiteke beraientzat. Kontu batekin izan gara Apple IOS kode orain Hori Apple Watch bat edo baldin baduzu iPhone edo iPad edo iPod bat, kodea idatzi ahal izango duzu, Egia esan, horiek zeharkatzen du. Sorta oso bat daukagu ren Arduinos dira, gutxi ordenagailuak Txikietako kasu egin gabe, funtsean, USB bidez konektatu ahal izango duzu, normalean zure Mac edo PC egin den, idatzi duten fisiko horiek exekutatzen kodea Hori askotan izan sentsoreak horien gainean gailuak beraz, mundu errealean elkarreragin dezakezu. Sorta oso bat daukagu Jauzi Mugimenduan gailuak, diren USB Macs gailuak eta PC, hemen eta berriro New Haven. Eta konektatzen bazara, zure Mac, Egia esan, zure ordenagailua kontrola dezakezu software helbidera idatziz infragorria habe bidez dela, zifrak non zure esku giza dira, nahiz eta zure teklatua ukitu gabe. Azkar bat partekatzen genuen pentsatu genuen honetan antzematen, esate baterako. [Musika jotzen] Beraz, oso bat izango dugu Gauza horiek sorta, gehiegi, izeneko Myo arm banda bertan zure forearm baino gehiago jarri eta, ondoren, benetako kontrola dezakezu Mundu edo hau bezalako mundu birtualean. [Musika jotzen] Edo, gainera, ez dugu Google batzuk Kartoia, hau da, literalki, bezala, kartoizko kutxa bat jarri ahal izango duzu zure aurpegia, baina zure telefono diapositiba sartu beraz beira jarri duzu zure Telefono benetan zure begiak itxi. Eta Google kartoia da Nahiko merkea $ 10 edo $ 20 etan. Eta lente txikia du apur shift off Zure giza pantailan irudia Begiak duzu sakontasun sentsazioa emateko beraz, benetan hori 3D bat duzu zure aurrean ingurumena. Horrez gain, bat Samsung Gear batzuk, eta horrek garestiagoa honen bertsio bat da, baina hori ezin da era berean, adierazi du lerratu Android telefono eta ilusioa eman duzu of-- edo esperientzia eman errealitate birtuala. Eta gure azken bi minututan, litzaidake Horretarako saiatzen gara pentsatu genuen. Zer Colton ditu I proiektatzeko bada Hemen zure gosea whet, utzi aurrera me eta bota pantaila handira hemen eman. Argiak hiltzen utzi. Colton, ez aurretik joan nahi duzun eta zure zelula jarri une batez eta goazen baino gehiago izateko etapa erdian? Eta ez den project-- nahi duzu hau da Colton zer ikusten. Orain, WiFi hemen dago Ez hain gailu horretarako indartsu hori da super sinesgarria, baina Colton da hitzez hitz futurista leku magiko batean. Irudi bat bakarrik ikusten du. Bere ezkerreko eta eskuineko begia ikusten ari zara bere garunean direla elkarrekin stitching hiru dimentsioko ingurumena bere aurpegia. Besterik ez da geratuko hautatutako menuko aukera bat hemen. Eta, beraz, berriro ere, nik entzungailu honek zeramatzan Samsung telefono baten gainean batera hori da haririk gure coaut den proiektatuz. Orain ari Marte, pentsatzen dut? COLTON: Baietz uste dut. Ez nago ziur [INAUDIBLE]. [Barreak] DAVID MALAN: Turns Mars menu horiek ditu. COLTON: [INAUDIBLE] cool batzuk lekuak zaie joan nahi badugu DAVID MALAN: Nora joan nahi dugu? COLTON: [INAUDIBLE] DAVID MALAN: Eta ikus dezagun non Colton gurekin ari da orain. COLTON: [INAUDIBLE] DAVID MALAN: Beraz, ez da hainbeste Leku desberdinetan zeuk hartu ahal izango duzu. Ez da, FAPIs bertan bidez egin ahal izango duzu jokoak edo interakzio idatzi duten korrika, azken finean, telefonoz. Beraz, benetan duzu besterik a telefono mugikorraz idazten. Baina software-ari esker eta gaitasun grafiko, orain Colton honetan da Txikietako etxetxo. Eta arriskua at geure erabatekoa, Colton eta itsasten dut inguru berriz, klase amaieran hemen gaur etorri eta jolastu nahi izanez gero. Eta horiek ekarri dugu Atzera datorren astean baita. Gehiagorik gabe, ado Hori da gaur egun. Datorren astetik Ikusiko dugu. [MUSIKA - ragga bikiak, "Bad Man"]