[Powered by Google Translate] [SQL]
[BARTHOLOMEW CHRISTOPHER] [HARVARD UNIVERSITY]
[HWN YW CS50] [CS50 TV]
Felly, rhaglenwyr defnyddio cronfeydd data fel offeryn i storio a threfnu
ein data parhaus mewn tablau.
Mae hyn yn golygu bod eich data yn cael ei storio ar dir nad yw'n anweddol canolrifau fel 'n anawdd cathrena,
a hyd yn oed pan fydd y cyfrifiadur wedi'i ddiffodd, mae'r data yn dal yn gyfan.
Ac, fel rhaglenwyr, mae ein rhaglenni yn defnyddio cronfeydd data ar gyfer sefyllfaoedd o'r fath fel storio
gwybodaeth defnyddwyr o ffurflenni ar y we, edrych i fyny rhestr,
neu ddiweddaru gwybodaeth am yr hyn y safleoedd arddangos.
Ond sut yn union ydym ni'n rhyngweithio â'n cronfa ddata,
neu beth ydyn ni'n eu defnyddio i ddarllen, storio, dileu,
ac yn diweddaru ein data o fewn y tablau cronfa ddata?
Wel, yr ateb yw ein bod yn defnyddio math arbennig o iaith cronfa ddata
sy'n rhyngweithio yn uniongyrchol gyda'n tablau cronfa ddata.
Mae ei enw yn cael ei strwythuro o Iaith Ymholiad,
[Iaith Ymholiad Strwythuredig]
neu beth y cyfeiriaf ato fel SQL.
>> Yn awr, [Se-QueL], neu beidio SQL, yn iaith raglennu,
ond yn hytrach, mae'n iaith sy'n darparu set safonol o orchmynion
i adfer a thrin data o amrywiaeth o systemau rheoli cronfa ddata.
At ddibenion CS50, byddwn yn mynd dros bedair gorchmynion sylfaenol:
dewis, mewnosod, diweddaru a dileu.
Ar ben hynny, byddwn yn defnyddio cronfa ddata rhyngwyneb ar y we o'r enw phpMyAdmin,
oedd yn ei osod ar y peiriant i ysgrifennu ein datganiadau SQL.
Felly, i'ch helpu i gofio gorchmynion hyn,
Rydw i wedi dod â rhai cacennau bach mewn cwpwrdd i gynorthwyo gyda'n senarios.
Dywedwch eich bod chi wedi cronfa ddata cupcake, yn
lle byddwch yn cadw holl wybodaeth am eich cacennau bach.
Yn awr, gall cronfeydd data yn cynnwys llawer o dablau
a gall y tablau eu hunain yn cynnwys colofnau lawer.
Y tu mewn cronfa ddata ein cupcake yn, mae gennym tabl o'r enw cupcake_cupboard.
Bydd y tabl yn cael ei ddefnyddio i storio holl wybodaeth am cacennau bach
sydd, yn dda, yn eich cwpwrdd.
Mae'r colofnau sydd y tu mewn i'ch bwrdd yn cynrychioli nodweddion o cupcake.
Er enghraifft, colofnau y cupcake_cupboard yw
Cacen ID, CakeType, CakeColor, a CakeIsNice.
Mae'r golofn hon yn boolean-deipio yn cael ei ddefnyddio i benderfynu os yw'r gacen yn neis neu beidio 'n glws.
Rydym yn mynd i ddechrau gydag ysgrifennu datganiad dethol.
Datganiadau Dethol yn cael eu defnyddio i adalw data o dabl cronfa ddata penodol.
Yn y sefyllfa hon, rydym eisiau gwybod popeth
am yr holl cacennau bach sy'n bodoli yn ein cwpwrdd.
Mae'r chystrawen i wneud hyn yw seren ofod "Dewis", neu *, gofod o'r gofod ein bwrdd,
sydd yn cupcake_cupboard.
Gadewch i ni fynd yn ei flaen ac yn gweithredu hynny.
>> Fel y gallwn weld, mae'r rhain i gyd yn y cupcakes yn ein cwpwrdd.
Mae'n bwysig nodi bod *, neu seren, yn gymeriad cerdyn gwyllt
sy'n dynodi'r casglu holl golofnau rhai tabl.
Fel arfer, gallwn gael gafael ar golofn penodol neu golofnau
drwy ddisodli'r * gydag enw'r golofn ei hun.
Os ydym am golofnau lluosog, ond nid pob un, gallwn gyflawni hyn
drwy ysgrifennu enwau'r golofn delimiting pob colofn gan atalnod.
Er enghraifft, gadewch i ni dim ond adfer y CakeId a CakeType yn y tabl cupcake_cupboard.
Mae'r gystrawen i wneud hyn yw: coma CakeID gofod SELECT
Gofod CakeType gan ein, cupcake_cupboard tabl.
Gadewch i ni fynd yn ei flaen a gweithredu hyn.
Ac yma, mae gennym bellach dim ond y ddwy golofn i ni bennu
ar gyfer pob cupcake yn ein cwpwrdd.
Gallwn hefyd fireinio ein canlyniadau ymholiad drwy bennu
y "Where" cymal yn union ar ôl yr enw tabl.
Er enghraifft, mae'n ymddangos i fod yn cupcake yn ein cwpwrdd
hynny yw, ddim yn dda, felly 'n glws edrych.
Gadewch i chyfrif i maes yr holl cacennau bach yn ein cwpwrdd sy'n cael eu, nid yn dda, felly 'n glws edrych
defnyddio'r "Where" cymal.
Mae'r gystrawen i wneud hyn yw: gofod SELECT * O le cupcake_cupboard gofod
gofod BLE gofod ein colofn amodol, yn yr achos hwn CakeIsNice =,
a gwerth boolaidd o Anghywir.
Mae'n bwysig nodi os ydych yn defnyddio llinynnau, rhaid i chi amgáu mewn dyfynodau sengl.
Mae hyn yn wir ar gyfer yr holl dannau yn SQL, neu, o ran gronfa ddata SQL cymeriadau amrywiol,
a elwir yn Varchar datatype.
Yn yr achos hwn, rydym yn defnyddio Gwir neu Gau, sydd yn werth boolaidd ac nid yn llinyn.
Gadewch i ni fynd yn ei flaen a gweithredu gorchymyn hwn.
>> Lo ac wele, mae'n wir ein bod wedi 1 siocled
Nid yw mor braf cupcake yn ein cwpwrdd.
Nesaf, rydym yn mynd i ysgrifennu datganiad rhowch.
Datganiadau Mewnosod cael eu defnyddio i mewnosod neu ychwanegu
rhesi ychwanegol o ddata i mewn i'ch bwrdd cronfa ddata.
Ailedrych ar ein senario, gadewch i ni gymryd yn ganiataol ein bod wedi gwneud dim ond cupcake newydd sbon.
Gan ein bod yn drefnus iawn bwyta cupcake, rydym yn mynd i gael i fewnosod y cupcake newydd
yn ein tabl cupcake_cupboard.
Mae'r gystrawen i wneud hyn yw hyn: Mewnosod gofod i'r gofod ein bwrdd,
cupcake_cupboard, gofod (,
ac yma yr ydym yn nodi enwau'r colofnau, amffinio gan goma,
CakeType coma CakeColor coma CakeIsNice) gofod.
Yn dilyn hyn, byddwn yn ysgrifennu y gair GWERTHOEDD gofod (, a dyma
rydym yn mynd i mewn i'r gwerth ar gyfer pob colofn yn y drefn honno, hefyd amffinio gan goma.
Un dyfynbris, oherwydd eu bod i gyd yn werthoedd Varchar byddwn yn eu hamgylchynu mewn dyfynodau sengl,
'Coma' menyn pysgnau GOLAU BROWN 'coma Gwir.
Nawr, mae'n bwysig bod gan bob rhes rhif unigryw i adnabod ei hun.
Autoincrementing colofn yn darparu hyn fel
"Gall Nid oes unrhyw ddau yr un IDs erioed yn bodoli yn y tabl hwn."
Gadewch i ni fynd yn ei flaen ac yn gweithredu.
Dyna ni fynd, i gyd drefnus.
>> Mae'r datganiad SQL nesaf y byddwn yn ysgrifennu yn ddatganiad diweddaru.
Gellir gweld y datganiad diweddaru yn cael ei ddefnyddio i addasu data o fewn colofn
gyfer unrhyw res bresennol yn eich tabl cronfa ddata.
Yn gynharach yn ein senario, gan ddefnyddio datganiad dethol, nodwyd cupcake
o fewn y tabl ein cupcake_cupboard y mae ei gwerth yn CakeIsNice False.
Gadewch i ni dybio, er bod ein pysgnau cupcake menyn yn y ffwrn,
rydym yn gwneud ein cupcake nid-er-neis iawn 'n glws.
Mae bod yn trefnu hynny fel eithriad, rydym am i'n cupcake i adlewyrchu gwerth hwn
yn ein tabl cupcake_cupboard.
Felly, gadewch i ni ddiweddaru ein cupcake siocled yn y gronfa ddata i adlewyrchu hyn.
Y cystrawen yw: DIWEDDARIAD ofod ein bwrdd, cupcake_cupboard, gofod SET gofod
y golofn ein bod yn dymuno newid, CakeIsNice =.
Yna dyma rydym yn rhoi ein gofod gwerth Gwir newydd.
Nawr, oherwydd nid ydym am i ddiweddaru pob rhes gyda gwerth hwn,
rydym eisiau darparu "Where" cymal a fydd yn binbwyntio ni
i'r rhes union yr ydym am ei addasu.
Yn yr achos hwn, rydym yn gwybod nad oes dim ond un cupcake
sydd â gwerth CakeIsNice o Anghywir.
Ar ben hynny, byddwn hefyd yn sicrhau ein bod yn diweddaru'r rhes gywir
trwy ddefnyddio "A" cymal.
Rydym yn defnyddio y "A" cymal i fireinio ein ymholiad pellach.
Yn yr achos hwn, oherwydd gwyddom fod y cupcake yw siocled,
byddwn yn defnyddio'r golofn hon CakeType.
BLE gofod ein gofod colofn gofod CakeIsNice amodol = False,
a gofod CakeType = 'SIOCLED.'
Felly, rhoi'r cwbl at ei gilydd, mae'r datganiad hwn yn dweud diweddariad
dod o hyd i holl cacennau bach yn ein cwpwrdd cupcake,
ac os oes cupcake ei colofn CakeIsNice yn cynnwys y gwerth False
a CakeType yn cynnwys y SIOCLED gwerth,
rydym am i ddiweddaru'r gwerth CakeIsNice penodol rhesi i Gwir.
Felly, gadewch i ni fynd yn ei flaen a gweithredu'r datganiad.
Ac yn awr, rydym yn trefnu.
>> Mae hyn i gyd sôn am cacennau bach wedi fy ngwneud ychydig yn llwglyd.
Rwy'n meddwl y dylwn i helpu fy hun i un.
Ond os wyf mewn gwirionedd yn bwyta hwn cupcake, dylwn o leiaf hefyd yn dileu ei fodolaeth
oddi wrth ein bwrdd cupcake_cupboard.
I wneud hyn, byddwn yn defnyddio y "Dileu" datganiad.
Gall y "Dileu" datganiad yn cael ei ddefnyddio i dynnu pob un neu rai rhesi o'r tabl.
Os ydych yn dymuno i dynnu rhywfaint rhes benodol o'r tabl,
yna rhaid i chi ddarparu "Where" cymal, a thrwy hynny pennu colofn
a ddylai fod yn unigryw i'r rhes eich bod yn dymuno i gael gwared.
Dyma'r gystrawen: DELETE gofod O le mae ein bwrdd, cupcake_cupboard, gofod.
Nawr, ar y pwynt hwn, pryd bynnag y byddwch yn mor bell â hyn yn eich datganiad ddileu
ydych chi am fod yn ofalus iawn.
Er enghraifft, os ydw i eisiau i redeg y ymholiad fel y mae heb roi rhai "Where" cymal
Byddwn yn colli'r holl ddata yn y tabl hwn cupcake_cupboard,
ond am fy mod eisoes yn gwybod bod fy IDs gacen yn unigryw, byddaf yn defnyddio
ID Velvet gacen Goch ar gyfer fy cymal "Where".
BLE gofod ein colofn, CakeID = 1.
Gan fod hyn yn werth cyfanrif nid oes angen i amgylchynu'r mewn dyfynodau sengl.
Felly, gadewch i ni gyflawni'r datganiad.
Wel, yn awr ein bod wedi sychu fodolaeth y cupcake
oddi wrth ein bwrdd cupcake_cupboard, dim ond un peth chwith:
Ei gwneud yn diflannu.
Rwy'n Christopher Bartholomew. Mae hyn yn CS50.