SQL 101: Datenbanken für Anfänger | Alvin Wan | Skillshare
Schublade
Suchen

Playback Speed


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

SQL 101: Datenbanken für Anfänger

teacher avatar Alvin Wan, Research Scientist

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Introduction

      1:38

    • 2.

      Project: Designing a Database

      1:03

    • 3.

      Databases 101

      1:34

    • 4.

      SQL "Hello World"

      6:00

    • 5.

      Case. Study 1: Weather App

      6:59

    • 6.

      Case Study 2: Todo App

      7:00

    • 7.

      Case Study 3: AirBnb (Design)

      3:12

    • 8.

      Case Study 3: AirBnb (Diagram)

      3:39

    • 9.

      Case Study 3: AirBnb (Code Database)

      7:31

    • 10.

      Case Study 3: AirBnb (Code Queries)

      6:36

    • 11.

      Next Steps

      1:04

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

6,188

Students

14

Projects

Über diesen Kurs

Was ist der richtige Weg, deine Daten zu organisieren?

Lerne die Säulen der of und des Designs – vom Erstellen von grundlegenden SQL-Abfragen bis zum Entwerfen einer Datenbank.

Dieser Kurs ist für Personen geeignet, die wenig bis keine Erfahrung sind: Wenn du nicht weißt, was SQL ist, wenn du SQL oder Daten nur für dich gearbeitet hast. Alles, was du brauchst, ist ein Computer, Internet und 30 Minuten Zeit.

