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 UNIVERSITY] 3 00:00:04,000 --> 00:00:06,000 [DIESES IST CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 So verwenden Programmierer Datenbanken als ein Werkzeug zum Speichern und Organisieren 5 00:00:11,620 --> 00:00:13,620 unserer persistenten Daten in Tabellen. 6 00:00:13,620 --> 00:00:18,960 Dies bedeutet, dass Ihre Daten auf nicht-flüchtigen Mediane wie einer Festplatte gespeichert ist, 7 00:00:18,960 --> 00:00:22,940 und selbst wenn der Computer ausgeschaltet ist, sind die Daten noch intakt. 8 00:00:22,940 --> 00:00:29,530 Und als Programmierer, nutzen unsere Programme Datenbanken für Szenarien wie das Speichern 9 00:00:29,530 --> 00:00:32,890 Benutzer-Informationen aus Web-Formularen, Nachschlagen Inventar, 10 00:00:32,890 --> 00:00:36,210 oder Aktualisierung von Informationen über das, was Websites anzuzeigen. 11 00:00:37,150 --> 00:00:40,070 Aber woher wissen wir eigentlich mit unserer Datenbank zu interagieren, 12 00:00:40,070 --> 00:00:43,150 oder was wir verwenden, um zu lesen, zu speichern, zu löschen, 13 00:00:43,150 --> 00:00:46,070 und aktualisieren unsere Daten innerhalb dieser Datenbanktabellen? 14 00:00:47,280 --> 00:00:49,700 Nun, die Antwort ist, dass wir eine spezielle Art von Datenbank-Sprache verwenden, 15 00:00:49,700 --> 00:00:53,400 was interagiert direkt mit unserer Datenbank-Tabellen. 16 00:00:53,400 --> 00:00:56,740 Sein Name ist Query Language Strukturierte, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 oder was ich als SQL. 19 00:01:00,740 --> 00:01:05,100 >> Nun, [Se-quel] oder SQL ist keine Programmiersprache, 20 00:01:05,100 --> 00:01:08,580 sondern, es ist eine Sprache, die einen Standard-Satz von Befehlen bietet 21 00:01:08,580 --> 00:01:13,520 zum Abrufen und Bearbeiten von Daten aus einer Vielzahl von Datenbank-Management-Systeme. 22 00:01:13,520 --> 00:01:17,630 Für die Zwecke der CS50, wir gehen über vier grundlegende Befehle: 23 00:01:17,630 --> 00:01:21,210 Auswählen, Einfügen, Aktualisieren und Löschen. 24 00:01:21,210 --> 00:01:26,230 Darüber hinaus werden wir nutzen eine Datenbank Web-Interface namens phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 die auf dem Gerät installiert werden, um unsere SQL-Anweisungen zu schreiben. 26 00:01:30,830 --> 00:01:33,050 Also, zu helfen, erinnern Sie sich diese Befehle, 27 00:01:33,050 --> 00:01:37,080 Ich habe einige Cupcakes in einem Schrank mit unseren Szenarien unterstützen brachte. 28 00:01:39,650 --> 00:01:42,210 Angenommen, Sie haben einen kleinen Kuchen-Datenbank, 29 00:01:42,210 --> 00:01:44,490 wo Sie speichern alle Informationen über Ihre Cupcakes. 30 00:01:44,490 --> 00:01:48,220 Jetzt können Datenbanken enthalten viele Tabellen 31 00:01:48,220 --> 00:01:50,950 und die Tabellen selbst können viele Spalten. 32 00:01:50,950 --> 00:01:57,020 In unserem Kuchen-Datenbank, haben wir eine Tabelle namens cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Diese Tabelle wird verwendet, um alle Informationen über Cupcakes speichern 34 00:02:00,500 --> 00:02:02,990 , dass es gut, in Ihrem Schrank. 35 00:02:02,990 --> 00:02:07,770 Die Spalten, die in Ihrer Tabelle sind vertreten die Attribute eines Cupcake. 36 00:02:07,770 --> 00:02:14,560 Beispielsweise sind die Spalten der cupcake_cupboard 37 00:02:14,560 --> 00:02:15,920 Kuchen ID, CakeType, CakeColor und CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Dieser boolean typisierte Spalte wird verwendet, um festzustellen, ob der Kuchen schön oder nicht schön. 39 00:02:23,040 --> 00:02:26,560 Wir werden mit dem Schreiben einer select-Anweisung beginnen. 40 00:02:26,560 --> 00:02:32,160 Select-Anweisungen werden verwendet, um Daten eines bestimmten Datenbank-Tabelle abzurufen. 41 00:02:32,160 --> 00:02:34,890 In diesem Szenario wollen wir alles wissen 42 00:02:34,890 --> 00:02:39,080 über alle Cupcakes, die in unserem Schrank vorhanden. 43 00:02:39,080 --> 00:02:48,670 Die Syntax dafür ist "Select" space star, oder *, Raum aus dem Weltraum unserem Tisch, 44 00:02:48,670 --> 00:02:52,050 das ist cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Lasst uns weitermachen und auszuführen, dass. 46 00:02:56,670 --> 00:03:00,140 >> Wie wir sehen können, sind diese alle die Cupcakes in unserem Schrank. 47 00:03:00,140 --> 00:03:05,110 Es ist wichtig, dass *, oder Sternchen beachten, ist ein Platzhalterzeichen 48 00:03:05,110 --> 00:03:08,830 das bedeutet die Sammlung aller Spalten einiger Tisch. 49 00:03:08,830 --> 00:03:13,650 Normalerweise können wir auf eine bestimmte Spalte oder Spalten 50 00:03:13,650 --> 00:03:16,950 durch Ersetzen * mit dem tatsächlichen Spaltennamen. 51 00:03:16,950 --> 00:03:21,220 Wenn wir mehrere Spalten, wollen aber nicht alle können wir das erreichen 52 00:03:21,220 --> 00:03:25,620 indem die Spaltennamen Abgrenzung jede Spalte durch ein Komma. 53 00:03:25,620 --> 00:03:28,620 Zum Beispiel, lasst uns nur rufen die CakeId und CakeType im cupcake_cupboard Tisch. 54 00:03:28,620 --> 00:03:38,370 Die Syntax dafür ist: SELECT Raum CakeID Komma 55 00:03:38,370 --> 00:03:44,370 CakeType Raum von unserem Tisch, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Fahren wir fort und führen Sie dies. 57 00:03:49,340 --> 00:03:52,670 Und hier haben wir jetzt nur die beiden Spalten wir angegeben 58 00:03:52,670 --> 00:03:54,670 für jeden Kuchen in unserem Schrank. 59 00:03:54,670 --> 00:03:57,710 Wir können auch verfeinern unsere Abfrage-Ergebnisse durch die Angabe 60 00:03:57,710 --> 00:04:00,910 "Wo"-Klausel unmittelbar nach dem Tabellennamen. 61 00:04:02,000 --> 00:04:05,410 Zum Beispiel scheint es einen Kuchen in unserem Schrank sein 62 00:04:05,410 --> 00:04:08,660 das ist gut, nicht so gut aus. 63 00:04:08,660 --> 00:04:13,950 Lasst uns herausfinden, all die Cupcakes in unserem Schrank,, gut, nicht so gut aussehende 64 00:04:13,950 --> 00:04:16,110 mit dem "Wo"-Klausel. 65 00:04:16,110 --> 00:04:26,390 Die Syntax dafür ist: SELECT Raum * Raum aus dem Weltraum cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 Raum, in dem Raum unserer bedingten Spalte, in diesem Fall CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 und die booleschen Wert False. 68 00:04:36,900 --> 00:04:42,750 Es ist wichtig zu beachten, dass, wenn Sie Zeichenfolgen, müssen Sie ihn in einfache Anführungszeichen setzen. 69 00:04:42,750 --> 00:04:49,620 Dies gilt für alle Zeichenfolgen in SQL wahr, oder, in SQL-Datenbank Begriffe, Zeichen-Variante 70 00:04:49,620 --> 00:04:51,620 bekannt als Varchar-Datentyp. 71 00:04:51,620 --> 00:04:57,660 In diesem Fall werden wir mit True oder False, das ist ein boolean-Wert und kein String. 72 00:04:59,120 --> 00:05:00,660 Lasst uns weitermachen und diesen Befehl ausführen. 73 00:05:00,660 --> 00:05:05,340 >> Und siehe da, es ist der Fall, dass wir ein Schokolade haben 74 00:05:05,340 --> 00:05:07,920 nicht so schön Kuchen in unserem Schrank. 75 00:05:09,620 --> 00:05:11,460 Als nächstes werden wir eine Insert-Anweisung zu schreiben. 76 00:05:11,460 --> 00:05:15,560 INSERT-Anweisungen werden verwendet, um einfügen oder 77 00:05:15,560 --> 00:05:17,770 zusätzliche Reihen von Daten in Ihre Datenbank-Tabelle. 78 00:05:17,770 --> 00:05:23,160 Revisiting unserem Szenario gehen wir davon aus, dass wir gerade ein neues Cupcake gemacht. 79 00:05:25,910 --> 00:05:30,080 Da wir sehr Cupcake Esser organisiert sind, wir gehen zu müssen, um diese neue Cupcake einfügen 80 00:05:30,080 --> 00:05:32,330 in unserem cupcake_cupboard Tisch. 81 00:05:32,330 --> 00:05:40,690 Die Syntax, dies zu tun ist: Legen Sie den Raum in Raum unserem Tisch, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, Raum (, 83 00:05:46,830 --> 00:05:51,060 und hier geben wir die Spalten Namen, getrennt durch ein Komma, 84 00:05:51,060 --> 00:05:59,790 CakeType Komma CakeColor Komma CakeIsNice) Raum. 85 00:05:59,790 --> 00:06:06,540 Danach schreiben wir das Wort VALUES Raum (und hier 86 00:06:06,540 --> 00:06:12,170 geben wir den Wert für jede Spalte bzw. auch durch ein Komma getrennt. 87 00:06:12,170 --> 00:06:17,830 Einfaches Anführungszeichen, weil sie alle Varchar Werte sind wir umgeben sie in einfache Anführungszeichen, 88 00:06:17,830 --> 00:06:26,780 ERDNUSSBUTTER 'Komma' LIGHT BROWN 'comma True. 89 00:06:26,780 --> 00:06:30,480 Jetzt ist es wichtig, dass jede Zeile eine eindeutige Nummer, um sich zu identifizieren. 90 00:06:30,480 --> 00:06:33,660 Selbstzählende eine Spalte bietet dies als 91 00:06:33,660 --> 00:06:37,410  "Keine zwei die gleichen IDs kann jemals in dieser Tabelle existieren." 92 00:06:37,410 --> 00:06:39,480 Fahren wir fort und ausführen. 93 00:06:39,480 --> 00:06:45,380 Dort gehen wir, alle organisiert. 94 00:06:49,720 --> 00:06:52,100 >> Die nächste SQL-Anweisung, dass wir schreiben, ist eine Update-Anweisung. 95 00:06:52,100 --> 00:06:55,650 Die Update-Anweisung kann verwendet werden, um Daten innerhalb einer Spalte zu ändern 96 00:06:55,650 --> 00:06:58,440 für jede vorhandene Zeile in der Datenbank-Tabelle. 97 00:06:59,670 --> 00:07:03,420 Früher in unserem Szenario mit einer select-Anweisung, identifizierten wir einen kleinen Kuchen 98 00:07:03,420 --> 00:07:08,300 innerhalb unserer cupcake_cupboard der Tabelle, deren CakeIsNice Wert war falsch. 99 00:07:08,300 --> 00:07:12,050 Nehmen wir an, dass während unserer Erdnussbutter Kuchen im Ofen war, 100 00:07:12,050 --> 00:07:15,790 machten wir uns auf nicht-so-nette Kuchen sehr nett. 101 00:07:18,020 --> 00:07:22,240 Ist so außergewöhnlich organisiert, wollen wir unseren Kuchen, diesen Wert zu reflektieren 102 00:07:22,240 --> 00:07:24,240 in unserem cupcake_cupboard Tisch. 103 00:07:24,240 --> 00:07:28,710 Daher lasst aktualisieren unsere cupcake in der Datenbank, um dies widerzuspiegeln. 104 00:07:28,710 --> 00:07:39,720 Die Syntax ist: UPDATE Raum unserem Tisch, cupcake_cupboard, Raum SET Raum 105 00:07:39,720 --> 00:07:44,240 die Säule, die wir ändern wollen, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Dann hier stellen wir unsere neuen Wert True Raum. 107 00:07:49,210 --> 00:07:54,290 Nun, da wir nicht wollen, um alle Zeilen mit diesem Wert zu aktualisieren, 108 00:07:54,290 --> 00:07:57,400 wollen wir eine "Where-Klausel", die uns zu lokalisieren stellt 109 00:07:57,400 --> 00:07:59,830 die genaue Zeile, die wir ändern wollen. 110 00:07:59,830 --> 00:08:03,690 In diesem Fall ist bekannt, dass es nur einen kleinen Kuchen 111 00:08:03,690 --> 00:08:06,670 das hat einen CakeIsNice Wert False. 112 00:08:06,670 --> 00:08:11,030 Darüber hinaus werden wir auch sicherstellen, dass wir aktualisieren die richtige Zeile 113 00:08:11,030 --> 00:08:13,030 mit dem "Und"-Klausel. 114 00:08:14,340 --> 00:08:17,270 Wir verwenden die "Und"-Klausel, um unsere Abfrage weiter zu verfeinern. 115 00:08:17,270 --> 00:08:20,380 In diesem Fall, weil wir wissen, dass der Kuchen Schokolade, 116 00:08:20,380 --> 00:08:23,160 Wir verwenden diese CakeType Spalte. 117 00:08:23,160 --> 00:08:31,500 Wo der Raum unserer bedingte Spalte Platz CakeIsNice space = False, 118 00:08:31,500 --> 00:08:38,330 Raum und CakeType = 'CHOCOLATE. 119 00:08:38,330 --> 00:08:41,880 Also, setzen sie alle zusammen, sagt dieser Update-Anweisung 120 00:08:41,880 --> 00:08:44,670 finden Sie alle Cupcakes in unseren Cupcake Schrank, 121 00:08:44,670 --> 00:08:50,520 und wenn es ein Cupcake, deren Spalte CakeIsNice enthält den Wert False 122 00:08:50,520 --> 00:08:54,130 und CakeType enthält den Wert SCHOKOLADE, 123 00:08:54,130 --> 00:08:58,240 wollen wir die bestimmte Zeilen CakeIsNice Wert auf True zu aktualisieren. 124 00:08:58,240 --> 00:09:01,140 Also, lasst uns gehen Sie vor und führen Sie die Anweisung. 125 00:09:03,860 --> 00:09:05,860 Und jetzt sind wir organisiert. 126 00:09:06,650 --> 00:09:09,220 >> All das Gerede von Cupcakes hat mich ein bisschen hungrig. 127 00:09:09,220 --> 00:09:11,360 Ich glaube, ich sollte mich ein helfen. 128 00:09:11,360 --> 00:09:17,670 Aber wenn ich esse tatsächlich diese cupcake, sollte ich wenigstens auch entfernen ihre Existenz 129 00:09:17,670 --> 00:09:19,670  von unserem cupcake_cupboard Tisch. 130 00:09:20,650 --> 00:09:22,590 Dazu verwenden wir die "Delete"-Anweisung. 131 00:09:22,590 --> 00:09:27,400 Die "Löschen"-Anweisung kann verwendet werden, um alle oder einige Zeilen aus der Tabelle zu entfernen. 132 00:09:27,400 --> 00:09:29,920 Wenn Sie einige bestimmte Zeile aus der Tabelle zu entfernen, 133 00:09:29,920 --> 00:09:34,360 dann müssen Sie eine "Where-Klausel", so die Angabe einer Spalte 134 00:09:34,360 --> 00:09:37,660 das sollte einzigartig in der Zeile, die Sie entfernen möchten. 135 00:09:37,660 --> 00:09:47,370 Dies ist die Syntax: DELETE Raum aus dem Weltraum unserem Tisch, cupcake_cupboard, Raum. 136 00:09:47,370 --> 00:09:51,760 Nun, an diesem Punkt, wenn Sie so weit in Ihrem delete-Anweisung 137 00:09:51,760 --> 00:09:54,240 Sie wollen sehr vorsichtig sein. 138 00:09:54,240 --> 00:09:59,970 Zum Beispiel, wenn ich diese Abfrage ausführen möchten, wie es ohne Angabe von etwas "Wo"-Klausel 139 00:09:59,970 --> 00:10:04,500 Ich würde alle Daten in diesem cupcake_cupboard Tabelle zu verlieren, 140 00:10:04,500 --> 00:10:09,590 sondern weil ich wissen bereits, dass mein Kuchen eindeutig sind, verwende ich 141 00:10:09,590 --> 00:10:12,410 Die Red Velvet Kuchen ID für meine "Wo"-Klausel. 142 00:10:14,550 --> 00:10:20,670 Wo der Raum unserer Kolumne, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Da es sich um einen Integer-Wert gibt es keine Notwendigkeit zu umgeben ihn in einfache Anführungszeichen. 144 00:10:25,010 --> 00:10:27,020 Also, lasst uns die Anweisung auszuführen. 145 00:10:33,560 --> 00:10:35,990 Nun, da haben wir die Existenz dieser Cupcake wischte 146 00:10:35,990 --> 00:10:40,360 von unserem cupcake_cupboard Tisch, wir haben nur eine Sache links: 147 00:10:41,680 --> 00:10:43,680 Machen Sie es verschwinden. 148 00:10:43,680 --> 00:10:46,990 Ich bin Christopher Bartholomäus. Dies ist CS50.