[Powered by Google Translate] [SQL] [Christopher BARTHOLOMEW] [HARVARD UNIVERSITY] [HII NI CS50] [CS50 TV] Hivyo, programmers kutumia database kama chombo kuhifadhi na kuandaa data wetu kuendelea ndani ya meza. Hii ina maana kwamba data yako ni kuhifadhiwa kwenye medians zisizo tete kama vile gari ngumu, na hata wakati kompyuta ni mbali, data ni bado intact. Na, kama programmers, mipango yetu kutumia database kwa matukio kama vile hifadhi ya user taarifa kutoka fomu za mtandao, akatazama juu hesabu, au kuongezea maelezo kuhusu nini maeneo kuonyesha. Lakini jinsi gani sisi kweli kuingiliana na database yetu, au je, sisi kutumia kusoma, kuhifadhi, kufuta, na update data zetu ndani ya mbao hizo database? Naam, jibu ni kwamba sisi kutumia aina maalum ya lugha database ambayo inaingiliana moja kwa moja na meza yetu database. Ni jina ni Uliza muundo lugha, [Uliza muundo lugha] au nini mimi rejea kama SQL. Sasa, [Se-QueL], au SQL, ni si lugha ya programu, lakini badala yake, ni lugha ambayo inatoa seti ya kiwango ya amri retrieve na kuendesha data kutoka kwa aina ya mifumo ya usimamizi wa database. Kwa madhumuni ya CS50, tutaweza kwenda juu ya nne amri ya msingi: kuchagua, ingiza, update, na kufuta. Aidha, tutaweza kutumia mtandao database interface kuitwa phpMyAdmin, ambayo imewekwa kwenye appliance kuandika yetu kauli SQL. Hivyo, ili kukusaidia kukumbuka amri hizi, Nimekuwa kuletwa baadhi cupcakes katika kabati ili kusaidia na matukio yetu. Sema wewe kuwa na database ya cupcake, ambapo unaweza kuhifadhi taarifa zote kuhusu cupcakes yako. Sasa, database unaweza vyenye meza wengi na meza zenyewe unaweza vyenye nguzo nyingi. Ndani ya database cupcake wetu, tuna meza inayoitwa cupcake_cupboard. Meza hii itatumika kuhifadhi taarifa zote kuhusu cupcakes kwamba ni vizuri, katika kabati yako. nguzo kwamba ni ndani ya meza yako inawakilisha sifa ya cupcake. Kwa mfano, cupcake_cupboard ya nguzo ni Cake ID, CakeType, CakeColor, na CakeIsNice. Safu hii bulin-typed ni kutumiwa kuamua kama keki ni nzuri au si nzuri. Sisi ni kwenda kuanza na kuandika taarifa ya kuchagua. Chagua kauli hutumiwa kwa retrieve data ya meza fulani database. Katika hali hii, tunataka kujua kila kitu kuhusu yote cupcakes ambazo zipo katika kabati yetu. syntax ya kufanya hivyo ni "Chagua" nafasi nyota, au *, nafasi kutoka nafasi meza yetu, ambayo ni cupcake_cupboard. Hebu kwenda mbele na nitafanya hivyo. Kama tunavyoona, haya ni cupcakes wote katika kabati yetu. Ni muhimu kutambua kuwa *, au kinyota, ni pori kadi tabia kwamba inaashiria mkutano wa nguzo zote za meza baadhi. Kwa kawaida, tunaweza kupata safu maalum au nguzo kwa kuondoa * kwa jina halisi safu. Kama tunataka nguzo nyingi, lakini si wote, tunaweza kufikia lengo hili kwa kuandika majina ya safu usawanisho kila safu na comma. Kwa mfano, hebu tu retrieve CakeId na CakeType katika meza cupcake_cupboard. syntax ya kufanya hivyo ni: CHAGUA nafasi CakeID comma CakeType nafasi kutoka cupcake_cupboard meza yetu,. Hebu kwenda mbele na nitafanya hili. Na hapa, sisi sasa tu wana nguzo mbili sisi maalum kwa kila cupcake katika kabati yetu. Tunaweza pia kuboresha matokeo yetu swala kwa inayobainisha "Wapi" kifungu tu baada ya jina meza. Kwa mfano, kuna inaonekana kuwa cupcake katika kabati wetu kwamba ni vizuri, si hivyo nzuri kuangalia. Hebu takwimu nje cupcakes wote katika kabati yetu kwamba ni vizuri, si hivyo nzuri kuangalia kutumia "wapi" kifungu. syntax ya kufanya hivyo ni: CHAGUA nafasi * nafasi KUTOKA cupcake_cupboard nafasi nafasi WAPI nafasi safu yetu ya masharti, katika kesi hii CakeIsNice =, na thamani ya bulin ya Uongo. Ni muhimu kutambua kwamba kama wewe ni kutumia masharti, lazima uambatanishe ni katika quotes moja. Hii ni kweli kwa masharti yote katika SQL, au, katika suala database SQL, wahusika lahaja inayojulikana kama varchar datatype. Katika kesi hii, sisi ni kutumia Kweli au Uongo, ambayo ni thamani ya bulin na si kamba. Hebu kwenda mbele na kutekeleza amri hii. Hakika na tazama, ni kesi ya kwamba tuna 1 chocolate si hivyo nzuri cupcake katika kabati yetu. Next, sisi ni kwenda kuandika taarifa ya Insert. Kauli Insert hutumiwa kuingiza au kuongeza ziada ya safu za data katika database ya meza yako. Revisiting mazingira yetu, hebu kudhani kwamba tumekuwa tu alifanya bidhaa mpya cupcake. Tangu sisi ni sana kupangwa walaji cupcake, sisi itawabidi Insert hii cupcake mpya katika cupcake_cupboard meza yetu. syntax ya kufanya hivyo ni hii: Ingiza nafasi katika nafasi ya meza yetu, cupcake_cupboard, nafasi (, na hapa sisi kutaja majina nguzo, Delimited na comma, CakeType comma CakeColor comma CakeIsNice) nafasi. Kufuatia hali hii, sisi kuandika MAADILI neno nafasi (, na hapa sisi kuingia thamani kwa kila safu kwa mtiririko huo, pia Delimited na comma. Quote Single, kwa sababu wote ni maadili varchar tutaweza wanaowazunguka katika quotes moja, Koma 'comma' karanga siagi MWANGA KAHAWIA 'Kweli. Sasa, ni muhimu kutoa kila mstari idadi ya kipekee kutambua yenyewe. Autoincrementing safu hii hutoa kama  "Hakuna mbili vitambulisho huo unaweza milele kuwepo katika meza hii." Hebu kwenda mbele na nitafanya. Kuna sisi kwenda, wote kupangwa. ijayo SQL taarifa kuwa hatujaandika ni kauli update. Kauli update inaweza kutumika kurekebisha data ndani ya safu kwa yoyote mstari zilizopo katika database meza yako. Mapema katika mazingira yetu, kwa kutumia taarifa kuchagua, sisi kutambuliwa cupcake ndani ya meza cupcake_cupboard wetu ambao CakeIsNice thamani ilikuwa uongo. Hebu kudhani kuwa wakati karanga wetu siagi cupcake alikuwa katika tanuri, sisi alifanya cupcake wetu si-hivyo-nzuri nzuri sana. Kuwa hivyo exceptionellt kupangwa, tunataka cupcake wetu kutafakari thamani hii katika cupcake_cupboard meza yetu. Kwa hiyo, hebu update chocolate wetu cupcake katika orodha ya kutafakari hili. syntax ni: UPDATE nafasi meza yetu, cupcake_cupboard, nafasi SET nafasi safu kwamba tunataka mabadiliko, CakeIsNice =. Ndipo hapa sisi mahali thamani wetu mpya wa Kweli nafasi. Sasa, kwa sababu hatutaki update safu yote na thamani ya hii, tunataka kutoa "wapi" kifungu kwamba pinpoint sisi kwa mstari halisi kwamba tunataka kurekebisha. Katika kesi hiyo, tunajua kwamba kuna Mungu mmoja tu cupcake ambayo ina thamani CakeIsNice ya Uongo. Aidha, sisi pia kuhakikisha kwamba sisi ni uppdatering mstari sahihi kwa kutumia "Na" kifungu. Sisi kutumia "Na" kifungu kuboresha hoja zetu zaidi. Katika kesi hiyo, kwa sababu tunajua kwamba cupcake ni chocolate, tutatumia safu hii CakeType. WAPI nafasi safu yetu masharti nafasi CakeIsNice nafasi = Uongo, na nafasi CakeType = 'CHOCOLATE.' Hivyo, kuweka yote pamoja, kauli hii update anasema kupata cupcakes wote katika kabati wetu cupcake, na kama kuna cupcake ambao safu CakeIsNice ina thamani Uongo na CakeType ina CHOCOLATE thamani, tunataka update safu maalum CakeIsNice thamani ya kweli. Hivyo, hebu kwenda mbele na kutekeleza kauli. Na sasa, sisi ni kupangwa. Majadiliano hayo yote ya cupcakes imefanya mimi kidogo njaa. Nadhani lazima kusaidia mwenyewe kwa moja. Lakini kama mimi kwa kweli kula hii cupcake, mimi lazima angalau pia kuondoa kuwepo kwake  kutoka cupcake_cupboard meza yetu. Ili kufanya hivyo, tutatumia "Delete" kauli. "Futa" taarifa zinaweza kutumika kuondoa safu yote au baadhi kutoka meza. Kama unataka kuondoa baadhi safu maalum kutoka meza, basi lazima kutoa "wapi" kifungu, hivyo inayobainisha safu kwamba lazima ya kipekee ya mstari kwamba unataka kuondoa. Hii ni syntax: FUTA nafasi KUTOKA nafasi meza yetu, cupcake_cupboard, nafasi. Sasa, katika hatua hii, wakati wewe ni umbali huu katika taarifa yako futa unataka kuwa makini sana. Kwa mfano, kama nataka kukimbia hoja hii kama ni bila kutoa baadhi ya "wapi" kifungu Napenda kupoteza data zote katika meza hii cupcake_cupboard, lakini kwa sababu tayari najua kwamba keki wangu vitambulisho ni ya kipekee, mimi itabidi kutumia Red Velvet keki ID kwa kifungu yangu "Wapi". WAPI nafasi safu yetu, CakeID = 1. Kwa sababu hii ni thamani integer hakuna haja ya zinazunguka katika quotes moja. Hivyo, hebu nitafanya taarifa. Naam, sasa kwamba tumekuwa kuipangusa kuwepo cupcake hii kutoka cupcake_cupboard meza yetu, sisi tu moja kitu kushoto: Matokeo yake ni kutoweka. Mimi nina Christopher Bartholomayo. Hii ni CS50.