[Powered by Google Translate] [SQL] [CHRISTOPHER BARTHOLOMEW] [Harvard Universiteit] [HIERDIE IS CS50] [CS50 TV] So, programmeerders gebruik databasisse as 'n instrument om te stoor en organiseer ons aanhoudende data binne tabelle. Dit beteken dat jou data gestoor word op nie-vlugtige mediane soos 'n hardeskyf, en selfs wanneer die rekenaar af is, die data is nog ongeskonde. En as programmeerders, ons programme van databasisse gebruik maak vir die scenario's soos stoor gebruiker inligting van die web vorms, op soek na voorraad, of die opdatering van inligting oor watter sites vertoon. Maar hoe ons interaksie eintlik met ons databasis, of wat gebruik ons ​​om te lees, te stoor, te verwyder, en werk ons ​​data in hierdie databasis tabelle? Wel, die antwoord is dat ons 'n spesiale soort van databasis taal wat direk in wisselwerking met ons databasis tabelle. Dit se naam is Structured Query Language, [Structured Query Language] of wat ek verwys as SQL. Nou, [Se-Quel], of SQL, is nie 'n programmeertaal, maar in plaas daarvan, dit is 'n taal wat 'n standaard stel van opdragte te haal en te manipuleer data uit 'n verskeidenheid van databasis-bestuurstelsels. Vir die doel van CS50, sal ons gaan oor vier basiese opdragte: kies, plaas, werk, en verwyder. Verder, sal ons gebruik maak van 'n databasis web koppelvlak genoem phpMyAdmin, wat op die toestel geïnstalleer ons SQL statements te skryf. So, om jou te help onthou hierdie opdragte, Ek het 'n paar kolwyntjies in 'n kas te help met ons scenario's. Sê jy het 'n kolwyntjie se databasis, waar jy al die inligting oor jou kolwyntjies stoor. Nou kan databasisse bevat baie tafels en die tafels self kan bevat veel kolomme. Binne ons kolwyntjie se databasis, ons het 'n tabel genaamd cupcake_cupboard. Hierdie tabel sal gebruik word om al die inligting oor kolwyntjies te stoor dié is goed, in jou kas. Die kolomme wat binne-in jou tabel verteenwoordig die eienskappe van 'n kolwyntjie. Byvoorbeeld, die cupcake_cupboard se kolomme Cake ID, CakeType, CakeColor en CakeIsNice. Hierdie boolean-getikte kolom word gebruik om te bepaal of die koek is mooi of nie mooi nie. Ons gaan om te begin met die skryf van 'n select statement. Kies state word gebruik om data van 'n bepaalde databasistabel te haal. In hierdie scenario, ons wil alles weet oor al die kolwyntjies wat bestaan ​​in ons kas. Die sintaksis om dit te doen, is "Select" ruimte ster, of *, ruimte vanuit die ruimte ons tafel, wat cupcake_cupboard. Laat voort te gaan en uit te voer dat. Soos ons kan sien, dit is al die kolwyntjies in ons kas. Dit is belangrik om daarop te let dat *, of asterisk, is 'n wild card karakter wat dui op die versameling van al die kolomme van 'n paar tafel. Normaalweg kan ons toegang tot 'n spesifieke kolom of kolomme deur * met die werklike kolom naam. As ons wil verskeie kolomme, maar nie almal nie, kan ons bereik deur die skryf van die kolom name afbakening van elke kolom deur 'n komma. Byvoorbeeld, laat ons net haal die CakeId en CakeType in die cupcake_cupboard tafel. Die sintaksis om dit te doen is: SELECT ruimte CakeID komma Van ons tafel, cupcake_cupboard CakeType ruimte. Laat voort te gaan en uit te voer. En hier, ons het nou net die twee kolomme gespesifiseer vir elke kolwyntjie in ons kas. Ons kan ook ons ​​soektog resultate te verfyn deur die spesifiseer van Die "waar" klousule net na die tabel naam. Byvoorbeeld, daar blyk te wees 'n kolwyntjie in ons kas dit is goed, nie so mooi kyk. Kom ons uit te vind al die kolwyntjies in ons kas wat is goed, nie so lekker op soek deur gebruik te maak van die "waar" klousule. Die sintaksis om dit te doen is: SELECT ruimte * ruimte vanuit die ruimte cupcake_cupboard ruimte waar ruimte ons voorwaardelike kolom, in hierdie geval CakeIsNice = en die Boole-waarde van Vals. Dit is belangrik om daarop te let dat as jy met behulp van toue, jy moet dit sluit in 'n enkele aanhalingstekens. Dit is waar vir alle stringe in SQL, of, in SQL databasis, variant karakters bekend as varchar data type. In hierdie geval, is ons met behulp Waar of Onwaar, wat is 'n Boolese waarde en nie 'n string. Laat voort te gaan en uit te voer hierdie opdrag. Kyk en kyk, dit is die geval dat ons het 1 sjokolade nie so lekker kolwyntjie in ons kas. Volgende, gaan ons 'n insetsel stelling te skryf. Insert state word gebruik in te voeg of voeg addisionele rye van data in jou databasis tabel. Ons weer na ons scenario, kom ons veronderstel dat ons nie net gemaak het 'n splinternuwe kolwyntjie. Aangesien ons is baie kolwyntjie eters georganiseer, gaan ons hierdie nuwe kolwyntjie te voeg in ons cupcake_cupboard tafel. Die sintaksis om dit te doen, is dit: Plaas die ruimte in die ruimte ons tafel, cupcake_cupboard, ruimte ( en hier is ons spesifiseer die kolomme name, geskei deur 'n komma, CakeType komma CakeColor komma CakeIsNice) ruimte. Na aanleiding van hierdie, ons skryf die woord waardes ruimte (en hier gaan ons die waarde vir elke kolom, ook geskei deur 'n komma. Enkellopend quote, want hulle is almal varchar waardes sal ons hulle omring in 'n enkele aanhalingstekens, Grondboontjiebotter "komma" ligbruin komma True. Nou, is dit belangrik om elke ry 'n unieke nommer gee om homself te identifiseer. Autoincrementing 'n kolom bied dit as  "Geen twee dieselfde IDs ooit kan bestaan ​​in hierdie tabel." Kom ons voort te gaan en uit te voer. Daar gaan ons, alle georganiseerde. Die volgende SQL-stelling wat ons skryf, is 'n update verklaring. Die update verklaring kan gebruik word om data te verander in 'n kolom vir enige bestaande ry in jou databasistabel. Vroeër in ons scenario, die gebruik van 'n uitgesoekte verklaring, ons geïdentifiseer het 'n kolwyntjie binne ons cupcake_cupboard se tafel wie se CakeIsNice waarde vals was. Kom ons veronderstel dat terwyl ons grondboontjiebotter kolwyntjie in die oond was, ons het ons nie-so-mooi kolwyntjie baie mooi. Word so buitengewoon georganiseer, ons wil ons kolwyntjie om hierdie waarde te weerspieël in ons cupcake_cupboard tafel. Daarom, laat ons werk ons ​​sjokolade kolwyntjie in die databasis om dit te weerspieël. Die kode is: UPDATE ruimte om ons tafel, cupcake_cupboard, ruimte SET ruimte die kolom wat ons wil verander, CakeIsNice. Dan is hier ons plaas ons nuwe waarde True ruimte. Nou, omdat ons nie wil hê dat alle rye met hierdie waarde te werk, ons wil 'n "waar" klousule wat ons sal leer ken, om voorsiening te maak na die presiese ry wat ons wil verander. In hierdie geval, ons weet dat daar is net een kolwyntjie wat 'n CakeIsNice waarde van Vals. Verder, ons sal ook verseker dat ons die korrekte ry word opgedateer deur gebruik te maak van die "en" klousule. Ons gebruik die "en" klousule ons navraag verder te verfyn. In hierdie geval, omdat ons weet dat die kolwyntjie is sjokolade, sal ons dit gebruik CakeType kolom. Waar ruimte ons voorwaardelike kolomruimte CakeIsNice ruimte = False, en ruimte CakeType = "sjokolade." So, om dit alles saam, hierdie update verklaring sê vind al die kolwyntjies in ons kolwyntjie kas, en as daar 'n kolwyntjie wie se kolom CakeIsNice bevat die waarde Vals en CakeType bevat die waarde CHOCOLA, ons wil die spesifieke rye CakeIsNice waarde te werk na True. So, laat ons voort te gaan en uit te voer die verklaring. En nou, ons georganiseer. Al hierdie gepraat van kolwyntjies het my 'n bietjie honger. Ek dink dat ek myself moet help aan die een. Maar as ek eintlik hierdie kolwyntjie eet, moet ten minste het ek ook verwyder sy bestaan  van ons cupcake_cupboard tafel. Om dit te doen, sal ons gebruik maak van die "Delete" stelling. Die "Delete" verklaring kan gebruik word om almal of sommige rye van die tabel te verwyder. As jy wil 'n paar spesifieke ry te verwyder uit die tabel, dan moet jy 'n "waar" klousule maak voorsiening, so spesifiseer 'n kolom wat moet uniek wees aan die ry wat jy wil verwyder. Dit is die sintaksis: DELETE ruimte vanuit die ruimte om ons tafel, cupcake_cupboard, ruimte. Nou, op hierdie punt, wanneer jy so ver in jou delete verklaring jy wil om baie versigtig te wees. Byvoorbeeld, as ek wil hierdie navraag uit te voer, is sonder die verskaffing van 'n paar "Waar" klousule Ek sou al die data verloor in hierdie cupcake_cupboard tafel, maar omdat ek reeds weet dat my koek ID's is uniek, ek sal gebruik die Red Velvet koek ID vir my "Waar" klousule. Waar ruimte ons kolom, CakeID = 1. Want dit is 'n heelgetal waarde daar is geen behoefte om dit omring in aanhalingstekens. So, laat ons voer die verklaring. Wel, nou dat ons het die bestaan ​​van hierdie kolwyntjie uitgewis van ons cupcake_cupboard tafel, ons het net een ding oor: Laat dit verdwyn. Ek Christopher Bartholomew. Dit is CS50.