1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER BARTHOLOMEW] [Harvard Universiteit] 3 00:00:04,000 --> 00:00:06,000 [HIERDIE IS CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 So, programmeerders gebruik databasisse as 'n instrument om te stoor en organiseer 5 00:00:11,620 --> 00:00:13,620 ons aanhoudende data binne tabelle. 6 00:00:13,620 --> 00:00:18,960 Dit beteken dat jou data gestoor word op nie-vlugtige mediane soos 'n hardeskyf, 7 00:00:18,960 --> 00:00:22,940 en selfs wanneer die rekenaar af is, die data is nog ongeskonde. 8 00:00:22,940 --> 00:00:29,530 En as programmeerders, ons programme van databasisse gebruik maak vir die scenario's soos stoor 9 00:00:29,530 --> 00:00:32,890 gebruiker inligting van die web vorms, op soek na voorraad, 10 00:00:32,890 --> 00:00:36,210 of die opdatering van inligting oor watter sites vertoon. 11 00:00:37,150 --> 00:00:40,070 Maar hoe ons interaksie eintlik met ons databasis, 12 00:00:40,070 --> 00:00:43,150 of wat gebruik ons ​​om te lees, te stoor, te verwyder, 13 00:00:43,150 --> 00:00:46,070 en werk ons ​​data in hierdie databasis tabelle? 14 00:00:47,280 --> 00:00:49,700 Wel, die antwoord is dat ons 'n spesiale soort van databasis taal 15 00:00:49,700 --> 00:00:53,400 wat direk in wisselwerking met ons databasis tabelle. 16 00:00:53,400 --> 00:00:56,740 Dit se naam is Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 of wat ek verwys as SQL. 19 00:01:00,740 --> 00:01:05,100 >> Nou, [Se-Quel], of SQL, is nie 'n programmeertaal, 20 00:01:05,100 --> 00:01:08,580 maar in plaas daarvan, dit is 'n taal wat 'n standaard stel van opdragte 21 00:01:08,580 --> 00:01:13,520 te haal en te manipuleer data uit 'n verskeidenheid van databasis-bestuurstelsels. 22 00:01:13,520 --> 00:01:17,630 Vir die doel van CS50, sal ons gaan oor vier basiese opdragte: 23 00:01:17,630 --> 00:01:21,210 kies, plaas, werk, en verwyder. 24 00:01:21,210 --> 00:01:26,230 Verder, sal ons gebruik maak van 'n databasis web koppelvlak genoem phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 wat op die toestel geïnstalleer ons SQL statements te skryf. 26 00:01:30,830 --> 00:01:33,050 So, om jou te help onthou hierdie opdragte, 27 00:01:33,050 --> 00:01:37,080 Ek het 'n paar kolwyntjies in 'n kas te help met ons scenario's. 28 00:01:39,650 --> 00:01:42,210 Sê jy het 'n kolwyntjie se databasis, 29 00:01:42,210 --> 00:01:44,490 waar jy al die inligting oor jou kolwyntjies stoor. 30 00:01:44,490 --> 00:01:48,220 Nou kan databasisse bevat baie tafels 31 00:01:48,220 --> 00:01:50,950 en die tafels self kan bevat veel kolomme. 32 00:01:50,950 --> 00:01:57,020 Binne ons kolwyntjie se databasis, ons het 'n tabel genaamd cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Hierdie tabel sal gebruik word om al die inligting oor kolwyntjies te stoor 34 00:02:00,500 --> 00:02:02,990 dié is goed, in jou kas. 35 00:02:02,990 --> 00:02:07,770 Die kolomme wat binne-in jou tabel verteenwoordig die eienskappe van 'n kolwyntjie. 36 00:02:07,770 --> 00:02:14,560 Byvoorbeeld, die cupcake_cupboard se kolomme 37 00:02:14,560 --> 00:02:15,920 Cake ID, CakeType, CakeColor en CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Hierdie boolean-getikte kolom word gebruik om te bepaal of die koek is mooi of nie mooi nie. 39 00:02:23,040 --> 00:02:26,560 Ons gaan om te begin met die skryf van 'n select statement. 40 00:02:26,560 --> 00:02:32,160 Kies state word gebruik om data van 'n bepaalde databasistabel te haal. 41 00:02:32,160 --> 00:02:34,890 In hierdie scenario, ons wil alles weet 42 00:02:34,890 --> 00:02:39,080 oor al die kolwyntjies wat bestaan ​​in ons kas. 43 00:02:39,080 --> 00:02:48,670 Die sintaksis om dit te doen, is "Select" ruimte ster, of *, ruimte vanuit die ruimte ons tafel, 44 00:02:48,670 --> 00:02:52,050 wat cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Laat voort te gaan en uit te voer dat. 46 00:02:56,670 --> 00:03:00,140 >> Soos ons kan sien, dit is al die kolwyntjies in ons kas. 47 00:03:00,140 --> 00:03:05,110 Dit is belangrik om daarop te let dat *, of asterisk, is 'n wild card karakter 48 00:03:05,110 --> 00:03:08,830 wat dui op die versameling van al die kolomme van 'n paar tafel. 49 00:03:08,830 --> 00:03:13,650 Normaalweg kan ons toegang tot 'n spesifieke kolom of kolomme 50 00:03:13,650 --> 00:03:16,950 deur * met die werklike kolom naam. 51 00:03:16,950 --> 00:03:21,220 As ons wil verskeie kolomme, maar nie almal nie, kan ons bereik 52 00:03:21,220 --> 00:03:25,620 deur die skryf van die kolom name afbakening van elke kolom deur 'n komma. 53 00:03:25,620 --> 00:03:28,620 Byvoorbeeld, laat ons net haal die CakeId en CakeType in die cupcake_cupboard tafel. 54 00:03:28,620 --> 00:03:38,370 Die sintaksis om dit te doen is: SELECT ruimte CakeID komma 55 00:03:38,370 --> 00:03:44,370 Van ons tafel, cupcake_cupboard CakeType ruimte. 56 00:03:44,370 --> 00:03:46,370 Laat voort te gaan en uit te voer. 57 00:03:49,340 --> 00:03:52,670 En hier, ons het nou net die twee kolomme gespesifiseer 58 00:03:52,670 --> 00:03:54,670 vir elke kolwyntjie in ons kas. 59 00:03:54,670 --> 00:03:57,710 Ons kan ook ons ​​soektog resultate te verfyn deur die spesifiseer van 60 00:03:57,710 --> 00:04:00,910 Die "waar" klousule net na die tabel naam. 61 00:04:02,000 --> 00:04:05,410 Byvoorbeeld, daar blyk te wees 'n kolwyntjie in ons kas 62 00:04:05,410 --> 00:04:08,660 dit is goed, nie so mooi kyk. 63 00:04:08,660 --> 00:04:13,950 Kom ons uit te vind al die kolwyntjies in ons kas wat is goed, nie so lekker op soek 64 00:04:13,950 --> 00:04:16,110 deur gebruik te maak van die "waar" klousule. 65 00:04:16,110 --> 00:04:26,390 Die sintaksis om dit te doen is: SELECT ruimte * ruimte vanuit die ruimte cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 ruimte waar ruimte ons voorwaardelike kolom, in hierdie geval CakeIsNice = 67 00:04:34,080 --> 00:04:36,900 en die Boole-waarde van Vals. 68 00:04:36,900 --> 00:04:42,750 Dit is belangrik om daarop te let dat as jy met behulp van toue, jy moet dit sluit in 'n enkele aanhalingstekens. 69 00:04:42,750 --> 00:04:49,620 Dit is waar vir alle stringe in SQL, of, in SQL databasis, variant karakters 70 00:04:49,620 --> 00:04:51,620 bekend as varchar data type. 71 00:04:51,620 --> 00:04:57,660 In hierdie geval, is ons met behulp Waar of Onwaar, wat is 'n Boolese waarde en nie 'n string. 72 00:04:59,120 --> 00:05:00,660 Laat voort te gaan en uit te voer hierdie opdrag. 73 00:05:00,660 --> 00:05:05,340 >> Kyk en kyk, dit is die geval dat ons het 1 sjokolade 74 00:05:05,340 --> 00:05:07,920 nie so lekker kolwyntjie in ons kas. 75 00:05:09,620 --> 00:05:11,460 Volgende, gaan ons 'n insetsel stelling te skryf. 76 00:05:11,460 --> 00:05:15,560 Insert state word gebruik in te voeg of voeg 77 00:05:15,560 --> 00:05:17,770 addisionele rye van data in jou databasis tabel. 78 00:05:17,770 --> 00:05:23,160 Ons weer na ons scenario, kom ons veronderstel dat ons nie net gemaak het 'n splinternuwe kolwyntjie. 79 00:05:25,910 --> 00:05:30,080 Aangesien ons is baie kolwyntjie eters georganiseer, gaan ons hierdie nuwe kolwyntjie te voeg 80 00:05:30,080 --> 00:05:32,330 in ons cupcake_cupboard tafel. 81 00:05:32,330 --> 00:05:40,690 Die sintaksis om dit te doen, is dit: Plaas die ruimte in die ruimte ons tafel, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, ruimte ( 83 00:05:46,830 --> 00:05:51,060 en hier is ons spesifiseer die kolomme name, geskei deur 'n komma, 84 00:05:51,060 --> 00:05:59,790 CakeType komma CakeColor komma CakeIsNice) ruimte. 85 00:05:59,790 --> 00:06:06,540 Na aanleiding van hierdie, ons skryf die woord waardes ruimte (en hier 86 00:06:06,540 --> 00:06:12,170 gaan ons die waarde vir elke kolom, ook geskei deur 'n komma. 87 00:06:12,170 --> 00:06:17,830 Enkellopend quote, want hulle is almal varchar waardes sal ons hulle omring in 'n enkele aanhalingstekens, 88 00:06:17,830 --> 00:06:26,780 Grondboontjiebotter "komma" ligbruin komma True. 89 00:06:26,780 --> 00:06:30,480 Nou, is dit belangrik om elke ry 'n unieke nommer gee om homself te identifiseer. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing 'n kolom bied dit as 91 00:06:33,660 --> 00:06:37,410  "Geen twee dieselfde IDs ooit kan bestaan ​​in hierdie tabel." 92 00:06:37,410 --> 00:06:39,480 Kom ons voort te gaan en uit te voer. 93 00:06:39,480 --> 00:06:45,380 Daar gaan ons, alle georganiseerde. 94 00:06:49,720 --> 00:06:52,100 >> Die volgende SQL-stelling wat ons skryf, is 'n update verklaring. 95 00:06:52,100 --> 00:06:55,650 Die update verklaring kan gebruik word om data te verander in 'n kolom 96 00:06:55,650 --> 00:06:58,440 vir enige bestaande ry in jou databasistabel. 97 00:06:59,670 --> 00:07:03,420 Vroeër in ons scenario, die gebruik van 'n uitgesoekte verklaring, ons geïdentifiseer het 'n kolwyntjie 98 00:07:03,420 --> 00:07:08,300 binne ons cupcake_cupboard se tafel wie se CakeIsNice waarde vals was. 99 00:07:08,300 --> 00:07:12,050 Kom ons veronderstel dat terwyl ons grondboontjiebotter kolwyntjie in die oond was, 100 00:07:12,050 --> 00:07:15,790 ons het ons nie-so-mooi kolwyntjie baie mooi. 101 00:07:18,020 --> 00:07:22,240 Word so buitengewoon georganiseer, ons wil ons kolwyntjie om hierdie waarde te weerspieël 102 00:07:22,240 --> 00:07:24,240 in ons cupcake_cupboard tafel. 103 00:07:24,240 --> 00:07:28,710 Daarom, laat ons werk ons ​​sjokolade kolwyntjie in die databasis om dit te weerspieël. 104 00:07:28,710 --> 00:07:39,720 Die kode is: UPDATE ruimte om ons tafel, cupcake_cupboard, ruimte SET ruimte 105 00:07:39,720 --> 00:07:44,240 die kolom wat ons wil verander, CakeIsNice. 106 00:07:44,240 --> 00:07:49,210 Dan is hier ons plaas ons nuwe waarde True ruimte. 107 00:07:49,210 --> 00:07:54,290 Nou, omdat ons nie wil hê dat alle rye met hierdie waarde te werk, 108 00:07:54,290 --> 00:07:57,400 ons wil 'n "waar" klousule wat ons sal leer ken, om voorsiening te maak 109 00:07:57,400 --> 00:07:59,830 na die presiese ry wat ons wil verander. 110 00:07:59,830 --> 00:08:03,690 In hierdie geval, ons weet dat daar is net een kolwyntjie 111 00:08:03,690 --> 00:08:06,670 wat 'n CakeIsNice waarde van Vals. 112 00:08:06,670 --> 00:08:11,030 Verder, ons sal ook verseker dat ons die korrekte ry word opgedateer 113 00:08:11,030 --> 00:08:13,030 deur gebruik te maak van die "en" klousule. 114 00:08:14,340 --> 00:08:17,270 Ons gebruik die "en" klousule ons navraag verder te verfyn. 115 00:08:17,270 --> 00:08:20,380 In hierdie geval, omdat ons weet dat die kolwyntjie is sjokolade, 116 00:08:20,380 --> 00:08:23,160 sal ons dit gebruik CakeType kolom. 117 00:08:23,160 --> 00:08:31,500 Waar ruimte ons voorwaardelike kolomruimte CakeIsNice ruimte = False, 118 00:08:31,500 --> 00:08:38,330 en ruimte CakeType = "sjokolade." 119 00:08:38,330 --> 00:08:41,880 So, om dit alles saam, hierdie update verklaring sê 120 00:08:41,880 --> 00:08:44,670 vind al die kolwyntjies in ons kolwyntjie kas, 121 00:08:44,670 --> 00:08:50,520 en as daar 'n kolwyntjie wie se kolom CakeIsNice bevat die waarde Vals 122 00:08:50,520 --> 00:08:54,130 en CakeType bevat die waarde CHOCOLA, 123 00:08:54,130 --> 00:08:58,240 ons wil die spesifieke rye CakeIsNice waarde te werk na True. 124 00:08:58,240 --> 00:09:01,140 So, laat ons voort te gaan en uit te voer die verklaring. 125 00:09:03,860 --> 00:09:05,860 En nou, ons georganiseer. 126 00:09:06,650 --> 00:09:09,220 >> Al hierdie gepraat van kolwyntjies het my 'n bietjie honger. 127 00:09:09,220 --> 00:09:11,360 Ek dink dat ek myself moet help aan die een. 128 00:09:11,360 --> 00:09:17,670 Maar as ek eintlik hierdie kolwyntjie eet, moet ten minste het ek ook verwyder sy bestaan 129 00:09:17,670 --> 00:09:19,670  van ons cupcake_cupboard tafel. 130 00:09:20,650 --> 00:09:22,590 Om dit te doen, sal ons gebruik maak van die "Delete" stelling. 131 00:09:22,590 --> 00:09:27,400 Die "Delete" verklaring kan gebruik word om almal of sommige rye van die tabel te verwyder. 132 00:09:27,400 --> 00:09:29,920 As jy wil 'n paar spesifieke ry te verwyder uit die tabel, 133 00:09:29,920 --> 00:09:34,360 dan moet jy 'n "waar" klousule maak voorsiening, so spesifiseer 'n kolom 134 00:09:34,360 --> 00:09:37,660 wat moet uniek wees aan die ry wat jy wil verwyder. 135 00:09:37,660 --> 00:09:47,370 Dit is die sintaksis: DELETE ruimte vanuit die ruimte om ons tafel, cupcake_cupboard, ruimte. 136 00:09:47,370 --> 00:09:51,760 Nou, op hierdie punt, wanneer jy so ver in jou delete verklaring 137 00:09:51,760 --> 00:09:54,240 jy wil om baie versigtig te wees. 138 00:09:54,240 --> 00:09:59,970 Byvoorbeeld, as ek wil hierdie navraag uit te voer, is sonder die verskaffing van 'n paar "Waar" klousule 139 00:09:59,970 --> 00:10:04,500 Ek sou al die data verloor in hierdie cupcake_cupboard tafel, 140 00:10:04,500 --> 00:10:09,590 maar omdat ek reeds weet dat my koek ID's is uniek, ek sal gebruik 141 00:10:09,590 --> 00:10:12,410 die Red Velvet koek ID vir my "Waar" klousule. 142 00:10:14,550 --> 00:10:20,670 Waar ruimte ons kolom, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Want dit is 'n heelgetal waarde daar is geen behoefte om dit omring in aanhalingstekens. 144 00:10:25,010 --> 00:10:27,020 So, laat ons voer die verklaring. 145 00:10:33,560 --> 00:10:35,990 Wel, nou dat ons het die bestaan ​​van hierdie kolwyntjie uitgewis 146 00:10:35,990 --> 00:10:40,360 van ons cupcake_cupboard tafel, ons het net een ding oor: 147 00:10:41,680 --> 00:10:43,680 Laat dit verdwyn. 148 00:10:43,680 --> 00:10:46,990 Ek Christopher Bartholomew. Dit is CS50.