1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [CHRISTOPHER Bertalan] [Harvard Egyetem] 3 00:00:04,000 --> 00:00:06,000 [EZ CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Szóval, programozó használja adatbázisokat eszközként tárolhatjuk és rendszerezhetjük 5 00:00:11,620 --> 00:00:13,620 kitartó belüli adatok táblázatokat. 6 00:00:13,620 --> 00:00:18,960 Ez azt jelenti, hogy az adatok tárolása a nem felejtő mediánok mint a merevlemez, 7 00:00:18,960 --> 00:00:22,940 és akkor is, ha a számítógép ki van kapcsolva, az adatok még mindig érintetlen. 8 00:00:22,940 --> 00:00:29,530 És, ahogy a programozók, a programokat használja adatbázisok forgatókönyvek, mint tároló 9 00:00:29,530 --> 00:00:32,890 Felhasználói információk webes űrlapok, felnézett leltár, 10 00:00:32,890 --> 00:00:36,210 vagy frissítési információ arról, hogy mi webhelyek megjelenítéséhez. 11 00:00:37,150 --> 00:00:40,070 De hogyan valójában befolyásolja az adatbázisunkban, 12 00:00:40,070 --> 00:00:43,150 vagy mit használ olvasni, tárolni, törölni, 13 00:00:43,150 --> 00:00:46,070 és naprakésszé adataink ezen belül adatbázistáblákat? 14 00:00:47,280 --> 00:00:49,700 Nos, a válasz az, hogy egy speciális típusú adatbázis-nyelv 15 00:00:49,700 --> 00:00:53,400 amely közvetlen kölcsönhatásban adatbázisunkban táblázatokat. 16 00:00:53,400 --> 00:00:56,740 A neve a Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 vagy mit utalok az SQL. 19 00:01:00,740 --> 00:01:05,100 >> Most, [Se-quel], vagy az SQL, nem egy programozási nyelv, 20 00:01:05,100 --> 00:01:08,580 hanem, hogy ez a nyelv, amely a szabványos parancsok 21 00:01:08,580 --> 00:01:13,520 letölteni és manipulálni az adatokat a különböző adatbázis-kezelő rendszerek. 22 00:01:13,520 --> 00:01:17,630 Céljából a CS50, akkor menjen át négy alapvető parancsok: 23 00:01:17,630 --> 00:01:21,210 SELECT, INSERT, frissítésére és törlésére. 24 00:01:21,210 --> 00:01:26,230 Továbbá, akkor használja az adatbázis webes felületen nevű phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 amely telepítve van a készülékre, hogy megírjam a SQL utasítások. 26 00:01:30,830 --> 00:01:33,050 Szóval, hogy segítsen emlékezni ezeket a parancsokat, 27 00:01:33,050 --> 00:01:37,080 Hoztam néhány cupcakes egy szekrényben, hogy segítse a mi forgatókönyveket. 28 00:01:39,650 --> 00:01:42,210 Mondja el, hogy van egy cupcake adatbázisában, 29 00:01:42,210 --> 00:01:44,490 hol tárolja az összes információt a cupcakes. 30 00:01:44,490 --> 00:01:48,220 Most, adatbázisok tartalmazhatnak számos táblát 31 00:01:48,220 --> 00:01:50,950 és a táblázatok maguk is tartalmaz sok oszlopokat. 32 00:01:50,950 --> 00:01:57,020 Belül a cupcake adatbázisában, van egy asztal nevű cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Ezt a táblát tárol minden információt cupcakes 34 00:02:00,500 --> 00:02:02,990 amelyek, nos, a szekrényben. 35 00:02:02,990 --> 00:02:07,770 Az oszlopok, amelyek belsejében a táblázat jelentik az attribútumok egy cupcake. 36 00:02:07,770 --> 00:02:14,560 Így például, az a cupcake_cupboard oszlopok 37 00:02:14,560 --> 00:02:15,920 Cake ID, CakeType, CakeColor és CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Ez a logikai-típusú oszlopot használják annak megállapítására, hogy a torta szép vagy nem szép. 39 00:02:23,040 --> 00:02:26,560 Fogunk kezdeni írni egy select nyilatkozatot. 40 00:02:26,560 --> 00:02:32,160 Válassza ki a nyilatkozatokat használják adatokat lekérdezni egy adott adatbázis tábla. 41 00:02:32,160 --> 00:02:34,890 Ebben az esetben szeretnénk tudni mindent 42 00:02:34,890 --> 00:02:39,080 az összes cupcakes, hogy létezik a mi szekrényben. 43 00:02:39,080 --> 00:02:48,670 A szintaxis ezt a "Select" Space Star, vagy a *, a tér az űrből a tábla, 44 00:02:48,670 --> 00:02:52,050 ami cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Menjünk előre, és végrehajtja azt. 46 00:02:56,670 --> 00:03:00,140 >> Amint látjuk, ezek mind a cupcakes a mi szekrényben. 47 00:03:00,140 --> 00:03:05,110 Fontos megjegyezni, hogy a *, vagy a csillag, egy helyettesítő karakter 48 00:03:05,110 --> 00:03:08,830 hogy jelöli a összegyűjtését az oszlopok néhány asztalnál. 49 00:03:08,830 --> 00:03:13,650 Általában tudjuk elérni egy adott oszlop vagy oszlopok 50 00:03:13,650 --> 00:03:16,950 helyett * az aktuális oszlop neve. 51 00:03:16,950 --> 00:03:21,220 Ha azt akarjuk, több oszlopot, de nem minden, el tudjuk érni ezt a 52 00:03:21,220 --> 00:03:25,620 írásban az oszlop nevét határoló minden oszlop egy vessző. 53 00:03:25,620 --> 00:03:28,620 Például, nézzük csak letölteni a CakeId és CakeType a cupcake_cupboard táblázatban. 54 00:03:28,620 --> 00:03:38,370 A szintaxis ezt is: SELECT hely CakeID vessző 55 00:03:38,370 --> 00:03:44,370 CakeType tér a mi asztal, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Menjünk előre, és hajtsa végre ezt. 57 00:03:49,340 --> 00:03:52,670 És itt, most csak a két oszlop általunk megadott 58 00:03:52,670 --> 00:03:54,670 minden cupcake a mi szekrényben. 59 00:03:54,670 --> 00:03:57,710 Azt is szűkítheti a lekérdezés eredményét megadásával 60 00:03:57,710 --> 00:04:00,910 A "hol" záradék csak miután a tábla nevét. 61 00:04:02,000 --> 00:04:05,410 Ha például úgy tűnik, hogy egy a mi cupcake szekrényben 62 00:04:05,410 --> 00:04:08,660 azaz, nos, nem is olyan szép látszó. 63 00:04:08,660 --> 00:04:13,950 Találjuk ki valamennyi cupcakes a mi szekrényben, amelyek, nos, nem olyan szép látszó 64 00:04:13,950 --> 00:04:16,110 a "hol" záradékot. 65 00:04:16,110 --> 00:04:26,390 A szintaxis ezt is: SELECT * tér tér tér cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 hely, ahol teret a feltételes oszlop, ebben az esetben CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 és a logikai értéke False. 68 00:04:36,900 --> 00:04:42,750 Fontos megjegyezni, hogy ha használ vonósok, csatolnia kell az aposztrófot. 69 00:04:42,750 --> 00:04:49,620 Ez igaz minden karakterláncok SQL, vagy az SQL adatbázis értelemben változat karakterek 70 00:04:49,620 --> 00:04:51,620 nevei Varchar adattípus. 71 00:04:51,620 --> 00:04:57,660 Ebben az esetben mi használ igaz vagy hamis, amely egy logikai érték, és nem egy string. 72 00:04:59,120 --> 00:05:00,660 Menjünk előre, és ezt a parancsot. 73 00:05:00,660 --> 00:05:05,340 >> Lo és íme, ez a helyzet, hogy van 1 csokoládé 74 00:05:05,340 --> 00:05:07,920 nem annyira szép cupcake a mi szekrényben. 75 00:05:09,620 --> 00:05:11,460 Ezután fogunk írni betét nyilatkozat. 76 00:05:11,460 --> 00:05:15,560 Insert kijelentések használják beszúrni vagy add 77 00:05:15,560 --> 00:05:17,770 további sorok adatokat az adatbázis tábla. 78 00:05:17,770 --> 00:05:23,160 Revisiting a forgatókönyv, tegyük fel, hogy már csak tett egy új cupcake. 79 00:05:25,910 --> 00:05:30,080 Mivel mi nagyon szervezett cupcake evők, mi kell majd beilleszteni az új cupcake 80 00:05:30,080 --> 00:05:32,330 a mi cupcake_cupboard táblázatban. 81 00:05:32,330 --> 00:05:40,690 A szintaxis erre a következő: Szóköz űrbe a táblázat, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, hely (, 83 00:05:46,830 --> 00:05:51,060 és itt adja meg az oszlopok nevét, vesszővel elválasztva, 84 00:05:51,060 --> 00:05:59,790 CakeType vessző CakeColor comma CakeIsNice) space. 85 00:05:59,790 --> 00:06:06,540 Ezt követően mi írjuk a szót VALUES tér (és itt 86 00:06:06,540 --> 00:06:12,170 belépünk az értékét minden oszlop esetében, szintén vesszővel elválasztva. 87 00:06:12,170 --> 00:06:17,830 Egy idézet, mert minden Varchar értékek fogjuk őket körülvevő aposztrófot, 88 00:06:17,830 --> 00:06:26,780 Peanut Butter "vessző" világos gesztenyebarna "vessző True. 89 00:06:26,780 --> 00:06:30,480 Nos, ez fontos, hogy minden sor egy egyedi szám azonosítja magát. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing egy oszlop biztosítja ezt 91 00:06:33,660 --> 00:06:37,410  "Nincs két azonos azonosítók valaha is létezni ebben a táblázatban." 92 00:06:37,410 --> 00:06:39,480 Menjünk előre, és végrehajtani. 93 00:06:39,480 --> 00:06:45,380 Ott vagyunk, minden szervezett. 94 00:06:49,720 --> 00:06:52,100 >> A következő SQL utasítás, hogy mi fog írni egy frissítést nyilatkozat. 95 00:06:52,100 --> 00:06:55,650 A frissítés utasítás lehet módosításához használt adat egy oszlopon belül 96 00:06:55,650 --> 00:06:58,440 minden létező sor az adatbázis táblában. 97 00:06:59,670 --> 00:07:03,420 Korábban a forgatókönyv, egy select állítás, azonosítottuk a cupcake 98 00:07:03,420 --> 00:07:08,300 a mi cupcake_cupboard asztal, amelynek CakeIsNice értéke False. 99 00:07:08,300 --> 00:07:12,050 Tegyük fel, hogy míg a mogyoróvajat cupcake volt a sütő, 100 00:07:12,050 --> 00:07:15,790 készült a mi nem-annyira-jó cupcake very nice. 101 00:07:18,020 --> 00:07:22,240 Mivel így kivételesen szervezi, azt akarjuk, hogy cupcake, hogy tükrözze ezt az értéket 102 00:07:22,240 --> 00:07:24,240 a mi cupcake_cupboard táblázatban. 103 00:07:24,240 --> 00:07:28,710 Ezért hadd frissítjük csokoládé cupcake az adatbázisban, hogy tükrözze ezt. 104 00:07:28,710 --> 00:07:39,720 A szintaxis: UPDATE hely a tábla, cupcake_cupboard, hely SET tér 105 00:07:39,720 --> 00:07:44,240 az oszlopot, hogy módosítani kívánja, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Aztán itt helyezzük az új értéket True helyet. 107 00:07:49,210 --> 00:07:54,290 Nos, azért, mert nem akarjuk, hogy frissíteni minden sort ezzel az értékkel, 108 00:07:54,290 --> 00:07:57,400 azt akarjuk, hogy a "hol" záradék, amely pontosan nekünk 109 00:07:57,400 --> 00:07:59,830 a pontos sor, hogy szeretnénk módosítani. 110 00:07:59,830 --> 00:08:03,690 Ebben az esetben tudjuk, hogy csak egy cupcake 111 00:08:03,690 --> 00:08:06,670 hogy van egy CakeIsNice értéke False. 112 00:08:06,670 --> 00:08:11,030 Továbbá, mi is arról, hogy mi a helyes frissítése sor 113 00:08:11,030 --> 00:08:13,030 segítségével "És" záradékot. 114 00:08:14,340 --> 00:08:17,270 Mi az "És" záradék, hogy finomítsa a lekérdezést tovább. 115 00:08:17,270 --> 00:08:20,380 Ebben az esetben, mivel tudjuk, hogy a cupcake a csokoládé, 116 00:08:20,380 --> 00:08:23,160 fogjuk használni ezt a CakeType oszlopban. 117 00:08:23,160 --> 00:08:31,500 Ahol a hely a feltételes tere CakeIsNice space = False, 118 00:08:31,500 --> 00:08:38,330 és űrkutatás CakeType = 'CHOCOLATE. 119 00:08:38,330 --> 00:08:41,880 Szóval, amivel az egészet együtt, ez a frissítés nyilatkozat szerint 120 00:08:41,880 --> 00:08:44,670 megtalálja a cupcakes a mi cupcake szekrény, 121 00:08:44,670 --> 00:08:50,520 és ha van egy cupcake, amelynek CakeIsNice oszlop tartalmazza azt az értéket False 122 00:08:50,520 --> 00:08:54,130 és CakeType értéket tartalmazó csokoládé, 123 00:08:54,130 --> 00:08:58,240 szeretnénk frissíteni az egyedi sorok CakeIsNice értéke True. 124 00:08:58,240 --> 00:09:01,140 Szóval, menjünk előre, és végrehajtja az utasítást. 125 00:09:03,860 --> 00:09:05,860 És most, mi szervezett. 126 00:09:06,650 --> 00:09:09,220 >> Mindez beszélni cupcakes tett nekem egy kicsit éhes. 127 00:09:09,220 --> 00:09:11,360 Azt hiszem, hozzá kell járulnia magamnak egyet. 128 00:09:11,360 --> 00:09:17,670 De ha tényleg ezt eszik cupcake, én legalább is nem távolíthatja el annak létezését 129 00:09:17,670 --> 00:09:19,670  a mi cupcake_cupboard táblázatban. 130 00:09:20,650 --> 00:09:22,590 Ehhez fogjuk használni a "Törlés" nyilatkozatot. 131 00:09:22,590 --> 00:09:27,400 A "Delete" utasítás lehet használni, hogy távolítsa el az összes vagy néhány sort a táblázatból. 132 00:09:27,400 --> 00:09:29,920 Ha szeretné eltávolítani a bizonyos sort a táblázatban, 133 00:09:29,920 --> 00:09:34,360 akkor meg kell adni a "hol" záradék, ami meghatározza egy oszlop 134 00:09:34,360 --> 00:09:37,660 hogy egyedinek kell lennie a sor, hogy az eltávolítani kívánt. 135 00:09:37,660 --> 00:09:47,370 Ez a szintaxis: DELETE FROM hely hely a tábla, cupcake_cupboard, teret. 136 00:09:47,370 --> 00:09:51,760 Most, ezen a ponton, amikor az eddig a delete nyilatkozat 137 00:09:51,760 --> 00:09:54,240 azt szeretné, hogy nagyon óvatos. 138 00:09:54,240 --> 00:09:59,970 Például, ha azt akarom futtatni ezt a lekérdezés nélkül bemutattak néhány "Ha" záradék 139 00:09:59,970 --> 00:10:04,500 Szeretném elveszíti az összes adatot ezen cupcake_cupboard táblázatban, 140 00:10:04,500 --> 00:10:09,590 hanem azért, mert már tudom, hogy az én sütemény azonosítók egyediek, fogom használni 141 00:10:09,590 --> 00:10:12,410 A Red Velvet tortát ID for my "Ha" záradékot. 142 00:10:14,550 --> 00:10:20,670 Ahol a hely a mi oszlopban CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Mert ez egy egész érték nincs szükség, hogy körül azt aposztrófot. 144 00:10:25,010 --> 00:10:27,020 Szóval, most végre a nyilatkozatát. 145 00:10:33,560 --> 00:10:35,990 Nos, most, hogy már letörölte hogy létezik ez a cupcake 146 00:10:35,990 --> 00:10:40,360 a mi cupcake_cupboard asztal, már csak egy dolog maradt: 147 00:10:41,680 --> 00:10:43,680 Legyen eltűnnek. 148 00:10:43,680 --> 00:10:46,990 Én Christopher Bertalan. Ez CS50.