[Ag seinm ceoil] DOUG LLOYD: In ár físeáin ar ábhair forbairt gréasáin, againn atá luaite ar an coincheap de bunachar sonraí cúpla uair, ceart? Mar sin, bunachar sonraí go bhfuil tú eolas maidir dócha leis ó rá ag baint úsáide as Microsoft Excel nó Google Scarbhileoga. Tá sé i ndáiríre ach eagraithe sraith de táblaí, sraitheanna, agus colúin. Agus is é bunachar sonraí ina ár siopaí gréasáin faisnéis atá tábhachtach le haghaidh ár suíomh gréasáin a bheith ag obair i gceart. Arís, is sampla i ndáiríre coitianta anseo Tá ainmneacha úsáideoirí agus focal faire a stóráil i mbunachar sonraí, ionas gur nuair a a logs úsáideora isteach ar ár suíomh gréasáin, Is féidir an bunachar sonraí a cheistiú a fheiceáil más ann úsáideoir sa bhunachar sonraí. Agus má tá siad, seiceáil go tá a n-focal faire ceart. Agus má tá a n-focal faire ceart, ansin is féidir linn a thabhairt dóibh is cuma cén leathanach tá siad ag iarraidh. Mar sin, tá tú is dócha, arís, ar an eolas leis an smaoineamh seo ó Excel nó Google Scarbhileoga. Ní mór dúinn bunachair sonraí, táblaí, sraitheanna, agus colúin. Agus sin i ndáiríre saghas den tacar bunúsach de briseadh síos ordlathach anseo. Mar sin, tá anseo scarbhileog Excel. Agus má tá tú ag oscailt riamh seo nó clár eile den chineál céanna tá a fhios agat go bhfuil na anseo rows-- 1, 2, 3, 4, 5, 6, 7. Tá na colúin. B'fhéidir síos anseo, cé go is féidir leat bain úsáid as an ghné seo terribly much-- Feicfidh mé súmáil isteach in-- ní mór dúinn an smaoineamh seo de leathán. Mar sin, b'fhéidir na bileoga, más rud é Malartach mé ar ais agus amach, Tá táblaí éagsúla a ann i mo mbunachar sonraí. Agus má leanaimid ar aghaidh ar an sampla go léir an mbealach seo, an t-ainm bhunachar sonraí seo Book 1. B'fhéidir go bhfuil mé Leabhar 2 agus Leabhar 3. Dá bhrí sin tá gach comhad Excel a bunachar sonraí, tá gach bileog tábla, agus taobh istigh de gach tábla Tá mé an smaoineamh seo de sraitheanna agus colúin. Mar sin, conas is féidir liom obair leis an mbunachar sonraí seo? Conas is féidir liom faisnéis a fháil ó é a fháil? Bhuel níl teanga ar a dtugtar SQL-- a bhfuil mé de ghnáth ach glaoch ar Sequel-- agus atá sé do na Teanga Struchtúrtha Iarratas. Agus tá sé ina teanga cláir, ach tá sé ina cláir cothrom teoranta teanga. Níl sé go leor cosúil le daoine eile go bhfuil muid ag obair leis. Ach an aidhm atá leis an teanga cláir Is chun ceist bunachar sonraí, go faisnéis a iarraidh ar bhunachar sonraí, faisnéis i aimsiú bunachar sonraí, agus mar sin de. Againn chomh maith, i CS50-- agus tá sé an- ardán coiteann, tá sé ar a dtugtar MySQL. Sin an méid a úsáid againn sa chúrsa. Tá sé an foinse oscailte ardán go mbunaíonn a database-- sin ar a dtugtar choibhneasta bunachar sonraí, go héifeachtach. Ní mór dúinn a fháil i bhfad ró-go mion ar cad is bunachar sonraí coibhneasta. Ach tá an teanga SQL an-AdeptGenericName ag obair le MySQL agus eile den chineál céanna stíleanna na bunachair sonraí coibhneasta. Agus go leor suiteálacha de MySQL teacht le rud éigin ar a dtugtar phpMyAdmin, a Is úsáideora grafacha interface-- a GUI-- go a dhéanann sé beagán níos mó cairdiúil a fhorghníomhú úsáideoir ceisteanna bunachar sonraí, toisc nach bhfuil bunachair úsáid ach ag ríomhchláraitheoirí chun cinn, ceart? Uaireanta tá na gnólachtaí beaga, agus ní féidir dóibh a ar cíos le foireann de ríomhchláraitheoirí, ach is gá iad fós a stóráil faisnéis i mbunachar sonraí. Rud éigin cosúil le phpMyAdmin a dhéanann sé an-éasca do dhuine a bhfuil sé ag riamh cláraithe roimh a phiocadh suas agus a bheith eolach ar an gcaoi a bheith ag obair le bunachar sonraí. Is é an fhadhb, phpMyAdmin, cé go tá sé ina uirlis iontach le haghaidh foghlama faoi ​​bunachair shonraí, tá sé de láimh. Tá tú ag dul a bheith acu chun logáil isteach é agus orduithe agus cineál fhorghníomhú rudaí i láimh. Agus mar is eol dúinn ónár sampla ar cláir gréasáin PHP, a bhfuil a dhéanamh de láimh rudaí ar ár suíomh gréasáin, más mian linn a dinimiciúil, sofhreagrach gníomhach suíomh gréasáin, b'fhéidir nach bhfuil an cur chuige is fearr. Ba mhaith linn buíochas a fháil ar bhealach chun b'fhéidir uathoibriú seo ar bhealach. Agus beidh SQL ár gcumas é seo a dhéanamh. Mar sin, nuair táimid ag dul go dtí tosú ag obair le SQL, ní mór dúinn an chéad a bheith acu bunachar sonraí a bheith ag obair leis. Ag cruthú bunachar sonraí a bhfuil rud éigin agat is dócha a dhéanamh i phpMyAdmin, mar gheall ar Beidh ort a dhéanamh ach é a dhéanamh uair amháin, agus an error chun déanamh amhlaidh tá a lán níos simplí. Tá sé i bhfad níos éasca é a dhéanamh i comhéadan úsáideora grafach ná mar a chlóscríobh amach mar a dtoil. Is féidir leis an ordú a fháil cumbersome beag. Ar an gcaoi chéanna, a chruthú tábla is féidir a fháil go leor le beagán cumbersome chomh maith. Agus mar sin rudaí cosúil le bunachar sonraí a chruthú agus a chruthú tábla, a bhfuil tú ach is dócha ag dul a dhéanamh once-- uair amháin in aghaidh an tábla, uair amháin in aghaidh database-- tá sé ceart go leor a dhéanamh go bhfuil i comhéadan grafach. Sa phróiseas a chruthú bord is freisin a shonrú ar gach ceann de na colúin a bheidh sa tábla sin. Cén saghas eolais a dhéanamh ba mhaith leat a stóráil sa tábla? B'fhéidir ainm úsáideora agus dáta breithe, Focal faire, uimhir aitheantais úsáideora, agus b'fhéidir cathrach agus an stát, ceart? Agus le haghaidh gach uair ba mhaith linn a chur ar úsáideoir leis an mbunachar sonraí, ba mhaith linn a fháil ar fad sé de na píosaí eolais. Agus a dhéanann muid go bhfuil ag cur sraitheanna leis an tábla. Mar sin, táimid a chruthú ar dtús bunachar sonraí, ansin a chruthú dúinn tábla. Mar chuid de a chruthú tábla, iarrtar orainn a shonrú ar gach colún a ba mhaith linn buíochas sa tábla seo. Agus ansin mar a thosaíonn muid a chur faisnéis ar an mbunachar sonraí agus ceist an bunachar sonraí níos generally-- ní a chur leis go díreach, ach gach rud eile a chuirimid ar do-- beidh orainn a bheith ag déileáil le sraitheanna den tábla, atá ar cheann faisnéis úsáideora ó an leagan iomlán. Mar sin, tá gach colún SQL ann a bhfuil sonraí de chineál sonraí ar leith. Mar sin, táimid ag saghas dhíchur seo smaoineamh cineálacha sonraí i PHP, ach tá siad ar ais anseo i SQL. Agus níl a lán de na cineálacha sonraí. Seo ach 20 acu, ach nach bhfuil sé fiú gach ceann acu. Mar sin, ní mór dúinn smaointe cosúil le INTs-- Integers-- is dócha a fhios againn gur féidir le colún seo slánuimhreacha a shealbhú. Agus tá éagsúlachtaí thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. B'fhéidir nach mór dúinn i gcónaí ceithre bites. B'fhéidir is gá dúinn ocht bytes, agus mar sin againn Is féidir úsáid a bhaint as na héagsúlachtaí ar slánuimhreacha a bheith le beagán níos mó spáis éifeachtach. Is féidir linn a dhéanamh ar líon na deachúil, táimid ag is féidir a dhéanamh ar snámh uimhreacha pointe. Is iad seo go leor den chineál céanna. Tá roinnt difríochtaí, agus más rud é a bheadh ​​agat buíochas a breathnú suas ar an Saghas SQL treoir, tú Is féidir a fheiceáil cad é an beag Tá difríochtaí eatarthu. B'fhéidir ba mhaith linn a stóráil faisnéis maidir le dáta agus am. B'fhéidir tá muid ag súil a choinneáil ar nuair a chuaigh an t-úsáideoir ar ár suíomh gréasáin, agus mar sin b'fhéidir gur mhaith linn a go bhfuil colún go am dáta nó le stampa ama a Léiríonn an t-úsáideoir iarbhír nuair sínithe suas. Is féidir linn a céimseataí agus linestrings dhéanamh. Tá sé seo i ndáiríre deas fionnuar. D'fhéadfadh muid a mhapáil amach limistéar geografach ag baint úsáide as Comhordaíonn GIS a bhreacadh amach limistéar. Mar sin, is féidir a stóráil i ndáiríre go saghas eolais i gcolún SQL. Is TEXT ach Blobaí ollmhór de téacs, b'fhéidir. Tá ENUMs cineál suimiúil. Ann siad iarbhír i C. Ní Déanann muid labhairt fúthu toisc nach bhfuil siad terribly a úsáidtear go coitianta, ar a laghad CS50. Ach tá sé cineál sonraí áirithe rangaithe, a atá in ann a bhfuil luachanna teoranta. Bheadh ​​Sampla gur maith anseo a chruthú Áirithe i gcás na seacht Tá luachanna féideartha Dé Domhnaigh, Dé Luain, Dé Máirt, Céadaoin, Déardaoin, Dé hAoine, Dé Sathairn, ceart? Go Lá cineál sonraí de Ní seachtain ann, ach d'fhéadfadh muid a chruthú Cineál sonraí áirithe den sórt sin gur féidir colún a shealbhú ach riamh ar cheann de na seacht luachanna féideartha. Táimid tar éis go léir áirithe de na luachanna is féidir. Ansin ní mór dúinn CHAR agus varchar, agus tá mé dath na glas toisc go bhfuil againn i ndáiríre ag dul a ghlacadh ar an dara chun labhairt faoi an difríocht idir an dá rud. Mar sin CHAR, murab ionann agus C i gcás ina Bhí CHAR ina charachtar aonarach, i SQL Tagraíonn le CHAR a teaghrán fad seasta. Agus nuair a chruthú dúinn an colún, againn i ndáiríre Is féidir a shonrú ar an fad na sreinge. Mar sin, sa sampla seo, d'fhéadfadh muid a rá CHAR (10). Ciallaíonn sé sin go gach gné den cholún sin Beidh comhdhéanta de 10 bytes faisnéise. Uimh níos mó, nach lú. Mar sin má déanaimid ár ndícheall agus a chur i 15 giotán nó dúil 15 carachtar nó luach isteach sa cholún seo, táimid fháil ach an chéad 10. Má chuir muid sa dá luach carachtar fada, táimid ag dul go bhfuil an dá carachtair, agus ansin ocht bites null. Ní fheicfidh muid a bheith níos éifeachtaí ná sin. Tá varchar cineál cosúil ár coincheap de shraith go bhfuil muid ar an eolas le ó C nó ó PHP. Tá sé ina teaghrán ilfhaid. Agus nuair a chruthú duit colún seo, tú díreach sonraigh na faid is mó is féidir. Mar sin, b'fhéidir 99, nó go coitianta 255. Bheadh ​​sé sin an fad is mó. Agus mar sin má bhí muid a stóráil 15 teaghrán carachtar, ba mhaith linn a úsáid 15 bytes, b'fhéidir 16 bytes don Críochnaitheoir null. Má bhí muid a stóráil ar trí teaghrán carachtar, ba mhaith linn a úsáid trí nó ceithre bytes. Ach ní ba mhaith linn a bhaint as an iomlán 99. Mar sin, cén fáth go mbeadh muid araon? Bhuel, más gá dúinn a figiúr amach conas Tá rud éigin fada le varchar, ní mór dúinn a de chineál ar iterate trasna air díreach cosúil rinne muid i C agus figiúr amach cén áit a stopann sé. De bharr an méid má tá a fhios againn go bhfuil gach rud Is sa cholún seo 10 bytes, b'fhéidir tá a fhios againn go bhfuil an fhaisnéis sin, is féidir linn a léim 10 bytes, 10 bytes, 10 bytes, 10 bytes, agus i gcónaí teacht ar an ag tosú na sreinge. Mar sin, is féidir linn a bhfuil roinnt spás amú le CHAR, ach b'fhéidir níl a thrádáil uaire de a bhfuil luas níos fearr i navigating an mbunachar sonraí. Ach b'fhéidir ba mhaith linn an solúbthacht de varchar in ionad having-- Más rud é ár CHAR Ba 255, ach an chuid is mó dár n-úsáideoirí raibh ach ionchur trí nó ceithre bytes fiú na faisnéise nó trí nó ceithre carachtair fiú faisnéise. Ach bhí roinnt úsáideoirí ag baint úsáide as an 255 ar fad, b'fhéidir Bheadh ​​varchar níos oiriúnaí ann. Tá sé saghas de thrádáil amach, agus i gcoitinne chun críocha CS50, ní gá duit a bheith buartha iomarca faoi cé acu a úsáideann tú CAR nó varchar. Ach ar fud an domhain fíor, na rudaí seo dhéanamh cuma mar gheall ar gach ceann de na colúin glacadh le spás fisiceach iarbhír. Agus spás fisiceach, sa saol fíor a thagann, ar phréimh. Mar sin, chomaoin amháin eile nuair tú ag tógáil tábla Is a phiocadh colún amháin a bheith cad atá ar a dtugtar eochair bunscoile. Agus is é eochair bunscoile colún i gcás ina bhfuil gach luach amháin ar leith. Agus Ciallaíonn sé sin go féidir leat go héasca Pioc amach sraith aonair díreach trí bhreathnú ag an eochair príomhúil sin as a chéile. Mar sin, mar shampla, tá tú go ginearálta, le húsáideoirí, nach mian beirt úsáideoirí a bhfuil an uimhir aitheantais úsáideora céanna. Agus mar sin b'fhéidir go bhfuil tú go leor eolais, agus b'fhéidir gur féidir dhá úsáideoirí tá an name-- céanna tá tú John Smith agus John Smith. Ní sin gá gur fadhb, toisc go bhfuil daoine éagsúla sa domhan ainmnithe John Smith. Ach ní mór dúinn ach úsáideoir amháin Uimhir Aitheantais 10, úsáideoir amháin uimhir 11, 12, 13 ID. Ní chuirimid bhfuil dhá úsáideoirí leis an líon céanna, agus mar sin b'fhéidir uimhreacha aitheantais úsáideora a bheadh ​​ina eochair maith bunscoile. Ní chuirimid bhfuil aon dúbailt, agus is féidir linn anois uathúil gach sraith aonair a aithint ach trí bhreathnú ar cholún. Roghnú eochracha bunscoile féidir i ndáiríre dhéanamh oibríochtaí tábla ina dhiaidh sin i bhfad níos éasca mar is féidir leat a ghiaráil ar an bhfíric go sraitheanna áirithe mbeidh a bheith ar leith, nó colún áirithe de do bhunachar sonraí nó tábla Beidh a bheith ar leith a phiocadh sraitheanna ar leith amach. Is féidir leat a bheith chomh maith le comh bunscoile eochair, a bhféadfaidh tú teacht ar ócáid a úsáid, a bhfuil ach teaglaim de dhá cholún a ráthaithe a bheith ar leith. Mar sin, b'fhéidir go bhfuil ceann agat colún sin Mar agus Bs, colún amháin go bhfuil ceann amháin, dhá, agus trí, ach beidh tú ach riamh go mbeadh A1 amháin, aonair A2, agus mar sin de agus mar sin de. Ach d'fhéadfá a bheith B2, ar C2, nó A1, A2, A3, A4. Mar sin, bheadh ​​agat il Mar, il Bs, na cinn il, mbeirteanna il, ach is féidir leat riamh a bheith acu ach A1 amháin, B2, C3, agus mar sin de. Mar sin, mar a dúirt mé, tá SQL a teanga cláir, ach tá sé stór focal cothrom teoranta. Níl sé go leor mar expansive is C agus PHP agus teangacha eile go labhairt linn ar an gcúrsa. Tá sé mar níos verbose teanga ná an méid tá muid ag dul chun labhairt faoi seo físeán, mar gheall ar sa físeán seo táimid ag dul chun labhairt faoi ceithre oibríochtaí go ndéanaimid Is féidir a dhéanamh ar an tábla. Tá níos mó ná seo. Is féidir linn a dhéanamh níos mó ná sin, ach le haghaidh ár gcríoch sin, táimid ag dul go ginearálta a bheith ag baint úsáide ach ceithre isteach operations--, Roghnaigh, cothrom le dáta, agus a scriosadh. Agus is féidir leat is dócha buille faoi thuairim intuitively cad gach ceithre cinn de na rudaí a dhéanamh. Ach beidh muid ag dul isteach i beagán sonraí ar gach ceann. Mar sin, chun críocha an físeán, a ligean ar glacadh ní mór dúinn an méid seo a leanas dhá táblaí i mbunachar sonraí amháin. Ní mór dúinn tábla ar a dtugtar Úsáideoirí go bhfuil ceithre columns-- uimhir aitheantais, ainm úsáideora, pasfhocal, agus ainm iomlán. Agus ní mór dúinn an dara tábla sa bhunachar sonraí céanna ar a dtugtar Moms a stórálann ach faisnéis faoi ​​ainm úsáideora agus máthair. Mar sin, le haghaidh gach ceann samplaí i físeán seo, beidh muid a bheith ag baint úsáide bhunachar sonraí seo agus nuashonrú ina dhiaidh sin dó. Mar sin, a ligean le rá ba mhaith linn a faisnéis a chur le tábla. Sin an méid a dhéanann an oibríocht isteach. I míniú ngach ceann na horduithe, tá mé ag dul a thabhairt duit cnámharlach ginearálta a úsáid. Mar gheall ar go bunúsach, na ceisteanna ag dul breathnú cosúil go leor, táimid ag dul díreach a bheith ag athrú píosaí beagán difriúil faisnéise a dhéanamh rudaí éagsúla leis an tábla. Mar sin, mar CUIR ISTEACH, an chnámharlaigh Breathnaíonn cineál mar seo. Ba mhaith linn a chur isteach i tábla ar leith. Ansin, ní mór dúinn lúibíní oscailte agus liosta de na colúin gur mhaith linn a luachanna a chur i. Dún lúibíní, an luachanna seo a leanas, agus ansin arís, liosta muid amach na luachanna ba mhaith linn a chur sa tábla. Mar sin, sampla de seo bheadh ​​an méid seo a leanas. Ba mhaith liom a chur isteach ar an tábla úsáideoirí an columns-- leanas ainm úsáideora, pasfhocal, agus fullname. Mar sin, as a chéile nua áit a bhfuil mé ag cur sna trí cholún agus táimid ag dul a chur i na luachanna Newman, USMAIL, agus Newman. Mar sin, sa chás seo, tá mé a chur ar an newman litreacha beaga isteach sa cholún ainm úsáideora, an focal faire USMAIL, agus an t-ainm caipitil iomlán N Newman isteach sa cholún fullname. Mar sin, anseo cad an mbunachar sonraí d'fhéach sé mar a bhíodh. Seo an méid an tábla úsáideoirí ar an barr chuma sula raibh againn seo. Tar éis dúinn a fhorghníomhú seo cheist, a fháil againn seo. Táimid tar éis Chuir a chéile nua leis an tábla. Ach faoi deara an rud amháin nach raibh mé a shonrú, ach ar bhealach tá fuair mé luach do, a bhfuil sé seo 12 ar dheis anseo. Ní raibh mé a rá theastaigh uaim a a chur uimhir aitheantais i ann. Theastaigh uaim ainm úsáideora a chur, Focal faire, fullname. Agus rinne mé go, go breá. Ach fuair mé freisin seo 12. Cén fáth go raibh mé a fháil ar seo 12? Bhuel, casadh sé amach go nuair a bhfuil tú ag sainiú colún go bhfuil dul a bheith ar do eochair bunscoile, a bhfuil de ghnáth, mar a dúirt mé, uimhir aitheantais. Níl sé i gcónaí gá go ag dul a bheith ina uimhir aitheantais, ach tá sé de ghnáth smaoineamh maith a a bheith de chineál éigin de luach slánuimhir. Tá rogha i phpMyAdmin tú nuair tú ag a chruthú do bhunachar sonraí nó do tábla a leagan go colún mar incriminteach a uathoibríoch. Cé acu is an smaoineamh gur maith nuair bhfuil tú ag obair le eochair bunscoile, mar is mian leat gach luach sa cholún sin a bheith ar leith. Agus má dhéanann tú dearmad a shonrú sé do níos mó ná duine amháin, tá tú anois staid ina go colún a thuilleadh ar leith. Tá tú dhá bearnaí, ionas gur féidir leat aon níos faide aithint uathúil ar column-- nó is féidir leat gan a thuilleadh uathúil as a chéile bunaithe ar an gcolún a aithint. Tá sé seo caillte ar fad de chuid luach mar eochair bunscoile. Agus mar sin is cosúil an méid atá déanta agam anseo cumraithe an ID úsáideora colún go incrimint uathoibríoch ionas go mbeidh gach am faisnéis a chur I a ghabhann leis an tábla, beidh sé a thabhairt go huathoibríoch dom luach haghaidh an eochair bunscoile. Mar sin, ní féidir liom dearmad a dhéanamh mar gheall Beidh an bunachar sonraí é a dhéanamh dom. Mar sin, go bhfuil de chineál ar deas. Agus mar sin a fháil againn sin an fáth 12 i ann, mar gheall ar tá mé arna colún go bhfuil suas le incrimint uathoibríoch. Má chuir mé duine éigin eile ba é a bheith 13, má chuirtear mé duine éigin eile ba é a bheith 14, agus mar sin de. Mar sin, a ligean ar a dhéanamh ach a chur isteach amháin níos mó. Beidh muid a chur isteach isteach sa tábla moms, i Go háirithe, an ainm úsáideora agus máthair colún, na luachanna Kramer agus Babs Kramer. Agus mar sin bhí againn roimh seo. Tar éis a fhorghníomhú go SQL cheist, ní mór dúinn an. Táimid tar éis a leanas Kramer agus Babs Kramer leis an tábla moms. Mar sin, ar sin a chur isteach. Is SELECT cad a úsáid againn a bhaint faisnéis ón tábla. Mar sin, is é seo conas a fháil againn faisnéis amach as an mbunachar sonraí. Agus go bhfuil siad orduithe sin SELECT ag dul a bheith an-úsáidtear go minic i gcláir. An ginearálta framework-- an Breathnaíonn an creatlach ginearálta mar seo. Roghnaigh sraith de colúin ó tábla, agus ansin optionally Is féidir leat a shonrú ar condition-- nó rud ar a dtugaimid de ghnáth preideacáid, de ghnáth an téarma a úsáidimid i SQL. Ach tá sé go bunúsach cad sraitheanna ar leith ba mhaith leat a fháil. Más mian leat a, in ionad dul gach rud, caol sé síos, tá sé seo i gcás ina mbeadh tú a dhéanamh. Agus ansin optionally, is féidir leat freisin a ordú ag colún áirithe. Mar sin, b'fhéidir gur mhaith leat a bheith acu rudaí a curtha in eagar in ord aibítre bunaithe ar gcolún amháin nó ord aibítre bunaithe ar eile. Arís, ÁIT agus tá ORDÚ AG roghnach. Ach beidh siad is dócha useful-- háirithe ÁIT a bheith úsáideach chun caol síos mar sin ní gá duit fháil do bhunachar sonraí ar fad ar ais agus a phróiseáil, leat a fháil ach na píosaí de sé go bhfuil tú cúram faoi. Mar sin, mar shampla, b'fhéidir gur mhaith liom a roghnú Uimhir aitheantais agus fullname ó úsáideoirí. Mar sin, cad a d'fhéadfadh sé seo cuma mhaith? Mar sin, tá anseo ar mo úsáideoirí tábla. Ba mhaith liom a roghnú idnum agus fullname ó úsáideoirí. Cad tá mé ag dul a fháil? Tá mé ag dul a fháil ar an. Ní raibh mé caol sé síos, mar sin tá mé ag dul ar an uimhir aitheantais le haghaidh gach as a chéile agus tá mé ag dul ar an iomlán ainm ó gach as a chéile. OK. Cad más mian liom phasfhocal a roghnú ó úsáideoirí WHERE-- mar sin anois Tá mé ag cur coinníoll, ar predicate-- i gcás ina bhfuil idnum níos lú ná 12. Mar sin, tá anseo mo bunachar sonraí arís, mo úsáideoirí tábla an mbarr. Cad tá mé ag dul a fháil más mian liom a roghnaigh an fhaisnéis sin, an focal faire, i gcás ina bhfuil ID úsáideora nó idnum níos lú ná 12? Tá mé ag dul a fháil ar an faisnéis ar ais, ceart? Tarlaíonn sé go bhfuil idnum 10, níos lú ná 12, uimhir aitheantais 11 níos lú ná 12. Tá mé ag dul ar an focal faire do na sraitheanna. Sin an méid a d'iarr mé do. Cad mar gheall ar seo? Cad más mian liom réalta ón a roghnú tábla moms áit ionann ainm úsáideora Jerry? OK, tá roghnaigh réalta an speisialta saghas cárta fiáin mar a thugtar air úsáid againn gach rud a fháil. Mar sin, tá siad ag rá a roghnú ainm úsáideora mháthair camóg, a tharla a bheith ar an amháin dhá cholún den tábla seo, Is féidir liom a roghnú ach réalta agus gach rud a fháil nuair is ionann an ainm úsáideora Jerry. Agus mar sin go bhfuil an méid ba mhaith liom a fháil má rinne mé go cheist ar leith. Anois, tá bunachair sonraí mór mar gheall ar chumas siad dúinn eolas a eagrú b'fhéidir le beagán níos éifeachtaí ná muid a d'fhéadfadh a mhalairt. Ní chuirimid gá a stóráil gach píosa ábhartha faisnéise faoi ​​úsáideoir sa tábla céanna. Bhí orainn dhá táblaí ann. Ní mór dúinn a stóráil gach duine máthar ainm, agus b'fhéidir nach bhfuil againn slándáil shóisialta uimhir, ní mór dúinn a ndáta breithe. Nach gá i gcónaí a bheith sa tábla céanna. Chomh fada agus is féidir linn a shainiú caidreamh idir an tables-- agus sin i gcás go choibhneasta téarma bunachar chineál a thagann i play-- chomh fada agus is féidir linn a shainiú caidreamh idir na táblaí, Is féidir linn a saghas compartmentalize nó rudaí teibí ar bhealach, áit a bhfuil muid ach an faisnéis tábhachtach i ndáiríre cúram againn faoi i an úsáideora tábla. Agus ansin ní mór dúinn eolas coimhdeacha nó faisnéis bhreise i dtáblaí eile gur féidir linn a nascadh ar ais go dtí an príomh- úsáideoirí tábla ar bhealach ar leith. Mar sin anseo tá an dá táblaí, ach níl gaol eatarthu, ceart? Tá sé cosúil le ainm úsáideora d'fhéadfadh a bheith rud éigin atá ann i thoil a chéile dá táblaí éagsúla. Mar sin, cad má tá muid anois staid nuair a muid ag iarraidh a fháil úsáideora ainm iomlán ó an úsáideora tábla, agus a n-máthar ainm ón tábla mháthair? Ní chuirimid bhfuil ar bhealach a fháil gur mar atá sé, ceart? Níl aon tábla amháin go bhfuil araon ainm iomlán agus ainm máthar. Ní chuirimid bhfuil an rogha sin as an méid atá feicthe againn go dtí seo. Agus mar sin ní mór dúinn a thabhairt isteach an smaoineamh maidir le Join. Agus a théann is dócha an chuid is mó complex-- tá sé i ndáiríre an chuid is mó casta a oibriú táimid ag dul chun labhairt faoi san fhíseán. Tá siad beagán casta, ach nuair a fhaigheann tú an hang of it, tá siad i ndáiríre ní ró-olc. Tá sé ach cás speisialta de chuid SELECT. Táimid ag dul a roghnú sraith de colúin ó thábla a cheanglaíonn sa dara tábla ar roinnt preideacáid. Sa chás seo, smaoineamh air buíochas this-- Tá tábla amháin ciorcal amháin thar anseo, Tá tábla dhá ciorcal eile thar anseo. Agus an chuid sin preideacáid i lár, tá sé saghas cosúil má cheapann tú faoi ​​mar léaráid Venn, cad bhfuil coiteann dóibh? Is mian linn a nascadh an dá táblaí bunaithe ar an méid is coiteann dóibh agus a chruthú ar an tábla seo hipitéiseach go bhfuil an cumasc an dá chéile. Mar sin, beidh orainn a fheiceáil seo i sampla agus b'fhéidir beidh a chabhróidh leat soiléir sé suas le beagán. Mar sin, b'fhéidir gur mhaith leat a roghnú user.fullname agus moms.mother ó úsáideoirí ag teacht isteach sa tábla moms i ngach cás i gcás an colún ainm úsáideora mar an gcéanna eatarthu. Agus é seo nua error anseo, an t-úsáideoir. agus moms .. Má tá mé ag déanamh táblaí il le chéile, is féidir liom a shonrú tábla. Is féidir liom idirdhealú a dhéanamh i leith ar go bhfuil ar ag bun an-ann. Is féidir liom idirdhealú a dhéanamh ar an ainm úsáideora colún den tábla-úsáideoirí as an gcolún ainm úsáideora ar an tábla moms, atá otherwise-- má dúirt muid díreach ionann ainm úsáideora ainm úsáideora, nach bhfuil sin i ndáiríre chiallaíonn rud ar bith. Ba mhaith linn a dhéanamh i gcás ina siad comhoiriúnach. Mar sin, is féidir liom a shonrú ar an tábla agus an ainm colún i gcás staid i gcás ina mbeadh sé soiléir cad mé ag caint faoi. Mar sin tá go léir Tá mé ag déanamh go bhfuil mé ag rá an colún seo ón tábla seo, agus a bheith an-soiléir. Mar sin arís, tá mé ag roghnú an ainm iomlán agus ainm na máthar ón tábla úsáideoirí nasctha le chéile leis an tábla moms i ngach cás i gcás ina roinneann siad go column-- scair siad go coincheap ainm úsáideora. Mar sin, tá anseo na táblaí a bhí againn roimh. Is é seo an staid ar ár bunachar sonraí mar atá sé ceart anois. An fhaisnéis táimid ag aisti is é seo chun tús a chur leis. Is é seo an tábla nua táimid ag dul a chruthú le chéile leis na chéile. Agus fógra nach bhfuil muid ag cur béime A chéile Newman i an úsáideora tábla, agus nach bhfuil muid ag cur béime A chéile Kramer sa tábla moms toisc go bhfuil súil amháin i dá sets-- sa dá táblaí. An t-eolas amháin go bhfuil i bpáirt eatarthu Jerry sa dá táblaí agus tá gcostanza sa dá táblaí. Agus mar sin nuair a dhéanann muid an SQL Join, cad againn get-- agus ag déanamh againn i ndáiríre a fháil ar seo. Tá sé saghas athróg sealadach. Tá sé cosúil le hipitéiseach cumasc den dá thábla. Againn a fháil i ndáiríre rud éigin mar seo, i gcás ina tá muid chumasc le chéile na táblaí ar an faisnéis go coiteann dóibh. Mar sin, faoi deara go users.username agus colún moms.username, tá sé díreach mar an gcéanna. Ba é sin an t-eolas sin Ba comhsheasmhach ó na húsáideoirí tábla agus an tábla moms. Agus mar sin chomhcheangal againn orthu le chéile. Chaitheamh i leataobh againn go Kramer mar gheall air Ní raibh ann sa tábla úsáideoirí, agus discarded táimid ag Newman, mar gheall ar Ní raibh sé ann sa tábla moms. Mar sin, is é seo an cumasc hipitéiseach ag baint úsáide as an oibríocht Join de SELECT. Agus ansin bhí muid ag lorg an úsáideora ainm iomlán agus an úsáideora máthair, agus mar sin is é seo an t-eolas sin ba mhaith linn a fháil as an cheist iomlán a rinne muid le SELECT. Mar sin, chuaigh muid an táblaí le chéile agus a eastósctar táimid ag an dá cholún, agus mar sin go bhfuil an méid ba mhaith linn a fháil. Ach théann SQL ar chineál an casta. Tú nach mbeidh is dócha a dhéanamh orthu i bhfad ró, ach amháin go bhfuil roinnt smaoineamh ar an chnámharlaigh gur féidir a úsáid a chumasadh dhá táblaí le chéile más gá tú a. An dá deireanach iad a giotán níos simplí geallaim. Mar sin, thabhairt cothrom le dáta, is féidir linn a úsáid chun dáta faisnéis a athrú i dtábla. Is é an fhormáid ghinearálta chun dáta éigin tábla, SET colún éigin le roinnt luach ÁIT bhfuil roinnt preideacáid sásta. Mar sin, mar shampla, b'fhéidir gur mhaith linn a thabhairt cothrom le dáta an tábla úsáideoirí agus leag an focal faire a Yada yada, áit a bhfuil an uimhir aitheantais 10. Mar sin, sa chás seo, tá muid thabhairt cothrom le dáta an tábla úsáideoirí. Is é an uimhir aitheantais 10 le haghaidh go chéad ró ann, agus ba mhaith linn a thabhairt cothrom le dáta ar an phasfhocal a Yada Yada. Agus mar sin go bhfuil an méid a tharlódh. Tá sé deas simplí, ceart? Tá sé ach an-simplí modhnú leis an tábla. Scrios bhfuil an oibríocht a úsáid le linn a faisnéis bhaint as tábla. Scrios Ó tábla ÁIT Is cuid preideacáid sásta. Is mian linn a scriosadh as an úsáideoirí tábla mar shampla áit a bhfuil an ainm úsáideora Newman. Is féidir leat buille faoi thuairim is dócha cad atá ar siúl le tharlóidh anseo tar éis a fhorghníomhú go SQL cheist, tá Newman imithe ón tábla. Mar sin go léir na hoibríochtaí sin, mar a dúirt mé, Tá an-éasca a dhéanamh i phpMyAdmin. Tá sé an comhéadan cairdiúla don úsáideoir an-. Ach é a cheangal ar iarracht láimhe. Ní chuirimid ag iarraidh a iarracht láimhe fhostú. Ba mhaith linn ár gcláir a chur é seo a dhéanamh dúinn, ceart? Mar sin, d'fhéadfadh muid ag iarraidh a dhéanamh seo programmatically. Ba mhaith linn SQL a ionchorprú agus a bhfuil rud éigin eile é seo dúinn. Ach cad atá feicthe againn a ligeann dúinn a dhéanamh programmatically rud éigin? Againn atá le feiceáil PHP, ceart? Tugann sé isteach roinnt dinimiceas isteach inár gcláir. Agus mar sin fortunately, SQL agus PHP imirt an-nicely le chéile. Níl feidhm i PHP ar a dtugtar cheist, is féidir a úsáid. Agus is féidir leat pas a fháil mar an paraiméadar nó an argóint chun ceist cheist SQL a ar mhaith leat a fhorghníomhú. Agus beidh PHP dhéanamh ar do shon. Mar sin, tar éis atá tú ag baint le do bhunachar sonraí le PHP, níl dhá primaries dhéanann tú é seo. Tá rud éigin ar a dtugtar MySQLi agus rud ar a dtugtar STFC. Ní féidir linn dul isteach i ollmhór méid sonraí ann. I CS50 linn a úsáid STFC. Tar éis atá tú ag baint le do bhunachar sonraí, tú is féidir a dhéanamh ansin ceisteanna do bhunachar sonraí ag dul thar na ceisteanna mar hargóintí le feidhmeanna PHP. Agus nuair a dhéanann tú sin, a stóráil tú an tacar torthaí i sraith comhthiomsaitheach. Agus tá a fhios againn conas a bheith ag obair leis arrays associative i PHP. Mar sin, d'fhéadfadh liom a rá rud éigin cosúil this-- $ results-- tá sé seo i PHP-- ionann cheist. Agus ansin taobh istigh de na fheidhm cheist sin argóint go bhfuil mé ag dul a fhiosrú go Breathnaíonn cosúil SQL. Agus go deimhin go bhfuil SQL. Sin an teaghrán cheist a ba mhaith liom buíochas a fhorghníomhú ar mo mbunachar sonraí. Agus mar sin i dearg, is é an PHP. Tá an SQL go bhfuil mé chomhtháthú isteach i PHP trí sé an argóint leis an bhfeidhm cheist. Ba mhaith liom fullname a roghnú as úsáideoirí i gcás ina is ionann uimhir aitheantais 10. Agus ansin b'fhéidir tar éis tá déanta agam go bhfuil, D'fhéadfadh liom a rá rud éigin mar seo. Ba mhaith liom a phriontáil amach an teachtaireacht raibh maith agat as logáil isteach. Agus ba mhaith liom é interpolate-- Ba mhaith liom a Idirshuigh $ torthaí fullname. Agus mar sin go bhfuil an chaoi mé ag obair leis eagar comhthiomsaitheach go bhfuair mé ar ais. $ torthaí bheadh ​​fullname deireadh go bunúsach suas go priontáil amach, go raibh maith agat as logáil isteach, Jerry Seinfeld. Ba é sin an t-ainm iomlán nuair is ionann idnum 10. Agus mar sin go léir Tá mé ag déanamh Tá mé ag now-- stóráil mé mo cheist, an torthaí mo cheist agus torthaí i sraith comhthiomsaitheach, agus is é an t-ainm fullname an colún a bhí mé ag dul do. Mar sin, go mo eochair isteach na torthaí eagar comhthiomsaitheach gur mhaith liom. Mar sin, Go raibh maith agat as logáil isteach, $ torthaí, Beidh fullname phriontáil amach, beidh bata ceart i idir na chatach guailleáin, Jerry Seinfeld. Agus beidh mé buíochas a phriontáil amach an teachtaireacht Go raibh maith agat as logáil isteach Jerry Seinfeld. Anois, ní táimid ag dócha bhfuil ag iarraidh a crua rudaí a cód mar sin i, ceart? D'fhéadfadh Ba mhaith linn rud éigin cosúil le cló a dhéanamh f, nuair is féidir linn a chur in ionad agus b'fhéidir bhailiú faisnéis éagsúil, nó b'fhéidir go bhfuil an próiseas cheist eolas éagsúla. Agus mar sin ceist, tá an fheidhm cheist an gcoincheap sin de saghas substitutions an-chosúil leis phriontáil f faoin gcéad s agus faoin gcéad c é, marcanna gceist. Agus is féidir linn a úsáid cheist marcanna an-dul leis sin a phriontáil f athróga ionad. Mar sin, b'fhéidir do úsáideora logáilte isteach níos luaithe, agus a shábháil tú a n-uimhir aitheantais úsáideora i $ _session de PHP Super domhanda sa ID eochair. Mar sin, b'fhéidir tar éis logáilte siad i, leagtar tú $ _session ionann ID 10, eachtarshuí ó an sampla Chonaic muid ach an dara ó shin. Agus mar sin nuair a fhorghníomhú againn i ndáiríre ceist seo na torthaí anois, go mbeadh sé breiseán i 10, nó cibé Is é an luach $ _session ID. Agus mar sin a ligeann dúinn a bheith le beagán níos dinimiciúla. Nach bhfuil muid ag rudaí a códaithe crua i níos mó. Táimid ag coigilt faisnéis áit éigin agus ansin is féidir linn a fhaisnéis sin a úsáid arís chun saghas ghinearálú cad ba mhaith linn a dhéanamh, agus díreach plug-in agus athrú an t-iompar ar ár leathanach bunaithe ar an méid Uimhir Aitheantais an úsáideora i ndáiríre tar éis tá siad logáilte isteach. Is féidir freisin, áfach, go do chuid torthaí atá leagtha D'fhéadfadh comhdhéanta de sraitheanna éagsúla. Sa chás sin, caithfidh tú le sraith de arrays-- le sraith de arrays comhthiomsaitheach. Agus is gá duit ach a iterate tríd. Agus tá a fhios againn conas a iterate trí sraith i PHP, ceart? Mar sin, anseo Is dócha an chuid is mó Rud casta againn le feiceáil go dtí seo. Chomhtháthaíonn sé i ndáiríre trí theanga le chéile. Anseo i dearg, tá sé seo roinnt HTML. Tá mé cosúil starting-- é seo Blúire de roinnt HTML go bhfuil mé. Tá mé ag tosú ar alt nua go a deir an moms de Seinfeld teilifíseáin. Agus ansin láithreach ina dhiaidh Tá mé ag tosú tábla. Agus ansin tar éis sin, mé go bhfuil roinnt PHP, ceart? Tá mé seo ar fad cód PHP i ann. Tá mé ag dul a dhéanamh cosúil ceist. Agus a dhéanamh ar an cheist, tá mé ag dul go dtí bheith ag baint úsáide máithreacha SELECT Ó moms. Mar sin, tá sé seo getting-- é seo SQL. Mar sin, an Is é an gorm SQL. Ba é an dearg chonaic muid an dara ó shin HTML. Agus is é an glas anseo PHP. Mar sin, tá mé ag déanamh ceist le mo bunachar sonraí, tá mé roghnú gach ceann de na máithreacha sa tábla moms. Ní hamháin caolú sé síos go dtí go háirithe as a chéile, tá mé ag iarraidh gach ceann acu. Ansin mé a sheiceáil an bhfuil toradh Ní ionann ionann bréagach. Is é seo ach mo bhealach a sheiceáil saghas de más rud é nach bhfuil na torthaí cothrom le margadh saothair, go mbeadh muid a fheiceáil c mar shampla. Go bunúsach is é seo a sheiceáil ach a dhéanamh cinnte go bhfuair sé i ndáiríre sonraí ar ais. Toisc nach bhfuil mé ag iarraidh a phriontáil a thosú amach sonraí más rud é nach raibh mé a fháil ar aon sonraí. Ansin do gach torthaí mar thoradh ar an error foreach ó PHP, gach tá mé ag déanamh Tá priontáil amach máithreacha $ toradh. Agus mar sin tá mé ag dul a fháil sraith de gach ceann de na máithreacha de each-- tá sé le sraith de associative arrays-- agus tá mé a phriontáil amach gach ceann mar a chéile féin tábla. Agus sin i ndáiríre deas i bhfad go léir atá ann chun é. Tá a fhios agam níl beagán giotán siúl anseo sa sampla deireanach le arrays de arrays de arrays associative arrays--. Ach sé i ndáiríre ní boil díreach síos i SQL a dhéanamh cheist, de ghnáth a roghnú tar éis tá muid cheana faisnéis a chur isteach ar an tábla, agus ansin ach tarraingt amach. Agus é seo ba mhaith linn a tharraingt amach sa chás áirithe. Ba mhaith linn a bhaint go léir an duine aonair máithreacha ón tábla moms. Fuair ​​muid sraith iomlán acu, agus táimid ag ag iarraidh a iterate trí agus a phriontáil amach gach ceann. Mar sin arís, tá sé seo is dócha an sampla is casta againn le feiceáil toisc go bhfuil muid a mheascadh trí teangacha éagsúla le chéile, ceart? Arís, ní mór dúinn HTML anseo i dearg, measctha le roinnt SQL anseo i gorm, measctha le roinnt PHP i glas. Ach gach ceann de na spraoi nicely le chéile, tá sé ach ceist a fhorbairt nósanna maith ionas gur féidir leat a fháil iad a bheith ag obair le chéile ar an bhealach is mian leat. Agus an t-aon bhealach a dhéanamh i ndáiríre go Is a chleachtadh, cleachtadh, cleachtadh. Tá mé Doug Lloyd, is é seo CS50.