Dies ist eine praktische Erfahrung, die wir (a) berücksichtigen (wir auch, was du brauchst. Keine fluff, und keine extraneous (b) du wirst live programmieren: Erstelle und Erstelle und Abfrage und optimiere eine Datenbank. Wir machen das dreimal mit einem minimalen Konzept und werden ein vollwertiges Beispiel erstellen. Am Ende des Kurses wirst du wissen, wie du Datenbanken für eine deiner favorite erstellen kannst, von einer einfachen Tasks bis zu einer minimalen Version von AirBnb!

Möchtest du kreative Programmieren erstellen? Schau dir meinen Kurs für VR 101 (AFrame Nature Scenes) an.

Möchtest du mehr Datenwissenschaft oder Machine lernen? Schau dir meine Coding 101 (Python), Daten 101 (Analyse) oder Computervision 101 (Angewandte (Python), an.

Folge mir auf Skillshare, um als Erste, der mehr Kurse in diesen Bereichen erfahren kann!

Acknowledgments: B-Rolle, die in Einführungsvideo CC-0 lizenziert ist.

Meet Your Teacher

Teacher Profile Image

Alvin Wan

Research Scientist

Top Teacher

Hi, I'm Alvin

Looking to learn coding? machine learning? Let me help! I was formerly a computer science lecturer at UC Berkeley, where I served on various course staffs for 5 years. I'm now a research scientist in industry, working on cutting edge computer vision. I've designed a few courses to get you started -- not just to teach the basics, but also to get you excited to learn more. Check out the courses on my profile! Or scroll down for a guide to getting started.

Website | Github | YouTube | Twitter | Research

 

Featured Reviews

"Alvin Wan is a fantastic teacher. The instruction format was just what I was lo... See full profile

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Die meisten Entwickler sehen eine Datenbank als in der Art und Weise, eine unglückliche Notwendigkeit. Was sie nicht erkennen, ist, dass das Datenbankdesign Ihr Produkt oder Ihre Funktion bewirken oder brechen kann. Hey, ich bin [unhörbar]. Ich bin Datenwissenschaftler bei einem kleinen Startup und Informatik-Doktorandin an der UC Berkeley. Auf dem Campus habe ich mehr als 5.000 Studenten beigebracht, und außerhalb des Campus habe ich über 50 Fünf-Sterne-Bewertungen erhalten, um Menschen beizubringen, wie man mit Ihrem Airbnb codiert. Am Ende dieser Klasse wissen Sie, wie Sie die InDesign-Datenbank für Ihre nächste großartige Idee verwenden, sei es eine App, die so einfach wie eine Aufgabe oder so komplex wie Airbnb ist. In dieser Klasse zeige ich Ihnen den richtigen Weg, um Ihre Daten zu organisieren, die Säulen des Datenbankdesigns und der Verwendung, vom Schreiben grundlegender Abfragen bis zum Entwerfen einer gesamten Datenbank. Für Entwickler erhalten Sie eine Datenbank-Entwurfspraxis. Für nicht-technische Leute verstehen Sie, wie Sie Anforderungen an Entwickler weiterleiten können. Diese Klasse ist für Menschen mit wenig oder gar keiner Erfahrung konzipiert. Wenn Sie nicht wissen, was SQL ist, wenn Sie noch nie SQL verwendet haben oder wenn Sie nur Daten abgerufen haben, dann ist diese Klasse für Sie. Alles, was Sie brauchen, ist ein Computer , Internet und etwa eine Stunde Zeit. Dies ist eine praktische Klasse, also werden Sie jede Sekunde des Weges codieren. Sie werden drei Fallstudien durcharbeiten: eine Wetter-App, eine To-do-App und schließlich eine Mindestversion von Airbnb. In jeder Phase werden Sie eine Datenbank entwerfen, erstellen, abfragen und schließlich optimieren. Ich zeige Ihnen Beispiele für schlechtes Design und gebe Ihnen Tipps für gutes Design. Ich freue mich, Ihnen diese Datenbank-Design-Tools zu geben, und ich werde erklären warum diese Tools Ihr Produkt im nächsten Video herstellen oder brechen können. 2. Projekt: Eine Datenbank entwerfen: Ihr Ziel in dieser Klasse ist es, eine Datenbank zu entwerfen und zu verwenden. Gutes Datenbankdesign ist für Ihr Produkt unverzichtbar, und hier ist der Grund. In jeder Anwendung stellt die Datenbank Daten für die Logikebene bereit. Hier werden Daten verarbeitet, sortiert, neu analysiert. Diese Logikebene stellt dann Informationen für Ihre Benutzeroberfläche bereit. Infolgedessen wirkt sich die Datenbank wirklich auf alle Teile Ihrer Anwendung aus. Schlechte Designoptionen verlangsamen Entwickler, schädigen die Benutzererfahrung mit schlechten Ladezeiten und fördern schlechte Designentscheidungen in allen Teilen der Codebasis. Dies ist eine praktische Klasse, so dass Sie jeden Schritt des Weges codieren. Sie arbeiten durch drei Fallstudien, eine Wetter-App, eine To-do-App und schließlich eine minimale Version von Airbnb. Ihr Klassenprojekt besteht darin, die Datenbank für eine Fallstudie Ihrer Wahl zu entwerfen, zu erstellen, abzufragen und schließlich zu optimieren. Sie benötigen Zugriff auf glitch.com und dbdiagram.io. Sie müssen sich nicht registrieren, um auch zu verwenden. Ich würde jedoch vorschlagen, sich trotzdem anzumelden, damit Sie Ihren Fortschritt speichern können. Jetzt fangen wir an. 3. Datenbanken 101: Diese Lektion dient als Grundierung für verschiedene Datenbankbegriffe und -konzepte. Sie fragen sich wahrscheinlich, was ist eine Abfrage? Was ist überhaupt eine Datenbank? Eine Datenbank ist eine organisierte Sammlung von Daten, eine Abfrage ist, wie wir auf diese organisierte Sammlung von Daten zugreifen und verwalten. Schließlich ist SQL oder strukturierte Abfragesprache eine Sprache, die wir verwenden, um diese Abfragen auszudrücken. Als Ergebnis werden Sie oft hören, wie ich SQL-Abfrage sagen da diese Abfragen sind, wie wir mit der Datenbank interagieren. Eine kurze Notiz darüber, wie Daten organisiert werden. Denken Sie an eine Excel -Tabelle, alle Daten sind in Tabellen organisiert, jede Tabelle enthält einen Objekttyp wie Benutzer, jeder Benutzer hat eine Reihe von verschiedenen Attributen, wie ID und Name, wie Sie sehen können, jedes Attribut ist eine Spalte. Jede Spalte hat auch einen bestimmten Typ, daher ist ID eine Ganzzahl, Name ist Text. Wir können diese Tabelle mit neuen Benutzern füllen, wie einem, John Doe, und zwei Jane Doe, wie Sie sehen können, jede Zeile ist ein neuer Benutzer. Das ist es für die Terminologie. Lassen Sie uns jetzt über ein paar verschiedene Tipps sprechen. Hier sind drei Tipps, die ich für Sie insbesondere habe: Tipp Nummer 1, um die Seite der Vorsicht zu verdienen, immer kopieren Sie den genauen Code, den ich habe. Tipp Nummer 2, pausieren Sie das Video bei Bedarf. Ich erkläre jede Codezeile, die ich schreibe aber wenn Sie Zeit brauchen, Code selbst zu tippen und auszuprobieren, zögern Sie nicht, anzuhalten. Tipp Nummer 3, Sie lernen am besten, indem Sie tun, Ich schlage vor, sich für den Erfolg einzurichten, indem Sie Ihre Skillshare und Glitch Fenster nebeneinander platzieren, wie hier gezeigt. Das war's für allgemeine Tipps. In der nächsten Lektion erstellen wir Ihre erste Datenbank. 4. SQL „Hallo Welt“: Lassen Sie uns eine Datenbank erstellen und unsere ersten SQL-Abfragen schreiben. In dieser Lektion erfahren Sie, wie Sie eine Datenbank einrichten anschließend Daten erstellen, lesen, aktualisieren und löschen. Wir werden eine Datenbank namens SQLite verwenden. Warum ich Luft zum Programmieren verwende, ist nicht besonders wichtig. Alles, was Sie wissen müssen, ist, dass SQLite niemals in der Produktion verwendet werden sollte. Dennoch werden alle Datenbanken, die Sie bei der Arbeit verwenden, Postgres, MongoDB, MySQL die gleichen Befehle unterstützen, die wir heute in dieser Klasse verwenden werden. Willkommen bei Lektion 4. Lass uns weitermachen und darüber reden, was genau wir bauen werden. Hier ist ein Diagramm. Was Sie betrachten, ist ein Diagramm, das den Namen einer Tabelle Benutzer auflistet. Auf der linken Seite befinden sich Spaltennamen. Jede davon ist eine Eigenschaft eines Benutzers, die Benutzer-ID, der Name des Benutzers und einige Informationen darüber, wann die Informationen des Benutzers erstellt oder aktualisiert wurden. Auf der rechten Seite haben Sie die Spaltentypen, ein int für Integer. Für jetzt können Sie varchar als Text und einen Zeitstempel wie ein Datum und eine Uhrzeit behandeln . ID hier in der ersten Zeile fett, ist, was als Primärschlüssel bekannt ist. Der Primärschlüssel identifiziert jede Zeile unserer Daten eindeutig und ist ein Muss für alle Tabellen. Diese beiden Zeilen, die bei erstellt und aktualisiert wurden, werden häufig eingeschlossen und empfohlen. Gehen wir nun zu glitch.com. Sobald Sie dies getan haben, sehen Sie einen Bildschirm wie diesen. Gehen Sie weiter und klicken Sie oben rechts auf „Neues Projekt“ und wählen Sie Hallo-Webseite aus. Sie sollten dann eine Webseite wie die folgende sehen. Gehen Sie weiter und klicken Sie unten links auf „Tools“ und „Terminal“. Sie sehen eine Seite geladen wie diese. Gehen Sie voran und klicken Sie dann auf das ganzseitige Terminal. Dies ist jetzt, wo wir codieren. Lassen Sie uns voran gehen und beginnen, indem Sie eine Eingabeaufforderung starten. Gehen Sie in diesem Terminal vor und geben Sie sqlite3.data/lesson4.db ein. Dieses erste Stück Text ist der Befehl sqlite3. Das erste Argument oder das zweite Stück Text ist der Name der Datei, die wir übergeben. In diesem Fall werden wir unsere Datenbank in einer Datei namens data/lesson4.db speichern. Gehen Sie weiter und drücken Sie „Enter“. Jetzt werden Sie mit der SQLite-Eingabeaufforderung begrüßt. Diese Eingabeaufforderung ermöglicht es uns, in SQL zu codieren. Lassen Sie uns voran und erstellen Sie unsere allererste Tabelle. Gehen Sie in dieser Eingabeaufforderung vor und geben Sie Tabellenbenutzer erstellen ein. Dieser Benutzer verfügt über eine ID-Spalte mit einem Primärschlüssel. Dieser Benutzer hat einen Namen, der erforderlich ist. Hier bedeutet nicht null, dass der Name nicht leer gelassen werden kann. Schließlich haben wir eine Spalte für erstellt bei. Dies ist der Zeitpunkt, zu dem der Benutzer zur Datenbank hinzugefügt wurde. Gehen Sie weiter und fügen Sie eine schließende Klammer und dann ein Semikolon hinzu. Geben Sie in.tables ein, um die Tabellen in dieser Datenbank aufzulisten. Hier können wir sehen, dass es jetzt eine Tabelle namens Benutzer gibt, die bestätigt, dass wir erfolgreich unsere Benutzertabelle erstellt haben. Gehen Sie weiter und geben Sie in.schemabenutzer ein, um die Benutzertabelle zu beschreiben. Wie Sie sehen können, stellt diese Beschreibung getreu dar, was wir früher eingegeben haben. Nun, gehen wir weiter und fügen Sie unsere Daten ein. Gehen Sie voran und geben Sie den Tabellennamen ein, fügen Sie ihn ein , geben Sie ihn ein, geben Sie ihn ein. Dann übergeben Sie die Spalte, die wir füllen möchten, die Name ist. Geben Sie schließlich die Werte ein, mit denen wir sie füllen möchten. In diesem Fall, John. Jetzt gehen Sie weiter und wiederholen Sie das Gleiche, aber für einen Benutzer namens Jane. Jetzt können wir die Daten anzeigen, die wir in unsere Tabelle eingefügt haben. Gehen Sie voran und geben Sie „Alle von Benutzern auswählen“ ein. Dieses Sternchen bedeutet hier, dass Sie alle Spalten auswählen. Dies ermöglicht es uns, alle Spalten im Ergebnis anzuzeigen. Dann ist Benutzer der Name der Tabelle, aus der wir unsere Daten auswählen möchten. Gehen Sie weiter und drücken Sie „Enter“, und Sie werden hier sehen, dass wir sowohl die ID, den Namen, und dann ein erstelltes Feld haben, das wir nicht gefüllt haben. Lassen Sie uns jetzt über eine andere Art von Select-Aussage sprechen. Geben Sie alle Benutzer auswählen, wobei Name Jane ist. Dies ist jetzt eine gefilterte Auswahlabfrage. Die where-Anweisung ermöglicht es uns, Bedingungen zu spezifizieren, die wir für die Benutzer, die wir wählen, wahr sein wollen. Jetzt gehen wir weiter und aktualisieren Janes Informationen. Geben Sie Update ein, setname ist gleich Jane Doe. Wir geben Jane jetzt einen Nachnamen, wobei der Name gleich Jane ist. Gehen Sie weiter und drücken Sie „Enter“. Wieder einmal, wählen Sie alle Benutzer aus, um zu bestätigen, dass unsere Benutzerinformationen aktualisiert wurden, und wir können jetzt sehen, dass Jane jetzt Jane Doe ist. Schließlich gehen Sie fort und löschen Sie den Benutzer John. Löschen von Benutzern, deren Name gleich John ist. Um zu bestätigen, dass der Löschvorgang erfolgreich war wählen Sie erneut alle Benutzer aus. Wir können jetzt sehen, dass der Benutzer John weg ist. Schließlich gehen Sie weiter und löschen Sie die Tabelle. Löschen Sie Tabellenbenutzer. Wir können bestätigen, dass diese Tabelle gelöscht wurde, indem Sie in.tables eingeben, um alle Tabellen aufzulisten. Wie wir sehen können, gibt es keine weiteren Tabellen mehr, und damit wird der Codierteil dieser Lektion abgeschlossen. Gehen wir voran und springen jetzt zur Rezension. Was haben wir in dieser Lektion gelernt? Das erste Takeaway, ist, dass alle Tabellen einen Primärschlüssel enthalten, und dass sie oft zwei zusätzliche Spalten enthalten, die als erstellt und aktualisiert bei bezeichnet werden. Der nächste Takeaway ist, dass es mehrere allgemeine SQL-Abfragen gibt, die wir untersucht haben: Auswählen, Einfügen, Aktualisieren und Löschen. Wir haben auch eine Möglichkeit zum Filtern von Auswahlabfragen mit der where-Klausel untersucht. Lassen Sie uns die Liste der Konzepte, die wir in dieser Lektion gelernt haben, erneut besuchen. Du hast in den letzten Minuten viel gelernt. Wir haben die where-Klausel, die Primärschlüsseltabellen, Spalten, Abfragen und viele weitere Begriffe berührt die Primärschlüsseltabellen, Spalten, , die wir hier nicht aufgelistet haben. Das war's. Damit ist Lektion 4 abgeschlossen. 5. Fall. Studie 1: WetterApp: In dieser Lektion gehen wir durch unsere allererste Fallstudie, eine Wetter-App. Sie berühren und verwenden ein paar verschiedene Konzepte und Begriffe. Anstatt sie im Voraus zu definieren, werden wir sie definieren, wie wir sie verwenden. Keine Sorge, die nächste Folie sollte Ihnen völlig fremd aussehen, das ist nur, um zu sagen, wir werden viel in dieser Lektion lernen. Lasst uns anfangen. In jeder unserer Fallstudien folgen wir fünf Schritte: Anforderungen, Design, Optimierung, Diagrammen und schließlich Code. Lassen Sie uns voran und beginnen Sie mit dem ersten Schritt hier, den Anforderungen. Was sind die Voraussetzungen für diese Wetter-App? Diese Wetter-App wird mehrere Entitäten haben, diese Entitäten umfassen den Benutzer und eine Zeitzone. Wie stehen diese Entitäten zusammen? Das ist Teil der Anforderungen an Beziehungen. Jede Zeitzone hat potenziell viele Benutzer, und jeder Benutzer hat nur eine Zeitzone. Wir bezeichnen dies als Eins-zu-Viele-Beziehung; ein Benutzer zu vielen Zeitzonen, wir werden dies in nur einer Sekunde mehr diskutieren. Gehen wir weiter und gehen Sie zu Schritt 2, Design. Hier können Sie sehen, dass Sie beide Entitäten haben, den Benutzer und die Zeitzone, und Sie können auch sehen, dass es viele Benutzer für jede Zeitzone gibt Deshalb nennen wir dies viele-zu-eins oder one-to-many, abhängig von Ihrer Perspektive . Lassen Sie uns über ein schlechtes Beispiel für die Implementierung dieser Anforderung sprechen. Hier haben wir eine Tabelle für Benutzer, genau wie zuvor. Nun fügen wir eine weitere Tabelle für Zeitzonen hinzu. Wir fügen nun einen Verweis auf die Zeitzone ein. Hier ist die Zeitzonenkennung, die die Zeitzone für jeden Benutzer referenziert. Nun, hier ist der Grund, warum das eine schlechte Idee ist, denn wir können es besser machen. Gehen wir weiter zu Schritt 3, Optimierung. Bevor wir das tun, hier ist ein Prinzip, das ich Ihnen vorstellen möchte. In Datenbanken ist es Ihr Ziel, weniger Tabellen zu verwenden. Tipp Nummer 1 ist, wenn Sie einen Eins-zu-Viele durch einen anderen Datentyp ersetzen sollten. In diesem speziellen Beispiel schlagen wir vor, eine Enumeration zu verwenden, eine Enumeration, die Sie sich nur als eine Liste möglicher Optionen vorstellen können. Wir möchten eine 1:n-Tabelle durch eine Liste möglicher Optionen ersetzen, wenn A, Sie haben eine begrenzte Anzahl von Optionen, und B, jede Option hat einen eindeutigen Bezeichner. In diesem speziellen Fall werden wir feststellen, dass die Zeitzone beide Bedingungen erfüllt. Nummer 1, die Zeitzone hat nur einen Namen und dieser Name identifiziert eindeutig eine Zeitzone. Zweitens werden wir feststellen, dass es eine begrenzte Anzahl von Zeitzonen gibt Stattdessen ersetzen wir diese Tabelle durch eine Enumeration oder eine Liste von Optionen. Jetzt hat der Benutzer eine Attribut-Zeitzone, in der die Zeitzone in PDT, EDT usw. beschränkt ist . Dies ist das, was als Entitätsbeziehungsdiagramm oder kurz, ein ERC bekannt ist. Wir werden eines dieser Diagramme in nur einer Sekunde entwerfen. Im nächsten Schritt, Schritt 4, werden wir Diagramm. Gehen Sie weiter und navigieren Sie in Ihrem Browser zu dbdiagram.io. Sobald Sie die Webseite aufgerufen haben, gehen Sie weiter und klicken Sie oben rechts auf „Gehe zur App“. Das erste, was ich tun werde, ist eine Enumeration zu erstellen, also hier geben wir Enum Timezone mit geschweiften Klammern ein, dann gehen Sie voran und geben Sie ein paar verschiedene Zeitzonen Ihrer Wahl ein, in diesem Fall verwenden wir PDT, EDT und CDT. Jetzt haben wir eine Liste von verschiedenen Optionen für Zeitzonen, lassen Sie uns voran und geben Sie unsere Tabelle ein. Hier geben wir Tabellen-Benutzer ein, genau wie zuvor mit geschweiften Klammern. Genau wie zuvor wird unsere Benutzertabelle eine ID vom Typ Integer haben , die einen Primärschlüssel hat. Gehen Sie weiter und fügen Sie eine weitere Spalte für den Namen hinzu, d. h. vom Typ Text, und fügen Sie schließlich Zeitzone mit dem Zeitzonen-Typ hinzu. Dies sind die verschiedenen Werte, die unser Benutzer hat. Nun gehen wir weiter und fügen Sie zwei weitere Spalten hinzu, die notwendig sind, created_at timestamp und updated_at auch mit einem Zeitstempel. Ich gehe voran und zoomen Sie hier ein wenig aus, und hier sehen Sie unseren fertigen Tisch nach rechts. Dies vervollständigt unser Diagramm, gehen wir weiter und gehen zurück zu unseren Folien. Jetzt gehen wir voran und programmieren. Um zu programmieren, gehen Sie weiter und navigieren Sie zurück zu glitch.com. Gehen Sie auf glitch.com vor und greifen Sie auf Ihr bestehendes Projekt zu, indem Sie auf „Projekt bearbeiten“ klicken. Wenn Sie die letzte Lektion nicht abgeschlossen haben, gehen Sie weiter und klicken Sie auf „Neues Projekt“ und „Hello-Webseite“ und das öffnet ein neues Projekt. Sobald Sie auf dieser Seite sind, gehen Sie weiter und klicken Sie auf „Extras“, „Terminal“ und dann „Vollseiten-Terminal“. Das wird dann eine Seite wie diese laden. Wir starten, indem wir die SQLite-Eingabeaufforderung starten, genau wie beim letzten Mal. Gehen Sie weiter und geben Sie sqlite3.data/lesson5.db ein. Auch dieses erste Stück Text, sqlite3, ist der Befehl, das zweite Textstück, .data/lesson5.db, ist die Datei, in der wir unsere Daten speichern. Gehen Sie und drücken Sie „Enter“. Erstellen Sie nun Ihre Benutzertabelle, CREATE TABLE-Benutzer, diese Tabelle beginnt mit einer ID, die vom Typ INTEGER ist und ein PRIMARY KEY ist. Als nächstes gehen Sie weiter und fügen Sie eine weitere Spalte wie zuvor hinzu, die einen Namen hat, und wie zuvor erfordern, dass sie nicht leer ist. Fügen Sie eine Zeitzone hinzu, und eine kleine hat Sie, ist, dass SQLite keine Enum-Typen Stattdessen werden wir nur Text verwenden, schließlich fügen Sie die letzten beiden Spalten und created_at hinzu. Gehen Sie weiter und fügen Sie eine schließende Klammer und ein Semikolon hinzu. Damit wird nun unsere neue Benutzertabelle erstellt. Gehen Sie weiter und fügen Sie einige Werte in diese Benutzertabelle ein. Geben Sie erneut die Spalten an, zu denen Sie Werte, Namen und Zeitzone hinzufügen möchten , und geben Sie schließlich die Werte an, die Sie einfügen möchten. Hier fügen wir ein paar verschiedene dieser Zeilen ein. Wir haben einen Benutzer namens John, einen Benutzer namens Jane und schließlich einen Benutzer namens Jenny. Nun, gehen wir voran und wählen Sie aus dieser Tabelle, wir schreiben SELECT alle FROM-Benutzer, dies gibt uns alle drei Benutzer, die wir mit der ID 1, namens John, id 2, namens Jenny, und id 3, namens Jane eingefügt namens John, id 2, . Lassen Sie uns abschließend ein paar verschiedene Abfragen untersuchen, die wir ausführen möchten. Zunächst möchten wir alle Benutzer für eine bestimmte Zeitzone auswählen. Also hier schreibe ich SELECT alle FROM-Benutzer, bei denen die Zeitzone gleich EDT ist, und wie wir sehen werden, werden wir beide Benutzer sehen, die sich in dieser Zeitzone befinden. Nun, lassen Sie uns fortfahren und zählen, wie viele Benutzer sich in dieser Zeitzone befinden Dies ist eine neue Art von Funktion, die wir noch nicht als Aggregator gesehen haben. Gehen Sie weiter und schreiben Sie es in SELECT COUNT FROM Benutzer, wo Zeitzone gleich EDT ist, und das gibt uns zwei, genau wie wir früher gesehen haben. Wieder einmal haben wir fünf verschiedene Schritte behandelt: Anforderungen, Design, Optimierung, Diagrammen und schließlich Code. Wir haben in den letzten Minuten eine Reihe von verschiedenen Themen behandelt : Das erste ist ein ERC oder das Diagramm, eine 1:n-Beziehung, ein Aggregator oder die Zählfunktion, die wir verwendet haben, eine Enumeration und schließlich die Fünf- Schritt Prozess selbst. Herzlichen Glückwunsch, das ist Ihr allererster Datenbankentwurf für eine echte Anwendung. Wenn Sie Ideen für eine kühlere, schickere Wetter-App haben, Sie den ERC, den wir in dieser Lektion erstellt haben, ändern und verfeinern und ihn auf den Projects Tab auf Skillshare hochladen. In der nächsten Lektion entwerfen wir eine Datenbank für eine etwas kompliziertere Anwendung, eine Todo-App. 6. Fallstudie 2: Todo-App: In dieser Lektion führen wir eine zweite Fallstudie durch, eine ToDo-App für die ersten Schritte. Für diese ToDo-App benötigen wir zwei verschiedene Entitäten. Der erste ist ein Benutzer und der zweite ist eine Aufgabe. Die Beziehungen zwischen diesen Entitäten, jeder Benutzer hat viele Aufgaben. Jede Aufgabe hat auch nur einen Benutzer. Klingt, als hätten wir nur noch eine Eins-zu-Viele-Beziehung. Lassen Sie uns über das Design sprechen. Hier haben wir eine Aufgabe und einen Benutzer. Wir haben viele Aufgaben für jeden Benutzer. Wir sehen, dass dies ein Viele-zu-Eins oder ein Eins-zu-Viele-ist. Hier ist ein schlechtes Beispiel. Wir können damit beginnen, zu versuchen, worüber wir letztes Mal gesprochen haben, nämlich ein enum-ähnliches Feld zu verwenden. Jetzt können wir eine Enumeration nicht genau verwenden, weil es viele verschiedene Benutzer-E-Mails gibt. Es gibt keine begrenzte Liste, die wir vorher kennen. Zweitens, sagen wir, wir wollen einen Benutzernamen hinzufügen, dann müssten wir diesen Namen und E-Mail-Adresse für jede einzelne Aufgabe hinzufügen , die dieser Benutzer hat. Stattdessen ist hier ein gutes Beispiel. Wir werden jetzt eine andere Tabelle für Benutzer aufteilen. Dies wird Normalisierung genannt. Hier haben wir eine Benutzertabelle auf der linken Seite mit dem Namen und E-Mail. Jetzt müssen wir nur noch einmal Benutzerinformationen speichern. Jetzt ist jedoch die Verbindung zwischen dem Benutzer und seinen Aufgaben unterbrochen. Hier müssen wir etwas hinzufügen, der einen Fremdschlüssel genannt wird. Auf der rechten Seite haben Sie Benutzer-ID, die auf den Benutzer für die Aufgabe verweist. Als nächstes gehen wir voran und optimieren. Tipp Nummer 2 für die Optimierung verwendet Indizes für schnellere Abfragen. Eindeutige Indizes sind einer der einfachsten, die hinzugefügt werden können. In diesem Fall handelt es sich um die E-Mail-Adresse des Benutzers. Wir würden erwarten, dass jeder Benutzer eine andere und eindeutige E-Mail-Adresse hat. Gehen wir weiter und gehen Sie zum Diagramm, bevor Sie auf dieser Webseite zu dbdiagram.io navigieren. Wenn Sie das ursprüngliche Diagramm noch geöffnet haben, fahren Sie fort und bewegen Sie den Mauszeiger über dieses Dropdown-Menü und klicken Sie auf „Neues Diagramm“. Beginnen wir mit der Erstellung unserer beiden Tabellen. Gehen Sie voran und geben Sie Tabellenbenutzer ein. Diese Tabelle hat eine ID vom Typ Integer, die ein Primärschlüssel ist. Es wird auch einen Namen mit Typtext, dann eine E-Mail-Adresse auch vom Typ Text, der eine Eindeutigkeits-Einschränkung hat. Schließlich fügen wir zwei weitere Spalten hinzu. Als nächstes fügen wir eine Enumeration für den Aufgabenstatus hinzu. Hier haben wir Aufzählung des Status, und es wird zwei mögliche Status geben. Jetzt gehen wir weiter und fügen eine weitere Tabelle hinzu. Hier haben wir eine Tabelle namens Aufgaben. Geben Sie ihm eine ID mit dem Typ Integer des Primärschlüssels und dann den Fremdschlüssel, über den wir zuvor gesprochen haben. Gehen Sie vor und geben Sie user_id vom Typ integer, und wir geben in ref Doppelpunkt größer als users.id. Hier users.id bezieht sich auf die Tabelle des Benutzers, Spalte ID. Wir werden jetzt einen Status hinzufügen und dann werden wir eine Beschreibung des Typs Text hinzufügen. Schließlich, erstellt bei und aktualisiert bei, und hier sind die beiden Tabellen, die wir gerade erstellt. Dies schließt unsere Diagrammerstellung ab. Gehen wir weiter und gehen zum Code. Schritt 5, navigieren Sie zu glitch.com. Sobald Sie dort sind, sollten Sie eine Seite wie diese sehen, genau wie zuvor. Sie können das bestehende Projekt bearbeiten oder Sie können ein neues Projekt hello-website eingeben. Sobald Sie das tun, werden Sie mit einer Seite wie dieser begrüßt. Wir werden ein Skript schreiben, das die Datenbank erstellt und ein paar verschiedene Werte für uns in die Datenbank hinzufügt. Beginnen Sie, indem Sie auf Neue Datei oben links klicken und dann lesson6.sql eingeben, Tabellenbenutzer löschen, falls vorhanden. Erstellen Sie nun eine Tabelle für unsere Benutzer und fügen Sie die ID, den Namen und die E-Mail hinzu, und wir werden die zusätzliche Einschränkung hinzufügen, dass diese E-Mail eindeutig ist. Gehen wir weiter und fügen Sie nun die beiden Spalten hinzu, mit denen wir vertraut sind. Lassen Sie uns voran und erstellen Sie die anderen Menschen Aufgaben. Geben Sie die ID ein. Wir werden in user_id, status TEXT, eine Beschreibung auch vom Typ TEXT hinzufügen . Schließlich sind die beiden Spalten, die wir immer hinzufügen. Lassen Sie uns nun hinzufügen, was die Fremdschlüsseleinschränkung genannt wird. Die Fremdschlüsseleinschränkung stellt einfach sicher, dass jedes Mal, wenn eine Aufgabe eine Benutzer-ID hat, diese Benutzer-ID auf einen tatsächlichen Benutzer in der Benutzertabelle verweist. Fügen Sie diesen Fremdschlüssel hinzu, der sich auf den Aufruf user_id bezieht, auf die Tabellenbenutzer und Spalten-ID verweisen soll. Gehen Sie weiter und fügen Sie ein Semikolon hinzu, um Ihre Anweisung abzuschließen. Wir werden beginnen, indem wir einige Benutzer einfügen, INSERT INTO Benutzer, und wir werden zwei Spalten hinzufügen, Name und E-Mail, mit verschiedenen Werten, John, fügen Sie ein Semikolon, und jetzt gehen wir weiter und kopieren und einfügen diese Zeile und ersetzen Sie diese Werte durch Jane. Nun, lassen Sie uns ein paar Aufgaben für John hinzufügen. INSERT INTO Aufgaben die Spalten, die wir füllen werden, unsere user_id, Status und Beschreibung. Jetzt werden wir ein paar verschiedene Werte hinzufügen. Der erste Benutzer, der hier eingefügt wurde , wird user_id 1 haben. Der Status für diese Aufgabe sollte TODO lauten, und die Beschreibung lautet Swim. Jetzt werden wir kopieren und einfügen und wir werden eine weitere Aufgabe für John hinzufügen. Jetzt gehen wir weiter und fügen diesmal noch ein paar Aufgaben für Jane hinzu. Das war's. Glitch speichert diese Datei automatisch für Sie. Gehen wir voran und navigieren Sie jetzt zum Terminal. Wechseln Sie zu Tools, Terminal und Vollseiten-Terminal. Sie sehen dann eine Seite wie diese. Gehen Sie weiter und geben Sie sqllite3.data/lesson6.db ein, gehen Sie und drücken Sie die Eingabetaste, und jetzt befinden Sie sich in der SQL-Eingabeaufforderung. Lassen Sie uns voran und führen Sie die Datei, die wir gerade erstellt haben, .read lesson6.sql. Wir werden zuerst alle Aufgaben auswählen. SELECT Sternchen FROM Aufgaben. Wir werden auch alle Benutzer auswählen. Das sieht gut aus. Wir haben sowohl unsere Benutzer als auch die beiden Aufgaben zugeordnet. Lassen Sie uns voran und jetzt, anstatt alle auszuwählen, möchten wir bestimmte Spalten auswählen. Hier werden wir nur den Namen und die E-Mail-Spalten von Benutzern auswählen. Jetzt erhalten wir nur den Namen und die E-Mail jedes Benutzers. Wir werden jetzt eine neue Abfrage namens JOIN erkunden. Wir werden sowohl den Namen des Benutzers als auch die Beschreibung der Aufgabe auswählen. Wir werden SELECT FROM Benutzer, wir werden mit der Tasks-Tabelle JOIN, und wir werden ihnen beitreten, wenn die users_id gleich den Aufgaben user_id ist. Gehen Sie voran und drücken Sie Enter, und hier können wir alle sehen -Benutzern, John und Jane, und die beiden Aufgaben, die jeweils zugewiesen sind. Sehen wir uns diese Lektion an. Wir haben eine Reihe von verschiedenen Themen besucht, einschließlich Denormalisierung, Join, Fremdschlüssel und Normalisierung. Wir haben auch Indizes behandelt und der E-Mail-Spalte einen eindeutigen Index hinzugefügt. Damit ist diese Lektion abgeschlossen. Wir haben nun eine Fallstudie für die ToDo-App abgeschlossen. In der nächsten Lektion beginnen Sie eine Fallstudie für ABMB. 7. Fallstudie 3: AirBnb (Design): In dieser Lektion beginnen wir unsere dritte Fallstudie, Airbnb. Wir werden wieder die fünf verschiedenen Schritte, Anforderungen, Design, Optimierung, und wir werden nicht wirklich zu Diagrammen oder Code kommen. Lasst uns anfangen, Anforderungen. Es gibt mehrere unterschiedliche Anforderungen. Insbesondere sind die Entitäten, die uns wichtig sind, der Benutzer, das Zuhause und mehrere Beziehungen zwischen diesen Entitäten. Benutzer werden viele Häuser besuchen. Häuser werden viele Besucher haben und eine zusätzliche Anforderung, die wir noch nicht gesehen haben. Benutzer werden auch in der Lage sein, Häuser zu besitzen. Mit anderen Worten, wir haben, dass Beziehungen sind beide viele-zu-viele. Es gibt viele Benutzer in jedem Haus, und es gibt viele Häuser für jeden Benutzer. Benutzer können auch Häuser besitzen, was bedeutet, dass es verschiedene Arten von Beziehungen gibt. Sie können entweder ein Besitzer sein oder Sie können ein Besucher sein. Lassen Sie uns jetzt über Design sprechen. Hier sind die beiden Entitäten: Benutzer und Home. Es gibt viele Benutzer für jedes Zuhause, und es gibt viele Häuser für jeden Benutzer. Das ist unsere Viele-zu-Viele-Beziehung. Wie aber vertreten wir Eigentümer gegen Besucher? Hier ist ein schlechtes Beispiel. Dies ist unser drittes und letztes schlechtes Beispiel. Vielleicht kennen Sie bereits die Lösung, in diesem Fall, großartig. Wenn nicht, ärgern Sie sich nicht. Das ist ein harter. Also, was ist das schlechte Beispiel? Hier haben wir die Besitzer in Rot und die Besucher in Schwarz. Wir müssen ein Konto für den Besitz und ein anderes Konto für den Besuch erstellen. Airbnb gelingt es jedoch, dies zu vermeiden. Sie können ein Konto erstellen, um Eigenschaften zu verwalten und Eigenschaften gleichzeitig zu besuchen. Wie ist das? Lassen Sie uns jetzt optimieren. Was wir jetzt tun werden, ist Besitzer oder Besucher mit der Beziehung zwischen dem Benutzer und dem Haus verbinden , anstatt es mit dem Benutzer selbst zu verknüpfen. Hier werden wir sehen, dass die roten Linien Eigentumsbeziehungen bezeichnen. Die schwarzen Linien stellen den Besuch dar. Hier besitzt der erste Benutzer oben links zwei Häuser, und sie besuchen das dritte. Dies bringt uns zu unserem Tipp Nummer 3, erwägen Sie, Informationen zu Beziehungstabellen hinzuzufügen. Manchmal gehören Informationen nicht zu beiden Entitäten. In diesem Fall gehört die Beziehung des Eigentümers oder Besuchers weder zum Benutzer noch zu Hause. Hier, ist das Diagramm. Auf der rechten Seite haben wir die Benutzer, auf der linken Seite haben wir die Häuser, und in der Mitte haben wir die Beziehungen zwischen Benutzern und Wohnungen. Wir haben auch Verweise auf das Haus, und den Benutzer von dieser Tabelle in der Mitte. Diese Tabelle in der Mitte, die Häuser der Benutzer, ermöglicht es uns, eine Viele-zu-Viele-Beziehung darzustellen. Sie werden auch beachten, dass diese Tabelle in der Mitte eine Rollenspalte hat. Diese Rollenspalte unterscheidet Besitzer von Besuchern. Lassen Sie uns jetzt voran gehen und überprüfen, worüber wir in dieser Lektion gesprochen haben. Sie haben eine Reihe von verschiedenen Schritten abgewickelt. Wir deckten Anforderungen, Design und Optimierung ab. In der nächsten Lektion beschäftigen wir uns mit Diagrammen, die diese Lektion abschließt. Airbnbs, die ersten drei Schritte der Fallstudie. 8. Fallstudie 3: AirBnb (Diagram): In dieser Lektion besprechen wir nun den Airbnb Fallstudienschritt Nummer 4; Diagrammen. Hier haben wir bereits die drei ersten Schritte abgeschlossen: Anforderungen, Design und Optimierung. Hier werden wir das Diagrammen abdecken, und Sie fragen sich vielleicht, warum die Hälfte des Codes tatsächlich hervorgehoben ist. Nun, wir werden ein wenig Code in dieser Lektion machen und dann in der nächsten beenden. Beginnen wir mit dem Diagrammen. Navigieren Sie wie zuvor zu dbdiagram.io. Wenn Sie sich auf dbdiagram.io befinden, können Sie das Dropdown-Menü auswählen und auf „Neues Diagramm“ klicken. Sie werden dann mit einem leeren Diagramm wie diesem begrüßt. Lassen Sie uns voran und erstellen Sie die drei verschiedenen Tabellen, die wir benötigen. Wir werden die Benutzertabelle hinzufügen. Genau wie zuvor haben wir die ID des Typs Integer, der ein Primärschlüssel ist. Genau wie zuvor haben wir auch das Namensfeld vom Typ Text, das E-Mail-Feld vom Typ Text und die beiden zusätzlichen Felder created_at timestamp und updated_at timestamp. Jetzt werden wir eine Enumeration für die verschiedenen Arten von Regeln erstellen , die ein Benutzer für ein Zuhause haben könnte. Hier haben wir also eine Enum-Rolle, und die Rolle kann entweder ein Besitzer oder ein Besucher sein. Als Nächstes werden wir einen Tisch für unsere Häuser erstellen. Lassen Sie uns voran gehen und erstellen Tisch, Häuser. Die ID wird in Integer sein, das ist ein Primärschlüssel. Wir werden eine Adresse für dieses Haus haben, das ist vom Typ Text, einen Preis pro Nacht, das ist auch eine ganze Zahl, und schließlich die beiden notwendigen Spalten created_at und updated_at. Für unsere dritte und letzte Tabelle müssen wir nun die Viele-zu-Viele-Beziehung zwischen Benutzern und Heimen darstellen . Hier werden wir eine Tabelle von Benutzern, Häuser, eine ID mit einer Ganzzahl und einem Primärschlüssel haben. Wir werden dann Referenzen sowohl auf die Häuser als auch auf die Benutzer haben. Wir werden eine Home-ID vom Typ Integer haben, und dies ist eine Fremdschlüsselreferenz, genau wie wir zuvor gesprochen haben, und wir werden einen sehr ähnlichen Verweis auf die Benutzertabelle haben. Fügen Sie als Nächstes die Rolle für diese Beziehung hinzu. Hier haben wir entweder die Eigentümerrolle oder die Besucherrolle. Dann fügen wir den Start hinzu, entweder den Beginn des Wohneigentums oder den Beginn des Besuchs. Endlich, das Ende. Fügen Sie dann die beiden notwendigen Spalten hinzu, die wir immer hinzufügen, und updated_at. Damit ist unser Diagramm abgeschlossen. Ich werde voran gehen und verkleinern genau wie zuvor, damit Sie das gesamte Diagramm sehen können. Gehen Sie voran und klicken Sie auf „Automatisch anordnen“ und dort gehen wir. Wir haben unsere Benutzer, unsere Häuser und unsere Beziehungen Tabelle. Jetzt gehen wir weiter und fahren mit dem nächsten Schritt fort. Code. 9. Fallstudie 3: AirBnb (Code Datenbank): Hier werden wir eigentlich nur den Anfang codieren, wir werden die Datenbank erstellen. Gehen Sie weiter und navigieren Sie zu glitch.com, genau wie zuvor, Sie können ein bestehendes Projekt bearbeiten oder auf „Neues Projekt“ und „Hello-Webseite“ klicken, dann sehen Sie eine Seite, die wie diese aussieht, gehen Sie weiter und klicken Sie auf „Neue Datei“ und lesson8.sql. In dieser Datei werden wir fortfahren und die Datenbank erstellen, von der wir gesprochen haben. Gehen Sie weiter und legen Sie, wie zuvor, die Tabellen in diesem Skript ab, wenn sie bereits vorhanden sind. Hier werden wir DROP TABLE Benutzer, wir werden DROP TABLE Häuser und schließlich werden wir DROP TABLE users_homes. Beachten Sie diese Namenskonvention, die Beziehungstabelle zwischen Benutzern und Standardverzeichnissen sollte nur die Verkettung dieser beiden Namen sein. Lassen Sie uns nun voran und erstellen Sie die Benutzertabelle. Genau wie zuvor werden wir die ID haben, einen PRIMARY KEY, wir werden den Namen haben, der ein TEXT sein wird, der nicht leer ist, wir werden die E-Mail haben, die TEXT ist, der nicht leer ist und einzigartig ist, und dann werden wir die Felder updated_at und created_at haben. Dieses Mal wird unser created_at-Feld jedoch selbst füllen, gehen Sie vor und fügen Sie einen Standardwert hinzu, dh den CURRENT_TIMESTAMP. Drücken Sie „Enter“, Semikolon, und diese Standardsyntax wird tatsächlich dieses created_at Feld für uns füllen, jedes Mal, wenn wir eine Zeile einfügen, wir werden sehen, dass in Aktion in der nächsten Lektion. Lassen Sie uns voran und erstellen Sie jetzt eine Home-Tabelle. Wir werden TABLE-Häuser erstellen, genau wie zuvor, wird diese Tabelle eine ID von INTEGER, PRIMARY KEY haben , es wird eine Adresse haben, die vom Typ TEXT ist, die nicht leer ist, eine price_per_night vom Typ integer, die auch nicht leer, und schließlich die beiden Spalten updated_at und created_at, gehen die beiden Spalten updated_at und created_at,wie zuvor, und fügen Sie einen Standardwert zu created_at von CURRENT_TIMESTAMP hinzu. Lassen Sie uns zum Schluss unsere dritte Tabelle erstellen. Hier werden wir TABLE users_homes CREATE. Genau wie jede andere Tabelle wird diese Tabelle Ihren INTEGER-Typ für PRIMARY KEY haben, sie wird auch Verweise auf das Zuhause und auf den Benutzer haben. Nun, gehen Sie weiter und fügen Sie die Rolle für diese Beziehung, fügen Sie den Anfang und das Ende, dann, unsere Lieblings zwei Spalten updated_at und created_at, genau wie vor fügen Sie einen Standard. Als nächstes gehen wir weiter und fügen einige Daten in diese Tabellen ein. Wir werden insbesondere einige Benutzer mit einem Namen und einer E-Mail-Adresse einfügen Ich werde dann die verbleibenden Benutzer aus der vorherigen Lektion kopieren und einfügen. Nun, gehen wir weiter und fügen ein paar Häuser ein. Wir werden eine Adresse und eine price_per_night EINFÜGEN, hier haben wir eine Adresse und eine price_per_night. Ich werde auf den Pfeil oben links klicken, das wird diese Navigationsleiste minimieren, damit Sie mehr von meinem Code auf einmal sehen können. Ich werde auch diese Zeile kopieren und einfügen, damit wir die Adressen und die Preise viel ändern können schneller. Schließlich lassen Sie uns etwas Eigenbesitz hinzufügen. Hier werden wir INSERT users_homes, wir werden die home_id, die user_id, die Rolle, den Anfang und das Ende hinzufügen die Rolle, den Anfang ; wir werden einige Werte hinzufügen. Hier werden wir in der ersten Heimat hinzufügen, der erste Benutzer mit Beziehung, Eigentümer, und wir werden in eine willkürliche Startzeit für den Beginn des Hausbesitzes hinzufügen, hier können Sie das Format verwenden, das Sie für die Zeit möchten, Wir werden ein Format verwenden, das ungefähr einem so genannten ISO-Format ähnelt, aber auch hier spielt es keine Rolle, welches Format Sie verwenden. Stellen Sie sicher, dass Sie dann ein Semikolon am Ende der Zeile hinzufügen, und fahren Sie fort und wiederholen Sie das gleiche, aber dieses Mal für Jane. Also ist Jane user_id 2 und sie kann nicht auch die erste Eigenschaft besitzen, also werden wir ihre eigene eine andere Eigenschaft haben. Nun, gehen wir weiter und kopieren und fügen Sie es noch ein Mal ein. In dieser Lektion gehen wir davon aus, dass jedes Haus nur einen Eigentümer hat. Sie können jedoch theoretisch mit der von Ihnen erstellten Datenbank mehrere Eigentümer pro Haus darstellen. Nun, gehen wir weiter und ändern Sie dieses Haus in das dritte Zuhause, immer noch mit Benutzer Jane , der user_id 2 hat. Nun, endlich, das letzte, was wir zu diesem Skript hinzufügen werden, ist eine Reihe von verschiedenen Besuchen. Lassen Sie uns die gleiche Zeile kopieren und einfügen, aber jetzt werden wir die Beziehung von OWNER zu VITOR ändern, wir werden auch die Home-ID ändern. Also im Moment gehört John die erste Immobilie, also werden wir John das zweite Anwesen besuchen lassen. Gehen Sie voran und ändern Sie die Daten in etwas vernünftiges, hier werde ich am 5. Oktober beginnen und am 7. Oktober enden. Gehen wir jetzt weiter und duplizieren Sie das ein paar Mal. Nun, wir werden wieder John besuchen, dieses Mal besucht er Eigentum 3, und er wird den Besuch am 7. Oktober beginnen und bis zum 9. Oktober besuchen. Schließlich gehen wir weiter und fügen Sie unseren dritten und letzten Besucher hinzu. Hier werden wir unseren neuen Besucher, Bob, die dritte Unterkunft besuchen, kurz bevor John es tut. In Ordnung. Das schließt unseren Kodex ab. In der nächsten Lektion werden wir diesen Code tatsächlich ausführen, und dann werden wir ein wenig mehr tun, um diese Daten abzufragen. Damit ist unsere Lektion hier abgeschlossen. Dies war Airbnbs Fallstudie Schritt vier der Diagrammerstellung und ein wenig Code. In der nächsten Lektion beenden wir die Abfrage der Daten. 10. Fallstudie 3: AirBnb (Code Abfragen): Willkommen zur neunten und letzten Lektion der Airbnb-Fallstudie. In dieser Fallstudie werden wir den Code beenden, den wir zuletzt gestartet haben Insbesondere werden wir die Datenbank und die Daten abfragen, die wir erstellt und eingerichtet haben. Genau wie zuvor verfolgen wir den Fünf-Schritt-Prozess, den wir skizziert haben. Insbesondere haben wir Anforderungen, Design, Optimierung, Diagramm abgedeckt und schließlich in diesem Schritt werden wir Code abdecken. Gehen Sie voran und greifen Sie auf glitch.com zu. Sobald Sie auf dieser Seite sind, können Sie Ihr bestehendes Projekt finden und auf „Projekt bearbeiten“ klicken. Beachten Sie, dass Sie im Gegensatz zu zuvor kein neues Projekt starten können, da wir den Code verwenden müssen, den wir zuletzt geschrieben haben. Sobald Sie auf glitch.com sind, sehen Sie eine Seite wie diese, gehen Sie voran und drücken Sie „Tools“ und „Terminal“. Das bringt Sie dann zu einem Tab wie diesem. Starten Sie jetzt die sqlite3-Eingabeaufforderung für eine neue Datenbank. Hier haben wir.data/lesson9.db. Nun, gehen wir weiter und führen Sie das Skript, das wir in der letzten Lektion.read lesson8.sql geschrieben haben. Keine Nachricht ist eine gute Nachricht, genau wie vorher. Hier können wir sehen, dass es jedoch keine Ausgabe gibt, das bedeutet, dass unser Skript erfolgreich lief. Lassen Sie uns voran und erstellen Sie jetzt ein paar verschiedene Abfragen, die uns interessieren könnten. Insbesondere werden wir durch verschiedene Seiten der Airbnb-Website sprechen , die ziemlich häufig verwendet werden. Lassen Sie uns voran gehen und jetzt erstellen Abfragen für die Suchseite. Nehmen wir an, dass wir alle Häuser unter $45 pro Nacht auflisten möchten, gehen Sie voran und geben Sie alle von Häusern wo der Preis pro Nacht weniger als 45. Hier haben wir nur eine Eigenschaft, die diese Kriterien erfüllt. Nehmen wir an, wir wollen auch die Ergebnisse paginieren, anderen Worten, zeigen begrenzte Anzahl von Ergebnissen pro Seite. Hier werden wir alle aus Häusern auswählen und wir werden die Anzahl der Ergebnisse auf zwei beschränken, und wir werden nach dem zweiten Ergebnis beginnen weil dies vielleicht die zweite Seite der Ergebnisse ist. Hier können wir eine der Eigenschaften sehen , da die anderen beiden Eigenschaften bereits aufgelistet wurden. Lassen Sie uns schließlich versuchen, nach Preis zu sortieren. Gehen Sie voran und tippen Sie ein, wählen Sie alle aus den Häusern und bestellen Sie nach Preis pro Nacht. Wie Sie sehen können, sind die Häuser jetzt in steigender Reihenfolge der Preise aufgeführt. Lassen Sie uns nun die Host-Seite erkunden. Wir möchten Fragen zu bestimmten Host stellen, in diesem Fall werden wir fragen, wie viele Eigenschaften hat Jane? Wir werden die Themen kombinieren, die wir aus früheren Lektionen gelernt haben. Wir werden zuerst auswählen, um zu zählen, werden wir die Aggregator-Anzahl verwenden, wir werden von Benutzern zu Hause auswählen, die Beziehungstabelle. Wir werden auf der Benutzer-Tabelle beitreten , weil wir für die Benutzer mit dem Namen Jane filtern müssen. Wie zuvor müssen wir angeben, wie die Benutzer und die Benutzer Home-Tabellen verknüpft sind. Hier haben wir die Benutzer-ID ist gleich den Benutzern Häuser, Benutzer-ID. Schließlich wollen wir nur Benutzer mit dem Namen Jane auswählen und vielleicht noch wichtiger, wir wollen nur Beziehungen vom Typeigentümer auswählen. Hier können wir sehen, dass Jane zwei Häuser besitzt, genau wie wir es erwarten würden. Lassen Sie uns jetzt voran und finden Sie heraus, wie viele Besucher eines der Unterkünfte haben. Hier werden wir noch einmal, wählen Sie die Anzahl, wir gehen, um aus der Tabelle Benutzer und Homes wählen. Wir werden uns in den Häusern anschließen. Wieder einmal können wir angeben, wie diese beiden Tabellen verwandt sind und wir werden nur nach dem Haus filtern, das uns wichtig ist. In diesem Fall kümmern wir uns um 345 Main Street, und wir kümmern uns nur um Besucher. Hier haben wir die Rolle ist gleich Besucher. Wie Sie erwarten, gibt es zwei Besucher. Lassen Sie uns nun eine andere Seite von Airbnb erkunden. Nehmen wir an, wir wollen die Besucher-Startseite erkunden. In diesem Fall möchten wir alle Fahrten für einen einzelnen Benutzer auflisten. Also werden wir schreiben Auswahl und wir werden die Adresse, die sie besucht, den Start- und das Enddatum auswählen . Wir werden aus Homes auswählen und wir werden auf die Benutzer Home-Beziehungen beitreten oder angeben, wie diese Tabellen durch ihre IDs verwandt sind , und wir müssen auch auf Benutzer beitreten. Im Gegensatz zu zuvor müssen wir zwei Join-Anweisungen in dieser Abfrage haben. Dies ist die Benutzer-ID. Schließlich müssen wir nach allen Benutzern mit dem Namen John filtern, und wir sind nur an Besuchen anstelle von Eigentümern interessiert. Das war's, wir können jetzt die Adressen sehen, die John besucht hat und seine Reisen. Damit ist der Kodex abgeschlossen. Gehen wir weiter und navigieren Sie zurück zu unseren Folien. Hier werden wir verschiedene Konzepte, die wir besprochen haben, zu überprüfen. Wir diskutierten Reihenfolge, Gruppierung für, Limit, Offset und komplizierte Joins. All diese haben wir verwendet, um Abfragen und unsere Airbnb-Fallstudie für jede andere Seite auf der Airbnb-Website zu erstellen . Damit ist Lektion 9 abgeschlossen. Airbnb selbst ist viel schicker als das Datenbankdesign, das wir konstruiert haben. Wenn Sie Ideen haben, um dieses Datenbankdesign zu erweitern, gehen Sie weiter und brainstorming. Fügen Sie zu Ihrem [unhörbaren] hinzu, erweitern Sie es und teilen Sie es in den Projekt-Registerkarten. Herzlichen Glückwunsch zum Abschluss dieser dritten und letzten Fallstudie. Sehen Sie sich das nächste Video an, um einen Überblick über das Gelernte und die nächsten Schritte zu erhalten. 11. Nächste Schritte: Sie haben jetzt nicht eine, sondern drei Datenbanken erstellt. Sie haben drei Beispiele dafür gesehen, was Sie nicht tun sollten, drei Tipps zum Datenbank-Design erhalten und eine große Anzahl verschiedener Datenbank-Design-Konzepte behandelt. Denken Sie daran, dass das Design Ihrer Datenbank für die Vernunft Ihrer Codebasis von größter Bedeutung ist. Machen Sie das richtig, und der Rest der Entwicklung wird Tonnen einfacher sein. Nun, wenn Sie es noch nicht getan haben, wählen Sie Ihre Lieblings-App aus. Es kann eine bestehende Idee sein, eine revolutionäre Idee, von der nur Sie wissen, oder ein neues Feature. Erstellen Sie ein Entitätsbeziehungsdiagramm und zeigen Sie uns, was Sie haben, indem Sie es auf die Registerkarte Projekte und Ressourcen hochladen. Das war's, es gibt noch viel zu lernen. Wenn Sie Ihr Datenbank-Design-Wissen auf die nächste Ebene bringen möchten, finden Sie hier eine Liste von Themen, die Sie beginnen können; andere Datenbanktypen, wie Sie zwischen der Logikebene und der Datenbank kommunizieren und schließlich andere Datenbankkonzepte. Achten Sie auch auf andere 101 Klassen in meinem Skillshare Profil, einschließlich diejenigen in Computer Vision und andere in Data Science. Herzlichen Glückwunsch noch einmal, dass es bis zum Ende des Kurses und bis zum nächsten Mal geschafft hat.