Jobtaugliches SQL an einem Nachmittag | Max S | Skillshare
Drawer
Suchen

Playback-Geschwindigkeit


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

Jobtaugliches SQL an einem Nachmittag

teacher avatar Max S, Power through programming

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.

      Einführung

      0:40

    • 2.

      Relationale Datenbanken, Einführung

      15:19

    • 3.

      Datenarten und Schemas

      17:35

    • 4.

      [Mac] Einrichtung eines lokalen a

      3:25

    • 5.

      [Windows] Lokale Postgres Server

      4:51

    • 6.

      [Mac] Postico Setup

      4:34

    • 7.

      Datagrip

      5:32

    • 8.

      CLI

      1:20

    • 9.

      Datenbanken erstellen und

      6:01

    • 10.

      Schemas erstellen

      3:48

    • 11.

      Tabellen erstellen

      8:36

    • 12.

      Tabellen ändern

      3:06

    • 13.

      Gezählte Arten

      4:51

    • 14.

      Werte hinzufügen

      6:57

    • 15.

      Ein SQL-Script erstellen

      6:20

    • 16.

      Daten lesen

      7:00

    • 17.

      Tabellen aus der Query erstellen

      6:28

    • 18.

      16AliasingandOrderHB

      13:41

    • 19.

      Conditional

      5:08

    • 20.

      18ConditionalFilterungGroup,

      10:20

    • 21.

      19JoiningConditionalsHB

      7:50

    • 22.

      20NegatenConditionalsHB

      4:40

    • 23.

      21FilterungNullValuesHB

      1:31

    • 24.

      22Erstellung 22CreatingNewColumnsAndArithmeticsHB

      7:36

    • 25.

      23DatatypeConversementeHB

      6:33

    • 26.

      24LogicStatementsHB

      7:22

    • 27.

      25ManipationsStringsHB

      9:59

    • 28.

      26StringPositionalInformationHB

      8:10

    • 29.

      27StringSubsetsUndConcatinationsHB

      22:56

    • 30.

      28String-AusstellungHB

      9:35

    • 31.

      29DateandTimeHB

      6:32

    • 32.

      30DateTimeIntervall, 30DateTimeIntervall, 30Date-

      7:37

    • 33.

      31KommentareHB

      6:50

    • 34.

      32AggregationsFunctionsHB

      6:54

    • 35.

      33Groupingund 33GroupingAndFilteringAggregationsHB

      12:20

    • 36.

      34JoinsHB

      18:49

    • 37.

      35LeftRightVoll, 35LeftRightFullJoinsHB

      16:48

    • 38.

      36SelfJoinsHB

      9:05

    • 39.

      37UnionsHB

      5:29

    • 40.

      Unterfragen

      9:02

    • 41.

      39WindowFunktionenUndAliasenHB

      15:26

    • 42.

      40RowNumbersUndRanksHB

      6:14

    • 43.

      41UsingOtherRowsFensterFunktion, 41Fenster

      11:07

    • 44.

      42NTilesHB

      4:09

    • 45.

      43UnderstandingQueryPerformanceHB

      3:47

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

311

Teilnehmer:innen

--

Projekte

Über diesen Kurs

In nur einem Nachmittags Übungen wirst du Folgendes sein:

  • 100% fließend in SQL
  • Habe das technische Know-, um es am Arbeitsplatz anzuwenden
  • Kann die Möglichkeit, SQL-Anfragen schreiben, um Daten zu extrahieren und zu analysieren und zu analysieren.
  • Die technischen Fragen zum Beantworten von technischen Interview-Fragen

Das Training beginnt mit den grundlegenden Grundlagen, indem du dir zeigt, wie du alle auf deiner eigenen Maschine einrichtest, und dir ein Verständnis von den Nachlässigkeit von den Nachlässen geben.

Wir geben dir dann Grundlegende Fragen, dass wir nur Daten aus der Datenbank auswählen, bis zur Anwendung von Ordnungen und filters, ausgehen, und dass sie Joys und Vereinigungen sowie Gemischs von Fenster.

Bei jedem Schritt befassen wir uns nicht nur die Anfragen und sprechen auch über das tatsächliche Verhalten, damit wir verstehen, was wir machen und wie es funktioniert, damit dieses Wissen auch auf andere Probleme angewendet werden kann.

Am Ende dieses Kurses solltest du dich sehr wohlfühlen, dass du die Fragen des Schreibens von SQL und Daten ausgibst. und der Fähigkeiten zur Antwort von technischen queries, hast, die sich in Interviews für Positionen wie Data und queries, präsentieren können.

Triff deine:n Kursleiter:in

Teacher Profile Image

Max S

Power through programming

Kursleiter:in
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: Hallo, da ist es Max und willkommen zu deiner SQL-Mission. In dieser Mission lernen Sie, wie Sie SQL verwenden, um Daten direkt in der Datenbank mithilfe von SQL-Abfragen zu verarbeiten und zu analysieren . Am Ende dieser Mission werden Sie in der Lage sein, SQL-Abfragen zu schreiben , die so aussehen, und Sie werden auch lernen, was relationale Datenbanken sind Während des gesamten Kurses werden Sie zunächst mit Ihrem Setup beginnen Anschließend werden Sie sich mit einigen Grundlagen zu Tabellen, Datenbanken und Abfragen befassen. Sie werden etwas über Arithmetik lernen. Sie werden etwas über Datum und Uhrzeit lernen , Daten manipulieren, und dann werden Sie sich auch mit komplexeren Dingen wie Verknüpfungen, Vereinigungen und Fensterfunktionen befassen komplexeren Dingen wie Verknüpfungen, Vereinigungen und Deshalb freue ich mich darauf, dass du anfängst. 2. Relationale Datenbanken, Einführung: Hey da, x max und willkommen. In dieser Lektion werden wir also über relationale Datenbanken lernen , nur um sicherzustellen, dass alle auf der gleichen Ebene sind, dass jeder das gleiche Wissen über relationale Datenbanken hat und dass wir alle mit die Schlüsselbegriffe, so dass, wenn wir tatsächlich anfangen, SQL zu verwenden und SQL zu lernen, wenn Sie einen der notwendigen Begriffe hören, Sie genau verstehen, wovon ich spreche. Zunächst relationale oder Datenbanken in einem relationalen Modell in Tabellen aufgeteilt. Eine Datenbank wird also aus mehreren Tabellen bestehen, aber fangen wir zuerst mit der Tabelle an. So können wir zum Beispiel einen Tisch haben, wie wir hier rechts sehen. Das erste, was wir bemerken, ist, dass die Tabelle einen Namen hat , den Sie darüber sehen können. Nun, das ist genau die Art, wie ich es zeigen werde. Normalerweise wird der Name woanders dargestellt. Aber nur um sicherzustellen, dass alles hier verknüpft ist, haben wir den Namen oben. Also in diesem Fall ist unser Name Benutzer Unterstrich und Telefon. Jetzt werden Sie etwas über die Benennung bemerken, die für allgemeine Namenskonventionen da ist. Einer von ihnen verwendet einen Unterstrich und der andere verwendet Großbuchstaben. Das Beispiel für Großbuchstaben sehen Sie in der Benutzer-ID, die eine Spalte in unserer User-Info-Tabelle ist. Diese beiden Optionen sind nur verschiedene Namenskonventionen und sie sind nur da, um Ihnen, dem Benutzer oder vielleicht auch dem Datenbankadministrator oder jedem anderen, der diese Datenbank verwenden muss, zu helfen, alles lesen zu können einfacher, da es viel einfacher ist, Wörter zu lesen, die entweder durch einen Unterstrich oder Wörter getrennt sind , bei denen jedes neue Wort mit einem Großbuchstaben beginnt. Und es ist viel einfacher, Wörter wie diese zu lesen, wo alles entweder Klein- oder Großbuchstaben oder so etwas ist . Und so werden Sie wahrscheinlich sehen, dass eine dieser beiden Namenskonventionen verwendet wird, wenn Sie eine SQL-Datenbank verwenden, zum Beispiel in einem Unternehmen, oder wenn Sie eine in einem technischen Interview oder so etwas bekommen. Jetzt, wie Sie wahrscheinlich bemerkt haben und wahrscheinlich bereits wissen, bestehen Tabellen aus Zeilen und Spalten und es ist die gleiche Weise in einer relationalen Datenbank. So können wir hier unsere Tabelle sehen, die userinfo-Tabelle hat vier verschiedene Spalten genannt die Benutzer-ID, eine andere namens name, eine andere namens join, und eine andere namens email. Und es hat auch verschiedene Reihen. Wir können hier sehen, wir haben drei Reihen in diesem Fall. Also werden wir in einer Sekunde mehr darüber reden. Aber ja, das wird die Art von Basisstruktur sein , die unsere Datenbank aus verschiedenen Tabellen besteht. Jede Tabelle hat einen Namen, und jede Tabelle besteht auch aus Spalten und Zeilen. Jetzt hat jede Tabelle in einer relationalen Datenbank auch einen Primärschlüssel genannt. Der Primärschlüssel ist die Spalte, die jede Zeile eindeutig identifiziert. So können wir hier sehen, in diesem Fall wird unser Primärschlüssel die Benutzer-ID sein, was bedeutet, dass jede einzelne Zeile eine eindeutige Benutzer-ID haben muss. Dieser Primärschlüssel kann entweder auf natürliche Weise entstehen. Zum Beispiel wird in unserer Userinfo-Tabelle die Benutzer-ID durch Design eindeutig sein , da jeder Benutzer eine eindeutige ID haben wird. Daher ist die Benutzer-ID eine großartige Spalte, die als Primärschlüssel verwendet werden kann. Aber in anderen Fällen kann der Primärschlüssel eine zusätzliche Spalte sein, da es keine Spalte in unserer Tabelle gibt , die nicht wirklich zu einer eindeutigen Identifikation kostenlose Testversion führt. So oder so, ein Primärschlüssel in Tabellen wichtig, weil das ist, was wird es uns erlauben , jeden Datensatz in unserer Datenbank einzeln zu identifizieren. Daher ist es wichtig, dass wir eine Spalte für den Primärschlüssel haben, da wir auf diese Weise einen eindeutigen Bezeichner für jede Zeile haben können, die wir in unserer Tabelle haben. Nun ist etwas anderes, was wichtig ist, der Primärschlüssel. Es kann immer nur einen pro Tisch geben. Sie können nicht zwei Primärschlüssel in einer Tabelle haben. Der Primärschlüssel wird also nur einer sein, und es wird uns auch erlauben, jede Zeile eindeutig zu identifizieren. Jetzt verwenden wir die Begriffe Zeile und Spalten. Aber tatsächlich in SQL werden die Spalten normalerweise Attribute genannt und die Zeilen werden Datensätze genannt. Und so können Sie darüber nachdenken, dass die Spalten Attribute zu jedem unserer Datensätze sind. Auch hier sind Datensätze Zeilen. Wenn wir zum Beispiel die erste Zeile oder den ersten Datensatz betrachten, haben wir die UserID 1. Also das Attribut unserer ersten Zeile, wo es eine Benutzer-ID von eins und Name hat. Alice trat am 11. Mai und eine E-Mail an abc.com. Dies wird also eine Art Syntax sein, die Sie wahrscheinlich hören werden , wenn Sie Tabellen betrachten und wissen, von Zeilen und Spalten oder vielmehr von Datensätzen und Attributen hören. Jetzt, wie ich bereits erwähnt habe, wird eine Datenbank normalerweise mehrere Tabellen anstatt nur eine haben. So zum Beispiel, unsere Datenbank mich, es kann über Benutzer und Speicherung von Benutzerinformationen sowie Informationen über die Ereignisse, die Benutzer tun. Und so konnten wir Tabellen sehen, zum Beispiel die UserInfo genannt, die wir zuvor hatten, die wir auch eine andere Tabelle namens Ereignisprotokoll haben konnten. Und wir können eine andere Tabelle namens Event Info haben. Und diese Tabellen werden alle in irgendeiner Weise verwandt sein. Normalerweise ist nicht der beste Weg, diese Beziehungen zu definieren , durch etwas, das als Fremdschlüssel bezeichnet wird. So haben wir zum Beispiel in unserem Ereignisprotokoll zwei Fremdschlüssel. Und mit den Fremdschlüsseln sind, ist, sie sind Spalten in dieser Tabelle, die den Primärschlüssel in einer anderen Tabelle referenzieren. Lassen Sie uns zum Beispiel einen Blick auf die Ereignisprotokolltabelle werfen. Hier haben wir zwei Fremdschlüssel. Einer von ihnen wird die Benutzer-ID sein. Nun verweist die Benutzer-ID auf die ID-Spalte und die userinfo-Tabelle. Und wir haben einen anderen Fremdschlüssel hier genannt die Ereignis-ID. Nun wird die Ereignis-ID auf die ID-Spalte in der Ereignis-Info-Tabelle verweisen. Auf diese Weise können wir auch die Beziehungen zwischen unseren verschiedenen Tabellen strukturieren. Ansonsten wäre es ineffizient für uns, alle diese Daten in derselben Tabelle zu speichern. Und deshalb teilen wir diese Tabellen auf, oder deshalb teilen wir die Daten eher in diese verschiedenen Tabellen auf. Denn sonst würden wir einen wirklich großen Tisch bekommen. Denn stellen Sie sich vor, wenn wir unser Ereignisprotokoll und für jedes einzelne Ereignis haben, speichern wir auch alle Informationen über den Benutzer sowie die Informationen über das Ereignis selbst. Das bedeutet, dass jeder einzelne Datensatz viele Duplikate hat, da sich die Benutzerinformationen nicht ändern werden und sich die Informationen über das Ereignis nicht ändern werden. Eine bessere und effizientere Methode, dies zu strukturieren, besteht darin das Ereignisprotokoll und alles, was benötigt wird , das für dieses Ereignisprotokoll, das sich ändern wird, nicht relevant ist. Und Informationen, zum Beispiel, über den Benutzer, können in der Tabelle userinfo gespeichert werden. Und alles, was wir im Ereignisprotokoll brauchen, ist, wer das Ereignis gemacht hat. Aber wenn Sie mehr über den Benutzer erfahren möchten, dann können wir unseren Fremdschlüssel haben, die Benutzer-ID in der Ereignisprotokolltabelle, die auf den Primärschlüssel, die ID und die Benutzer-Info-Tabelle verweist . Und so können wir dort im Wesentlichen eine direkte Suche bekommen. Und für jeden Datensatz, wenn wir wollen, dann können wir mehr Informationen über den Benutzer und dann dasselbe über die Ereignisse bekommen. Auf diese Weise können wir Fremdschlüssel verwenden, um Referenzen zwischen Tabellen zu erstellen und sie miteinander zu verknüpfen. Jetzt haben wir über den Primärschlüssel gesprochen, indem wir jede Tabelle zurückhalten, was bedeutet, dass der Wert und der Primärschlüssel in jeder Zeile eindeutig sein müssen, müssen für jeden Datensatz eindeutig sein. Aber Sie können tatsächlich auch zusätzliche Einschränkungen haben. Zum Beispiel, eine andere Einschränkung, die wir tun möchten, ist, dass wir OK sagen wollen, das E-Mail-Feld in der Tabelle userinfo muss auch eindeutig sein. Jetzt wird es die Person nicht eindeutig identifizieren, aber wir wollen, dass sie für jede Person einzigartig ist. So können wir einen Primärschlüssel haben, zum Beispiel die Benutzer-ID. Und dann haben wir ein anderes Feld, zum Beispiel die E-Mail. Aber wir wollen auch sicherstellen, dass die E-Mail-Spalte selbst eindeutig ist. Und so können wir zusätzliche Einschränkungen auf einen Tisch setzen, um zum Beispiel zu sagen, dass die E-Mail eindeutig sein muss. Oder vielleicht, wenn Sie eine andere Plattform haben, auf der Sie sich über verschiedene Regionen anmelden können und Sie einen Namen haben und verschiedene Regionen haben, dann können Sie sagen, dass der Name oder der Benutzername, den eine Person verwenden möchte, in jedem Region. So können Sie eine Kombination aus dem Namen und der Regionskombination müssen eindeutig sein. So können Menschen den gleichen Benutzernamen in verschiedenen Regionen haben. Aber in jeder Region darf jede Person nur einen Benutzernamen haben. Beispielsweise dürfen die Benutzernamen nur einmal angezeigt werden. Auf diese Weise können Sie zusätzliche Einschränkungen für Tabellen haben, die über den Primärschlüssel hinausgehen , die ebenfalls Eindeutigkeit erfordern oder auch dazu führen, dass mehr Bedingungen auf die Tabelle gestellt werden. Nun wird dies den Primärschlüssel nicht ersetzen, aber es wird zusätzliche Einschränkungen zusätzlich zu der Einschränkung sein , dass wir den Primärschlüssel haben müssen, dass jeder Wert im Primärschlüssel für alle einzelner Datensatz. Diese Einschränkungen können natürlich gut sein, weil auf diese Weise, wenn Sie MRF, jemand anderes vielleicht ein Konto erstellen will, aber die E-Mails bereits aus irgendeinem Grund verwendet wurden. Und wir können ihnen eine Fehlermeldung werfen und sagen, dass E-Mails bereits verwendet werden. Und wir werden keine Aufzeichnungen erstellen, in denen mehrere Personen die gleiche E-Mail haben. Denn dann, wenn Sie eine E-Mail an unsere Benutzer senden möchten, zum Beispiel, in mehreren verschiedenen Menschen verwenden die gleiche E-Mail aus irgendeinem Grund, und das wird offensichtlich zu Problemen führen. Und wenn es also zusätzliche Einschränkungen gibt, wie viele, entweder durch die Geschäftslogik oder einfach nur Ihr Verständnis dafür, wie alle diese Daten organisiert werden sollten, dann können Sie diese natürlich einfügen oder anstatt Diese Einschränkungen können auf die einzelnen Tabellen gesetzt werden, so dass, wissen Sie, keines dieser Probleme auftritt. Jetzt im Laufe der Zeit, selbst wenn wir unsere Daten in diese verschiedenen Tabellen aufteilen, können Tabellen immer noch sehr groß werden. Beispielsweise kann unser Ereignisprotokoll sehr schnell wachsen , wenn wir viele Benutzer haben, die unsere Plattform nutzen. Und so etwas, was Sie vielleicht hören, ist etwas, das eine Partition genannt wird. Jetzt eine Partition als eine Möglichkeit, dass wir eine Tabelle in kleinere Sub-Chunks aufteilen können. Und so können wir sie an verschiedenen Orten speichern. Dies kann den Speicher effizienter machen, aber es kann auch die Abfrage effizienter machen. Normalerweise erstellen Sie eine Partition nach einer Spalte, die häufig zum Filtern verwendet wird. So ist zum Beispiel ein sehr gebräuchlicher Weg, Daten nach Datum zu partitionieren. Denn oft, wenn Sie eine Abfrage durchführen, zum Beispiel, möchten Sie alle aktiven Benutzer innerhalb der letzten Woche sehen, dann werden Sie abfragen oder besser gesagt, Sie werden nach Datum filtern. Wenn Ihre Tabelle also partitioniert oder vielmehr in verschiedene Segmente aufgeteilt ist, müssen Sie nicht so viele Daten durchlaufen. Sie müssen nur auf die Tabellen verweisen, die tatsächlich die entsprechenden Daten enthalten. Auf diese Weise wird es effizienter für die Lagerung sein, da Sie keinen großen Tisch an einem Ort aufbewahren müssen. Aber es wird eigentlich auch effizienter für die Abfrage sein , da Sie dann nur einen kleineren Teil der Tabelle durchlaufen müssen , um die Ergebnisse zu erhalten, die Sie suchen. Jetzt ist das coole Ding an Partitionen. Beeinflussen Sie nicht wirklich, da die Abfrage oder die Partitionen von der Datenbank selbst erledigt werden. Und es wird all diese Speichersachen für Sie behandeln. Und es wird es effizienter, wenn Sie nach den Spalten filtern, die für die Partitionen verwendet werden. Aber wenn Sie alle Daten auf der Tabelle erhalten möchten, können Sie immer noch, obwohl die Tabelle partitioniert wird, Sie können immer noch alle Tabellen abfragen, wenn Sie möchten, oder Sie können die gesamte Tabelle abfragen, die über verschiedene Standorte. Obwohl Partitionen unsere Tabellen aufteilen , um sie effizienter zu machen. Und sie können unsere Anfragen effizienter machen, wenn wir die entsprechenden Filter verwenden, es wird immer noch keine anderen negativen Auswirkungen auf Sie haben oder Sie werden es nicht einmal wirklich bemerken, außer den möglicherweise positiven Effekten , die du daraus bekommst. Und so sind Petitionen daher extrem cool, weil sie die Dinge so viel effizienter machen. Aber sie nicht, Sie müssen nicht wirklich mit ihnen auf andere Weise interagieren , außer sie zu Ihrem Vorteil nutzen. Jetzt gibt es auch andere Möglichkeiten, wie relationale Datenbanken oder Tabellen entworfen werden können, um die Abfrage effizienter zu gestalten. Und das ist durch das Setzen von Indizes oder eine Einstellung zusätzlicher Indizes. wir zum Beispiel an, wir fragen oft nach Ereignissen. Möglicherweise möchten wir für jedes Ereignis einen zusätzlichen Index einrichten. Und auf diese Weise wird unsere Datenbank tatsächlich verfolgen, welcher Datensatz zum Beispiel welche Ereignis-ID hat. Jetzt wird die Indizierung mehr Speicher erfordern. Also offensichtlich möchten Sie nicht jedes einzelne Ding indizieren , weil Sie dann all das im Auge behalten müssen. Aber in der nächsten Sache auf den rechten Spalten können die Abfrage viel effizienter machen , da Sie jetzt eine schnelle Nachschlagetabelle haben. Anstatt die gesamte Datenbank zu durchsuchen und alle Datensätze zu finden, können Sie stattdessen grundsätzlich auf diese Nachschlagetabelle verweisen und Ihnen mitteilen, welche Datensätze Sie wollen. Daher erfolgt die Indizierung normalerweise für die Spalten, die sehr oft zum Filtern verwendet werden. Und es kann Abfragen viel effizienter machen. Jetzt können Sie immer noch alle normalen Dinge tun, ohne die Indexspalten zu filtern. Und das nächste ist nur eine andere Möglichkeit für die Datenbankdesigner, die Abfrage der Tabellen noch effizienter zu gestalten. Und so wird es normalerweise sein, dass die Spalten , die sehr oft für die Filterung verwendet werden, Index sein werden. Und so wird das die Abfragen viel effizienter machen. Wenn Sie also wissen, welche der Spalten indiziert sind, sollten Sie beim Filtern am besten nach diesen Spalten filtern. Und dann müssen Sie in den nachfolgenden Abfragen, die Sie ausführen, bereits viel weniger Datensätze durchlaufen , da Sie die Größe Ihrer Tabelle bereits reduziert haben , indem Sie die Filterung durchführen. Und so ist die Indizierung, genau wie die Partitionierung, etwas, das uns im Grunde nur positiv als Abfrage beeinflussen kann oder weil wir sie nicht verwenden müssen. Aber wenn wir Indizes und Partitionen von Tabellen richtig verwenden, dann kann es auch wirklich die Leistung unserer Abfragen verbessern. Nun, etwas anderes, das Sie vielleicht auch als Tabellenbeziehungen hören. Es gibt also verschiedene Möglichkeiten, wie Tabellen mit anderen Tabellen in Verbindung gebracht werden können. Eine dieser Wege als Eins-zu-Eins-Beziehung. Nun bedeutet eine Eins-zu-Eins-Beziehung, dass ein Datensatz in einer Tabelle einem Datensatz in einer anderen Tabelle entspricht, aber er muss nur 11 Datensätze in dieser anderen Tabelle entsprechen muss nur einem Datensatz in der ursprünglichen Tabelle entsprechen. Sie haben also zwei Tabellen, wenn sie durch eine Eins-zu-Eins-Beziehung verwandt sind, als eine Zeile in jeder Tabelle einer und nur einer Zeile in der anderen Tabelle entspricht. Als nächstes haben wir eine Eins-zu-Viele-Beziehung. Ein 1:n-Wert bedeutet, dass eine Zeile in einer Tabelle mindestens vielen Zeilen oder mehreren Zeilen entspricht. Und noch einen Tisch. Und mehrere Zeilen in dieser anderen Tabelle können nur einer Zeile in der ursprünglichen Tabelle entsprechen. So zum Beispiel, oder userinfo und unser Ereignisprotokoll sind durch eine 1:n-Beziehung verwandt, eine Zeile und unsere UserInfo kann vielen Zeilen und dem Ereignisprotokoll entsprechen, da der Benutzer mehrere Ereignisse machen kann. So können wir mehrere Datensätze haben, die alle die gleiche Benutzer-ID haben. Aber jeder dieser Datensätze verweist nur auf eine Zeile oder einen Datensatz in unserer userinfo-Tabelle. Und die Ereignisinformationen und das Ereignisprotokoll haben die gleiche Beziehung. Schließlich können wir auch eine Viele-zu-Viele-Beziehung haben, was bedeutet, dass mehrere Datensätze in einer Tabelle einem Datensatz in einer anderen Tabelle entsprechen können. Und mehrere Datensätze in dieser anderen Tabelle können einem Datensatz in der ursprünglichen Tabelle entsprechen. 3. Datenarten und Schemas: Ordnung. Jetzt wissen wir etwas mehr über relationale Datenbanken und wie sie aufgebaut sind und wie sie funktionieren und wie sie im Allgemeinen aussehen In dieser Lektion möchte ich auf Datentypen und Schemas eingehen . Lassen Sie uns nun zunächst über Datentypen sprechen. Ich werde nur eine der Tabellen haben , die wir hier in unserer vorherigen Lektion hatten , damit wir auf diese visuelle Sache zurückgreifen können. Wenn wir uns diese Tabelle ansehen und uns nur einige der Werte ansehen, können wir feststellen, dass hier verschiedene Arten von Daten dargestellt werden . Zum Beispiel sieht die ID-Spalte so aus, als ob sie mindestens ganze Zahlen oder ganze Zahlen Die Namensspalte sieht aus, als ob sie Text enthält, die Verknüpfung sieht aus, als ob sie Datums- oder andere Uhrzeitinformationen enthält, und dann besteht die E-Mail wieder aus Text Wenn wir eine Tabelle definieren, anstatt einfach beliebigen Wert kann es für uns sehr sinnvoll sein , den Datentyp zu definieren, den wir in jeder Spalte erwarten, anstatt einfach jeder Spalte einen zuzuweisen. Das ist nützlich, weil Sie aus einer externen Perspektive schnell erkennen können, welcher Datentyp in jeder Spalte enthalten sein sollte und was Sie dort erwarten. Das ist auch gut, weil unterschiedliche Datentypen unterschiedliche Speichermengen benötigen. Sie können den Speicher optimieren, indem den entsprechenden Datentyp auswählen , sodass Sie nicht unnötigen Speicherplatz blockieren , der nicht verwendet werden muss. Dies kann auch bei Dingen wie der Leistung sehr hilfreich sein, denn wenn Sie die richtigen Datentypen verwenden , werden die Abfragen in den meisten Fällen schneller ausgeführt, werden die Abfragen in den meisten Fällen schneller ausgeführt als wenn Sie nur einen allgemeinen Typ für alles verwenden würden, da die Operationen für das, was Sie genau tun möchten, viel besser definiert sind. Und es ist auch nett, denn wenn Sie neue Daten eingeben möchten oder wenn Sie die Tabelle ansehen und Daten daraus extrahieren möchten, wissen Sie, was Sie erwartet. Wenn es eine Diskrepanz gibt, können Sie das schnell vergleichen oder Sie erhalten eine Meldung von der Datenbank, die besagt, dass erhalten eine Meldung von der Datenbank, die besagt, Sie versucht haben, hier Text einzugeben, aber dieses Feld erfordert eine Ganzzahl oder dieses Feld erwartet ein Datum, eine Uhrzeit oder etwas Ähnliches. Auf diese Weise werden Ihre Datenbanken wahrscheinlich konsistenter bleiben und weniger fehleranfällig sein, da diese Validierungsprüfung durchgeführt werden muss , um sicherzustellen, dass alles, was eingeht, vom richtigen Typ ist. Da können Sie natürlich verschiedene Vorteile sehen, sowohl aus Sicht der Benutzer als auch aus Sicht der Datenbank selbst und unter dem Gesichtspunkt der Effizienz, sowohl in Bezug auf den Speicher als auch in Bezug auf Leistung und Geschwindigkeit unserer Abfragen Schauen wir uns einige der Datentypen an , die uns zur Verfügung stehen, beginnend mit den numerischen Datentypen Eine der häufigsten, die Sie sehen werden, ist eine Ganzzahl. Es gibt auch verschiedene Varianten einer Ganzzahl. Sie können eine kleine oder eine kleine Ganzzahl und ein großes Ende eine große Ganzzahl haben. Der Unterschied besteht hier in der Menge an Speicherplatz, die jedem Wert zugewiesen wird Sie können sehen, dass wir im Integer-Fall vier Byte am kleinen Ende haben, wir haben zwei Byte am großen Ende, wir haben acht Wir können hier schon sehen, dass wir hier Entscheidungen treffen können , die sich auf die Leistung auswirken. Wenn wir zum Beispiel eine Datenbank haben, die Testergebnisse bewertet, wäre es sinnvoll, eine kleine Ganzzahl zu verwenden, da Testergebnisse wahrscheinlich nicht über 100 liegen können. Wenn Sie dagegen große Mengen großer Zahlen speichern möchten , kann es sinnvoll sein, große Ganzzahlen zu verwenden Andernfalls werden Ihre Zahlen irgendwann abgeschnitten und Sie können nicht mehr größer werden irgendwann abgeschnitten und Sie können nicht mehr größer Je nachdem, was Sie von den Daten erwarten, können Sie tatsächlich die entsprechenden Entscheidungen treffen, um sicherzustellen, dass Sie nicht unnötig zusätzlichen Speicher verbrauchen Dann gibt es natürlich auch andere Typen. Es gibt noch einen anderen, der numerisch heißt oder eine andere Variante davon wäre dezimal. Das bedeutet nur, dass wir so viel Präzision haben, wie wir wollen. Diesem Datentyp ist keine festgelegte Anzahl von Bytes zugewiesen und er variiert. Dies macht ihn aus Benutzersicht natürlich viel flexibler , aber auch aus Datenbanksicht etwas weniger effizient , da er nicht jedem Datentyp oder jedem Wert, der in jeden Datensatz aufgenommen wird , spezifische Datenmengen zuordnen kann zuordnen Datentyp oder jedem Wert, der in jeden Datensatz aufgenommen wird , spezifische Datenmengen Wert, der in jeden Datensatz aufgenommen wird , Jetzt haben wir auch etwas, das als reelle und doppelte Genauigkeit bezeichnet wird Beide werden zum Speichern von Dezimalzahlen verwendet. Der Realwert kann jedoch bis zu fünf Dezimalstellen haben, wohingegen der Wert mit doppelter Genauigkeit bis zu 15 Dezimalstellen betragen kann . Auch hier gilt: Je nachdem, wie viel Genauigkeit Sie benötigen, können Sie entweder die reelle Zahl verwenden, wenn es nach fünf Dezimalstellen wirklich keine Rolle mehr spielt, oder wenn Ihnen diese zusätzlichen Dezimalstellen wirklich wichtig sind, dann können Sie beispielsweise die doppelte Genauigkeit verwenden, um sicherzustellen, dass Sie all diese Informationen beibehalten. Dann wird ein weiterer numerischer Datentyp , den wir festlegen können, Getreide genannt. Auch hier haben wir die Möglichkeit, entweder kleine Getreidearten oder auch große Getreidearten oder einfach nur normale Getreidearten zu verwenden . Was Müsli ist, ist eine automatische Inkrementierung. Das ist wirklich nett, wenn wir eine zusätzliche Spalte für einen Primärschlüssel haben wollen , aber diese Spalte ist nicht speziell festgelegt Es wäre nur ein Zahlenzähler, der inkrementiert. Die Seriennummer wird tatsächlich automatisch inkrementiert. Wenn wir zum Beispiel einen Primärschlüssel haben wollen, der nur die Zeilennummer oder eine eindeutige Kennung speichert, dann können wir ihm den Typ serial geben, weil er automatisch inkrementiert wird und wir ihm eigentlich keinen zusätzlichen Wert übergeben müssen Es wird nur sicherstellen, dass es sich gegenüber dem vorherigen Wert, den es zuvor hatte , immer weiter erhöht vorherigen Wert, den es zuvor hatte , Es kann natürlich auch zwischen dem kleinen Müsli und dem großen Getreide oder auch nur dem normalen Getreide Auch hier kommt es nur darauf an, wie viele Daten wir voraussichtlich in unserer Datenbank haben werden. Die nächste Datentypkategorie sind nun Textdaten. Es gibt einen Datentyp namens Text, der dem numerischen oder dezimalen Datentyp ähnelt , den wir zuvor hatten , der nur variable Datenmengen zulässt. Es ist kein fester Betrag, aber er kann je nach Eingabe wieder variieren. Aber wir haben auch Optionen , zum Beispiel Char oder Character, und dann definieren wir tatsächlich , wie viele Byte wir dem Objekt zuweisen wollen Das bedeutet, wenn wir zum Beispiel Char 25 sagen , bedeutet das, dass wir jedem einzelnen Datensatz für diese Spalte 25 Byte zuweisen jedem einzelnen Datensatz für diese Wenn wir nicht auf 25 Byte steigen, werden wir ein gewisses Padding haben und andernfalls werden wir bei 25 abgeschnitten Auch hier können wir Datengrößenbeschränkungen festlegen , die auf unseren Erwartungen basieren. Dann haben wir auch die Möglichkeit, ein Var-Zeichen oder ein variierendes Zeichen zu verwenden , was einfach bedeutet, dass wir zu so vielen Typen wechseln können. Auch hier können wir für all diese Textdaten speichern, aber die Speichermenge, die wir für jeden Datensatz verwenden , den wir eingeben oder für jeden Wert im Datensatz in einer bestimmten Spalte, die wir eingeben wird variieren je nachdem, welchen Datentyp wir hier wählen. Jetzt gibt es einige zusätzliche Datentypen Datum und Uhrzeit spezifisch sind. Wir haben Zeitstempeloptionen, die nur Zeitstempel sein werden, aber wir haben auch einen Zeitstempel TZ, und wir haben diese auch an anderen Orten, wo wir zusätzliche Zeitzoneninformationen speichern können Wir entscheiden uns dafür, den Zeitstempel mit Zeitzone zu verwenden? Das wird auch die Menge an Speicherplatz, die wir für jedes Element darin benötigen, erneut erhöhen Speicherplatz, die wir für jedes Element darin benötigen Dann können wir einen Datentyp für Datum verwenden , der kleiner als der Zeitstempel ist , weil wir uns jetzt nur noch um das Datum kümmern müssen und keine zusätzlichen Informationen über die Stunden, Minuten oder Sekunden oder sogar Millisekunden , falls wir das verfolgen Das Datum hängt wiederum davon ab, wie viel Genauigkeit wir in unseren Zeitinformationen haben wollen wir es mit Daten zu tun und ist die Datumsgenauigkeit ausreichend, Haben wir es mit Daten zu tun und ist die Datumsgenauigkeit ausreichend, oder benötigen wir beispielsweise bestimmte Zeitstempel angeht, können wir auch mit der Uhrzeit umgehen, was wiederum eine Möglichkeit ist, das Datum zu speichern, aber zusätzlich zum Datum können wir dann auch die Uhrzeit speichern Auch hier haben wir die Möglichkeit, auch die Zeitzone zu verwenden. Aber wenn wir die Zeitzone verwenden, benötigen wir wieder mehr Datenspeicher, weil wir auch hier diese zusätzlichen Zeitzoneninformationen speichern müssen. Wenn Sie jetzt keine Zeitzone verwenden, wird normalerweise die UTC-Zeit als Standardzeitzone verwendet. Speicherplatz zu sparen, können Sie in den meisten Fällen die Uhrzeit oder den Zeitstempel ohne Zeitzone verwenden und nur sicherstellen , dass alle Daten, die Sie eingeben, in UTC-Zeit vorliegen Schließlich gibt es noch einen anderen coolen Datentyp namens Intervall, der , wie der Name schon sagt, Intervalle zwischen verschiedenen Zeiten darstellt Das kann sehr nützlich sein, weil es uns ermöglicht, zeitbasierte Berechnungen durchzuführen. Zum Beispiel, wenn wir auf eine Woche zurückblicken oder eine Woche vorwärts oder auf morgen oder innerhalb der letzten Stunde. Das Intervall ist ein weiterer Datentyp , dessen Verwendung sehr cool ist. Wie Sie sehen werden, wenn wir beim Schreiben der SQL-Abfragen zum Abschnitt „Tageszeiten“ kommen . Das kann auch bei Abfragen selbst sehr nett sein. Nun, es gibt einige zusätzliche Datentypen, die wir haben. Einer von ihnen ist ein boolescher Wert. Dies ist ein sehr kleiner Datentyp, und alles, was wir hier speichern, sind Informationen über wahr oder falsch Dies kann nur zwei Werte annehmen, zwei oder falsch. Wir haben das Geld, das als Währung verwendet werden kann, wir haben Byte A, das zum Speichern von Byte-Strings verwendet werden kann . Wir haben aufgezählt, was nur ein benutzerdefinierter Datentyp ist , den wir erstellen können Wo wir eine Reihe von Elementen oder eine Reihe von Objekten zuweisen Elementen oder eine Reihe von und ihnen eine Reihenfolge zuweisen können Zum Beispiel können wir enumerate verwenden um die verschiedenen Monate des Jahres aufzuzählen Auf diese Weise können wir die Reihenfolge der Monate vergleichen Zum Beispiel können wir anhand eines Enumerator-Datentyps sagen , dass April auf März folgt. Wenn wir das jedoch nur als Textinformation speichern würden, könnten wir das nicht tun Die Aufzählung ist ein benutzerdefinierter oder benutzerdefinierter Datentyp, den wir erstellen können, wobei wir Objekten eine bestimmte Reihenfolge geben können Jetzt. Eine Erweiterung davon wären dann nur allgemeine benutzerdefinierte Datentypen, bei denen wir tatsächlich unsere eigenen Datentypen definieren und diese dann in unserer Tabelle selbst verwenden können unsere eigenen Datentypen definieren . Mit der Weiterentwicklung von Postgres oder allgemein mit der Entwicklung relationaler Datenbanken werden auch andere benutzerdefinierte Datentypen eingeführt, die für das System selbst zunächst möglicherweise nicht selbstverständlich sind zunächst möglicherweise nicht selbstverständlich Einige Beispiele sind zum Beispiel JS, XML, Arrays, Textsuchen, UUIDs, geometrische Datentypen oder Netzwerkdatentypen All dies sind im Grunde genommen Erweiterungsdatentypen, die verwendet werden, weil es sehr nützlich sein kann , diese Art von Daten speichern zu können, da es immer üblicher wird dass diese Datentypen Es kann sehr nett sein , das in einer Tabelle in einer relationalen Datenbank ablegen zu können Aber auch hier handelt es sich um benutzerdefinierte Datentypen, bei denen es sich um Erweiterungen handelt Mit zunehmender Zeit wird es wahrscheinlich auch mehr benutzerdefinierte Datentypen geben , die verwendet werden können. Kommt auch darauf an, was die Situation erfordert. Wie Sie sehen, gibt es eine Vielzahl von Datentypen, die uns tatsächlich zur Verfügung stehen. Im Allgemeinen konzentrieren sich die Datentypen , die Sie sehen werden, jedoch , die Sie sehen werden, mehr auf die grundlegenden Datentypen. Es kann wirklich nett sein, sich bewusst zu sein, welche Datentypen verfügbar sind und wofür sie Datentypen verfügbar sind und wofür sie stehen, denn wenn Sie eine Tabelle durchgehen und versuchen , sie zu verstehen, werden Sie dies einfach erkennen und auch, wenn Sie vielleicht eine Entscheidung treffen müssen, eine neue Tabelle zu erstellen, verstehen, welche Optionen Ihnen zur Verfügung stehen , und vielleicht sogar in der Lage sein, sich ein Ein bisschen darüber, wie ich die Effizienz optimieren kann , indem ich sicherstelle , dass ich den richtigen Datentyp verwende und ihm auch die richtige Menge an Datenspeicher zuweise. Nun, die andere Sache , über die ich sprechen möchte, sind Schemas Wenn Sie sich nun auf Schemas beziehen, bedeutet das im Allgemeinen, dass wir ein Schema haben, das eine Sammlung von Tabellen sowie Informationen zu jeder der Tabellen darstellt eine Sammlung von Tabellen sowie Informationen zu jeder der Es ist aber auch üblich, das Wort Schema zu verwenden, um die Eigenschaften und Strukturen einer Tabelle selbst zu definieren Schauen wir uns zum Beispiel diese eigentliche SQL-Abfrage unten links an, aber nicht zu viele Gedanken über die Abfrage. Schauen wir uns einfach die Elemente im Inneren an. Was wir hier sehen können, ist, dass wir eine ID haben , bei der es sich um eine Ganzzahl handelt, die auch für t abgekürzt werden kann. Wir können sehen, dass es sich um den Primärschlüssel handelt, und wir können sehen, dass er auch und wir können sehen, dass er auch keine Nullwerte annehmen darf Wir definieren hier lediglich unsere Benutzerinformationstabelle auf der rechten Seite Wir können hier sehen, dass unsere ID-Tabelle derzeit so definiert ist, dass sie Integer-Datentypen enthält. Sie ist auch als Primärschlüssel definiert und darf auch keine Nullwerte enthalten. Die nächste Spalte, die wir haben, wird der Name sein. Hier haben wir uns für den Varchar-Datentyp entschieden, was in diesem Fall bedeutet, wir ihm 25 Byte zugewiesen haben, was bedeutet, dass wir davon ausgehen, dass unsere Namen nicht länger als 25 sein werden , weil das die Menge an Speicherplatz ist, die wir jedem Element zugewiesen haben jedem Element zugewiesen , das wir mit jedem Datensatz Joined here wird ein Datentyp mit Datum sein, denn wenn wir uns die Spalte ansehen, speichern wir eigentlich nur Datumsinformationen, wir speichern keine zusätzlichen Zeitinformationen. Um die Speicherung etwas effizienter zu gestalten, müssen wir keine zusätzlichen Informationen über die Uhrzeit speichern keine zusätzlichen Informationen über , sondern nur über das Datum. Wenn wir zusätzliche Informationen über die Uhrzeit speichern möchten , dürfen wir natürlich nicht den Datentyp Datum verwenden , da dieser nicht genügend Informationen enthalten würde. Schließlich haben wir das E-Mail-Feld. Hier haben wir uns für den Datentyp Text entschieden , da E-Mails sehr unterschiedliche Links haben können. Es ist auch wichtig sicherzustellen, dass Benutzer E-Mails haben. Wenn sich ein Benutzer mit einer E-Mail anmeldet und er eine sehr lange oder eine sehr kurze E-Mail hat, ist es schwer vorherzusagen, wie lang Benutzer ihre E-Mails haben können. Jetzt könnten wir einige Annahmen darüber treffen. Aber wir möchten natürlich nicht, dass ein Benutzer seine E-Mail-Adresse eingibt. Dann sagt unsere Datenbank, dass wir nicht genug Speicherplatz dafür haben genug Speicherplatz dafür , um die gesamte E-Mail zu speichern. Deshalb haben wir uns hier für den Textdatentyp entschieden, aber Sie können diese Entscheidung auch fundierter treffen. Wenn Sie bereits Daten über eine Reihe von Benutzern und eine Reihe von E-Mails haben , können Sie sehen, wie groß diese E-Mails werden, und dann vielleicht etwas zusätzlichen Platz für das Abfüllen lassen und dann so etwas wie einen Varchar-Datentyp verwenden Was Sie hier unten links sehen können, ist im Grunde die Schemadefinition unserer Tabelle Kann sehen, was jede Spalte ist und welchen Datentyp sie enthält. Wir können hier anhand dieser Abfrage nur Informationen über unsere Tabelle selbst sehen . Wir wissen, dass sie vier Spalten hat, die ID, den Namen, den Link in der E-Mail, und wir kennen auch den Datentyp jeder Spalte, bedeutet, dass wir auch wissen was bedeutet, dass wir auch wissen, welche Werte von jeder Spalte zu erwarten Werte in jede Spalte eingefügt werden sollten, wenn wir Werte einfügen wollen welche Werte in jede Spalte eingefügt werden sollten, wenn wir Werte einfügen wollen . Schauen Sie sich eine andere Tabelle an, insbesondere unsere Ereignisprotokolltabelle. Hier wird ein Schema etwas anders sein und wir haben den Event-Schlüssel , der hier ein serieller Datentyp sein wird, weil der Event-Schlüssel einfach mit jedem Ereignis inkrementiert wird mit jedem Ereignis inkrementiert Wenn wir eine Menge Daten erwarten , weil wir eine sehr große Plattform haben, wollen wir hier vielleicht sogar die große Datenmenge verwenden Der Entlüftungsschlüssel wird ein Primärschlüssel sein. Auch hier ist es nicht erlaubt, Null zu sein. Dann haben wir die Event-ID-Spalte, die eine Ganzzahl sein wird. Sie können hier sehen, Vergleich zur Benutzer-ID-Spalte unten wir im Vergleich zur Benutzer-ID-Spalte unten sowohl in als auch als Ganzzahl verwenden können. Es ist nur eine Abkürzung für Integer. Auch hier sagen wir, dass die Event-ID nicht Null sein darf Dann haben wir die Zeit, die in diesem Fall eigentlich ein Zeitstempel ist. Wir können hier sehen, dass wir Zeitinformationen haben, aber das ist ein Format, das einem Zeitstempel ähnelt Deshalb wollen wir sicherstellen, dass wir den Typ verwenden , und dann haben wir die Benutzer-ID, die wiederum eine Ganzzahl sein wird . Auch hier werden wir sagen, dass es nicht erlaubt ist, Null zu sein. Hier definieren wir auch unsere beiden Fremdschlüssel, da unser Ereignisprotokoll zwei Fremdschlüssel enthält. Wir können die Benutzer-ID in unserem Ereignisprotokoll sehen, verweist auf die ID-Spalte in der Benutzerinformationstabelle. Wir können es noch einmal sehen, nur über den Link hier. In unserer Tabelle mit den Ereignisinformationen haben wir die Ereignis-ID in der Ereignisprotokolltabelle, die auf die ID-Spalte in den Ereignisinformationen verweist. Wir können also anhand der Abfrage unten links, aber auch anhand der Schemadefinition unserer Tabelle sehen , dass unsere Ereignisprotokolltabelle wiederum vier Spalten hat, den Ereignisschlüssel, die Ereignis-ID, die Uhrzeit und die Benutzer-ID. Wir kennen auch den jeweiligen Datentyp. Wir wissen, was der Primärschlüssel ist, und wir verstehen auch die Fremdschlüssel-Links für unsere Benutzer-ID-Spalte sowie die Ereignis-ID und die Spalten, auf die in den anderen Tabellen verwiesen wird. Also ja, so können wir die Schemas der einzelnen Tabellen definieren Aber wenn Sie die Informationen über eine neue Tabelle lesen , dass Sie vielleicht nur jemand hinter Ihrer neuen Tabelle sind , den Sie verwenden können, können Sie die Schemadefinition der Tabelle ansehen , um zu verstehen, welche Spalten verfügbar sind, aber auch, welche Datentypen und wie sie gespeichert sind und welche Verweise es gibt Auch hier gilt: Machen Sie sich nicht zu viele Gedanken über die Abfrage, denn genau das werden wir sehr bald lernen. Seien Sie sich nur bewusst, dass wir auf diese Weise die Schemas unserer Tabellen definieren können, und das ist auch, was die Schemadefinitionen für unsere Tabellen bedeuten, sodass wir unsere Tabelle als Ganzes sowie richtig zugewiesene Datentypen richtig definieren können , sodass wir unsere Tabelle als Ganzes sowie richtig zugewiesene Datentypen richtig definieren , was für die Datenbank selbst von Vorteil sein kann , um sicherzustellen, dass sie effiziente Speicherspeicherung verfügt die Schemas unserer Tabellen definieren können, und das ist auch, was die Schemadefinitionen für unsere Tabellen bedeuten, sodass wir unsere Tabelle als Ganzes sowie richtig zugewiesene Datentypen richtig definieren können, was für die Datenbank selbst von Vorteil sein kann, um sicherzustellen, dass sie auch über eine effiziente Speicherspeicherung verfügt um die Abfragen effizienter Aber auch aus Benutzersicht ist es großartig , weil wir wissen, welche Daten eingegeben werden sollen, welche Daten wir erwarten können welche Verknüpfungen zwischen verschiedenen Tabellen bestehen können und wie diese Tabellen verknüpft sind. 4. [Mac] Einrichtung eines lokalen a: Jetzt werden wir uns ansehen , wie wir PostGress auf unserem Computer zum Laufen bringen können , sodass wir es tatsächlich verwenden können Nun, wenn Sie in einem Unternehmen oder so arbeiten, ist es sehr wahrscheinlich, dass Ihre Datenbank irgendwo online sein wird , sodass Sie Verbindungsdetails haben Aber hier werden wir lernen, wie wir einen lokalen Server einrichten können , zu dem wir eine Verbindung für Datenbanken herstellen können, sodass wir einfach alles verfolgen und alles auf unserem lokalen Computer behalten können. Wenn Sie dann mit einer anderen Datenbank arbeiten, müssen Sie nur die Verbindungen ändern , die wir uns in den folgenden Videos ansehen werden . Da ist nicht viel anderes dran, je nachdem, welche Datenbank Sie verwenden werden, müssen Sie dann eine Verbindung zu einer anderen Quelle herstellen. Aber jetzt schauen wir uns an, wie wir das tatsächlich auf unserem lokalen Computer zum Laufen bringen können . Wir werden zu postreql.org gehen. Sobald wir hier sind, werden wir hier auf den Download-Button klicken, um zum Download-Bereich zu gelangen Abhängig von Ihrem Betriebssystem sollten Sie nun sicherstellen, dass Sie das richtige Paket dafür auswählen. Ich bin auf einem Mac, also werde ich auf macOS klicken. Und dann scrolle ich hier nach unten zur PostGress-App Dies ist eine sehr schöne benutzerfreundliche visuelle interaktive App, die wir verwenden können Ich werde hier klicken, um zu dieser Seite zu gelangen. Dann gehe ich zu Downloads und klicke hier einfach auf die Download-Schaltfläche Dann wird Ihr Download gestartet, dem Sie dann die Datei abrufen können , die wir für die Installation benötigen. Sobald der Download abgeschlossen ist, öffne ich einfach die resultierende Datei. Und dann nehme ich einfach dieses Post-Gras-Symbol und nun, Mac-Standards ziehen es in die Anwendung. Dann kann ich auch, sobald das Kopieren fertig ist, meinen Anwendungsordner öffnen und wir können hier sehen, dass es gerade installiert wird. Um es dann zu öffnen, muss ich nur noch hier doppelklicken. Dann öffnet es den Postgress für uns, den wir verwenden können, um unseren lokalen Server zu hosten Klicken Sie auch hier auf Öffnen. Wenn Sie es zum ersten Mal öffnen , dann los geht's. So wird Ihr Visual Client aussehen. Sie werden hier oben auch ein kleines Symbol haben , das dazu gehört. Wenn wir dann einen lokalen Server starten wollen, wir hier einfach an, und dann können Sie sehen, dass wir jetzt einen laufenden Server haben. Standardmäßig haben Sie nur drei Datenbanken auf Ihrem Computer, eine mit Ihrem Namen für den Computer, den Sie eingerichtet haben, eine namens Postscri und eine weitere namens Template One Dies sind drei verschiedene Datenbanken, die jetzt für uns auf unserem Computer eingerichtet sind und auf die wir zugreifen können Das Wichtigste ist, dass wir sicherstellen müssen, dass, wenn wir eine dieser Datenbanken verwenden , unser Server hier tatsächlich läuft. Denn wenn wir auf Stopp klicken, können wir keine Verbindung mehr herstellen. Wenn Sie Verbindungsprobleme haben, überprüfen Sie einfach, ob Ihr Server tatsächlich läuft und ob der Datenbankname, Sie ebenfalls verwenden, korrekt ist. Dann zeigt Ihnen das nächste Video wie wir eine Verbindung zu diesen Datenbanken herstellen können. Jetzt können Sie dies auch über das Symbol hier oben verwalten. Sie können sehen, dass wir hier oben auch einfach anhalten oder Server anlegen können. Wenn wir wollen, können wir es auch vollständig aus der Menüleiste zitieren oder es einfach aus unserer Anwendung zitieren Aber ja, ich empfehle Ihnen, dies während des Kurses einfach eingeschaltet zu lassen, nur um sicherzustellen, dass Sie immer Zugriff auf die Datenbank haben 5. [Windows] Lokale Postgres Server: Schauen wir uns nun an, wie wir unseren Post Gress-Server unter Windows installieren können unseren Post Gress-Server unter Auch hier gehen wir ins Postgres oder hierher. Dann gehen wir zum Download-Tab , auf den wir derzeit entweder hier oben oder einfach durch Klicken auf die Schaltfläche hier zugreifen können hier oben oder einfach durch Klicken auf die Schaltfläche Dann klicken wir hier auf Windows. Dann laden wir hier oben das Installationsprogramm herunter, das für Version 12 sein wird, was wir hier wollen. Wir werden derzeit den Windows-Installer für Version 12 herunterladen . Dann speichern Sie das einfach und lassen Sie es herunterladen. Sobald es heruntergeladen ist, werden Sie es öffnen wollen. Ich führe es hier als Administrator aus, und dann sagst du hier: Sobald unser Installationsprogramm geöffnet ist, können wir einfach weitermachen und das Setup hier durchgehen , also klicken wir auf Weiter. Wählen Sie aus, wo es installiert werden soll. Wir lassen hier einfach alles angekreuzt und klicken auf Weiter Lassen Sie auch hier einfach alles in der Standardposition. Jetzt müssen wir eine Datenbank und ein Passwort für unsere Datenbank angeben , und es ist wichtig, dass Sie sich daran erinnern. Wir können hier sehen, dass unser Benutzer Beiträge schreiben wird. Ich werde einfach das Passwort Postgres für beide verwenden für beide Aber natürlich können Sie es auf alles andere einstellen , was Sie wollen. Aber ich werde mein Passwort hier der Einfachheit halber mit dem Benutzernamen identisch haben , da dies sowieso eine lokale Sache ist. Dann fahren Sie fort und klicken Sie auf Weiter. Belassen Sie den Standardport hier auf 5432 und fahren Sie fort und klicken Sie auf Weiter Auch hier lasse ich dies einfach als Standard stehen und klicke auf Weiter und dann hier auf Weiter und starte dann einfach den Installationsvorgang Die Einrichtung ist abgeschlossen, dann gelangen Sie einfach zum Abschlussbildschirm. Sie werden gefragt, ob Sie Stack Builder gerade jetzt starten möchten . Das müssen Sie nicht. Das kannst du nehmen. Wenn Sie das Häkchen links gesetzt haben und als Reaktion auf Fertig stellen klicken, können Sie bei der nächsten Stack-Builder-Anwendung, die geöffnet wird, auch einfach auf Abbrechen oder Schließen nächsten Stack-Builder-Anwendung, die geöffnet wird, Das müssen wir nicht verwenden. Du kannst hier einfach auf Fertig stellen klicken. Um nun in unser Admin-Panel zu gelangen, gehen wir zu unserer Suchfunktion. Wir werden nach PG Admin suchen. Hier haben wir das PG-Admin-Formular. Öffne das. Sobald das geöffnet ist, wird es in einem Browser geöffnet, wie wir hier sehen können. Jetzt wollte ich uns bitten, einfach ein Master-Passwort für Post Cris festzulegen ein Master-Passwort für Post Cris Admin. Ich werde hier nur ein Passwort festlegen. Es muss nicht dasselbe sein , das Sie bei der Installation festgelegt haben , aber achten Sie darauf, dass Sie sich beide Passwörter notieren , die hier verwendet werden. Dann können Sie auf Okay klicken. Dann können wir zum Beispiel in den Browser gehen. Wenn wir uns nun den Postgress-Server ansehen wollen, was wir bei der Postgress-Installation getan haben Jetzt müssen wir das Passwort verwenden , das wir während des Installationsvorgangs festgelegt haben, nicht das Master-Passwort, das wir gerade hier erstellt haben, sondern das oder das Passwort, das wir bei der Installation verwendet haben Denken Sie daran, dass ich hier das Passwort postgress verwendet habe , da wir uns mit dem Postgres-Benutzer verbinden Ich gebe hier das Passwort ein, das ich während des Installationsvorgangs festgelegt habe oder das wir vor ein paar Minuten durchgemacht haben, und klicke haben, Und dann können wir hier sehen, dass ich jetzt grundsätzlich Zugriff auf die Post-Postgres-Datenbank auf dem Server Sie können auch sehen, dass wir, wenn Sie hier auf die Registerkarte gehen , auch diese Option haben, mit der wir sie beispielsweise in einem neuen Fenster öffnen können , was wir hier haben Aber so können Sie es auch in Ihre Taskleiste bekommen, und hier haben wir dann tatsächlich die Datenbank, die wir später auch untersuchen werden. In späteren Fällen, wenn wir auch nur eine Verbindung zu unserer Postgres-Datenbank oder dem lokalen Postgres-Server herstellen möchten unserer Postgres-Datenbank oder , stellen Sie sicher, dass Sie denselben Benutzernamen und dasselbe Passwort verwenden, die Sie bei der Installation festgelegt haben stellen Sie sicher, dass Sie denselben Benutzernamen und dasselbe Passwort verwenden , die Sie bei der Installation festgelegt Wir werden später sehen, wenn wir uns Data Grip ansehen, zum Beispiel für den Fall von MAC, wir eigentlich keinen Benutzernamen und kein Passwort festlegen oder angeben müssen Benutzernamen und kein Passwort festlegen oder angeben , weil wir Im Windows-Fall noch einmal für das Data Grip-Beispiel , das wir bald durchgehen werden. Stellen Sie sicher, dass Sie den Benutzer Postcres verwenden , wie wir es hier getan haben, um eine Verbindung zum Server herzustellen, und stellen Sie dann sicher, dass Sie das Passwort verwenden , das Sie während des Installationsvorgangs festgelegt haben, nicht das Passwort, das Sie hier als Master-Passwort festgelegt haben, sondern das Passwort, das Sie während des Installationsvorgangs festgelegt haben. Das ist dasselbe, das wir auch hier eingegeben haben, als wir dazu aufgefordert wurden gehen Sie auf den Server Auch hier wird der Benutzername Postcre sein und dann wird das Passwort das sein , das Sie während des Installationsvorgangs festgelegt haben des Installationsvorgangs 6. [Mac] Postico Setup: In diesem Video erfahren wir, wie wir tatsächlich eine Verbindung zu unserer Datenbank herstellen und damit beginnen können , SQL-Abfragen in diese Datenbank zu schreiben Wenn Sie auf einem Mac sind, gibt es eine coole Schnittstelle namens Postco , über die Sie eine Verbindung herstellen können Dies ist nur die Download-Seite , auf der wir vom letzten Mal waren Wenn Sie sich im Einführungs-Tab befinden und nach unten scrollen, können Sie hier einen Link zu Postco sehen Ich habe es hier schon in einem neuen Tab geöffnet. Dann kannst du das einfach herunterladen und lokal stehen lassen. Wenn du es dann öffnen willst, können wir hierher gehen und das wirst du sehen. Derzeit haben wir keine Datenbank oder sind keiner Datenbank verbunden. Aber lass uns einfach das Setup durchgehen. Dies wird je nach den anderen Plattformen, die wir uns ebenfalls ansehen werden, dasselbe sein . Aber lassen Sie uns das auch hier durchgehen. Wir können unserer Datenbank einen Spitznamen geben. Das ist nur, damit wir verstehen , was wir uns ansehen. Hier können wir zum Beispiel sagen, meine erste Datenbank oder falls du ihr einen genaueren Namen geben möchtest, kannst du natürlich hier hosten, das ist unser lokaler Host. wollen wir behalten. Unser Port wird Port 5432 sein Es ist wichtig, dass wir das auch behalten. Wenn wir auch zu den Postcras zurückkehren, wird das auch auf Port 5432 laufen Es ist wichtig, dass wir einfach sicherstellen, dass wir dasselbe beibehalten. Benutzer, wir können auch dasselbe behalten. Es ist kein Passwort erforderlich , da wir es auf einem lokalen Host ausführen. Die Datenbank, mit der wir eine Verbindung zur Standarddatenbank herstellen können, wird nur der Name des Benutzers sein , den wir hier haben. Wenn wir zu unserem Postgres gehen, können wir auch sehen, dass diese Datenbank existiert Wir können aber auch sehen, dass wir verschiedene Optionen haben, zum Beispiel die Postgres-Option hier sowie die Vorlagenoption sowie Sie können sich mit jedem dieser Geräte verbinden. Ich werde eine Verbindung zu Vorlage eins herstellen. Wenn Sie hier nichts eingeben, werden nur die Standardwerte verwendet , die hier drin sind. Sobald wir fertig sind, können wir einfach auf Fertig klicken. Jetzt, wo wir die Datenbankverbindung eingerichtet haben, können wir einfach hier auf Verbinden klicken, und dann öffnet sich dieses neue Fenster für uns, wo wir sehen können, wir können in den Abfrage-Editor gehen und hier können wir dann unsere Abfragen schreiben. der Menüleiste hier oben können wir auch sehen, mit welcher Datenbank wir verbunden sind. Im Moment können wir sehen, dass wir mit Vorlage eins verbunden sind. Aber wenn wir einfach auf Background my first DB klicken, was der Spitzname ist, den wir unserer Datenbank gegeben haben, sehen wir, dass der Server, mit dem wir verbunden sind, tatsächlich drei Datenbanken hat. Wenn wir wollen, können wir uns auch mit den verschiedenen verbinden. Wir können hier jetzt sehen, dass wir in meiner Benutzernamen-Datenbank sind, oder wir können rausgehen und in die erste Vorlage gehen oder wir können rausgehen und in die Postgres-Datenbank gehen Sie können für jeden von ihnen sehen, dass wir dann auch den Abfrage-Editor öffnen können und je nachdem, in welcher Datenbank wir uns befinden Nun, das wird die sein , mit der wir verbunden sind und für die wir Abfragen schreiben. Wenn wir eine neue Datenbank auf ihrem Server oder auf unserem Server erstellen wollen , können wir das auch tun, indem wir hier auf die Datenbank-Schaltfläche klicken , und dann können wir unserer Datenbank einen Namen geben, wenn wir wollen, oder um sie zu löschen, können wir hier einfach auf Löschen klicken, und dann geben wir einfach Drop Database ein und schon wird die Datenbank gelöscht. Wenn wir zu der Option zurückkehren möchten , bei der wir es tatsächlich mit dieser Datenbank verbinden, können wir in die Datei gehen, das Favoritenfenster anzeigen und dann wird das ursprüngliche Fenster angezeigt, in dem wir uns mit unserem Datenbankraum verbunden haben in dem wir uns . weitere Verbindungen einrichten möchten, können Sie einen neuen Favoriten erstellen. Es wird empfohlen, zuerst die Verbindung zu diesem zu trennen Derzeit befinden wir uns in der kostenlosen Testversion. Wenn du hier neue Verbindungen erstellen möchtest, dann kannst du einen neuen Favoriten erstellen und dann geht es gut, dann kannst du zusätzliche Verbindungsoptionen einrichten. Sie können zum Beispiel eine auf Ihrer lokalen Seite haben , mit der Sie herumspielen möchten. Wenn Sie einen bei der Arbeit oder woanders haben, können Sie sich auch hier mit diesen verbinden. Wie Sie sehen, verwenden Sie beim Herunterladen von Postco standardmäßig die Testversion Die Testversion ist auf unbestimmte Zeit kostenlos. Sie hat nur eine reduzierte Anzahl von Funktionen. Aber in jeder Hinsicht wird es gut funktionieren Aber wenn Sie es aktivieren möchten, können Sie das natürlich tun aktivieren möchten, können Sie das natürlich Aber stell einfach sicher, dass du dir die verschiedenen Videos ansiehst oder dass du dir zumindest auch das andere Video ansiehst. Ich werde über einen Datengriff sprechen, nur damit Sie die verschiedenen Benutzeroberflächen sehen , mit denen Sie umgehen können, oder die verschiedenen Verbindungsdienste oder Verbindungsanwendungen, die Sie verwenden können, sodass Sie entscheiden können, welche für Sie die beste ist welche Ihnen am besten gefällt. Dann empfehle ich, einfach bei der zu bleiben, die Ihnen am besten gefällt und mit der Sie sich am wohlsten fühlen. 7. Datagrip: Nun, das nächste Tool , mit dem ich Ihnen zeigen werde , wie Sie eine Verbindung zu Datenbanken herstellen und all diese coolen Sachen mit dem Schreiben von Abfragen und allem machen diese coolen Sachen mit dem Schreiben von Abfragen und können, wird ein Datengriff von Jet Brains sein Dies ist auch das, das wir während des gesamten Kurses verwenden werden. Sie können das bekommen, indem Sie zu jetbrain.com gehen, dann zu Tools und hier zu Data Grip gehen Mit Data Grip erhalten Sie eine kostenlose 30-Tage-Testversion. Sie sollten in Ordnung sein, um den Kurs zu absolvieren und einige zusätzliche Übungen zu machen Aber wenn es Ihnen Spaß macht, dann gibt es eine kostenpflichtige Version. Es gibt sie, wie wir auch bei Postco oder auch bei anderen GYs gesehen haben. Es gibt natürlich auch andere kostenlose, die Sie verwenden können, je nachdem, wie sehr Sie es mögen oder ob Sie mit anderen herumgespielt haben Sie können sich dann entweder für Data Grip oder natürlich auch für ein anderes System entscheiden Letzten Endes ist es nicht wirklich wichtig. All das wird nur eine Verbindung zu unseren Datenbanken und so herstellen. Es ist einfach das, mit dem Sie sich am wohlsten fühlen. Wir beginnen also mit einer kostenlosen 30-Tage-Testversion. Wenn Sie den Kurs genau verfolgen möchten, können Sie sich hier natürlich mit den Daten vertraut machen. Sobald Ihre Testversion abgelaufen ist, können Sie entweder entscheiden, ob Sie mit Data Grip weitermachen möchten oder ob Sie eine andere GI verwenden möchten , die kostenlose Dienste z. B. die Postleitzahl, von der wir gesehen haben, dass sie eine lebenslange kostenlose Testversion anbietet, und dort können Sie sie einfach weiterhin kostenlos verwenden. Das liegt ganz bei Ihnen. Aber mach weiter und lade Data Grip herunter. Sobald das erledigt ist, folgen Sie einfach dem Setup und öffnen Sie es. Sobald Sie einen Open Data Grip heruntergeladen haben, wird dieser beim Öffnen angezeigt, falls Sie dieses Fenster hier in der Seitenleiste nicht haben. Sie können das ganz einfach erreichen, indem Sie in die Ansicht gehen, dann in die Toolfenster gehen und hier auf Datenbank klicken. Dann wird das Fenster auf der linken Seite einfach geöffnet oder geschlossen. Um hier eine Verbindung zu einer Datenbank herzustellen, klicke ich einfach mit der rechten Maustaste auf eine neue Datenquelle. Ich werde hier Postgress QL auswählen. Auf diese Weise können wir eine Postgres-Datenquelle einrichten eine Postgres-Datenquelle einrichten Ich werde darauf klicken, und es sich dieses Verbindungsfenster Falls du Postgress nicht siehst , wenn du mich das wieder schließen lässt Wenn Sie Postgress hier oben nicht sehen, dann ist es wahrscheinlich einfach hier unten Sobald Sie sie zuvor ausgewählt haben, werden sie für Sie hier nach oben verschoben , sodass Sie leichter darauf zugreifen Es wird wahrscheinlich nicht für Sie da oben sein , wenn Sie Data Group noch nie benutzt haben In diesem Fall wäre es irgendwo hier unten. Wie dem auch sei, mach weiter und öffne es, und das gibt uns unser Postgress-Verbindungsfenster Auch hier können wir einen Spitznamen angeben. Dann können wir unsere Verbindungsoptionen haben. Unser Host wird immer noch der lokale Host sein. Unser Port wird immer noch Port 5432 sein. Wir benötigen weder einen Benutzernamen noch ein Passwort, um es in der lokalen Datenbank zu sammeln Dann können wir bei der Datenbank, zu der wir eine Verbindung herstellen möchten , natürlich wieder zwischen Postgress wählen Oder wenn wir einfach unsere Postgress-App öffnen , haben wir natürlich auch Temple One sowie den Benutzernamen des Computers, den Sie Wir können dann einfach auf Okay klicken. Und das wird uns mit einer Datenbank verbinden , und wir können hier sehen, wir damit auch eine Konsole bekommen in die wir unsere SQL-Abfragen schreiben können. Wenn wir wollen, können wir die Datenbank auch erkunden , indem wir sie öffnen, und dann können wir die Struktur hier sehen. Standardmäßig ist darin bereits eine Datenbank eingerichtet. Aber es sind noch keine Tabellen drin. Wir werden etwas später mehr darüber erfahren , sobald wir uns mit all dem befassen. Aber so können wir mithilfe einer Datengruppe eine Verbindung zur Postgres-Datenbank herstellen Falls Sie hier versehentlich Ihre Konsole schließen, können Sie sie einfach erneut öffnen, indem Sie hier mit der rechten Maustaste klicken und dann die Abfragekonsole öffnen Das Coolste an Data Grip ist, dass wir tatsächlich mehrere Datenbankverbindungen öffnen können. Zum Beispiel werde ich eine weitere neue Datenquelle hinzufügen, und ich werde hier eine weitere Postgres-Datenquelle hinzufügen, und jetzt werden wir auch eine Verbindung zur ersten Vorlage herstellen Unsere Einstellungen hier sagen immer noch, dass dasselbe immer noch auf dem lokalen Host sein wird, immer noch auf dem Port sein wird Unser Spitzname hier wird einfach in meine Standardeinstellung eingegeben, und dann kann ich klicken. Jetzt können wir sehen, dass wir hier auf unserem lokalen System eine Verbindung zu einer anderen Datenbank herstellen, nämlich dieser. Hier. Hier können wir auch sehen , dass wir auch hier reingehen und es erkunden können. In der Postgres-Datenbank sind standardmäßig noch einige weitere Dinge eingerichtet Aber auch hier werden wir mehr darüber erfahren, sobald wir uns tatsächlich mit der Abfrage befassen Dies ist nur mehr, um sicherzustellen, dass wir das richtige Setup haben. Sie können hier auch sehen, dass ich jetzt zwei Konsolen habe. Eine, die mit unserem Postgres verbunden ist. Nochmals, das wird unser Spitzname sein. Der andere, der für die Datenbank mit Vorlage eins ist. Wenn Sie eines oder einige dieser oder alle schließen, können Sie natürlich einfach hierher zurückkehren, mit der rechten Maustaste auf Abfragekonsole öffnen klicken, und auch hier können wir die Abfragekonsole öffnen. Sie möchten nur sicherstellen, dass Sie unabhängig von der verwendeten Abfragekonsole sicherstellen, dass sie für die richtige Datenbank bestimmt ist falls Sie mehrere Datenbanken geöffnet haben Ich habe das Gefühl, dass Ihre Werkzeugleisten-Registerkarte hier zu voll wird. Sie können auch einfach erneut auf die Datenbank klicken, rechten Maustaste klicken und sie entfernen, dann wird die Konfiguration für die Datenbank entfernt. Eine Sache, die Sie dabei beachten sollten , ist, dass die Konfiguration ebenfalls gelöscht wurde. Wenn Sie erneut eine Verbindung herstellen möchten, müssen Sie die Schritte zur neuen Datenquelle erneut ausführen und dann eine Verbindung zur Datenquelle herstellen und die Konfigurationsdetails eingeben Aber wenn Sie es entfernen möchten, können Sie das auf diese Weise tun 8. CLI: Die andere Option, die Sie wählen können und die Sie manchmal wählen können , ist die Verwendung der Befehlszeilenschnittstelle. Das bedeutet nur, das Terminal oder etwas Ähnliches zu verwenden , um eine Verbindung herzustellen. Manchmal möchtest du das vielleicht benutzen. Obwohl ich persönlich die grafischen Benutzeroberflächen bevorzuge. In anderen Fällen sind Sie möglicherweise dazu gezwungen. Wenn Sie beispielsweise mit einem Remote-Computer verbunden sind und an der Datenbank dort arbeiten müssen und die einzige Option, die Sie haben, die Verwendung einer Befehlszeilenschnittstelle ist. In beiden Fällen können Sie auch die Befehlszeilenschnittstelle verwenden. Für uns wird es einfach sein, eine Verbindung herzustellen, da wir hier unseren Postgres-Server haben Wir können einfach eine Verbindung herstellen oder auf eines davon doppelklicken, und dann wird die Verbindung in einem Terminal hier geöffnet , und dann können wir hier nur unsere SQL-Befehle schreiben Dies sind die verschiedenen Optionen , die uns zur Verfügung stehen. In diesem Kurs werden wir uns auf Data Grip konzentrieren. Aber natürlich können Sie wählen, was Sie möchten. Sie können natürlich auch zwischen den verschiedenen Anwendungen wechseln . Letzten Endes wird es nicht sonderlich wichtig sein, für welche Sie sich entscheiden weil sie alle dieselben Mittel zum Zweck bieten , nämlich eine Verbindung zu unserer Datenbank herzustellen und uns unsere Abfragen schreiben zu lassen. welcher auch immer Sie sich am wohlsten fühlen Mit welcher auch immer Sie sich am wohlsten fühlen, sollten Sie wählen, denn am Ende des Tages werden sie uns alle im Grunde dasselbe ermöglichen 9. Datenbanken erstellen und: Jetzt wissen wir, wie man eine Verbindung zu einer Datenquelle herstellt. Lassen Sie uns weitermachen und lernen, wie wir eine Datenbank innerhalb unserer Datenquelle erstellen können . Ich werde eine Verbindung zur ersten Vorlage herstellen, nur weil sich hier keine Datenbanken oder irgendetwas anderes befinden, ist sie völlig leer. Ich würde empfehlen, dass Sie dasselbe tun, nur um eine völlig neue Datenquelle zu haben. Für Sie ist es sogar möglich, dass Sie beim Klicken auf diesen Dropdown-Pfeil nichts sehen, da diese Ordner normalerweise nur erstellt werden, wenn Sie eine Datenbank erstellen und anschließend entfernen. Wenn Sie das Drop-down-Menü verwenden, ist es möglich, dass tatsächlich nichts angezeigt wird. Falls Sie sich zum Beispiel hier in der Konfiguration befinden, wird Ihnen mitgeteilt, dass die Datenbank nicht gefunden wurde oder Sie keine Verbindung zu ihr herstellen können. Zum Beispiel, wenn ich hier versuche, eine Verbindung zu Vorlage zwei herzustellen. Bevor ich mich tatsächlich bewerbe, kann ich die Verbindung auch einfach testen. Wenn ich das versuche, wird es nicht funktionieren, weil die Datenbank nicht existiert. In diesem Fall, wenn Sie eine Verbindung zu einer anderen Datenbank herstellen möchten , aber eine Option ist natürlich immer nur eine Verbindung zur PoC-Datenbank herzustellen, die immer auf jedem System enthalten und erstellt werden sollte auf jedem System enthalten und erstellt Die anderen werden normalerweise auf den anderen Systemen erstellt, aber es kann Fälle geben, die sich von System zu System unterscheiden, in denen die Datenbank möglicherweise nicht standardmäßig erstellt wird Dazu können wir zum Beispiel einfach eine Verbindung zu Postcras herstellen, dann können wir das entweder direkt verwenden oder wir können in unsere Abfragekonsole gehen, und das werden wir auch in der kommenden Lektion lernen, wir werden Create Database schreiben und wir werden zum Beispiel Vorlage zwei erstellen, zum Beispiel Vorlage zwei erstellen, falls das die ist, zu der wir eine Verbindung herstellen möchten. Dann können wir das ausführen und wir können hier sehen, dass es gerade aktualisiert wurde, und wir werden hier zu unseren Eigenschaften zurückkehren. Wenn wir nun versuchen, eine Verbindung zu Vorlage zwei herzustellen, testen wir unsere Verbindung. Wir sehen hier jetzt, dass es richtig funktioniert. Das liegt nur daran, dass ich im Video die Datenbank Template One verwenden werde , falls sie für Sie nicht existiert Sie können sie so erstellen und dann eine Verbindung herstellen. Aber natürlich können Sie alternativ auch einfach die Standard-Postgres-Datenbank verwenden Aber lassen Sie uns weitermachen und eine Datenbank erstellen , denn denken Sie daran, als wir das relationale Modell kennengelernt haben, haben wir Tabellen, die sich innerhalb einer Datenbank befinden Bevor wir Tabellen erstellen können, benötigen wir zunächst eine Datenbank, in die wir diese Tabellen einfügen Wie können wir eine Datenbank erstellen? Nun, hier werde ich die Querin-Konsole öffnen. Sie werden feststellen, dass dies die Konsole für meine Template-One-Datenquellenverbindung ist, wie Sie anhand des Namens hier sehen können Falls Sie mehrere Datenquellen geöffnet haben, stellen Sie sicher, dass Sie die richtige Konsole für die richtige Datenquelle verwenden . Stellen Sie außerdem sicher, dass Sie über Ihren Post-Grass verbunden sind , um sicherzustellen, dass Ihr lokaler Postgress-Server läuft Ist dies nicht der Fall, stellen Sie sicher, dass Sie auf Start klicken. Okay, wie können wir also eine Datenbank in unserer Vorlage und in einer Datenquelle erstellen ? Um das zu tun, verwenden wir, oder wir werden hier in unsere Abfragekonsole tippen, Datenbank erstellen, und dann geben wir hier den Namen der Datenbank ein , den wir in einer Sekunde eingeben werden. Dann beenden wir es mit einem Semikolon. Hier sind einige wichtige Dinge zur allgemeinen SQL-Abfragestruktur zu beachten . Zuallererst werden alle SQL-Befehle normalerweise vom Benutzer großgeschrieben, nur um die Abfrage lesbarer zu machen Außerdem ist es üblich, SQL-Befehle mit einem Semikolon zu beenden Sie müssen das nicht tun, aber das bedeutet, dass die Abfrage beendet ist und Sie können tatsächlich mehrere Abfragen miteinander verketten. Immer wenn Sie eine Abfrage beenden, können Sie hier ein Semikolon setzen, um im Grunde zu sagen Lassen Sie uns unsere Datenbank erstellen und sie unsere Datenbank nennen Wenn wir das ausführen, können wir sehen, dass wir hier eine Konsole bekommen. Wenn wir in Datenbanken gehen, haben wir jetzt unsere Datenbank erstellt Das ist der Datenbankname , den wir ihr gegeben haben. Wir können hier sehen, dass wir auch einige zusätzliche Ordner bekommen , die mitgeliefert werden. Ja. So können wir eine Datenbank erstellen. Was ist, wenn wir eine Datenbank entfernen wollen ? Nun, dann müssen wir das Create auf Drop ändern. Wenn wir das dann ausführen, werden Sie feststellen, dass unsere Datenbank jetzt weg ist. Wir können sehen, dass es aus unserer Datenquelle entfernt wurde. Um Ihnen zu zeigen, dass die Großschreibung nicht erforderlich ist und das Semikolon Lassen Sie uns weitermachen und dieselbe Abfrage wiederholen , die wir am Anfang gemacht haben Aber diesmal wird alles in Kleinbuchstaben geschrieben und das Semikolon am Ende nicht verwendet Wenn wir das ausführen und los geht's, können wir unsere Datenbank wieder öffnen und alles ist wieder so, wie wir Sie können sehen, dass Sie immer noch SQL-Abfragen schreiben können , bei denen alles in Kleinbuchstaben und ohne Semikolon In der Regel empfiehlt es sich jedoch, beim Semikolon am Ende zu bleiben und alle SQL-Befehle in Großbuchstaben zu schreiben Denn auf diese Weise ist es viel einfacher, die Abfrage zu lesen. Es ist leicht zu unterscheiden, was Teil einer SQL-Abfrage ist und was vielleicht ein Name ist, und was vielleicht ein Name ist in einer Tabelle in unserer Datenbank vorkommt, die einen ähnlichen oder identischen Namen hat etwas, das Sie in einer SQL-Abfrage haben würden. Und natürlich sollten Sie auch eine zweite Datenbank erstellen. Lassen Sie uns hier eine weitere Datenbank erstellen als unsere zweite Datenbank bezeichnet wird. Lassen Sie uns hier einige Unterstriche verwenden, um diese Datenbank oder diesen Namen lesbarer zu machen diese Datenbank oder diesen Namen lesbarer Wenn wir weitermachen und das ausführen, werden Sie hier sehen, dass wir jetzt zwei Datenbanken und unsere Vorlage eine Datenquelle haben zwei Datenbanken und unsere Vorlage eine Datenquelle Sie können sehen, dass wir auf jede von ihnen eingehen können, und jede davon ist eine separate Datenbank. Natürlich können wir diese wieder auf diese Weise entfernen, und dann können wir auch unsere erste Datenbank entfernen , indem wir den entsprechenden Namen verwenden. Rufen Sie dann erneut die Anweisung drop database auf. 10. Schemas erstellen: Ordnung. Da wir nun wissen, wie man Datenbanken erstellt und löscht, schauen wir uns an, wie wir Schemas erstellen und löschen können, da wir dort unsere Tabellen platzieren wollen In unserer letzten Lektion konnten wir hier RDB erstellen Aber manchmal kann es tatsächlich zu einem Fehler kommen. Wenn ich zum Beispiel hier „Datenbank löschen“ eintippe und RDB löschen möchte, erhalte ich eine Fehlermeldung, da ich bereits mit der aktuell geöffneten Datenbank verbunden bin mit der aktuell geöffneten Datenbank verbunden Da ich mit ihr verbunden bin, kann ich sie nicht wirklich löschen Eine Sache, die Sie tun können , um dies zu ändern, wäre zum Beispiel eine andere Option, die wir hier haben. Wir sehen, dass wir unsere Datenbank haben, die in unserer ersten Vorlage enthalten sein wird, aber wir haben auch verschiedene Optionen, auf die wir zurückgreifen können. Die andere Sache, die wir tun können, wenn wir eine Datenbank wirklich löschen wollen, ist, wir eine neue Datenbank erstellen können. Zum Beispiel unser Unterstrich DB Wir können das erstellen, und dann müssen wir unsere Verbindung ändern, was wir tun können, indem wir hier reingehen und auf RDB klicken Ich schätze, diese Namen sind nicht besonders nützlich, wenn Sie es laut aussprechen, aber jetzt haben wir zwei Datenbanken In einer von ihnen ist ein Unterstrich enthalten, mit dem wir gerade verbunden sind, wie wir hier in der oberen rechten Ecke sehen können Der andere hat keinen Unterstrich, und es ist nicht der, mit dem wir in unserer aktuellen Sitzung hier verbunden sind , denn auch das ist nicht der, den wir hier oben in unserer oberen rechten Ecke haben Das hier wird spezifisch für den Data-Grip sein, aber es ist wahrscheinlich, dass Sie ähnliche Benutzeroberflächenangaben haben , wenn Sie verschiedene SQL-Editoren verwenden Wenn wir möchten, können wir jetzt zum Beispiel unsere Datenbank löschen, da wir jetzt mit der Datenbank verbunden sind, die einen Unterstrich enthält Wenn wir die Datenbank löschen möchten , mit der wir zuvor verbunden waren, können wir jetzt die Datenbank löschen und dann den Namen in diesem Fall ohne Unterstrich aufrufen , können wir sie ausführen Jetzt können wir sehen, dass die Datenbank entfernt wurde. Eine Sache, die Ihnen auffallen wird, ist, dass wir, wenn wir hier auf das Schema eingehen, eigentlich keine Schemas sehen können Wenn wir uns hier jedoch unser RDB-Symbol genau ansehen, sehen wir tatsächlich, dass wir mit unserer Underscore-DB verbunden sind , der öffentlichen Datenbank, also dem Schema Wenn dies der Fall ist, erhalten Sie wahrscheinlich diese Benachrichtigung, die ich auch hier oben von Data Grip aus sehe , wo wir einfach auf das Introspect-Schema klicken können Wenn wir dann zu unserem Schema gehen, können wir sehen, jetzt ist es für uns verfügbar Wir haben tatsächlich das öffentliche Schema verfügbar. Aber wie können Sie ein neues Schema erstellen. Nun, um das zu tun, geben wir create schema ein und dann geben wir einfach den Namen ein, und dann geben wir einfach den Namen genau wie wir es für die Datenbank getan haben. Hier können wir zum Beispiel unser Schema nennen, und wir können es ausführen. Für mich habe ich es bereits erstellt, daher erhalte ich eine Fehlermeldung , die bereits existiert. Mal sehen, wie wir es löschen können. Wir können Drop-Schema eingeben, unser Schema. Wenn wir das dann ausführen, können wir sehen, wie das Schema entfernt wird. Wenn wir wollen, können wir es dann erneut erstellen , indem wir create schema eingeben, und dann wird es ein anderes Schema für uns erstellen. Jetzt muss der Schemaname natürlich nicht so lauten. Es kann jeder Name sein, der am besten geeignet ist. Wenn wir wollen, können wir das wieder fallen lassen. Normalerweise ist es üblich, oder. Normalerweise ist es in Ordnung, sich an das öffentliche Schema zu halten . Daran ist nichts falsch. Wenn Sie bereits ein öffentliches Schema haben , das standardmäßig vorhanden sein sollte, können Sie sich auch einfach an ein öffentliches Schema halten und sich nicht zu viele Sorgen machen. Wenn Sie jedoch speziell zusätzliche Schemas benötigen oder erstellen möchten , um dann Tabellen zu gruppieren, dann wissen Sie jetzt natürlich, wie das geht, und Sie haben die Möglichkeit, dies zu tun 11. Tabellen erstellen: Lassen Sie uns nun lernen, wie wir Tabellen in unseren Datenbankschemas erstellen können Tabellen in unseren Datenbankschemas Um das zu tun, verwenden wir die Syntax create this time table, und wir werden unseren Tabellennamen haben Hier können wir zum Beispiel die Benutzerinformationen verwenden , wie wir es auch in den vorherigen Lektionen gesehen haben. Nun, es gibt einige zusätzliche Dinge , die wir hier erledigen müssen. Wir wollen hier Klammern öffnen und schließen, und jetzt können wir die tatsächlichen Namen der Spalten in unserer Tabelle sowie den Datentyp, den sie enthalten, eingeben der Spalten in unserer Tabelle sowie den Datentyp, den sie Lass das alles ein bisschen schöner aussehen. Ich werde das über mehrere Zeilen tragen. Ich werde auch hier wieder ein Semikolon ans Ende setzen, nur um sicherzugehen hier wieder ein Semikolon ans Ende setzen, nur um sicherzugehen , dass ich es später nicht vergesse. Auch wenn es, wie Sie bereits gesehen haben, auch ohne funktioniert, ist es nur eine gute Übung, es da zu haben. Nehmen wir unsere erste Spalte, die ID, die nur eine Ganzzahl sein wird . Hier, lassen Sie uns das zu unserem Primärschlüssel machen. Um nun eine nächste Spalte zu erstellen, werden wir hier ein Komma setzen, um diese zu trennen Dann unsere nächste Spalte, lass uns das der Name sein. Lassen wir das ein Varchar sein, das 25 Byte verwendet. Der nächste, dem wir uns hätten anschließen können. Das hier, lass uns das achte Date haben. Wir können ihre E-Mail-Adresse angeben, wenn wir wollen, und diese können wir zum Beispiel ein Textfeld sein. Wenn wir das ausführen, können wir hier sehen, unsere Benutzerinformationstabelle innerhalb des öffentlichen Schemas erstellt wurde . Wir können hier auch sehen, ob wir reingehen, wir haben auch Informationen über den Primärschlüssel sowie die Spalten, die sich darin befinden oder die Attribute, sowie die Datentypen jedes Spalten-Reach-Attribut, das wir haben. Wie können wir eine Tabelle entfernen? Nun, das wird viel einfacher sein. Wir geben einfach Drop Table ein. Dann geben wir hier den Tabellennamen ein. Zum Beispiel Benutzerinformation, Semikolon auf Da haben wir's. Vergiss auf Ausführen zu klicken und dann warte einfach und du kannst hier sehen, dass unsere Tabelle jetzt entfernt wurde. Was ist, wenn wir mehrere Schemas haben. Lassen Sie uns ein zweites Schema erstellen und dieses wieder unser Schema nennen Dann lassen Sie uns das ausführen. Jetzt haben wir zwei Schemas Ich werde hier nur ein bisschen zurückkommen , damit wir unseren Code bekommen , den wir vorher hatten Was passiert jetzt, wenn wir unsere Create Table-Anweisung ausführen ? Nun, lass es uns ausprobieren. Wenn wir unsere Anweisung create table ausführen, sehen wir hier, dass wir sie in das öffentliche Schema einfügen, mit dem wir auch hier verbunden sind. Es gibt verschiedene Optionen , die wir zur Verfügung haben. Eine davon ist, dass wir unsere Verbindung hier oben ändern können. zum Beispiel eine Verbindung zu unserem Schema her, anstatt zu dem öffentlichen, und wir können jetzt hier sehen, dass unsere Verbindung geändert wurde. Hier können wir wieder die Benutzerinformationstabelle erstellen. Dieses Mal wird sie in unserem Schema erstellt. Manchmal haben Sie vielleicht nicht den Luxus, auf diese Weise umzuschalten. Manchmal mag es anders sein. In anderen Fällen, wenn Sie ein Schema angeben müssen, können Sie es auch hinzufügen, indem Sie den Schemanamen vor die eigentliche Tabelle setzen. Lassen Sie uns hier eine weitere Tabelle mit dem Namen Benutzerinfo Two erstellen. Lassen Sie mich diesen Tippfehler hier korrigieren. Sie können sehen, obwohl ich mit unserem Schema verbunden bin, das hier das Schema ist Ich habe im öffentlichen Schema eine Tabelle mit Benutzerinformationen erstellt , wie wir hier sehen können. Wenn ich dieses Präfix hier entferne und es erneut ausführe, wird es natürlich und es erneut ausführe, wird es in dem Schema erstellt , mit dem wir gerade verbunden Sie können sehen, ob Sie es mit mehreren Schemas zu tun haben Sie können dann entweder zu ihnen wechseln und Tabellen direkt in ihnen erstellen , oder wenn Sie möchten, können Sie vorher auf das Schema verweisen , um dann dort Tabellen zu erstellen Was nun passieren würde , da wir nach unserem Schema erstellt sind, lassen Sie uns weitermachen und zurück zum öffentlichen Schema wechseln , indem wir in RTB gehen, in Öffentlichkeit gehen Was passiert jetzt, wenn wir das Schema löschen wollen und wir das neue Schema, das wir erstellt haben, löschen wollen Nun, jetzt werden wir auf ein Problem stoßen , weil wir darin Tabellen erstellt haben. Eine Sache, die wir tun können, ist, dass wir weitermachen und jede Tabelle darin entfernen können, und dann können wir das Schema löschen, oder wie uns Daten Grepard vorschlägt, können wir am Ende etwas verwenden, das Cascade genannt wird Wir können hier Cascade eingeben. Dann wird es im Grunde nur diesen Vorgang ausführen, aber es wird fortgesetzt und in diesem Fall auch im Inneren die entsprechende Bereinigung Wenn wir das jetzt ausführen, wird nicht nur unser Schema entfernt, sondern auch alle darin enthaltenen Tabellen Nun, um das noch mehr aufzuräumen. Lassen Sie uns auch die Tabelle mit den Benutzerinformationen zwei löschen, damit wir keine seltsamen Tabellennamen haben, die dieselben Spalten enthalten , die widersprüchlich sind Lassen Sie uns weitermachen und diese zweite Tabelle löschen. Schauen wir uns auch an, wie wir die anderen beiden Tabellen, die wir in der Lektion gesehen haben, so erstellen können , dass wir uns auch Fremdschlüssel ansehen können. Hier können wir wieder Tabelle erstellen und dann unsere Event-Info-Tabelle, Event Underscore Info, erstellen Event Underscore Info Hier werden wir zwei Spalten haben. Eine davon wird ID sein, was wiederum eine Ganzzahl sein kann, und lassen Sie uns das zu unserem Primärschlüssel machen. Dann werden wir auch den Namen haben, den wir als Text oder ein Varchar oder was auch immer wir wollen, was auch immer wir für angemessen halten , haben können oder was auch immer wir wollen, was auch immer wir für angemessen halten , haben Nun, eine Sache, die ich tun möchte ist, diese Namen groß statt klein zu schreiben, nur um Ihnen zu zeigen, was hier statt klein zu schreiben passiert Wenn wir das ausführen und in unsere Event-Info-Tabelle gehen, können wir hier sehen, dass wir, obwohl wir sie mit Großbuchstaben erstellt haben, wenn wir in die Tabelle gehen, hier immer noch nur Namen in Kleinbuchstaben haben Das ist auch der Grund, warum es so schön ist, diese Unterstriche zu verwenden , denn selbst wenn diese Konvertierungen passieren, ist es immer noch leicht zu lesen Lassen Sie uns weitermachen und auch die Ereignisprotokolltabelle erstellen. Hier haben wir unseren Ereignisschlüssel, seriell sein wird , sodass er automatisch inkrementiert Dann lass uns einfach unsere beiden IDs hier behalten und uns nicht zu viele Gedanken über die anderen Dinge Wir werden eine Event-ID haben, die eine Ganzzahl sein wird. Dann werden wir auch eine Benutzer-ID haben, die ebenfalls eine Ganzzahl sein wird . Wenn wir wollen, können wir ihr dann zum Beispiel auch die Zeitspalte hinzufügen , oder wir können sie Zeit in Großbuchstaben nennen. Damit können wir einen Zeitstempel erstellen, lassen Sie uns das in Großbuchstaben schreiben Wir werden hier keine Zeiten hinzufügen denn wenn wir das verwenden, verwenden Sie einfach UTC, und das spart Speicherplatz für uns Jetzt, wo wir unsere vier Spalten haben, wie können wir auf die Fremdschlüssel verweisen? Um das zu tun, werden wir in eine neue Zeile gehen und sagen, Fremdschlüssel, und Sie erinnern sich vielleicht schon aus den Lektionen davor daran. Wir werden Klammern öffnen und schließen. Wir werden hier den Namen eingeben , auf den wir aus unserer Tabelle verweisen möchten, nämlich die Event-ID Wir werden Referenzen sagen. Aber dann werden wir hier unseren Tabellennamen eintragen. Zum Beispiel Lüftungsinformationen. Dann geben wir hier den Spaltennamen ein, auf den wir verweisen möchten. In diesem Fall die ID. Unsere Ereignis-ID wird ein Fremdschlüssel sein, der auf die ID-Spalte und die Ereignisinformationstabelle verweist dasselbe für die Benutzerinformationen tun, werden wir den Fremdschlüssel erstellen, und das wird unsere Benutzer-ID sein. Es heißt, referenziert auf die Benutzerinformationstabelle, hier wird es auf die ID-Spalte verweisen. Wenn wir weitermachen und das ausführen, lassen wir uns weitermachen und uns unsere Tabellen ansehen. Jetzt haben wir auch die Eventlog-Tabelle. Wir können hier sehen, wir haben den Primärschlüssel, aber wir haben hier auch Fremdschlüsselreferenzen. 12. Tabellen ändern: Nun ist es wahrscheinlich, dass sich Ihre Datenbankanforderungen im Laufe der Zeit ändern werden Möglicherweise möchten Sie Tabellen ändern, Dinge hinzufügen, sie entfernen oder sogar Dinge darin ändern. Dazu können wir den Befehl alter table verwenden. Dann geben wir den Namen der Tabelle ein, die wir ändern möchten, und dann, was genau wir daran ändern wollen. Sehen wir uns einige Beispiele an. Nehmen wir an, wir möchten unseren Benutzerinformationen auch eine Region hinzufügen. Wir sagen, wir haben ihre ID, ihren Namen und ihre E-Mail-Adresse, wann sie beitreten , aber wir wissen nicht wirklich, in welcher Region sie sich befinden. In welchem Teil der Welt befinden sie sich. Wir werden sagen, dass wir unsere Benutzerinformationstabelle ändern werden. In diesem Fall möchten wir eine Spalte hinzufügen. Wir werden hinzufügen eingeben. Hier werden wir den Spaltennamen haben , der Region sein wird, und dann wollen wir den Spaltendatentyp haben. Das können wir zum Beispiel noch einmal sagen, lassen Sie uns das als Varchar verwenden, vielleicht mit der Größe 20 oder was auch immer wir für angemessen Dann wollen wir natürlich auch sichergehen, dass wir hier ein Semikolon an das Ende setzen, nur um es zu Wenn wir das dann ausführen und nur einen Blick auf die Benutzerinformationstabelle werfen, sehen wir, dass wir jetzt die Regionsspalte hinzugefügt haben. Nehmen wir an, irgendwann wird unsere Tabelle zu groß und wir entscheiden, dass die Regionsspalte eigentlich nicht so wichtig ist. Dann können wir anstelle des Befehls Drop-Spalte verwenden. Jetzt geben wir einfach den Namen der Spalte ein, die wir löschen möchten. Wir wollen die Regionsspalte löschen. Sie können hier klicken oder es ausführen, und dann wird es aus unserer Benutzerinformationstabelle entfernt . Nehmen wir an, wir stellen irgendwann fest, dass unsere ID-Spalte zu groß wird, die Ganzzahlen hier zu groß werden und wir unsere Spalte ändern müssen, damit wir uns um größere IDs kümmern können , weil unsere Benutzerbasis immer größer wird Wir können das tun, wir können die erstellen, oder wir können sagen, die Tabelle mit den Benutzerinformationen ändern Jetzt wollen wir die Spalte ändern. Wir wollen die ID-Spalte ändern, wir wollen den Typ der ID-Spalte ändern, zum Beispiel auf ein großes. Wir können das ausführen. Dann können Sie hier sehen unser Typ von Integer jetzt auf einen großen Typ aktualisiert wird. Wenn wir wollen, können wir das auch rückgängig machen. Sie werden hier feststellen, dass ich sowohl die Klein- als auch die Großbuchstabenversion verwenden kann die Klein- als auch die Großbuchstabenversion Auf diese Weise kann ich Spalten, die bereits verfügbar sind, ändern oder ändern. Jetzt gibt es viel mehr Änderungen, die Sie vornehmen können die wirklich von der Situation abhängen Je nachdem, in welcher Situation Sie sich befinden, möchten Sie vielleicht Ihre Datenbank aktualisieren oder Sie müssen Ihre Datenbank aktualisieren und möchten etwas ändern oder modifizieren Ähm, am einfachsten ist es, schnell ein schnelles Googeln zu machen und zu sagen, wie mache ich das hier, und dann ist es genau dieselbe Syntax, die wir hier hatten. Entweder ist es etwas, das Sie bereits gesehen haben , zum Beispiel Ändern von Spaltentypen oder das Hinzufügen oder Entfernen von Spalten, oder etwas sehr Ähnliches, zum Beispiel Ändern einer Spalte oder das Ändern ihrer Einschränkungen 13. Gezählte Arten: Schauen wir uns also an, wie wir Aufzählungsdatentypen erstellen können, weil wir manchmal eine Aufzählungsdatentypen erstellen natürliche Ordnung haben wollen oder es gibt eine natürliche Ordnung, aber es ist schwierig für uns, diese vielleicht einem Computer darzustellen Ein einfaches Beispiel dafür ist, nehmen wir die Wochentage und nehmen wir an, es gibt eine bestimmte Reihenfolge, und wir beginnen damit dafür ist, nehmen wir die Wochentage und nehmen wir an, , dass Montag der früheste Tag ist, und dann können wir Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag gehen , oder vielleicht möchten Sie mit Sonntag beginnen und bis Samstag gehen oder zu der Reihenfolge gehen, die Sie verwenden möchten. Aber vielleicht möchtest du etwas sagen wie Ich möchte nur nach Fällen suchen, die nach Mittwoch passieren. Also zwischen Mittwoch und Samstag oder so. Diese Reihenfolge zu verwenden ist schwierig, weil sie nicht den Wörtern selbst innewohnt. Wir wissen es, weil wir die Bedeutung von Wochentagen verstehen , aber ein Computer weiß das natürlich nicht. Eine Sache, die wir in SQL tun können , ist, einen aufgezählten Datentyp zu erstellen, und darin können wir dann die hierarchische Reihenfolge zwischen diesen verschiedenen Instanzen angeben die hierarchische Reihenfolge zwischen diesen dies zu tun, können wir zum Beispiel einen Typ erstellen, und wir werden unseren Typnamen hier haben Diesen können wir zum Beispiel den Wochentag nennen . Dann sagen wir hier als Zahl, also als Aufzählung , offene und schließende Klammern, und dann haben wir offene und schließende Klammern, und dann hier zur besseren Praxis ein Semikolon am Jetzt können wir hier die Reihenfolge der verschiedenen Typen eingeben . Nehmen wir zum Beispiel an, wir haben zuerst Montag, dann haben wir Dienstag. Dann haben wir Mittwoch und dann setzen wir das in der nächsten Zeile fort , damit es besser lesbar ist. Dann haben wir Donnerstag. Dann haben wir Freitag, Samstag und Sonntag. Jetzt haben wir einen neuen Typ namens Wochentag erstellt, dem es sich um einen aufgezählten Datentyp handelt, und die Reihenfolge zwischen ihnen ist so, wie wir sie hier sehen Was wir zum Beispiel tun können, ist, dass wir diesen Typ jetzt verwenden können, um eine weitere Tabelle zu erstellen Lassen Sie uns eine Tabelle erstellen. Dann können wir hier einfach diese Testtabelle nennen. Auf diese Weise müssen wir uns keine Gedanken über einen Namen machen. In dieser Tabelle wollen wir sie verwenden , um beispielsweise die Anwesenheit zu verfolgen. Obwohl ich denke, ein besserer Name wäre jetzt Anwesenheit gewesen, aber was auch immer. Lassen wir es so. Was wir hier verfolgen können, ist zum Beispiel ein Studentenausweis Lassen wir das einfach eine Ganzzahl sein. Dann können wir zum Beispiel auch unseren Enumerator-Datentyp verwenden, also können wir das hier als Wochentag bezeichnen, was unseren Wochentags-Datentyp verwenden wird, und dann benötigen wir immer noch einen Primärschlüssel Nennen wir das einfach irgendeinen Schlüssel, und das wird seriell sein, und es wird unser Primärschlüssel sein Wenn wir das hier ausführen , gibt es uns tatsächlich die Wahl, welche Anweisungen wir ausführen möchten. zum Beispiel nur die Anweisung create ausführen, erhalten wir eine Fehlermeldung, weil wir den Numerate-Typ noch nicht erstellt Und das liegt wahrscheinlich daran, dass wir hier das Bildschirmfeld haben , das uns anzeigt , dass wir diesen Abfrageabschnitt hier ausführen Lassen Sie uns das noch einmal ausführen und diesmal die gesamte Anweisung auswählen. Wenn wir dann auf Ausführen klicken oder es auswählen und ausführen, können wir sehen, wie es funktioniert weil es unseren Typ für uns erstellt hat. Wir können hier sehen, ob wir in unsere Testtabelle gehen, wir haben jetzt einen benutzerdefinierten Datentyp oder Wochentag, , wie wir hier sehen können, hier erstellt haben. Das Wichtigste dabei ist auch, dass wir hier das Semikolon am Ende haben , weil es sonst versucht hätte, diese Befehle miteinander zu verketten diese Befehle miteinander zu verketten Auf diese Weise haben wir jetzt verschiedene SQL-Abfragen, und es ist wichtig, verschiedene SQL-Abfragen einfach durch Semikolons zu trennen , um sicherzustellen, dass sie nicht versucht werden, miteinander zu verketten oder so , sondern dass sie nacheinander ausgeführt werden. Selbst wenn einige Abfragen oder Befehle nacheinander ausgeführt werden, ist es immer ratsam, sie zu trennen, da in anderen Fällen Probleme auftreten ist es immer ratsam, sie zu trennen, da in anderen Fällen Probleme können Es empfiehlt sich immer, Ihre Abfragen einfach durch ein Semikolon zu trennen oder sie besser zu beenden Auf diese Weise weiß der Abfrage-Editor , dass dies das Ende der Abfrage ist Dann wird das nächste , was kommen wird, der Start einer neuen Abfrage sein. 14. Werte hinzufügen: Jetzt wissen wir also, wie man Tabellen erstellt und entfernt sowie wie man unsere benutzerdefinierten Enumeratortypen erstellt und damit Tabellen erstellt Lassen Sie uns lernen, wie wir Daten in unsere Tabellen einfügen können. Um das zu tun, werden wir Insert Into verwenden. Dann werden wir hier den Tabellennamen haben. Lassen Sie uns zum Beispiel unsere Testtabelle verwenden und dann optional, und wir werden in einer Sekunde darauf zurückkommen. Wir können die Reihenfolge der Spalten hier angeben, aber lassen wir das vorerst aus. Dann werden wir die Schlüsselwortwerte verwenden. Dann werden wir Klammern öffnen und schließen und der guten Praxis halber das Semikolon an das Ende der Abfrage setzen an das Ende der Abfrage Jetzt werden wir die Werte eingeben, die wir einfügen möchten. Jetzt werden die Werte standardmäßig in der Reihenfolge sein , in der wir sie auch hier eingegeben haben. Zum Beispiel haben wir einen Studentenausweis und einen Wochentag. Da unser Schlüssel hier eigentlich eine Seriennummer ist, müssen wir dafür keinen Wert angeben. Nehmen wir an, unser Studentenausweis wird eins sein und der Wochentagswert wird Montag sein. Dann können wir das ausführen und dann wird es eingefügt. Es hat die gesamte Anweisung ausgeführt. Es wird die Werte Eins und Montag in unsere Testtabelle einfügen. Wie können wir das sehen? Nun, wir können hier einfach auf unsere Tabelle doppelklicken und das öffnet sie in einem neuen Tab. Hier können wir sehen, dass wir den Studentenausweis haben. Wir haben den Wochentag als Montag und wir haben hier auch unseren Schlüssel , der automatisch für uns erstellt wurde. Jetzt können wir hier auch die Spaltenreihenfolge angeben, wenn wir wollen. Vielleicht möchten wir zum Beispiel zuerst den Wochentag danach den Studentenausweis einfügen. Auf diese Weise müssen wir die Reihenfolge hier ändern. Sagen wir für Dienstag, wir haben wieder einen Schüler. Beachten Sie jedoch, dass die Reihenfolge der Spalten diesmal anders ist. Wir haben unsere benutzerdefinierte Reihenfolge ausgewählt, die wir zum Einfügen in diese Tabelle verwenden möchten, oder wir haben sie ausgewählt. Es ist jedoch wichtig, dass wir diese benutzerdefinierte Reihenfolge einhalten. Andernfalls geht die Tabelle davon aus, dass wir die Standardreihenfolge verwenden, und so werden auch die Werte eingefügt. Eine weitere wichtige Sache , auf die ich auch hinweisen möchte , ist, dass es hier wichtig ist , dass wir einfache Anführungszeichen verwenden , während wir keine doppelten Anführungszeichen verwenden. Ich werde gleich erklären, warum. Lass uns weitermachen und das machen. Wir werden die gesamte Abfrage ausführen. Sie wird hier in unsere Tabelle eingefügt. Lassen Sie mich es schließen und erneut öffnen. Es wird in unsere Tabelle eingefügt. Auch hier haben wir unseren Studentenausweis. Wir haben den Wochentag jetzt Dienstag, was genau das ist, was wir hier angegeben haben. Der Grund, warum wir keine doppelten Anführungszeichen verwenden möchten , ist, dass doppelte Anführungszeichen für Spaltennamen verwendet werden. Manchmal haben wir möglicherweise Spaltennamen, die mit etwas anderem in SQL kollidieren können. Um anzugeben, dass etwas eine Spalte ist, können wir es auch in doppelte Anführungszeichen setzen. Verwenden wir hier zum Beispiel Mittwoch. Verwenden wir hier die doppelten Anführungszeichen , um anzugeben, dass es sich um Spalten handelt. Auch dies wird für den ersten Studentenausweis sein. Nochmals, weil wir gerade auf diese Weise die Reihenfolge der Spalten angeben. Wenn wir weitermachen und das jetzt wiederholen, und ich irre mich , dass meine Schreibweise von Mittwoch falsch ist. Schauen wir uns unseren Wochentag und unseren Datentyp an, und ich werde es einfach tun, ich verstehe. Hier gab es einen zusätzlichen Platz. Nun, lassen wir es vorerst einfach so wie es ist. Wir müssen nur ein zusätzliches Leerzeichen davor platzieren. Hier können Sie dann natürlich auch sehen, was passiert, und genau das wollte ich als Nächstes behandeln. Aber Sie können sehen, was passiert, wenn Sie hier einen Wert in einen aufgezählten Datentyp eingeben, der nicht zum Datentyp selbst gehört jetzt mit der entsprechenden Formatierung Lassen Sie uns jetzt mit der entsprechenden Formatierung fortfahren und dies noch einmal ausführen und dann einen Blick auf unsere Tabelle werfen Okay. Schauen Sie sich hier eine Tabelle an. Wenn wir wollen, können wir es schließen und wieder öffnen. Wir können auch hier einfach auf die Schaltfläche „Aktualisieren“ klicken und wird unsere Tabelle aktualisiert , wie wir hier sehen können. Das können wir sehen, wenn wir zu unserer Konsole zurückkehren, indem wir hier die doppelten Anführungszeichen verwenden Lassen Sie uns erneut die Spalte angeben. Verwenden wir dagegen ein einfaches Anführungszeichen, geben wir den Wert an , den wir einfügen möchten. Wenn wir hier zum Beispiel doppelte Anführungszeichen einfügen, verwenden wir hier Donnerstag, aber in diesem Fall werden wir doppelte Anführungszeichen verwenden. Wir können bereits an der Farbcodierung erkennen , dass es fehlschlagen wird. Und lassen Sie uns das schließen. Aber lass es uns trotzdem versuchen. Lass uns weitermachen und das laufen damit wir sehen können , dass hier steht, die Spalte Donnerstag nicht existiert. Auch hier sind doppelte Anführungszeichen vier Spalten. Einfache Anführungszeichen stehen für Textzeichenfolgen. Wenn wir das jetzt ausführen, es hier einfügen und einfach unsere Seite neu laden, können wir hier jetzt wieder sehen, dass wir unsere Daten hier eingefügt haben Was passiert, wenn wir unseren Typ, den wir verwenden, aktualisieren wollen unseren Typ, den wir verwenden, da wir unseren Typ jetzt ein wenig durcheinander gebracht haben Was wir dafür tun können, ist uns unsere Typen hier noch einmal anzusehen Die Syntax, die wir verwenden werden, sagen wir, Typ ändern, und wir werden unseren Wochentag ändern. Wir werden Wert umbenennen sagen und wir werden Mittwoch zwei umbenennen, hier Sam Colon. Lassen Sie uns einen Blick auf unseren Typ werfen und ihn dann aktualisieren. Wir können hier jetzt sehen, dass unser Typ aktualisiert wurde. Ich stelle den gleichen Fehler hier am Sonntag fest. Machen wir weiter und machen das auch für Sonntag. Sonntag und wir werden das in Sonntag umbenennen. Lass uns weitermachen und das machen. Gehen wir hier zurück zu unseren Typen, beim Nachladen, und wir sehen hier, dass ein Sonntag jetzt auch behoben wurde Wenn wir uns unsere Datenbankaktualisierung ansehen, können wir tatsächlich feststellen , dass auch unser Datenbankwert entsprechend aktualisiert wurde Jetzt haben wir gesehen, wie wir Daten in unsere Datenbank einfügen können. Außerdem, wie wir den Typ ändern können, wenn wir wollen. Eine weitere Option ist natürlich, wenn Sie gerade neu anfangen eine völlig saubere Datenbank haben, Sie können die Tabelle auch einfach entfernen und den Typ einfach von Grund auf neu erstellen und dann mit dem richtigen Typ weitermachen. Natürlich gibt es verschiedene Möglichkeiten , dasselbe Problem zu lösen. 15. Ein SQL-Script erstellen: Wie Sie sehen, kann das Einfügen von Daten in unsere Tabellen etwas mühsam sein, vor allem, weil wir sie in SQL einen Wert nach dem anderen einfügen müssen Das ist normalerweise der Grund, warum Daten in SQL-Tabellen von hinten nach innen eingefügt werden, wo die Dinge mit den anderen Pipelines eingerichtet werden . Wann immer die erforderlichen Daten zu ihnen kommen oder sie passieren, werden sie dann in die Datenbank hochgeladen Die Verwendung des Einfügens in Anweisungen ist nicht besonders effizient, wenn Sie als Benutzer das tun müssen , weil Sie alles herausschreiben müssen Es ist viel effizienter, dies als Teil des Codes zu tun , wo das Teil Ihrer Datenpipeline ist , sodass Sie die Daten dann einfach in die Datenbank hochladen können Daten dann einfach in die Datenbank hochladen In den meisten Fällen werden Sie also keine Daten einfügen Wenn Sie es für Abfragen verwenden um entweder Ihre Daten zu untersuchen, zu analysieren oder sie entweder zu exportieren, um Ihre eigene benutzerdefinierte Analyse durchzuführen, oder um andere Dinge damit zu tun Seien Sie sich dessen bewusst. Jetzt gibt es einige Möglichkeiten, wie wir Daten schneller einfügen können. Wenn wir zum Beispiel zu unseren Event-Informationen gehen und sagen wir, in die Event-Info einfügen, und wir wollen die Werte einfügen und nur eine Vorstellung von einem und einem Namen geben, zum Beispiel Login, dann, wenn wir das ausführen können oder wenn wir tatsächlich mehrere Werte gleichzeitig eingeben wollen tatsächlich mehrere Werte gleichzeitig eingeben , werden hier zwei angeklickt. Wie Sie dann die Einfügewerte sehen können, können wir sie einfach durch Kommas trennen und dann steht jede Zeile oder jeder Datensatz, den wir hier einfügen möchten, in eigenen Klammern. Wir können zum Beispiel zwei Werte einfügen. Schauen wir uns unsere Event-Info-Tabelle an. Derzeit ist sie leer. Wenn wir das ausführen und dann einen Blick darauf werfen und unsere Tabelle aktualisieren, können wir sehen, dass wir zwei Werte gleichzeitig eingefügt haben. Aber auch das ist nicht besonders effizient. Auch hier gilt, dass dies in den meisten Fällen quasi die ganze Zeit vom Back-End aus erfolgt, wenn Ihre Daten die Daten-Pipelines passieren wenn Ihre Daten die Daten-Pipelines die Daten-Pipelines weil all dies automatisiert werden kann, und das ist extrem toll, weil Ihre Datenbank dann ständig mit Daten gefüllt wird , während Ihre Daten-Pipelines die Daten verarbeiten oder verschieben Für uns werden wir nun eine offene Datenbank verwenden, mit der wir herumspielen können. Bevor wir das tun, lassen wir einfach alle unsere Tabellen fallen. Wir werden sagen, lassen Sie uns hier bei der Großbuchstaben-Syntax bleiben. Wir werden die Tabelle mit den Veranstaltungsinformationen löschen. Lassen Sie uns weitermachen und das ausführen. In diesem Fall, weil wir unser Ereignisprotokoll mit einem Fremdschlüssel mit den Ereignisinformationen verknüpft haben . Wenn Sie sich erinnern, wie wir das Ereignisprotokoll erstellt haben, haben wir hier einen Link. Zu den Event-Informationen mit dem Fremdschlüssel. Wir werden auch die Cascade-Anweisung verwenden, um diese fortlaufende Reihe von Löschungen durchzuführen , bei denen sich all diese Verweise befinden. Das ausführen. Es wird unsere Event-Info-Tabelle für uns entfernen. Dann können wir dasselbe für die Benutzerinformationen erneut tun, indem wir das Ereignis kaskadieren, weil es immer noch im Ereignisprotokoll verknüpft ist, und dann können wir das Ereignisprotokoll löschen Hier müssen wir nichts mehr kaskadieren, weil es mit nichts mehr verknüpft ist mehr verknüpft Lass uns weitermachen und das entfernen. Und dann können wir auch die Testtabelle entfernen. Lass uns weitermachen und das entfernen. Dann können wir hier auch unseren zusätzlichen Wasserhahn schließen , weil er nicht mehr relevant ist. Wir kehren zurück zur Datenverwaltung und lassen uns einfach unseren Abfrage-Editor hier in unserer Abfragekonsole löschen . Um an unsere neuen Daten zu kommen, gehen wir zu dieser Einrichtungsseite hier für die Chinook-Datenbank Fügen Sie in der Registerkarte Materialien einen Link dazu ein, damit Sie auch von dort aus darauf verweisen können. Um diese Daten zu erhalten, wird das eine SQL-Abfrage sein , die wir ausführen können Sie können einfach hier auf Herunterladen klicken, und entweder wird sie direkt kostenlos heruntergeladen oder wie bei mir, sie wird sie in einer Sekunde öffnen, wenn ich darauf geklickt habe Es wird sie hier in einem neuen Tab öffnen und Sie können hier sehen, dass das alles eigentlich SQL-Anweisungen Auch hier gilt: Wenn Sie SQL haben oder wenn Sie SQL haben, ist die Tabelle in Ihr Unternehmen integriert. In den meisten Fällen wird es immer noch nicht mit SQL-Anweisungen eingefügt, sondern es wird direkt mit der SQL-Tabelle verbunden . Aber wie auch immer. Hier wird all dies mithilfe von SQL-Abfragen für uns erledigt. Wenn Sie möchten, können Sie sich das auch ansehen , um zu sehen, was es tatsächlich tut. Aber wenn Sie diese Abfrage dann verwenden möchten, klicken Sie mit der rechten Maustaste hier. Okay. Sie klicken mit der rechten Maustaste und können dann auf Speichern klicken. Dann habe ich es auf dem Desktop gespeichert, wie Sie bereits sehen können. Stellen Sie nur sicher, dass Sie die Punkt-TXT-Erweiterung wegnehmen die Punkt-TXT-Erweiterung , damit wir sie in einer Sekunde verwenden können. Und dann klicken Sie einfach auf Speichern. Sie können es natürlich auch speichern, wo immer Sie möchten. Das habe ich schon gemacht. Um diese SQL-Abfrage oder die Reihe von SQL-Abfragen, die wir jetzt heruntergeladen haben , auszuführen und sie unserer Datenbank hinzuzufügen. Wir werden hier mit der rechten Maustaste auf unser Schema klicken. Dann werden wir hier das SQL-Skript ausführen lassen. Wir werden dieses SQL-Skript hier wählen. Wir werden auf Öffnen klicken und dann wird es für uns ausgeführt. Wir können einfach warten, bis es fertig ist, was nur ein paar Sekunden dauern würde. Jetzt , wo es fertig ist, können wir hier sehen, dass es neue Tabellen für uns erstellt hat. Wir können uns jede einzelne ansehen, wenn wir wollen, und sie einfach ein bisschen erkunden, oder Sie können sie sich auch hier direkt ansehen. Jetzt haben wir Daten, die wir verwenden können, die tatsächlich viel mehr sind, als wir selbst manuell hätten einfügen können. Wenn Sie den Abfrage-Editor öffnen möchten weil es sich um einen Unfall handelt. Auch hier wissen wir, wie das geht. Auf diese Weise können wir dann auch SQL-Skripte ausführen, wenn wir wollen, wodurch wir in diesem Fall einfach eine Praxis erstellen oder eine Übungsdatenbank verwenden können , die wir dann für zusätzliche Abfragen verwenden Auch hier gilt: Wenn Sie mit einer Unternehmensdatenbank oder etwas anderem arbeiten, ist die Datenbank bereits gefüllt. Wenn Sie also einen Strich durch die Rechnung machen mit einer Unternehmensdatenbank oder etwas anderem arbeiten, , werden , Sie sich einfach darauf konzentrieren, entweder Ihre Analyse durchzuführen oder die notwendigen Daten zu finden, die Sie für weitere Dinge herausnehmen können. Da das Hochladen hauptsächlich in den Daten-Pipelines erfolgen wird in den Daten-Pipelines erfolgen wird es viel effizienter sein, all das automatisch als Teil der Pipelines zu aktualisieren . 16. Daten lesen: Ordnung. Nun, da uns unsere Tabellen zur Verfügung stehen, wollen wir nun lernen, wie wir tatsächlich Daten aus unseren Tabellen abrufen können . Lassen Sie uns weitermachen und einfach einen Blick auf die erste Tabelle hier werfen, die auf Alben namens Album. Wenn wir hier nur nachschauen, sehen wir, dass wir mehrere verschiedene Spalten haben, mehrere verschiedene Attribute, wir haben die Album-ID. Wir haben den Titel sowie eine Künstler-ID. Wir haben hier verschiedene Alben , die von verschiedenen Künstlern gemacht wurden, und jedes Album hat natürlich auch seine eigene eindeutige ID. Wie können wir Daten von hier bekommen? Wie können wir die Daten aus dieser Tabelle mit einer SQL-Abfrage lesen ? Wir kehren zu unserer Konsole zurück und stellen sicher, dass wir hier über die richtige Konsole mit der richtigen Datenquelle verbunden sind . Um nun Daten aus unserer Tabelle abzurufen, sagen wir: Wählen Sie aus. Dann sagen wir Stern, was alles bedeutet. Wählen Sie alle Spalten aus. Dann wollen wir aus dem Album auswählen. Wenn ich hier die Eingabetaste drücke und es automatisch vervollständigen lasse, werden Sie tatsächlich sehen, dass wir hier Anführungszeichen haben. Wir werden hier über diese und auch über diesen Stern sprechen und darüber, wie wir diese Dinge modifizieren können. Aber lassen Sie uns das zunächst ausführen und die Ergebnisse sehen, die wir erhalten. Wenn wir das ausführen, können wir hier sehen, dass dies die Ergebnisse sind, die wir mit unserer Abfrage erhalten. Wir können sehen, dass wir drei verschiedene Spalten ausgewählt haben. Wir haben die Album-ID, den Titel sowie die Künstler-ID, und wir können hier sehen, wir nach unten scrollen und eine Reihe von Daten auswählen können , oder in diesem Fall tatsächlich alle unsere Daten aus unserer Albumtabelle hier. Schauen wir uns zunächst diese Anführungszeichen an , denn in SQL-Abfragen werden Ihre Tabellennamen oft nicht in Anführungszeichen gesetzt. Woher kommt das? Nun, wenn wir uns das SQL-Skript ansehen, das wir ausgeführt haben, können wir hier tatsächlich die Anweisung create table sehen , die sie verwendet den Tabellennamen in Anführungszeichen gesetzt, haben. Sie hat den Tabellennamen in Anführungszeichen gesetzt, was bedeutet, dass wir jetzt mit Anführungszeichen darauf verweisen müssen. Wenn ich die Anführungszeichen weggenommen hätte, können Sie hier schon sehen, dass es rot wird, aber wir können trotzdem versuchen, es auszuführen. Wir werden eine Fehlermeldung bekommen, weil es heißt, dass die Tabelle nicht existiert. Wie können wir das ändern , weil es nicht sehr schön ist, es immer in Anführungszeichen setzen zu müssen . Um das zu aktualisieren, verwenden wir wieder die Anweisung alter table, und wir werden das Album erneut ändern, es hier in Anführungszeichen setzen , und dann sagen wir, zwei umbenennen, und jetzt nennen wir es einfach Album ohne die Anführungszeichen. Lassen Sie uns weitermachen und das ausführen. Lassen Sie uns jetzt die gleiche Select-Anweisung schreiben und Stern aus dem Album auswählen. Aber dieses Mal werden wir hier keine Anführungszeichen setzen. Wenn wir das ausführen, können Sie sehen, dass wir diesmal kein Problem haben, weil wir unsere Tabelle jetzt umbenannt haben, sodass wir von den Anführungszeichen zu einem Tabellennamen ohne Anführungszeichen wechseln den Anführungszeichen zu , was einfach viel praktischer ist weil wir nicht immer alles in Anführungszeichen setzen müssen . In einigen Fällen kann es vorkommen, dass Sie auf dieses Problem stoßen, und das liegt einfach daran, dass die Anweisung create table, wie wir hier sehen können, im ursprünglichen Create Table -Ding Anführungszeichen hatte . Lassen Sie uns hier auch über diesen Stern sprechen. Was wir hier einfügen, sind die Spalten, die wir aus unserer Tabelle auswählen möchten. In diesem Fall setzen wir Stern, das heißt, wählen Sie jede einzelne Spalte aus. Ich möchte manchmal nicht jede einzelne Spalte auswählen. Was ist, wenn wir manchmal nur eine Teilmenge von Spalten auswählen möchten eine Teilmenge von Spalten auswählen Nehmen wir an, wir interessieren uns nur für die Album-ID und den Titel. Wir wollen den Künstler nicht extrahieren. Nun, was wir tun können, ist , die Album-ID auszuwählen, und wir werden auch den Titel auswählen. Aus dem Album. Jetzt werden Sie wieder sehen, ich Anführungszeichen setzen muss, und auch hier hat das automatische Ausfüllen hier von Data Grip das für mich erledigt. Auch das liegt daran, dass wir, wenn wir hier in unsere SQL-Abfrage gehen, sehen können, dass die Tabellennamen auch mit Anführungszeichen erstellt wurden. Wenn wir zurückgehen, können wir hier wieder sehen, dass wir auch Tabellennamen in Anführungszeichen setzen müssen. Wenn wir das ausführen, können wir jetzt hier sehen unsere aktualisierten Ergebnisse nicht mehr die Künstler-ID enthalten, die wir hier haben. Stattdessen haben wir sowohl die Album-ID als auch den Titel. Jetzt können wir natürlich auch die Reihenfolge hier ändern. Anstatt zuerst die Album-ID zu haben, können wir vielleicht stattdessen den Titel und dann die Album-ID lesen . Wenn wir das also ausführen, können wir hier sehen, dass die Ausgabe der Reihenfolge unserer Spalten ebenfalls umgedreht wird Nach der Select-Anweisung hier wählen wir aus, welche Spalten wir wollen Wenn wir alle Spalten auswählen wollen, setzen wir einen Stern. Wenn wir bestimmte Spalten auswählen wollen, müssen wir ihren Namen hier eingeben. Anweisung Create Table verwendet bei der Definition der Spaltennamen keine Anführungszeichen, dann müssen wir sie hier auch nicht verwenden. In diesem Fall tun sie es jedoch, was bedeutet, dass wir sie auch in unserem Code verwenden müssen. Nun, manchmal, wenn Sie gerade eine Datenbank erkunden oder vielleicht eine Abfrage schreiben und die Ergebnisse der Abfrage sehen möchten, aber nicht möchten, dass alles zurückgegeben weil das Zurückgeben aller Daten, vor allem, weil es eine Menge Daten in Ihrer Datenbank gibt , eine Menge Arbeit ist. Es gibt eine zusätzliche Anweisung namens mit , die wir am Ende unserer Abfrage platzieren können . Dies begrenzt die Anzahl der Zeilen , die an uns zurückgegeben werden und tatsächlich angezeigt werden. Wenn ich es zum Beispiel auf fünf setze, bedeutet das, dass wir hier nur fünf Zeilen sehen werden. Es werden die ersten fünf Zeilen sein. Wenn wir das ausführen, können wir hier jetzt sehen uns nur die ersten fünf Zeilen zurückgegeben wurden. Wenn ich zwei beschränke, werden nur die ersten beiden Zeilen angezeigt. Wenn ich 50 mache , erhalten wir die ersten 50 Zeilen. Auf diese Weise können Sie auch verwalten, wie viele Werte zurückgegeben werden, die Sie entweder innerhalb von Abfragen verwenden können, wenn Sie möchten denn ich weiß nicht, ob Sie eine bestimmte benutzerdefinierte Filterung durchführen , oder Sie können sie auch verwenden, wenn Sie Ihre Abfragen testen und Sie nicht möchten, dass alle Werte zurückgegeben werden, Sie aber nur sicherstellen möchten dass sie ordnungsgemäß funktionieren, und Sie möchten also nur ein paar Werte, Sie möchten Ihre Ergebnisse auf ein paar Zeilen beschränken , damit Sie sie sich ansehen, sicherstellen können, dass sie richtig funktionieren oder vielleicht einige Fehler entdecken, Ihre Abfrage korrigieren, es erneut versuchen und dann, bis sie funktioniert, und dann können Sie auch wieder die Limit-Anweisung entfernen, die Limit-Anweisung entfernen, wenn Sie sie für den gesamten Datensatz ausführen möchten oder besser gesagt, wenn Sie möchten, dass alle Datensätze zurückgegeben werden. 17. Tabellen aus der Query erstellen: In der vorherigen Lektion haben wir also gelernt, wie wir Daten aus unseren Tabellen in unserer Datenbank lesen können . Aber jetzt schauen wir uns an, wie wir tatsächlich neue Tabellen aus den Ergebnissen erstellen können neue Tabellen aus den Ergebnissen , denn manchmal schreiben Sie vielleicht eine Abfrage und möchten diese Ergebnisse dann in einer separaten Tabelle speichern , sodass Sie entweder schnell zur Visualisierung darauf zugreifen können , weil Sie Daten verarbeitet haben , oder sie vielleicht woanders verwenden können. Daher kann es natürlich Situationen geben, in denen Sie die Ergebnisse Ihrer Abfrage nur in einer separaten Tabelle speichern möchten, um die Ergebnisse Ihrer Abfrage nur in einer separaten Tabelle speichern nur in einer separaten Tabelle später weiter zu verwenden. Wie können wir das tun? Um das zu tun, geben wir hier zuerst eine Tabelle ein und dann erhalten wir den Tabellennamen. Oh. Erstellen Sie eine Tabelle und wir haben den Tabellennamen. Vielleicht nennen wir dieses Album Ergebnisse und dann sagen wir als, und dann setzen wir Klammern um unsere ausgewählte Aussage wie folgt Das bedeutet, dass wir eine Tabelle erstellen und die Ergebnisse von hier verwenden werden Jetzt werden Sie feststellen, dass wir eigentlich keine der Spalten definieren oder auch keinen ihrer Datentypen definieren. All das wird aus den Ergebnissen unserer Abfrage hier abgeleitet aus den Ergebnissen unserer Abfrage hier Wenn wir das ausführen, dann behalten Sie hier einfach die linke Seite im Auge Wir können jetzt sehen, dass wir unsere Album-Ergebnistabelle haben, die, wie wir sehen können, nur die Ergebnisse unserer Abfrage hier ist und sie wird mit unserer Albumtabelle identisch sein , denn das ist wieder das, was wir von hier zurückgegeben haben. Wir können auch einen Blick hinein werfen, wenn wir wollen. Wir können hier einfach einen Blick hineinwerfen, wir können sehen, dass die Typen abgeleitet sind Eine Sache, die uns auffällt , ist , dass hier kein Primärschlüssel definiert ist Der Primärschlüssel sowie mögliche Fremdkeelings werden hier nicht in unsere neue Tabelle übernommen Aber wir können immer noch die Ergebnisse unserer Abfragen verwenden und sie dann in separaten Tabellen speichern , sodass wir diese Ergebnisse später für alles verwenden können , was wir speziell möchten Wie Sie mich jetzt schon mehrere Male gesehen haben, habe ich damit begonnen, unsere Abfragen auf mehrere Zeilen auszudehnen , nur um sie leichter lesbar zu machen. Manchmal ist es völlig in Ordnung gesamte Abfrage als eine einzige auszuführen, aber in anderen Fällen funktioniert das möglicherweise nicht oder es ist möglicherweise nicht optimal, weil es wirklich sehr lang wird. Sie können Ihre Abfrage natürlich auf mehrere Zeilen aufteilen , wodurch sie auch leichter lesbar ist. Normalerweise möchten Sie sie nach bestimmten Schlüsselpunkten aufteilen. Wenn Sie beispielsweise aus verschiedenen Spalten auswählen, möchten Sie in der Regel auch die FROM-Anweisung in einer neuen Zeile haben , und wir können hier eine korrekte Reihenfolge vornehmen. Wir möchten eine Tabelle erstellen und den Tabellennamen hier haben, und dann können wir unsere Abfrage hier platzieren. Wenn Sie beispielsweise bestimmte Spalten wie die Album-ID auswählen möchten. Dann können wir in der nächsten Zeile hier zum Beispiel den Titel angeben, sodass dieser Weg viel lesbarer wird und er nicht sehr weit in die Horizontale hineinreicht. Was passiert, wenn wir diese Abfrage erneut ausführen ? Das Ganze laufen lassen. Diesmal machen wir wieder einen Fehler , weil unsere Tabelle bereits existiert. Was wir tun können, ist unsere Create-Table-Anweisung hier zu ändern, und wir können sagen, Tabelle erstellen, falls nicht vorhanden. Das funktioniert jetzt für die Create Table-Anweisung , die das Ergebnis der SELECT-Anweisung verwendet, aber das funktioniert auch für unsere allgemeine Create Table-Anweisung. Denken Sie daran, als wir unsere Create Table hatten und dann den Tabellennamen angegeben haben und wir jede Spalte sowie jeden Typ sowie Primärschlüssel und Fremdschlüsselverweise sowie möglicherweise andere Einschränkungen definiert jede Spalte sowie jeden Typ sowie Primärschlüssel und Fremdschlüsselverweise haben. Auch dort können wir Create Table verwenden, falls es nicht existiert. Das Schöne daran ist, dass dadurch nur die Anweisung ausgeführt wird oder nur versucht wird, die Tabelle zu erstellen , wenn sie noch nicht existiert. Dann wird es nicht das Problem geben , mit einer bereits vorhandenen Tabelle zu kollidieren Nun möchte ich noch eine Sache durchgehen, wie wir auf Tabellennamen zugreifen können Lassen Sie uns das wieder entfernen und wir werden einfach alles auswählen. Jetzt machen wir gerade Hoop Lass uns hierher zurückkehren. Derzeit wählen wir alles aus dem Album aus und leiten daraus ab, welche Tabelle wir wollen, weil wir uns sowohl in der Datenbank als auch im Schema bereits befinden in der Datenbank als auch im Aber manchmal haben wir entweder mehrere Datenbanken oder mehrere Schemas Wie können wir genau auf die Tabelle verweisen , die wir wollen, wenn wir hier mehrere Datenbanken oder mehrere Schemas haben hier mehrere Datenbanken oder mehrere Schemas Wir können auch den vollständigen Pfad zu unserer Datenbank bzw. zu unserer Tabelle angeben . Wir können sagen, wir wollen von RDB ausgehen , hier wollen wir das öffentliche Schema wählen Und hier wollen wir das Album auswählen. Wenn wir jetzt auf Ausführen klicken, können Sie sehen, dass es immer noch vollständig funktioniert. In diesem Fall verweisen wir jedoch den vollständigen Pfad zu unserer Tabelle Das ist jetzt natürlich nützlich. Auch hier gilt: Wenn wir mehrere verschiedene Schemas oder mehrere verschiedene Datenbanken darin haben , können wir immer sicherstellen, dass wir bei sich wiederholenden Tabellennamen auf die richtigen Tabellen verweisen Ich kann dasselbe auch tun. Lassen Sie uns zum Beispiel unsere Albumergebnistabelle entfernen , die wir erstellt haben. Wir sagen „Tabelle löschen und löschen die Tabelle mit den Albumergebnissen mithilfe des vollständigen Referenzpfads. Wir könnten es hier auch nur mit dieser Komponente verwenden, aber wir können auch den vollständigen Referenzpfad verwenden. Wenn wir das ausführen und zusehen können, wie unsere Tabelle jetzt entfernt wird, können wir auch sehen, dass unser Datengriff sie aktualisiert und im Grunde sagt, dass dies nicht definiert ist. Das ist eine unbekannte Referenz. Wir können sehen, dass wir sowohl absolute Pfade als auch relative Pfade verwenden können sowohl absolute Pfade als auch relative Pfade Vieles davon ist einfach zu implementieren. In unserem Fall, wenn wir zum Beispiel nur eine Datenbank haben, Schema mit einer Reihe von Tabellen, wird es viel einfacher sein, einfach direkt auf die Tabelle zu verweisen , als den vollständigen Pfad anzugeben. Aber wenn Ihre Datenbank wächst oder Sie mehr Schemas erhalten oder vielleicht hat das Unternehmen bereits mehrere verschiedene Datenbanken oder mehrere verschiedene Schemas Die Verwendung dieser absoluten Pfade kann sich als nützlich erweisen , da dadurch sichergestellt wird, dass Sie auf die richtigen Tabellen verweisen 18. 16AliasingandOrderHB: Manchmal, wenn wir Abfragen ausführen oder wenn wir versuchen, bestimmte Spalten zu entfernen, referenzieren bestimmte Tabellen. Die Namen können sehr lang werden. Eine Sache, die ich jetzt betrachten möchte, ist, Aliase für Namen zu verwenden , damit wir die Namen, die wir in unseren Abfragen verwenden, verkürzen können. Werfen wir einen Blick auf den Mitarbeitertisch. Ich habe es hier schon geöffnet. Wir können durch die verschiedenen Spalten blättern, die uns zur Verfügung stehen. Und lasst uns hier einfach drei Spalten herausnehmen. Nehmen wir den Vornamen, den Nachnamen heraus , und lassen Sie uns auch ihre E-Mail herausnehmen. Also werden wir sagen, wählen Sie Vornamen und dann werden wir Nachnamen wählen. Und wir werden auch die E-Mail aus der Mitarbeitertabelle auswählen. Ich habe recht. Und so werden wir einfach unser Semikolon hier setzen. Und lassen Sie uns wieder unsere Ergebnisse begrenzen. Aber lassen Sie uns auch etwas Struktur in hier einfügen. Also r von Anweisung wird auf einer neuen Zeile sein. Unser Limit wird auf einer neuen Zeile liegen, und jede unserer Spalten wird auch auf einer neuen Zeile stehen. Dies wird es nur lesbarer als die Abfrage machen, vielleicht ist es größer. Und lassen Sie uns natürlich auch eine Nummer hier setzen, wenn wir unsere Aussage einschränken. Also, wenn wir das ausführen, können wir hier sehen, das sind unsere Ergebnisse. Und Sie werden feststellen, dass wir in diesem Fall immer noch die Anführungszeichen um den Tabellennamen setzen müssen, da ich den Tabellennamen hier nicht aktualisiert habe. Und unsere Spalte erfordert immer noch Anführungszeichen. Jetzt, wenn unsere Spalten ohne Anführungszeichen erstellt werden, können wir sie immer noch verwenden, um keine Spaltennamen zu kennen, aber es ist nicht notwendig. In diesem Fall. Es ist eigentlich notwendig für uns, weil es mit den Anführungszeichen erstellt wurde. Und wenn wir uns erinnern, wenn wir diese wegnehmen, werden wir auf ein Problem stoßen, weil unsere Tabelle mit Anführungszeichen erstellt wurde. Dennoch ist die Verwendung von Anführungszeichen um Spaltennamen eigentlich ziemlich nett, weil es viel einfacher ist zu sehen, was die Spalte oder welche sie genannt werden und welche andere Dinge sind. also nicht wirklich schlecht, Anführungszeichen um Spaltennamen zu halten, aber es tut, und es sind auch Kieran-Tabellennamen, aber es wird ein wenig mühsam für Benutzer auf zwei Ammoniums. Also, wenn Sie das tun wollen, können Sie natürlich, wie wir in den vorherigen Lektionen gesehen haben, einfach den Tabellennamen hier ändern und dann müssen Sie die Anführungszeichen nicht mehr verwenden. Also, wie können wir einige Aliase zu oder Spalten hinzufügen? Nehmen wir zum Beispiel an, wir möchten, dass unsere Ausgabespalte nicht FirstName genannt wird, sondern wir wollten ihr etwas anderes geben. Nehmen wir zum Beispiel an, wir wollen nur die Ausgabespalte hier verwenden, um zuerst zu sein. Und wir wollen, dass unser Nachname zuletzt genannt wird. Und wir wollen, dass die E-Mail als E-Mail bleibt, damit wir sie nicht ändern werden. Also, wenn wir dies ausführen, können wir hier sehen jetzt unsere Ausgabe ist die erste und letzte, und unsere E-Mail ist gleich geblieben. So können wir hier sehen, können wir Aliase zu unseren Spaltennamen zuweisen, und das wird sie tatsächlich in den resultierenden Antworten ändern, die wir erhalten haben. Und später, wenn die Abfragen größer werden, können wir dann auch referenzieren oder Tabellennamen mit den Aliasnamen, die wir ihnen hier zuweisen, anstatt den vollständigen Namen zu verwenden. Aber es ist nicht nur für Spalten, die wir Aliase zuweisen können, wir können es auch für Tabellen tun. Um also einen Alias für eine Tabelle zuzuweisen, legen wir einfach ein Leerzeichen hier ein. Und dann würden wir einfach den Alias setzen, den wir verwenden möchten. Zum Beispiel, wenn wir für Mitarbeiter, die verwendet werden können , Abkürzung wollen MP. Und das bedeutet, dass wir jetzt auch MP verwenden können, um Mitarbeiter zu referenzieren. Ein Ort, an dem Sie das tun können, ist beispielsweise manchmal, wenn Sie mit mehreren Tabellen in derselben Abfrage zu tun haben, und vielleicht sind einige der Spalten die gleichen Spalten in mehreren verschiedenen Tabellen. Sie möchten sicherstellen, dass Sie in der rechten Tabelle auf die rechte Spalte verweisen. So wie wir sahen, als wir aus einer Tabelle auswählten und wir gaben den vollen Weg zum Tisch. Wir können dasselbe für die Säulen tun. So zum Beispiel können wir dann unsere Tabelle und hier referenzieren, und wir können m Punkt Vorname sagen. Sie können m Punkt Nachname sagen. Und wir können sagen, m dot email. Und wenn wir das ausführen, sehen wir, dass es das läuft. Wir sehen also, dass sich unsere Ergebnisse nicht ändern werden. Aber die Art und Weise, wie wir unsere Abfrage schreiben, funktioniert , weil wir jetzt Dinge anders referenzieren. So können wir hier sehen, so geben wir Aliase zu unseren Spaltennamen mit dem as Schlüsselwort. Aber wenn wir einen Alias zu einem Tabellennamen geben wollen, können wir einfach ein Leerzeichen setzen, nachdem wir die front-Anweisung hier im Tabellennamen haben. Und dann setzen wir den Alias, den wir dem Tabellennamen geben möchten. Und das lässt uns nur diesen Alias in unserer Abfrage verwenden , so dass wir auf diese Tabelle verweisen , anstatt den vollständigen Tabellennamen ausschreiben zu müssen. Natürlich mag es in diesem Fall ein wenig unnötig erscheinen , nur weil wir die Spalten bereits so extrahieren können. Aber wenn Sie mehrere verschiedene Tabellen in der gleichen Abfrage haben, kann es wirklich nett sein. Um sicherzustellen, dass, wenn es verschiedene Spalten gibt, sind identische Spalten in den verschiedenen Tabellen, die Sie auf die rechte Spalte aus der rechten Tabelle referenzieren. Und so können wir dann auch die Kurzschrift aus der Tabelle verwenden, die wir verwenden. Und wir können es zum Beispiel verwenden, um auf die Spaltenattribute innerhalb zuzugreifen, um sicherzustellen, dass wir auf die Spalte von dieser spezifischen Tabelle zugreifen, die eine Abkürzung für diese Tabelle ist hier. Nun eine andere Sache, die ich auch übergehen möchte, ist die Bestellung von Ergebnissen. Im Moment ist die Art und Weise, wie unsere Ergebnisse zurückgegeben werden, nur durch die Art und Weise, wie sie hier eingefügt werden. So können wir sehen, dass wir die Bestellung hier haben. Und genau so werden sie uns hier zurückgegeben. Aber manchmal wollen wir tatsächlich Dinge bestellen, entweder als Teil der Abfrage bestellen und dann später etwas anderes tun oder einfach nur die endgültigen Ergebnisse sortiert haben. Um das zu tun, werden wir die Order BY-Anweisung mit 1D hier verwenden. In Ordnung, so dass die Reihenfolge BY wir jetzt in die Spaltennamen oder die Spaltenposition setzen können. Wir schauen uns beides an und dann können wir nach denen bestellen. Nehmen wir an, wir wollen zuerst nach dem Vornamen und dann nach dem Nachnamen bestellen. Und dann wollen wir unsere Ergebnisse zurückgeben. Und wir wollen in aufsteigender Reihenfolge sortieren, damit alles, was am niedrigsten ist, zuerst sein wird und dann in zunehmender Reihenfolge gehen. Also, um zuerst nach dem FirstName zu bestellen, können wir dann zuerst hier einfügen, was in diesem Fall auf den Spaltenalias verweisen wird , den wir hier oben verwendet haben. Dann werden wir bis zum letzten Mal bestellen. Und jetzt wollen wir auch sagen, dass beide in aufsteigender Reihenfolge angeordnet werden sollten, was eigentlich der Standard sein wird. Aber lassen Sie es uns zuerst so laufen. Und dann werden wir speziell die aufsteigende Reihenfolge festlegen. Also führen wir diese Abfrage aus. Und wir können sehen, dass wir jetzt in einer aufsteigenden Vornamen-Reihenfolge zuerst bestellen, und dann, falls es einen Zeit-Vornamen gibt , der in diesem Fall nicht so aussieht, als ob es für sie gibt und den Nachnamen für die Bestellung verwenden. Um dies zu überprüfen, können wir auch in unseren Tisch gehen, der eigentlich ziemlich klein ist, wie Sie sehen können. Und wir können hier auch einfach auf die Bestellung nach Vornamen klicken. Und wir werden sehen, dass wir die gleiche Bestellung bekommen, wie wir hier drüben sind. Also wieder, die order BY-Anweisung ist die Reihenfolge, in der wir die Spalten bestellen möchten. Also zuerst werden wir nach der ersten Spalte hier sortieren, die unser Alias für die FirstName-Spalte ist. Falls es ein Unentschieden gibt, verwenden wir dann diese letzte Spalte, die unser Alias für die Nachnamensspalte ist. In diesem Fall haben wir keine Bindungen, also tut es gar nichts. Und danach gibt es keine spezifische Bestellung, die wir verwenden. Es geht also, falls es mehr Bindungen gibt, einfach zurück an den Rand, die natürliche Reihenfolge der Daten in unserer Tabelle. Nun, um explizit anzugeben, dass wir aufsteigende Reihenfolge verwenden möchten, können wir ASC hier setzen, und wir können ASC hier setzen. Damit wir das wieder ausführen können. Jetzt werden sich unsere Ergebnisse nicht ändern, da es auch standardmäßig ASC ist. Aber Sie können nach jeder Spalte sehen, die wir in dieser Reihenfolge BY-Klausel hier haben, können wir auch die Reihenfolge angeben, die wir tun möchten, entweder aufsteigend oder absteigend. Also, wenn wir zuerst den Vornamen in absteigender Reihenfolge bestellen wollen, und dann im Falle von Bindungen, verwenden Sie den Nachnamen in aufsteigender Reihenfolge. Wir können absteigend wie folgt angeben, und dann können wir den Nachname so aufsteigend lassen. Wenn wir dies ausführen, ändern sich jetzt unsere Ergebnisse weil wir zuerst den FirstName verwenden, und wir sortieren in absteigender Reihenfolge, was bedeutet, dass die höchste zuerst für alphabetische große Urnen näher an Zed. Und dann im Falle von Bindungen, in diesem Fall gibt es derzeit keine, wir werden den Nachnamen verwenden. Also in diesem Fall wird wieder der Nachname nicht verwendet, aber die Reihenfolge wird zuerst durch Vorname Reihenfolge gehen, absteigend, also höchste zuerst und dann Lois ganz unten. Und im Falle von Bindungen, verwenden Sie den Nachnamen und sortieren Sie dann die Spalten, die Bindungen auf Vorname, Nachname, aber hier verwenden Sie eine aufsteigende Reihenfolge. Und wie Sie sehen können, können wir die spezifische Reihenfolge angeben, die wir für jede einzelne Spalte verwenden möchten , die wir BY bestellen möchten. Und dann können wir auch durch, zum Beispiel, und die E-Mail Spalte hier bestellen . Wenn wir wollen. Wir können auch tatsächlich BY-Spalten bestellen, die wir nicht auswählen solange sie in der ursprünglichen Tabelle in dieser von Anweisung sind. Selbst wenn wir sie nicht zur Visualisierung auswählen, können wir tatsächlich nach ihnen bestellen, weil sie in der ursprünglichen Tabelle sind. So können wir hier bestellen, zum Beispiel, nehmen wir das Geburtsdatum. So können wir nach Geburtsnamen bestellen und es wird standardmäßig aufsteigend Reihenfolge. Damit wir das ausführen können. Nun, wir können sehen, dass wir nicht wirklich die Geburt an Spalten haben, also können wir nicht wirklich überprüfen, ob dieses MOOC immer noch nach dem Geburtsdatum sortiert ist, auch wenn wir es nicht in unserer endgültigen Select-Anweisung hier verwenden. Schließlich ist eine andere Syntax Sache, die wir verwenden können anstatt die Spaltennamen oder Aliase zu setzen. So haben wir zum Beispiel hier den Spaltennamen und zuvor den Spaltenalias wiederverwendet. Erster. Wir hätten genauso gut den Vornamen, den wahren Spaltennamen hier verwenden können. Sie können sehen, dass beide funktionieren würden, aber wir können auch zuerst verwenden, wie wir dies jetzt in absteigender Reihenfolge getan haben und dann zuletzt verwenden. Und lassen Sie uns das auch sagen, oder lassen Sie uns das in aufsteigender Reihenfolge behalten. Also hier verwenden wir die Aliase. Wir können die Namen benutzen. Und lassen Sie uns das einfach nochmal ausführen, um es zu zeigen. Aber etwas anderes, das wir auch tun können, ist, dass wir die Nummer für die Spalte verwenden können , in der sie in unserer select-Anweisung erscheint. Nehmen wir an, wir wollen zuerst nach dem ersten hier und dann zweiten Pi oder Nachname bestellen . Wir können tatsächlich auch diejenige verwenden, was bedeutet, dass wir zuerst nach der ersten Spalte in unserer select-Anweisung indizieren. Und dann zwei bedeutet die zweite Spalte in unserer select-Anweisung. Also das ist wieder nur eine weitere Kurzschrift, die wir tun können , falls ich ihn Namen nenne, zu lange. Wir können unseren Code sauberer, sauberer und schneller schreiben. So können Sie dies ausführen und wir können sehen, dass wir die gleichen Ergebnisse erhalten, weil es sich nicht ändert. Wir können hier eine haben, die referenziert wird, gehen auf die erste Spalte verweisen, die wir hier auswählen. Wir können den Alias hier setzen, das ist der Alias, den wir dieser Spalte zugewiesen haben. So können wir das ausführen und sehen. Oder wir können auch den vollständigen Spaltennamen setzen. Alle diese sind gleichwertig. Natürlich ist die Verwendung des Alias meiner Meinung nach am einfachsten, weil wir deshalb Aliase zuweisen. B kann natürlich auch den vollständigen Spaltennamen oder die Zahlenversion davon verwenden, je nach Wunsch. Die Zahlen, die ich denke, sind eine schöne Abkürzung, aber manchmal können sie verwirrend sein, denn dann muss man wieder nach oben schauen und man muss sehen, was die erste Spalte ist und was die zweite Spalte ist. Und falls Sie etwas wie 10 Spalten auswählen, müssen Sie tatsächlich anfangen, herunterzuzählen, um sicherzustellen, dass Sie die rechte Spalte referenzieren. Das kann also schön für Abkürzung sein. Aber natürlich haben sie alle ihre Kompromisse. Persönlich bevorzuge ich den Alias am meisten, aber wirklich liegt es an Ihnen, was Sie die am besten lesbaren Abfragen machen können. Nun, wie wir hier auch an der Bestellung sehen können, können wir auf zusätzliche Bestellvorfälle verketten. Zum Beispiel können wir sagen, okay, wir wollen zuerst nach der ersten, der ersten Spalte hier, dann nach der zweiten Spalte hier, da wir jemals ihre 2s wollten. Und dann wollen wir zum Beispiel nach dem Geburtsdatum bestellen , das hier nicht einmal in unseren ausgewählten Spalten enthalten ist. Und dann können wir das hier setzen. Und sagen wir hier, wir wollen absteigend bestellen. Und dann wollen wir vielleicht per E-Mail bestellen. Also können wir hier eine Drei setzen, wenn wir wollen. Oder wir können E-Mail senden, was auch immer wir wollen. So können wir sehen, und vielleicht wollen wir das aufsteigend setzen, damit wir sehen können, können wir verschiedene Ordnungen miteinander verketten, indem wir einfach alles durch Komma trennen. Und dann wird die Reihenfolge, die als erstes wählen wird, diese Loslösung sein, sie wird dies verwenden und auf TI für beide, es wird diese Löse für alle drei von ihnen verwenden, es wird dies und so weiter verwenden. Und so können Sie für jede Spalte sehen, können wir auch angeben, ob wir absteigende oder aufsteigende Reihenfolge tun wollen. 19. Conditional: Jetzt haben wir gerade gesehen, wie wir Daten aus unserer Datenbank lesen können. Aber natürlich ist es wirklich nicht ideal, die gesamte Datenbank zu lesen oder sie nach einer bestimmten Anzahl oder Begrenzung von Zeilen abzuschneiden nach einer bestimmten Anzahl oder Begrenzung von . Im Idealfall möchten wir mehr mit SQL machen als nur alle Daten aus unserer Datenbank zu lesen. Das Erste, was wir zusätzlich lernen werden, ist das Filtern. Schauen wir uns diesen Track an. Tabelle hier. Wenn wir sie durchblättern, können wir sehen, dass wir hier verschiedene Spalten haben, wir haben die Track-ID, den Titelnamen, die Album-ID, die Medientyp-ID, die Genre-ID, die Komponisten, die Zeit und Millisekunden des Songs, die Bytegröße des Songs sowie den Preis für die Lassen Sie uns versuchen, anhand dieser Tabelle alle von ACDC komponierten Songs zu finden Um das zu tun, sagen wir „Wählen“ und wir sagen „Einfach starten Drücken Sie in der Track-Tabelle hier die Eingabetaste. Auch hier haben wir die Anführungszeichen. Nochmals, weil die Tabelle so mit den Anführungszeichen um sie herum erstellt wurde . Lassen Sie uns dann einfach weitermachen und unsere Ergebnisse für alle Fälle auf fünf Zeilen beschränken , damit wir sie überprüfen können, bevor wir die gesamte Tabelle zurückgeben. Um nun gezielt nach etwas zu filtern oder generell zu filtern, werden wir hier eine zusätzliche Anweisung namens where haben. Hier können wir sagen, wonach genau wir filtern wollen. Zum Beispiel wollen wir aktuell nach dem Komponisten filtern und herausfinden, wo der Komponist gleich ACDC ist Wie führen wir diesen Vergleich durch? Nun, Zeichenketten werden in einfache Anführungszeichen gesetzt , wie wir es hier haben oder Text wird in einfache Anführungszeichen gesetzt Gehen Sie hier zu unserer Datenbank. Wir nochmal, ACDC wird hier in Großbuchstaben geschrieben , mit einem Schrägstrich Wir werden sagen, wobei der Komponist gleich ACDC ist. Beachten Sie hier, dass wir ein einziges Gleichheitszeichen haben. Falls Sie eine andere Programmiersprache kennen, ist es üblich, doppelte Gleichheitszeichen und andere Sprachen zu verwenden . Aber in SQL haben wir hier ein einziges Gleichheitszeichen. Lassen Sie uns weitermachen und diese Abfrage ausführen. Wir können hier sehen, dass alle unsere Rückgabeergebnisse von ACDC erstellt wurden Wenn wir wollen, können wir dieses Limit auch hier deaktivieren und die vollständige Liste der Zeilen oder die vollständige Liste der Datensätze abrufen der Zeilen oder die vollständige Liste der Datensätze Wir können sehen, dass jeder einzelne Datensatz hier dieses ACDC-Kriterium erfüllt Jetzt können wir auch andere Arten von Vergleichen durchführen. Zum Beispiel ist etwas anderes, das wir tun können , kleiner oder gleich. Nun, es wird natürlich nicht viel Sinn machen , weniger als oder gleich mit einem Namen zu vergleichen , weil wir dann eine seltsame Textsortierung durchführen, die hauptsächlich auf alphabetischen Dingen basieren wird Es wird hier nicht so viel Sinn machen. Verwenden wir eine andere Spalte. Verwenden Sie hier die Millisekunden-Spalte. Nehmen wir an, die Millisekunden kleiner oder gleich, und wählen wir zwei 100.000 Millisekunden, 200 Wir wählen alle Zeilen oder alle Spalten aus der Spur aus, in der die Datensätze dieses Kriterium erfüllen , wobei die Millisekundenspalte Lassen Sie uns weitermachen und unsere Antwort erneut einschränken. Also werden wir das ausführen. Jetzt können wir sehen, wenn wir hier nach rechts scrollen Alle unsere Tracks haben eine Zeit von weniger als 200.000 Millisekunden, weniger als Auch hier können wir die Limit-Angabe weglassen. Führen Sie dies vollständig aus, anstatt alle Werte zurückzugeben. Wir können sehen, dass alle hier Zeiten von weniger als 200.000 Millisekunden haben , weniger als Wir können auch einen Wert größer als oder gleich angeben. Alles, was mindestens 200.000 sind. Und wir bekommen alles, was Millisekunden hier über 200.000 Millisekunden hat , wie wir hier sehen 200.000 Millisekunden Wir können auch einfach das Gleiche wegnehmen und einfach größer als sagen, oder wir können auch einfach weniger als machen und so können wir auch einfach weniger als machen und sehen, dass wir auch spezifische Filter wie diese durchführen können einfach größer als sagen, oder wir können auch einfach weniger als machen und so können wir sehen, dass wir auch spezifische Filter wie diese durchführen können. Der Hauptunterschied bei der Verwendung von weniger als oder kleiner als oder gleich besteht natürlich darin, dass „Gleich Zwei“ auch alles einschließt , was 200.000 entspricht, wohingegen „weniger als“ nur die Instanzen einschließen würde , die kleiner als 200.000 sind Hier hätten wir zum Beispiel eins, neun, neun, 999. Das wäre die höchste Instanz, die wir einbeziehen können, wenn wir annehmen , dass hier alles Integra ist , weil wir andernfalls 200.000 wären und das wäre also gleich und das wäre nur im Fall kleiner als oder gleich enthalten, oder wenn wir nach Gleichheit suchen, oder wenn wir nach größer als oder gleich suchen 20. 18ConditionalFilterungGroup,: Also haben wir gerade gesehen, wie wir einige grundlegende Filterung durchführen können, indem wir nach Gleichheit suchen. Suchen nach kleiner oder größer als oder kleiner als gleich oder größer oder gleich. Aber was ist, wenn wir alle finden wollen, zum Beispiel hier auf der Komponisten-Kolumne, alle Aufzeichnungen, wo Angus Young, einer der Komponisten. Derzeit können wir das nicht tun, denn wenn wir zum Beispiel schauen, wo Komponisten Angus Young gleich sind, wird es uns diesen Wert nicht geben, weil er nicht genau gleich ist. Es gibt auch andere Komponenten. Und so können wir derzeit nicht die Gleichheit verwenden, um all diese Datensätze zu finden , weil es hier auch andere Elemente gibt, aber es gibt andere Dinge, die wir tun können. Sehen wir uns das jetzt an. zunächst Lassen Sie unszunächstunsere Select-Anweisung nochmals schreiben, wählen Sie alle Spalten aus der Spur aus. Und lassen Sie uns unsere Ergebnisse jetzt begrenzen. Und wieder, hier werden wir die Where Aussage haben. Jetzt wollen wir finden, wo Komponist, und wir wollen finden, wo Angus Young im Komponisten ist. Was wir also tun können, ist, dass wir das Schlüsselwort „like“ verwenden können. Und so werden wir sagen, wo der Komponist ist ist. Und dann haben wir hier einen Text, also können wir Angus Young sagen. Aber in diesem Fall würden wir immer noch nach exakten Übereinstimmungen suchen. Aber es gibt einige Charaktere, die wir setzen können, dass im Grunde etwas Raum geben, um irgendwie zu erweitern. Wenn wir also einen Prozentsatz verwenden, bedeutet das, wo diese Komponente hier drin ist. Aber das Prozent bedeutet, dass wir nach diesem Punkt alles haben können. Und der prozentuale Vorsprung würde auch bedeuten, dass wir irgendetwas vor uns haben. So können wir mehrere Charaktermengen vor sich haben. Und dann bedeutet der Prozentsatz genau so viele Charaktere hier. Aber das Wichtigste ist, dass irgendwo in uns genau Angus Raum jung passen , so. Wenn wir die Person davor wegnehmen, wäre es die Reihe müsste mit Angus Raum jung beginnen. Und danach können wir alles haben. Und wenn wir zum Beispiel den Prozentsatz und die Grenze hätten , dann müssten wir im Grunde mit Angus Space jung enden. Also, um sicher zu sein, können wir es so verwenden, was bedeutet, dass es alles vor und alles dahinter sein kann. Aber irgendwo in unserer Aufzeichnung müssten wir genau dieses Stück Text hier sehen. Also lasst uns weitermachen und das laufen. Und so können wir sehen, dass alle Zeilen hier Angus Young enthalten. Und lassen Sie uns wegnehmen oder Limit-Anweisung hier und eine erneute dies und Scrollen durch ein Ergebnis, wir können sehen, jetzt haben wir mehr Ergebnisse als alle Angus Young enthalten. Und in all diesen Fällen ist Angus Young der erste Teil dieses Eintrags hier. Also könnten wir technisch auch dieses Prozentsymbol hier wegnehmen. Und wir würden immer noch das Ergebnis bekommen, denn es wird nie etwas vorne sein, zumindest in diesem Fall, aber das konnten wir uns vorher nicht sicher sein. Und wenn du sicher bleiben wolltest, können wir das hier lassen, nur für den Fall, dass später ein Datensatz eingetragen wird, in dem Angus Young nicht der Vorname ist. Aber was passiert, wenn wir das letzte Prozentsymbol hier wegnehmen? Nun, jetzt werden wir nichts zurückbekommen, weil keine der Datensätze mit Angus Young enden und wir nicht mehr die Möglichkeit lassen, danach andere Charaktere zu haben. Also müssen wir in diesem Fall sicherstellen, dass wir danach andere Zeichen haben. Nur um sicherzustellen, dass es Fälle gibt, in denen die Angus Young-Zeichenfolge im Inneren enthalten ist, aber es gibt auch Platz für andere Werte, die hier in demselben Element enthalten sind. Nun gibt es auch einen anderen wilden Charakter, den wir verwenden können. Anstatt den Prozentsatz zu verwenden , der grundsätzlich Platz für eine beliebige Anzahl von Zeichen verliert, können wir stattdessen etwas wie einen Unterstrich setzen. Nun bedeutet der Unterstrich, dass es hier ein beliebiges Zeichen geben kann. Lassen Sie uns zum Beispiel dieses y durch einen Unterstrich ersetzen. Und wenn wir das ausführen, sehen wir, dass wir immer noch das gleiche Ergebnis bekommen, weil wir suchen, wo wir Angus-Raum haben. Und dann bedeutet dieser Unterstrich hier, dass jedes Zeichen, jedes einzelne Zeichen hier sein kann, nicht auch, es muss genau eins sein. Und es ist in diesem Fall, wir haben das y hier, und dann haben wir die OU und g. Wenn wir den Platz hier wegnehmen, würde es nicht mehr funktionieren. Denn jetzt haben wir hier keinen einzigen Charakter mehr. Aber wir könnten hier ein Prozent-Symbol setzen, was bedeutet, dass es eine beliebige Anzahl von Zeichen kann auch zwischen hier sein. Wir müssen nur irgendwann Angus haben. Und danach müssen wir es haben. An diesem Punkt. So können Sie sehen, dass es verschiedene Möglichkeiten für uns gibt. Einer von ihnen wird der Unterstrich sein, uns ersetzen lässt, sondern die Möglichkeit haben, ein freies Zeichen zu haben. Und dann haben wir die Prozentsätze, die uns die Möglichkeit haben, so viele Zeichen wie möglich zu haben. Während wir das alles tun, ist die Kapitalisierung eigentlich sehr wichtig. Wenn wir dies geändert, um Kleinbuchstaben, würde nicht mehr funktionieren, weil wir nicht mehr genau diese Übereinstimmung haben. Was wir jedoch tun können, ist, dass wir hier eine andere Aussage verwenden können, die ich mag, was bedeutet, dass es unempfindlich gegenüber Fällen ist. In diesem Fall ist es also egal, ob Groß- oder Kleinbuchstaben vorhanden sind. Und schaut nur an, ob wir diese Textübereinstimmung haben und es Fälle nicht berücksichtigt, es ist Groß- und Kleinschreibung nicht zu beachten. Und so können wir in diesem Fall sehen, es funktioniert wieder, weil wir noch den Text hier haben. Aber diesmal waren die Verwendung der KI gleichermaßen in der Groß- und Kleinschreibung nicht beachtet. Also ignorieren wir, ob alles Groß- oder Kleinbuchstaben ist. Und wir bekommen nur die Übereinstimmung, wo der Text der gleiche ist. Und Sie können sehen, dass wir das G hier zum Beispiel kapitalisieren können. Und wir werden immer noch das gleiche Spiel bekommen. Denn alles hier drin oder die Übereinstimmung, die wir von hier nach hier machen , wird Groß- und Kleinschreibung nicht beachtet. In einigen Fällen suchen wir möglicherweise nicht nach Textübereinstimmungen wie diesem, aber wir würden nach einer bestimmten Anzahl von Werten suchen. Werfen wir zum Beispiel einen Blick zurück auf unsere Spuren hier. Vielleicht wollen wir alle Tracks, bei denen die Album-ID entweder eins ist oder die Album-ID vier ist. Also suchen wir nach zwei Fällen. Wir wollen beide Alben 14 oder alle Tracks, die von Al my d1 und Album-ID für sind. Also, wie können wir das tun? Nun, zuerst werden wir Ihre Kolumne hier wieder ändern. Wir werden sagen, wo Album ID. Und wieder müssen wir hier die Anführungszeichen verwenden, da unsere Tabelle erstellen mit den Anführungszeichen für die Spalten definiert wurde. Normalerweise, wie gesagt, sind die Anführungszeichen optional. Aber in diesem Fall, weil unsere Tabelle mit den Anführungszeichen zu finden war, müssen wir sie verwenden. Und jetzt suchen wir nach den Fällen, in denen sich die Album-ID befindet. Und jetzt das Album Ideen, die wir für eine suchen 14. Wir sagen also, wir suchen nach allen Spalten der Tracks hier und nach allen Datensätzen aus den Tracks, in denen diese Datensätze die Album-ID-Spalte haben , wo der Wert in eins oder vier liegt. Also, wenn wir dies ausführen, können wir hier sehen jetzt alle Datensätze, die wir zurückgegeben haben, haben Album-ID, entweder eins oder vier. Und wir können auch tun, zum Beispiel, eine zu informieren. Und wie Sie sehen können, können wir das so weit erweitern, wie wir möchten. Aber dann gibt es auch einige Fälle, in denen wir vielleicht eine Reihe von Zahlen auswählen möchten. Nehmen wir zum Beispiel an, wir wollen alle Alben mit Album-ID eins bis fünf finden. So können wir zum Beispiel 12345 so machen und dies ausführen, was uns unsere Ergebnisse geben wird. Nun, das funktioniert, aber es ist nicht optimal, weil wir all das austippen müssen. Und es funktioniert immer noch, weil wir fünf Zahlen hier haben. Aber stellen Sie sich vor, wir hatten wie 500 oder sogar mehr oder sich vorstellen, dass wir nach einem Datumsbereich suchen. Nichts davon würde wirklich funktionieren. Und es gibt einen besseren Weg, das zu tun. Nun, eine dieser Möglichkeiten, die wir bereits vorher gesehen haben, die größer als gleich oder kleiner als oder gleich ist. Und dann können wir die Bedingungen miteinander verketten, was wir bald lernen werden. Aber es gibt tatsächlich eine andere Aussage, die wir mit gerade zwischen angerufen tun können. Wir können also sagen, dass wir nach den Fällen suchen, in denen die Album-ID zwischen 1, keine Klammern hier und fünf liegt . Also wieder, wir werden alle Spalten aus der Spurtabelle auswählen. Und wir werden nach den Aufzeichnungen filtern, wo die Aufzeichnungen hier, wo eine Rose hier eine Album-ID haben, die zwischen 15 liegt. dies ausführen, können wir sehen, dass alle unsere Werte hier zwischen 15 liegen, einschließlich an beiden Enden. Und jetzt, wie Sie vielleicht schon erraten haben, genial wegen des Vorschlags, den wir von unserem SQL-Editor hier bekommen haben. Wir können auch nicht zwischen, was bedeutet, dass wir nur auf die Aufzeichnungen schauen, wo die Werte sind. Die Album-ID liegt nicht zwischen 15. Also, wenn wir dies ausführen, sehen wir, dass alles hier Werte nicht zwischen 15 hat. Und diese NOT-Aussage funktioniert auch für die anderen Dinge, die wir uns angesehen haben. Zum Beispiel, nicht wie. Und dann hier können wir AC, DC machen. Also jeder Ort, an dem der Komponist nicht wie dieser Text hier ist, AC , DC, der uns alle Aufzeichnungen geben wird wo der Komponist nicht diese ac-dc Zeichenkette ist. 21. 19JoiningConditionalsHB: Also jetzt wissen wir bereits eine gute Menge an Filterung. Aber manchmal reicht sogar die Filterung, die wir derzeit kennen, nicht aus. Manchmal müssen wir mehr tun. Manchmal müssen wir bestimmte Filterbedingungen miteinander verbinden , um wirklich die Ergebnisse zu erhalten, die wir wollen. Also, wie können wir das tun? Nun, lassen Sie uns daran mit einem Beispiel arbeiten. Lassen Sie uns versuchen, alle Datensätze hier zu finden, wo unser Komponist gleich AC, DC ist und die Songlänge größer als oder gleich 250 Tausend Millisekunden ist. Also werden wir sagen, alle Spalten aus der Spurtabelle auszuwählen. Wir werden nach den Zeilen filtern, in denen der Komponist. Und jetzt können wir entweder gleich sagen oder wir können das Gleiche hier verwenden. Aber wir werden ein war gleich verwenden, weil wir exakte Gleichheit wollen. Also werden wir sagen, wo die Komponisten gleich AC, DC und die Millisekunden-Spalte mindestens größer oder gleich 250 Tausend Millisekunden sind. Also, wenn wir dies ausführen, können wir sehen, jetzt sind unsere Ergebnisse alle Songs von ac-dc sind alle Chromosomen in dieser Datenbank, wo hier die Millisekunden größer als oder gleich 250 Tausend sind. Wir können dies natürlich auch umschalten und nach weniger als oder gleich 0 suchen, was in diesem Fall ich bin nur einen Datensatz gibt. Wir können sehen, dass wir die und Anweisung hier verwenden können, um einige Filterung zu tun. Aber lassen Sie uns das noch komplexer machen. Nehmen wir an, wir wollen alle Fälle finden in denen die Spuren Millisekunden größer als 250 Tausend ist. Aber wir wollen nur die Songs, bei denen die Bytes kleiner sind als. Wir kamen hierher, drei und dann noch drei. Also haben wir 10 Millionen ist ungefähr so groß wie die Größenordnung, mit der wir arbeiten. Wir wollen also alle Songs finden, bei denen die Bytes weniger als 10 Millionen sind. So können wir hinzufügen, wenn wir wollen. Eine andere Bedingung hier, sagen wir, und wir sind Bytes ist kleiner als oder gleich zehn Millionen. Und jemand kann das laufen lassen. Und so können wir sehen, dass wir diese spezifischen Tracks zurückbekommen. Alternativ, anstatt Verkettung mit und wir können auch verwenden oder Anweisungen. Also lassen Sie uns zum Beispiel nach allen Songs suchen, die entweder gemacht werden, oder wir beginnen mit allen Songs, die entweder von AC, DC oder mindestens 1.050.000 Millisekunden lang sind. Die OR-Anweisung hier bedeutet also, dass wir nach einer dieser Bedingungen suchen. Also lasst uns weitermachen und das laufen. Und wir können hier sehen, dass wir entweder ac-dc haben, in diesem Fall, wie wir hier sehen können, können wir die Zeile finden. Los geht's. Die Millisekunden-Spalte ist weniger als 250 Tausend. Oder in den Fällen, in denen Komponisten nicht ac-dc, alle von ihnen Millisekunden mindestens gleich oder größer als 250 Tausend. So können wir hier sehen, wir haben eine oder Aussage. Nun, was wir auch tun können, das ist cool, ist, dass Sie die Verkettungsbedingungen mit Klammern fortsetzen können. Also lassen Sie uns zum Beispiel nach allen Songs suchen, wo der Komponist entweder ac-dc oder der Track länger als 250 Tausend Millisekunden ist. Bud Es ist Bytes auch kleiner als oder gleich 10 Millionen. Also wollen wir entweder AC, DC oder mindestens 250 Sekunden und weniger als 10 Millionen Bytes. Also eine dieser beiden Bedingungen, aber dann die zweite, die wir müssen. Was wir also tun können, ist, dass wir hier Klammern verwenden können. Und dann können wir sagen, und Bytes ist kleiner als oder gleich 10 Millionen. Und was passieren wird, ist, dass diese Aussage als eine ausgewertet wird. Und es wird mit diesem verglichen werden. Entweder haben wir diese oder wir haben das Ergebnis hier, wo beide Bedingungen erfüllt werden müssen. Sie können also sehen, dass Sie viel mit einer Filterung mit und in der Reihenfolge tun können, sowie mit Klammern, um zu entscheiden, welche Bedingungen miteinander verbunden werden müssen. Nun, natürlich verwenden wir derzeit nur Dinge wie gleich oder größer als gleich oder kleiner als gleich. Aber das wird auch genauso gut funktionieren, wenn wir hier zum Beispiel dergleichen setzen, oder wenn wir dort in eine Reihe setzen, wird alles genauso funktionieren. Wir können die anderen Schlüsselwörter, die wir auch gelernt, in wo Aussagen hier, und auch weiterhin ändern Bedingungen mit den Rudern, Verwendung der unds und setzen Klammern um Bedingungen, die wir als eine Klammer gruppieren wollen oder vielmehr, dass wir uns als eine Einheit gruppieren wollen. Und wir können auch weiterhin Klammern verketten. So können wir hier zum Beispiel eine weitere Klammer setzen und zum Beispiel noch etwas mehr tun, und Bytes ist weniger als 10 Millionen. Oder ich weiß nicht, denken wir an etwas, oder ein Komponist ist ist wie. Und dann lassen Sie uns das in eine neue Linie verschieben, um das sauberer zu machen und es in eine neue Linie zu verschieben. Und der Komponist ist wie Angus Young. Beachten Sie, dass wir hier das Licht benutzen, nicht das Ich mag, also müssen wir das richtige Gehäuse verwenden. Also in diesem Fall, und lassen Sie uns sicherstellen, dass wir die Klammern 2 schließen. Wir suchen entweder dort, wo der Komponist wie ac-dc ist, oder wo die Millisekunden größer oder gleich 250 Tausend sind und unsere Bisse weniger als 10 Millionen sind. Oder die Komponisten wie Angus Young. Also lassen Sie uns dies ausführen, um die Ergebnisse zu sehen. Und was wir hier tun, gehen wir rückwärts. Entweder suchen wir nach dem, zuerst haben wir die Bedingung hier draußen. Also wird alles, was ac-dc ist, hier sein. Aber jetzt, was wir hier haben, ist, okay, wir suchen entweder weniger als oder gleich 10 Millionen Bytes oder der Komponist muss Angus Young darin haben. Und dann, wenn einer dieser beiden wahr ist, müssen wir auch feststellen, dass die Millisekunden größer als oder gleich 250 Tausend sind . So können wir zum Beispiel in diesem Datensatz sehen, wir haben die Bytes größer als 10 Millionen. Aber unser Komponist ist wie Angus Young. So ist dieser Teil der Bedingung erfüllt, was diese oder Aussage wahr macht. Das hier. Das hier ist also wahr. Jetzt brauchen wir diesen und diesen, um wahr zu sein. Was bedeutet, dass unsere Millisekunden größer oder gleich 250 Tausend sein müssen, was wir hier haben. Also haben wir, dieser ist wahr, und dieser ist wahr. Jetzt müssen wir sagen, entweder tragen Sie einen Komponisten wie AC, DC, was falsch ist, oder wo dieses ganze Segment hier wahr war, was nicht der Fall ist. So können wir sehen, dass wir ziemlich komplizierte Logik mit dem Filter hier machen können , indem wir miteinander verketten, sind verschiedene Operationen wie, wie V gleich IR, die ich dazwischen mag, sowie die ands und die ors verwenden und sowie die ands und die ors verwenden und Klammern, um Dinge zu gruppieren, die wir zusammengefasst haben möchten. 22. 20NegatenConditionalsHB: In Ordnung, jetzt haben wir eine Reihe von Filtern gesehen, wo Bedingungen wahr sind. Aber in einigen Fällen wollen wir, dass die Bedingungen nicht wahr sind. Jetzt haben wir das schon gesehen, aber lassen Sie uns noch ein wenig detaillierter betrachten. Gehen wir also zurück zu unserem Track-Tisch hier, lassen Sie uns zunächst einmal allen Fällen suchen, in denen Composer nicht gleich AC, DC ist. Also, was wir hier tun können, können Sie auswählen, wählen Sie einfach alle unsere Spalten aus der Track-Tabelle und bewusst den Komponisten. Und jetzt nicht gleich zu haben, und wir können ein Ausrufezeichen gleich haben. Und dann hier werden wir den Text ac-dc setzen. Das wird uns also alle Aufzeichnungen geben, bei denen der Komponist nicht gleich AC, DC ist, wie wir hier sehen können, keine dieser Datensätze, die CDC enthalten. Und was wir auch hier tun könnten, weil wir hier Text haben. Also könnten wir sagen, nicht wie ACC, was alle Fälle bedeutet, in denen es nicht wie dieser Text hier ist, was uns das gleiche Ergebnis in diesem Fall geben wird. Jetzt können wir auch andere Dinge tun. Zum Beispiel, nicht dazwischen, was wir irgendwie gesehen haben. Also können wir sagen, nicht dazwischen. Und wir wollen sagen, weil in diesem Fall zwischen nicht viel Sinn für die Komponistenspalte macht, da es sich um Text handelt. Also lasst uns die Album-ID verwenden. Wir wollen also alle Datensätze finden, bei denen die Album-ID nicht zwischen 46 liegt. Also, das wird uns alle Platten hier geben, sind Album-ID ist nicht zwischen 46, also nicht vier, nicht fünf, nicht sechs, und alles andere, was wir bekommen werden. Oder wir können hier drin auch nichts tun. Und dann setzen Sie unsere Klammern, was bedeutet, dass unsere Album-ID nicht in 46 ist, was bedeutet, dass sie nicht gleich 46 ist. Also, wenn wir dieses Risiko jetzt gehen, um Album ID fünf zu bekommen , weil wir sie nicht zwischen verwenden, aber jetzt passen wir speziell die Instanzen hier in. So können wir sehen, dass wir die nicht gleich zwei verwenden können, zum Beispiel, um Negation für den Gleichheitsfall zu tun. Und wir können die NOT-Anweisung für einige der anderen komplexeren, wo Methoden, die wir haben, tun. Jetzt können Sie sich vielleicht fragen, na ja, was ist mit dem Gegenteil von größer als gleich? Wie können wir das annullieren? Nun, wir haben bereits eine Aussage für das, was weniger als ist. Also können wir sagen, dass alles, was nicht größer oder gleich ist, kleiner sein wird als. Und alles, was nicht weniger ist als, kann größer oder gleich sein. Und dann können wir das Gleiche bekommen, umgekehrt. Jetzt noch eine Sache, die ich hier hinzufügen möchte, wenn wir nur auf einige unserer vorherigen Ergebnisse für die Zwischenzeit zurückgehen, ist in einigen Fällen, dass wir tatsächlich wollen, um unsere Ergebnisse zu bestellen. Schauen wir uns also die Ergebnisse daraus an. Du hast unsere Album-ID ist nicht zwischen 46. Muss ich noch weiter zurückgehen? Wieder beunruhigt? Ok. Seltsam. Scheint in Ordnung zu sein. Also lasst uns hier alles nach unserer Album-ID bestellen. Also die Reihenfolge BY-Anweisung haben wir bereits gelernt, aber es muss tatsächlich eine bestimmte Reihenfolge zu den Orten geben, an denen wir diese SQL-Anweisungen platzieren. Also SARSA wählen und wir haben die von. In diesem Fall werden wir das Wo haben und die Reihenfolge durch wird danach kommen. So wollen wir zum Beispiel nach Album-ID in absteigender Reihenfolge sortieren, was höchste zuerst bedeutet. Wenn wir dies ausführen, können Sie sehen, dass wir mit der höchsten Album-ID beginnen und in Richtung der niedrigsten gehen. Jetzt ist es wichtig, dass diese Reihenfolge BY nach der where-Anweisung kommt. Denn wenn wir es vor die Where-Anweisung setzen, dann werden wir einen Fehler bekommen, weil, nun, lasst uns das Ganze laufen, weil es nicht dorthin gehört. Das ist nicht die richtige Reihenfolge der SQL-Syntax. Also kommt Dasa nachher. Jetzt auch das Gleiche mit der Limit-Anweisung. Die Limit-Anweisung muss am Ende kommen. Also alles, was wir für diese Reihenfolge BY-Anweisungen gelernt haben, gilt immer noch , weil noch zusätzliche Reihenfolge tun, indem Sie hier Kommas tun. Aber es ist wichtig, dass die Reihenfolge, in der wir diese Befehle ausführen, in dieser spezifischen Reihenfolge ist. In diesem Fall wird es mit select und von der where-Anweisung beginnen, dann die Reihenfolge BY und dann haben wir das Limit, weil, wenn es in einer anderen Reihenfolge ist und es nicht funktionieren wird. 23. 21FilterungNullValuesHB: Jetzt gibt es noch einen speziellen Fall der Filterung, den wir noch nicht angesehen haben. Werfen wir einen Blick auf unseren Komponistentisch hier. Einige dieser Instanzen haben möglicherweise fehlende Werte, die hier als Nullwerte dargestellt werden. Derzeit gibt es also noch keinen wirklichen Weg, wie wir das überprüfen können. Werfen wir einen Blick auf sie. Also lassen Sie uns zunächst alle unsere Spalten aus unserer Truck-Tabelle auswählen, Filtern für die Datensätze, in denen der Composer. Und jetzt wollen wir alles sagen. Wir wollen alle Fälle finden, in denen der Komponist hier null ist. Also, um das zu tun, müssen wir tatsächlich schreiben ist null. Und dann ein Semikolon nur um etwas zu beenden oder SQL-Abfrage hier und dann einen Lauf zu treffen. Und jetzt erhalten wir alle Fälle, in denen der Wert hier in der Composer-Spalte null ist. Nun, das Wichtigste ist, dass wir das hier nicht tun, denn das ist nicht richtig. Wir wollen sicherstellen, dass wir tun, ist null. Das ist die richtige Aussage, die zu verwenden ist. Jetzt zur Negation wird es ziemlich einfach sein und Sie haben dies vielleicht bereits im Codevorschlag gesehen. Alles, was Sie tun müssen, ist zu schreiben IST NICHT null. Und das wird uns alle Fälle geben, in denen der Komponist nicht bekannt ist. Und so wird das wieder funktionieren wie jede andere Konditionierung, die wir hier hatten. Auch in diesem Fall haben wir nur einen speziellen Fall zu verwenden, wenn keine Werte darin enthalten sind. Aber alles andere, was wir über die Where Aussage gelernt haben, bleibt wahr. 24. 22Erstellung 22CreatingNewColumnsAndArithmeticsHB: in dieser Lektion einen Blick darauf werfen, Lassen Sie unsin dieser Lektion einen Blick darauf werfen,wie wir einige Operationen an unseren Spalten durchführen können. Lassen Sie uns hier wieder unseren Track Table öffnen. Und das erste, was wir tun sollten, ist, lassen Sie uns versuchen diese Byte-Spalte stattdessen in Kilobyte zu konvertieren. Also, um das zu tun, werden wir alles hier durch 1024 teilen. Also, wie können wir das tun? Nun, zurück zu unserer Konsole, wir schreiben Auswahl, und dann lassen wir Stern hier als Vorlage für jetzt, aber wir kommen zurück und ändern das in einer Sekunde. Wir wählen Stern aus der Spur. Und lassen Sie uns auch nur unsere Ergebnisse für jetzt auf fünf beschränken, nur für den Fall Art von guter Praxis oder unsere Tabellen jetzt Tubing hier. Aber nur für den Fall, wenn wir Millionen von Zeilen oder etwas hätten, wäre es gut zu testen und nur ein kleines Segment dieser Zeilen zurückzugeben. In Ordnung, also lasst uns vorerst aussuchen und nur die Bytes-Spalte. Und lassen Sie uns es auch zwei Kilobyte konvertieren. Die erste Spalte, die wir herausnehmen wollen, wird Bisse sein. Und die zweite Spalte, die wir herausnehmen möchten, ist wieder die Bytes-Spalte. Aber hier wollen wir es teilen, durch 1024 teilen, um es in Kilobyte zu machen. Also tun Sie dann, wir können tatsächlich einfach den Schrägstrich hier für die Teilung verwenden und die Nummer 1024 eingeben. Und das wird die Werte in dieser Spalte hier durch 1024 teilen. Und dann können wir einen Alias verwenden, um es mehr zu machen, um ihm einen besseren Namen zu geben. So können wir das hier zum Beispiel als Kilobyte speichern. Also lasst uns weitermachen und das laufen. Und wir können hier sehen, hier haben wir die Bytes und hier haben wir die gleiche Menge, aber in Kilobyte statt. Natürlich ist die Divisionsoperation nicht das Einzige, was wir tun können. Wir könnten auch andere Dinge tun, wie, und vielleicht, lassen Sie uns einige neue Spalten dafür erstellen. Also lasst uns unsere Bisse multiplizieren. Kann es zum Beispiel mit zwei multiplizieren. Und hier können wir dies als multiplizierte Bytes speichern, nur um sie unterscheiden zu können. Wir können Subtraktionen machen. Zum Beispiel können wir unsere Pfeifen nehmen und etwas davon abziehen. Und dann können wir hier diese Subbytes für subtrahierte Bytes aufrufen. Und dann lasst uns auch einfach den anderen machen , der eine Ergänzung sein wird. Und hier wird dies unsere hinzugefügten Bytes sein. Also werde ich hier nur ein paar Leerzeichen setzen, um die Formatierung schön zu machen. Also, wenn wir dies ausführen, können Sie hier sehen, gibt es eine Menge von verschiedenen Operationen ist einfache arithmetische Operationen, die wir auf unsere Spalten tun können. So können Sie hier sehen, wir haben alle Standardoperationen, die uns zur Verfügung stehen. Wir können auch andere coole Dinge tun, anstatt nur feste numerische Werte zu verwenden. Wir können auch andere Spalten verwenden. Versuchen wir zum Beispiel, eine neue Spalte zu finden. Das ist die Anzahl der Bytes pro Millisekunde der Songlänge. Also werden wir die Werte in der Byte-Spalte durch die in der Millisekunden-Spalte teilen . Und dann erhalten wir die Anzahl der Bytes pro Millisekunde und die Spur. Um das zu tun, werden wir unsere Bissspalte nehmen und wir werden sie durch die Millisekunden-Spalte teilen. Wir geben diesem einen Alias namens Bytes pro Million. Also Bytes pro Millisekunde. Und wieder, wir können das laufen. Und wir können hier sehen, haben wir verschiedene Werte der Anzahl der Bytes verwendet, um den Song pro Millisekunde Länge des Songs zu speichern. Und wir können auch andere coole Dinge hier nicht machen. Zum Beispiel können wir jetzt nach unseren Bissen pro Millisekunde bestellen, wenn Sie möchten. Vielleicht sollten wir das erste, was wir tun sollten, einfach diese Limitaussage hier wegnehmen. Und lassen Sie uns das noch einmal ausführen, um die vollständigen Ergebnisse zu erzielen. Und lasst uns auch den Tracknamen herausnehmen, so dass wir tatsächlich sehen, was dieser Track ist. Und so werden wir das jetzt entfernen und einfach den Tracknamen herausnehmen. Und wir müssen keinen zusätzlichen Namen angeben. Wir müssen hier keine zusätzlichen Ergänzungen oder irgendetwas bereitstellen. Weil sie nicht sind, sie bedeuten hier nicht wirklich viel , diese Multiplikationen sind Subtraktionen, aber wie Sie sehen können, können wir sie nicht tun. In Ordnung, also haben wir unsere Bisse ruhig. Wenn wir das ausführen, haben wir unsere Kilobyte, wir haben den Namen des Songs und auch die Bytes pro Millisekunde. Lassen Sie uns also voran gehen und unsere Ergebnisse nach den Bytes pro Millisekunde in aufsteigender Reihenfolge sortieren. Wir werden jetzt bestellen. Wir können verschiedene Wege haben. So können wir zum Beispiel um vier bestellen, der schnellste Weg sein. Und es ist irgendwie leicht zu sehen, denn jetzt ist es immer noch einfach, die Anzahl der Spalten zu zählen, die wir haben. Sie können auch nach Bytes pro Milliliter bestellen, wenn wir möchten. So können wir hier sehen, wir erhalten die gleichen Ergebnisse oder wir können tatsächlich wiederholen die Operation und Reihenfolge nach Bytes pro Millisekunden wie folgt. Das ist bei weitem das am wenigsten Ideal. Vermutlich. Es ist viel besser, den tatsächlichen Spaltenalias zu verwenden, den Sie hier oben zugewiesen haben. Aber nur um Ihnen zu zeigen, können wir das tun, und wenn wir es auch in absteigender Reihenfolge tun können, natürlich. Also gehen wir hin. Jetzt können wir sehen, dass es verschiedene Möglichkeiten für uns gibt, Arten von einfachen arithmetischen Operationen durchzuführen, sowohl mit Art von natürlichen Werten als auch zwischen verschiedenen Spalten zu verwenden. Jetzt machen wir etwas anderes. Denn auch hier können wir dies komplexer machen, indem wir Dinge wie Klammern hinzufügen. Also sahen wir, dass, wenn wir tun, um Bedingungen zu verbinden und wo wir die Möglichkeit hatten, und-ors sowie Klammern zu verwenden. Wir können das Gleiche hier machen. Also nehmen wir einfach etwas und nehmen wir unseren LKW-Ausweis. Und fügen wir die Album-ID multipliziert mit der Medientyp-ID hinzu. Hier zum Beispiel nehmen wir unsere LKW-ID. Und dann werden wir noch hinzufügen. Und dann können wir unsere Album-ID plus die Medientyp-ID nehmen, mal die Medientyp-ID. Nun das nicht, das bedeutet nicht wirklich so viel, aber nur um Ihnen zu zeigen, dass wir das alles tun können. Also zuerst hier haben wir eine einfache Addition und Multiplikation. Und das können wir gerade jetzt als benutzerdefinierte Spalte aufrufen. Und wir gehen weiter und führen das aus. Wir können hier sehen, dass wir die Ergebnisse von dem bekommen, was auch immer das ist. Aber wenn wir Klammern verwenden, können wir zuerst r plus Operation durchführen, und dann können wir unsere Multiplikationsoperation durchführen. So wie wir es für unsere Bedingungen getan haben, in denen wir Klammern verwenden können, können wir auch genau dasselbe tun, um Klammern zu verwenden. Und dann können wir natürlich sehen, dass dieses Ding als eine Einheit ausgewertet wird. Und dann wird das Ergebnis davon multipliziert werden. Wie Sie sehen können, können wir hier auch Änderungen an unseren Spalten vornehmen. Ausführen von Spaltenabteilungen ist eine Art von Teilung einer Spalte durch die andere. Wir können Spalten auch miteinander multiplizieren. Wir können Spalten aufeinander hinzufügen, und wir können auch Klammern verwenden, um die Reihenfolge der Operationen, die wir verwenden möchten, zu diktieren. 25. 23DatatypeConversementeHB: Nun, vorher haben wir gesehen, dass wir hier zum Beispiel Abteilungen machen können . Und wir haben das getan, indem wir unsere Bissspalte durch 1024 geteilt haben, um sie in Kilobyte umzuwandeln, wie wir hier sehen. Aber Sie haben wahrscheinlich erkannt, oder Sie haben sich wahrscheinlich zumindest gefragt, dass die Teilung all unsere Bisse, immer kaufen eine 1024. Es ist sehr unwahrscheinlich, dass wir hier immer perfekte ganzzahlige Werte bekommen. Und du hast absolut Recht. Es ist nicht sehr wahrscheinlich. Und viele davon sind tatsächlich Fließkommazahlen, viele davon sind reelle Zahlen oder Dezimalzahlen. Aber sie wurden in ganze Zahlen konvertiert , weil wir hier eine ganze Zahl und eine ganze Zahl haben. Also machen wir ganzzahlige Divisionen. In dieser Lektion werden wir uns also ansehen, wie wir unsere Datentypen in unterschiedliche Werte ändern können . In diesem Fall wird es ziemlich einfach sein, denn eine Sache, die wir tun können, ist, dass wir unsere 1024 auf 1024 ändern können . Und das wird es von einer Ganzzahl zu einer Dezimalstelle ändern. Also, wenn wir dies ausführen, können wir hier sehen, jetzt haben wir tatsächlich Dezimal ist in unseren Divisionen enthalten. Und so können wir die Ergebnisse hier sehen. Offensichtlich haben Dezimalzahlen, während vorher wir sie nur auf die nächste ganze Zahl gerundet hatten. Aber es gibt auch verschiedene Möglichkeiten, wie wir dies tun können. Und da wir nicht immer nur hartcodierte Zahlen wie diese verwenden. Aber oft wollen wir vielleicht auf bestimmte Spalten verweisen oder wir wollen die Arten von Spalten ändern. Das ist nicht immer möglich. So können wir zum Beispiel nicht dasselbe mit der Byte-Spalte tun. Wir können hier nicht einfach eine 0 setzen. Und Sie können sehen, dass, wenn wir das ausführen, wir werden einen Fehler bekommen, denn wieder, das wird nicht funktionieren. Es gibt also andere Möglichkeiten, wie wir uns nähern können, das Gleiche hier zu tun. Dies wird Typecasting genannt werden. Also, was wir tun können, ist, und lassen Sie uns dies auf der Byte-Spalte versuchen. Erster. Wir können werfen, wir können unsere Bisse werfen. Und dann setzen wir hier das Schlüsselwort As ein. Und dann werden wir hier den Datentyp setzen. Und so können wir jetzt unsere Spalte umwandeln und den Datentyp ändern. Zum Beispiel können wir es ändern derzeit ist es Standard-Ganzzahl, die wir auch sehen können, wenn wir dies öffnen und wir uns die Bytes ansehen, wir können sehen, es ist eine ganze Zahl hier. So können wir zum Beispiel als echter Datentyp gegossen werden. Also, wenn wir dies ausführen und in diesem Fall werden sich unsere Ergebnisse nicht ändern, nur wegen der Art, wie sie angezeigt werden. Aber unsere Werte hier sind eigentlich jetzt ein echter Typ. Also lassen Sie uns das Gleiche unten anwenden und tatsächlich einige Ergebnisse sehen. Also lassen Sie uns unsere 124 Zahl statt in einer reellen Zahl zu sein. Also werden wir 1024 als reelle Zahl abgeben. Das hier wird also keine echte Zahl hier unten sein. Also, wenn wir das laufen, können Sie hier sehen, jetzt haben wir wieder diese Gleitkommadivision. Wieder haben jetzt Dezimalstellen. Und die Datentypen, die wir hier einfügen können, sind die Datentypen, die wir in der Einführungsstunde gelernt haben. Sie können also auf alle Datentypen umwandeln, die uns zur Verfügung stehen. Also können wir das Casting so machen. Und wie Sie sehen können, können wir auf einzelne ganze Zahlen werfen. Wir können auch auf volle Säulen werfen. Zum Beispiel, wie wir oben gesehen haben. Wir können unsere Bisse auch zu einem reellen Zahlen-Datentyp machen. Also, wenn wir das ausführen und wir sehen können, sind dies die Ergebnisse, die wir bekommen werden. Jetzt. Alle von ihnen, die wir hier tun, ändern den Datentyp. Jetzt ist eine Möglichkeit, dies zu tun, wieder die CAS-Anweisung hier zu verwenden. Aber eine andere Möglichkeit, dies zu tun, ist, und ich werde dies zuerst auf unserem 1024 zeigen, aber das funktioniert auch überall sonst. Wir können dies auch mit dieser Syntax umwandeln. Also werden wir zwei Doppelpunkte setzen. Und dann können wir hier den Datentyp setzen, auf den wir ihn umwandeln möchten. Also, es so zu laufen. Sie können hier sehen, oder mit diesem, beide sind äquivalent. Billionen, beide sind gleichwertig. Es gibt also verschiedene Möglichkeiten, die wir werfen können. Einer von ihnen ist das, was wir gerade gesehen haben, das ist die Besetzung, da der andere diese Doppelpunkte verwendet, was uns erlaubt, den Wert vor diesen neuen Datentyp zu werfen. So können wir das auch tun, zum Beispiel, um unsere Bisse hier. Aber lassen Sie uns dies in einen Text konvertieren. Denn jetzt werden wir ein Problem haben, da wir versuchen, Text durch numerischen Wert zu teilen und diese Operation nicht definiert ist. So können wir hier sehen, wir können sowohl die einzelnen Werte, die wir hier setzen, werfen, was natürlich nicht so nützlich sein wird. Aber wir können auch volle Werte oder unsere vollständigen Spalten, aber wir können auch unsere vollen Spalten zwei verschiedene Datentypen werfen. Und so kann das wirklich schön für verschiedene Operationen sein. Oder auch, wenn Sie Datentyp und die Spalten der falsche Wert sind. Wenn Sie beispielsweise stattdessen einen numerischen Wert als Zeichenfolge speichern, dann, wenn Sie versuchen, Divisionen durchzuführen, wird es nicht funktionieren, selbst wenn Sie dies getan haben. Lassen Sie uns zum Beispiel schauen, nun, nehmen wir das und konvertieren es in Text. Und wenn wir das auch in Text umwandeln, dann wird das ein Problem für uns sein, weil wir Text nicht durch Text teilen können. In diesen Fällen können wir also unsere Textwerte umwandeln, zum Beispiel zwei ganze Zahlen. Wir können das Gleiche hier machen. Wir wollen diese Außen- und Kunden-Bytes hier haben, zwei ganze Zahlen. Und so in einigen Fällen, wenn die Datentypen zum Beispiel in unserer Datenbank durcheinander gebracht werden, oder auch wenn wir Datentypkonvertierungen aus verschiedenen Gründen durchführen möchten, können wir das Casting mit den beiden Syntaxen verwenden. Einer von ihnen ist dieser Doppelpunkt, und einer von ihnen ist diese Umwandlung als Datentyp Syntax. Auf diese Weise haben wir auch mehr Flexibilität beim Umgang mit Datentypen sowie beim Umschalten auf verschiedene Datentypen. 26. 24LogicStatementsHB: In einigen Fällen möchten wir vielleicht auch Logikanweisungen in SQL-Abfragen einbinden. Schauen wir uns ein einfaches Beispiel an, wie wir das tun können. Lasst uns wieder unseren Track Table hier nehmen. Und lasst uns wieder durch die Komponisten gehen. Und jetzt werden wir eine neue Kolumne erstellen, die im Grunde ja oder nein sagt, wenn der Komponist AC, DC ist. Werfen wir einen Blick auf sie. Lassen Sie uns voran und zuerst, wählen Sie einfach alles aus unserer LKW-Säule und beschränken Sie unsere Ergebnisse auf fünf. Ich möchte diesen Skelett-Code hier haben , denn danach können Sie zurückkommen und ihn ändern. Also nur um das Skelett hier zu haben. Das erste, was wir tun werden, ist, den Komponisten zu wählen, welche Spalte, nur damit wir den wahren Wert haben, mit dem wir vergleichen können. Und jetzt wollen wir eine neue Spalte erstellen. Und wir können das nennen, zum Beispiel, ist AC, DC, was ja sein wird. Wenn unser Komponist hier AC, DC ist und nichts anderes sein wird. Also, wie können wir das tun? Wir können die case-Anweisung verwenden, die Teil unserer ist, das ist ein Teil von SQL. Also können wir sagen, Fall, wenn Komponist gleich AC, DC, dann ja sonst, nein. Und dann werden wir das als ac-dc speichern. Werfen wir einen Blick auf diese vollständige Aussage hier. Das Schlüsselwort case gibt an, dass wir hier eine case-Anweisung starten werden. Und dann haben wir das eine Schlüsselwort, das sagt, wenn diese Bedingung, dann tun wir folgendes. Sonst haben wir das. Jetzt gibt es noch eine Sache, die wir am Ende jeder Fallaussage vermissen. Sobald wir mit all unseren Fällen fertig sind, müssen hier Ende setzen. Es beginnt also mit Fall, wenn der Composer gleich AC, DC ist. Und jetzt haben wir diesen Vergleich schon gesehen, als wir uns die Filterung anschauten, speziell die Where-Aussagen. Also tun wir Fall, wenn Komponisten ac-dc, dann wird der Wert JA sein. Andernfalls wird der Wert „no“ sein. Ende, um anzuzeigen, dass dies das Ende unserer Fallaussage ist. Also lasst uns das laufen. Und wir können hier sehen, wir haben zwei Spalten. Die erste sind also unsere Komponisten hier. Und momentan begrenzen wir unsere Ergebnisse. Also lassen Sie uns voran gehen und nehmen Sie diese Limit-Anweisung weg und gehen Sie durch einige weitere Ergebnisse, so dass Sie alles sehen können, wo es nicht gleich AC, DC, wir kennen. Und wenn es gleich AC, DC ist, haben wir, ja, wie wir hier sehen können. Alles klar, cool. Wir können dies natürlich auch über mehrere Zeilen aufteilen, um das Lesen zu erleichtern, damit wir es nicht wissen, so viele Zeilen durchlaufen. So können wir zum Beispiel etwas tun. Und es wird uns immer noch die gleichen Ergebnisse liefern. Jetzt können wir auch noch mehr Dinge tun. Zum Beispiel, anstatt nur 11 Aussage, können wir auch mehrere haben. Nehmen wir also an, wir wollen eine separate Überprüfung haben und erneut überprüfen wenn der Composer so ist. Und jetzt werden wir die Lichtaussage verwenden, die wir auch vorher gesehen haben. Und hier werden wir Angus Young suchen, überall da drin. Dann sagen wir vielleicht anders, nein. Also lasst uns das nochmal laufen. Und wir können hier sehen, wenn Angus Young drinnen ist, wir haben vielleicht in dem Fall, wo es weder Angus Young noch AC DC drin ist. Wir haben NEIN. Und sonst, wenn AC, DC drinnen ist, dann haben wir ja. Nun ist das Wichtigste, was man sich auch hier bewusst sein muss, obwohl wir eine bestimmte Reihenfolge haben. Also suchen wir zuerst nach dieser Aussage, dann suchen wir nach dieser Aussage. Und das hier wird unsere Fallback-Aussage sein. Je nachdem, in welcher Reihenfolge Sie diese einfügen, können sich Ihre Ergebnisse ändern oder nicht, je nachdem, welche Vergleiche Sie verwenden. Jetzt verwenden wir in diesem Fall die Gleichheit und die Lichtaussage. Aber natürlich haben wir auch andere Aussagen gesehen, die wir zum Vergleich verwenden können , wenn wir die Filterung speziell durchlaufen haben. Vielleicht, um das ein bisschen mehr aufzuräumen. Ich werde die wann und die Venn-Anweisungen auf die gleichen Zeilen setzen. Oder ich kann jedes davon auch über separate Zeilen aufteilen, nur etwas, das es intuitiv zu lesen macht, aber auch etwas, das unsere SQL-Abfragen davon abhält , einfach zu fremd zur Horizontalen zu laufen, was wiederum macht es auch nicht sehr lesbar. So können wir sehen, dass wir viele verschiedene Optionen mit den case-Anweisungen haben. Und wir können auch andere Dinge tun. Zum Beispiel müssen wir hier keinen Textwert eingeben. Wir können hier haben, zum Beispiel, die 1. Hier können wir vielleicht 0,5 haben. Und sonst können wir 0 setzen. Und wir können das ausführen und wir können die Ergebnisse hier sehen. So können wir sehen, dass wir uns nicht nur darauf beschränken, nur Text zu setzen. Die von uns gewählten Datentypen müssen jedoch miteinander kompatibel sein. Zum Beispiel, etwas, das nicht funktionieren wird, ist, wenn wir hier einfügen, vielleicht, weil es jetzt nicht weiß, welchen Datentyp zu wählen ist. So können Sie hier sehen, es versucht, eine ganze Zahl zu verwenden, aber dann, wenn es auf den Text trifft und es einfach verwirrt wird. Stellen Sie also sicher, dass die Typen, die Sie verwenden, miteinander kompatibel sind. Wie Sie hier sehen können, werden alle diese echt wie Zahlen sein. Also sollte alles gut funktionieren. Was wir vorher mit Texten machen werden. Und natürlich können wir diese bedingten Aussagen verketten, wenn wir wollen, abhängig von anderen Dingen, die wir suchen. Und wir können wieder diese Vergleichsoperatoren verwenden, die wir auch vorher gesehen haben. Was an den Case-Anweisungen cool ist, ist jetzt haben wir einen Weg und Logik in unsere SQL-Abfragen. Und wieder, diese werden neue Spalten für uns schaffen. Und diese neuen Spalten enthalten Werte, die speziell aus Case-Anweisungen bestehen , die wir hier definiert haben. Auch hier ist die wichtige Syntax nur wir haben einen Fall, um den Neustart der case-Anweisung anzuzeigen. Dann, äh, wenn ich darauf hinweise, dass wir hier mit dem Vergleich beginnen oder bedingten, dann haben wir die eigentliche Bedingung, nach der wir suchen. Wenn diese Bedingung wahr ist, dann haben wir dieses Schlüsselwort. Wir werden diesen Wert annehmen. Diese Bedingung ist nicht wahr. Wir gehen zur nächsten, zur nächsten Aussage. Wenn es eine X1-Anweisung gibt, schauen Sie sich diese Bedingung an. Wenn diese Bedingung wahr ist, dann werden wir diesen Wert annehmen und wir werden weiter durch jede einzelne Bedingung, die wir haben. Wenn wir noch mehr haben, wann. Und dann Aussagen hier unten. Und dann werden wir all das weiter durchgehen. Und wenn alle diese fehlschlagen, dann werden wir zu dieser else-Anweisung zurückkehren, die ist, wenn alle oben genannten fehlschlagen, dann werden wir diesen Wert übernehmen. Und dann werden wir speichern oder Spalte geben es. Und dieser Alias, wie wir hier sehen können. 27. 25ManipationsStringsHB: in dieser Lektion einen Blick darauf werfen, Lassen Sie unsin dieser Lektion einen Blick darauf werfen,wie wir etwas Textbeschneiden können. Werfen wir einen Blick auf einige unserer Kolumnen. Und wieder, irgendwie standardmäßig zurück zur Composer-Spalte, die wir hier viel in dieser Track-Tabelle verwendet haben. Lassen Sie uns versuchen, das a am Anfang jedes Datensatzes hier herauszunehmen. Also, um das zu tun, werden wir wählen, nur schreiben unser Skelett, alles von Spur. Und lassen Sie uns nur begrenzen, beschränken Sie unsere Ergebnisse vorerst auf fünf. Also wieder, was wir wollen, ist, dass der Komponist nur zu vergleichen, um sicherzustellen, dass alles richtig funktioniert. Und jetzt wollen wir die Komponisen-Kolumne nehmen, aber wir wollen entfernen, wenn es eine gibt, die a am Anfang. Also, wie können wir das tun? Nun, es gibt eine sehr coole SQL, es gibt eine sehr coole SQL-Funktion, die wir verwenden können, genannt L Trump. Und was wir hier tun können, ist, dass wir den Text schreiben oder uns an sie erinnern. Und dann werden wir auch den Wert setzen, den wir von der linken Seite abschneiden wollen. Also zum Beispiel, wenn wir das A wegschneiden wollen, dann werden wir VA hier setzen. Und dann können wir uns einen Alias geben, zum Beispiel getrimmte Spalte. In Ordnung, also lasst uns das laufen. Und jetzt können wir sehen, okay, wir haben unseren Komponisten. Und wenn wir unsere Trimmsäule hier haben, haben wir alle Fälle, in denen es eine in der Front gibt. Wir haben die a weggetrimmt. Nehmen wir also unsere Limit-Aussage weg und schauen uns die vollständigen Ergebnisse an. So können wir jederzeit sehen, wenn es zum Beispiel Angus Young gibt , Sie können sehen, dass es weggenommen wird, wenn es ac-dc ist, wir können sehen, dass die a weggenommen wird. Und andere Fälle hier, wieder, das a wird weggenommen. So können wir sehen V L trimmen sucht für diesen Charakter hier auf der linken Seite. Und wenn es dort existiert, wird es es wegnehmen. Jetzt können wir das noch mehr ausdehnen. Und wenn wir hier zum Beispiel mehrere Zeichen wie AC setzen , dann werden sich natürlich die Ergebnisse ändern, weil Angus Young zum Beispiel kein C enthält, aber das a ist, können wir hier sehen, ist noch getrimmt entfernt. Es gibt also eine bestimmte Menge an Trimmen, die wir tun können, ist, dass wir von der linken Seite auf der wichtigen Sache sehen können , die hier zu beachten ist, dass das Trimmen, das wir tun, Groß- und Kleinschreibung unterscheidet. Also, wenn wir es hier Kleinbuchstaben a setzen, dann wird nichts passieren. Denn wieder, wir tun Dinge, die Groß- und Kleinschreibung beachten. Also müssen wir uns daran erinnern, dass das, was wir hier verwenden, Groß- und Kleinschreibung beachten wird. Jetzt haben wir natürlich auch die Möglichkeit, einen Schreib-Trim und rtrim zu machen. Und lasst uns zum Beispiel das n wegnehmen, so dass das n am Ende von Johnson weggenommen wird. Und wenn wir das ausführen, können wir sehen, dass all diese jetzt weggenommen werden. Überall dort, wo es eine n am Ende. Jetzt habe ich nicht weggenommen. Scrollen Sie einfach durch, es sieht irgendwie so aus, als wäre Johnson der wichtigste. So können Sie die Ergebnisse hier sehen. Jeder Fall, in dem es ein n am Ende gibt, wird es jetzt nicht weggenommen. Falls wir nicht angeben möchten, ob Schiff B, links oder rechts, und wir wollen nur zusätzliche Zeichen auf beiden Seiten entfernen. Dann können wir diese tun, indem wir nur trimmen verwenden. Was bedeutet, dass es wird, wenn es diesen Charakter auf beiden Seiten findet , wird er ihn wegnehmen. Wenn wir also laufen, werden diese Ergebnisse immer noch hauptsächlich das sein, was wir vorher hatten, nur weil wir Groß- und Kleinschreibung beachtet haben. Also in diesem Fall ist es unwahrscheinlich, dass einer unserer Komponisten. Hier werden wir mit einem Kleinbuchstaben n beginnen, aber wir haben immer noch die Möglichkeit, es von beiden Seiten wegzunehmen. Und was wir auch tatsächlich tun können, ist, dass wir Operationen verketten können. Zum Beispiel können wir die Trimmung zuerst ausführen, die nach dem N auf beiden Seiten in Bezug darauf sucht, dass es weg ist. Und dann, wenn wir wollen, können wir dann eine L-Trimmung auf die Ergebnisse ausführen. Also zum Beispiel, sagen wir, wir haben die nweggetrimmt. und dann, was wir abschneiden wollen, ist, sagen wir v a auf der linken Seite. Also, was wir tun werden, ist zuerst, dass wir die Aussage hier drinnen ausführen. Und dann werden wir die resultierende Spalte hier reinbekommen, die zum Beispiel das ist, was wir hier hatten, Angus Young und dann ist der Johnson nicht passiert n. Und dann werden wir das L-Trim auf das Ergebnis hier ausführen, diesmal suchen, um die Hauptstadt a auf der linken Seite abwenden. Daher ist es natürlich sehr schön und sehr nützlich, diese Operationen miteinander zu verketten. Und in einigen Fällen wirst du das tun. Zum Beispiel, wenn Ihre Datumswerte Art vermasselt oder in einem seltsamen Format sind und es möglicherweise zusätzliche Leerzeichen gibt oder zusätzliche Polsterung um einige Textwerte herum ist. Und Sie können einfach all diesen Müll loswerden, der nicht da sein soll, um sicherzustellen, dass Ihre Daten in einem standardmäßigeren Format vorliegen. Die meiste Zeit werden Sie dies verwenden, um eine Art von Verarbeitung für Ihre Spalte durchzuführen , falls die Daten entweder eine seltsame Polsterung um sie herum haben. Oder Sie wollen einfach ein paar unnötige Sachen wegnehmen , die nicht da sein sollten, damit Ihre Werte tatsächlich sauberer sind. Nun, zwei andere coole Dinge, die wir auch tun können, um unsere Texte ein wenig zu verarbeiten, ist, dass wir etwas Casting machen können. Wir können diese entweder in Groß- oder Kleinbuchstaben umwandeln. Das kann wirklich schön sein, denn seitdem haben wir es oft mit Groß-/Kleinschreibung zu tun. Vielleicht ist es uns an Punkten egal, ob Angus Young in Großbuchstaben ein MGUS geschrieben wird oder wenn es in Kleinbuchstaben geschrieben wird, ein MGUS ist ganz groß oder ganz klein. Manchmal wollen wir uns nicht wirklich mit diesen Groß-/Kleinschreibung beschäftigen. Eine gute Lösung dafür ist, nur alles zu werfen. Wir konvertieren alles in Groß- oder Kleinbuchstaben. das zu tun, können wir das Opera-Schlüsselwort verwenden. Und lasst uns hier einfach wieder eine Komponisten-Kolumne einbauen. Geben wir diesem den Alias, und lassen Sie uns hier einen Raum setzen, nur um es irgendwie besser lesbar als oberer Komponist zu machen. Und dann lassen Sie uns auch in Kleinbuchstaben umwandeln, was wir mit dem unteren Schlüsselwort tun können, wieder mit der Composer-Spalte. Und dann können wir das hier als niederer Komponist haben. So läuft dies, können wir hier sehen, jetzt haben wir den Begriff Anweisung, die wir zuvor hatten, die ursprüngliche Spalte, alles in Großbuchstaben umgewandelt und alles in Kleinbuchstaben umgewandelt. So können wir hier zum Beispiel auch versuchen, nachdem wir alles in Kleinbuchstaben umgewandelt haben. Schauen wir uns an, eine der Säuren wegzuschneiden. Natürlich stellen wir sicher, dass wir hier Kleinbuchstaben S verwenden, da alles hier in Kleinbuchstaben sein wird. Das sollte also wegnehmen, wenn wir nur einen Blick hier werfen, das S ist hier an der Front. Und dann haben wir auch die Taylor Straßen. Also sollte das S am Ende auch hier weggenommen werden. Also lasst uns weitermachen und das laufen. Und wir können in diesem Fall sehen, beide Ss weggenommen werden. Auch hier kann dies wirklich nützlich sein, wenn es etwas Padding oder andere Dinge um Ihre Daten herum gibt und Sie eine Verarbeitung Ihrer Strings durchführen möchten, indem Sie nur einige dieser Werte wegnehmen können. Jetzt können wir dies zum Beispiel mit dem kombinieren , was wir beim Casting gelernt haben. Und lassen Sie uns sagen, dass wir v dot 99 an jedem wegnehmen wollen, am Ende jedes Stückpreises hier. Also, was wir tun können, ist, dass wir einfach sagen können, okay, also nehmen wir unseren Stückpreis und wir werden das in Text umwandeln. Und dann hier werden wir vom MOOC trimmen, unsere Trimmung von der rechten Seite, den Punkt 99, da dies jetzt Textwerte sein wird. Und wenn wir wollen, müssen wir nicht, aber wenn wir wollen, können wir dies zurück in eine ganze Zahl konvertieren. Also denken Sie daran, dass wir den Doppelpunkt verwenden können, oder Sie können auch die als Anweisung verwenden. Und dann können wir hier die Besetzung machen. Und um zu zeigen, dass dies eine ganze Zahl ist, können wir zum Beispiel plus eins hinzufügen. Und dann in diesem Jahr können wir als getrimmten Stückpreis sparen. Also können wir das hier ausführen und nur einen Blick auf die rechte Seite werfen. Also, was wir getan haben, ist, dass wir konvertieren oder einen Einzelpreis in Text, diese Spalte hier in Text. Dann haben wir am Punkt 99 auf der rechten Seite entfernt, der jetzt alle Textwerte hat. Dann werfen wir dies zurück in eine ganze Zahl und fügen eine hinzu. So können wir auch in Fällen sehen, in denen wir es nicht mit Textdaten zu tun haben, können wir immer noch die anderen Teile von SQL verwenden , die wir kennen und diese Operationen miteinander kombinieren. So können wir sehen, zum Beispiel, hier können wir einige schöne Casting verwenden, um dann diese coole Operation zu tun, Umwandlung zwischen Texttyp und dann zurück in Integer. Und dann in der Lage sein, zum Beispiel die ganzzahligen Ergänzungen hier zu verwenden . Und natürlich, je nach Situation, können Sie je nach Bedarf bei uns bekommen. Sie können dies auch innerhalb der case-Anweisungen zum Beispiel tun, oder auch an anderen Orten. Also wieder, vieles davon können Sie nur für die Verarbeitung Ihrer Daten verwenden , um sicherzustellen, dass Sie es in dem richtigen Format erhalten können, das Sie benötigen, oder um sicherzustellen, dass Sie diese Art der Formatierung durchführen oder Dinge ändern können basierend auf Ihren Bedürfnissen. Und natürlich, weil dies auf Text funktioniert, können Sie immer noch alles in den Text umwandeln, wie wir hier gesehen haben, und in der Lage sein, technisch die gleichen Operationen für Werte auszuführen , die nicht von Natur aus Texte sind und dann nur in der Lage, sie später wieder zu konvertieren, wenn Sie möchten. Das kann also wirklich schön sein, nur für die allgemeine Datenverarbeitung, um sicherzustellen, dass Sie die Daten und das tatsächliche Format erhalten , in dem Sie es haben wollten. 28. 26StringPositionalInformationHB: Jetzt in einigen Fällen möchten wir vielleicht zusätzliche Informationen über die Größen wissen, die Komponenten unserer Strings sind. Sehen wir uns diese jetzt an. Jetzt gibt es verschiedene Möglichkeiten, wie wir diese verwenden können, und wir werden sie gerade jetzt für VR-numerische Zwecke verwenden. Aber wir können sie für die analytische Seite verwenden, um zu verstehen, mit welchen Arten von Werten wir es zu tun haben. Aber wir können sie auch verwenden, um sie zum Beispiel in case-Anweisungen zu ändern, um bestimmte bedingte Operationen durchzuführen. Also lasst uns zuerst unser Skelett schreiben. Wählen Sie alles aus der Spur und begrenzen Sie unsere Ergebnisse. Fünf hier. Und was ich tun will, ist, dass ich verstehen will , wie groß einige Namen unsere aktuelle Datenbank bekommen können. Also lasst uns unsere Namen hier nehmen. Und ich möchte wissen, wie lange Axon-Namen bekommen können, denn vielleicht haben wir eine Größe zugewiesen und wollen wissen, ob die Größe des Balkendiagramms, zum Beispiel, die wir unserer Namenspalte zugeordnet haben, angemessen ist. Sind wir näher an die obere Grenze dieser var char Größe zu erreichen ist viel zu groß. Oder vielleicht ein anderer analytischer Zweck, den wir die Länge 4 kennen wollen. Um dies zu tun, können wir diese Funktion namens Länge verwenden. Wir können es in den Wert setzen, den wir suchen. In diesem Fall werden wir uns die Namensspalte ansehen. Und dann werden wir uns einen Alias als ländliche Länge geben, oder vielleicht können wir diesen Namen Länge nennen, um es noch beschreibender zu machen. Also lasst uns weitermachen und das laufen. Und jetzt können wir sehen, dass dies uns geben wird wie viele Zeichen sind in unserem Text hier auf der Seite unserer Zeichenfolge? Wie viele einzelne Zeichen, einschließlich der Leerzeichen, einschließlich der Klammern, einschließlich aller anderen Sonderzeichen, wie lange sind in diesem Fall die Texte, die wir haben? Das ist also das Ergebnis, dass wir das tun können. Vielleicht wollen wir das nicht mehr. Aber was wir nicht tun können, ist vielleicht, dass wir das Größte finden wollen, also wollen wir es zumindest in absteigender Reihenfolge sehen. Also werden wir nach der Länge des Namens in absteigender Reihenfolge zu sortieren. Also, wenn wir das ausführen, können wir jetzt sehen, in Ordnung, also hat der größte Name in diesem Fall 123 Zeichen darin. Und wir können sehen, dass wir drei über 100 haben. Wir haben etwa 90 und so weiter. So können Sie hier das Ausmaß der Dinge sehen, die gehen. Wir können dies auch einbeziehen, wenn wir zu einer Fallaussage wollten. Also können wir sagen, denken Sie daran, Kommas zwischen separaten Spalten zu setzen. Koffer. Wenn die Länge, halten Sie einfach dieses Großbuchstaben der Namensspalte ist größer als 50. Dann nehmen wir den Wert 50 plus an. Und dann die nächste Aussage können wir haben, wenn die Länge der Namensspalte größer als 40 ist. Dann nehmen wir 40 plus, oder wir können 41 zu 50 sagen. Und so werde ich das alles nicht ausschreiben. Stattdessen werde ich es einfach mehrmals kopieren und dann eine Einrückung verwenden. So weiter. Nun, wenn die Länge größer als 30 ist und ich sage 31 bis 40, wird dieser hier 21 bis 30 sein, dieser wird 11 bis 20 sein. Andernfalls werden wir weniger als oder gleich 10 sagen unsere Fallaussage beenden. Und dann hier können wir sagen, dies zum Beispiel, Als Name Länge Eimer. Also lasst uns weitermachen und das laufen. Und jetzt können wir sehen, okay, jetzt haben wir einen noch schnelleren Überblick darüber, in welche Kategorie zum Beispiel das fällt. So können wir sehen, dass wir dies auch in verschiedenen Positionen verwenden können. So können wir es entweder direkt verwenden. Aber natürlich können wir es auch innerhalb von case-Anweisungen in anderen Dingen verwenden, was auch immer es ist, nach dem wir suchen. Nun eine andere coole Sache, die wir tun können, ist, dass wir Positionen von Zeichen finden können , wenn sie innerhalb einer Zeichenfolge existieren. Und wir können dies tun, indem wir die Positionsanweisung verwenden. Und dann können wir hier zum Beispiel die Teilzeichenfolge sagen, nach der wir suchen. Was auch immer wir hier im Hauptstrom suchen, nach dem wir es suchen. Betrachten wir zum Beispiel das erste Vorkommen des Buchstabens a in der Komponistenspalte. Aber lassen Sie uns dies in Großbuchstaben konvertieren, weil wir nicht wirklich zwischen Groß- und Kleinbuchstaben a is unterscheiden wollen. Also suchen wir nur nach der ersten Position des Buchstabens a in der Komponisensäule, wo alles in Kupferkönige umgewandelt wird. Und dann können wir das speichern oder ihm einen Alias als Position geben. Also, wenn Sie auf diese, wenn es eine neue, Gut, Wenn wir auch drucken Sie die Komponisten-Spalte auf der Seite, so dass wir tatsächlich auch die Ergebnisse vergleichen können. So können wir sehen, ob es kein Inside gibt, dann wird es uns Position geben. Nun, diese Position, fangen wir an, hier auf eins zu zählen. Es wird also 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. So können wir hier sehen, wenn die KI zum ersten Mal erscheint, ist sie in Position 12 in unserer Zeichenfolge. Falls es 0 ist, können wir sehen, dass es überhaupt nicht auftaucht. Und dann können wir in anderen Fällen hier zum Beispiel sehen, dass es in Position 1 auftritt. Und so weiter. Auf diese Weise können wir entweder nach einem bestimmten Wert suchen oder wir können zum Beispiel nach Teilzeichenfolgen suchen. Zum Beispiel können wir nach Angus suchen. Wann immer dies vollständig erscheint. Jetzt für all diese, wird es 0 sein, bis wir finden die Instanz finden, in der es Angus Young ist. Wahrscheinlich am besten, dies zu tun, indem Sie eine Where Aussage hinzufügen, Jahr, wo Komponist. Und ich werde es einfach tun, ich mag, obwohl wir es als Kleinbuchstaben tun können, es ist schöner, als Großbuchstaben zu haben, um es lesbarer zu machen. Ist ähnlich. Angus Young hat das Auge benutzt, so dass wir die Kapitalisierung hier nicht brauchen. Ich werde es trotzdem tun, nur weil es sich irgendwie natürlich anfühlt. Also können wir hier sehen, okay, Jetzt können wir die Filterung verwenden, nur um eine schnellere Überprüfung durchzuführen. Und wir können RA sehen. Das erste Mal, wenn wir Angus sehen, ist die volle Saite Angus hier eins. Nie gut, da wir diese Filterung gemacht haben, wo Sie es nirgendwo anders sehen. So können wir auch nach etwas anderem suchen. Zum Beispiel, das erste Mal, dass wir jung waren. Und dann noch einmal, nur um es einfacher zu machen, lassen Sie uns speziell für alle Zeilen filtern, in denen junge darin enthalten sind. Und wieder verwenden wir das Auge so, dass wir hier die Groß- und Kleinschreibung nicht beachten. Und hier können wir zum Beispiel sehen, okay, also ist die erste Position sieben. Also 1, 2, 3, 4, 5, 6, 7. Also beginnt die Teilzeichenfolge jung an Position sieben hier drin. Und so können wir diese Funktion sehen, die wir auch verwenden können, um bestimmte Ausgangspositionen zu identifizieren, die wirklich schön wieder sein können, wie wir hier sehen können, wird auch das Obermaterial verwendet. So können wir sehen, dass viele dieser Funktionen miteinander verkettet werden können, jede Bereitstellung ein Stück des Puzzles, das wir dann zusammen mit anderen Funktionen verwenden können um einige Datenverarbeitung oder andere Komponenten in unseren SQL-Abfragen durchzuführen. 29. 27StringSubsetsUndConcatinationsHB: In Ordnung, also haben wir jetzt viel über Strings gelernt und wie wir verschiedene Funktionen nutzen können , um Informationen aus Strings zu gewinnen , die wir in unseren Spalten haben. Aber Flüsse, um voranzugehen und einen Blick auf einige coole Dinge zu werfen, die wir tun können , die uns speziell bei der Verarbeitung unserer Daten helfen. Also lassen Sie uns voran und schauen uns unsere Track-Säule wieder an. Und das erste, was ich betrachten möchte, ist String-Verkettung. Was bedeutet, wir nehmen zwei Saiten oder wir können sogar mehr als zwei nehmen und wir können sie miteinander verbinden. Beginnen wir zum Beispiel mit dem Beitritt des Namens und des Komponisten, so dass wir eine neue Spalte erhalten , die den Wert hat, der der Name des Songs ist. Und dann sagen wir den Komponisten danach. So zum Beispiel, das würde wie für diejenigen aussehen, die zu rocken, wir grüßen Sie, und dann würden wir dann den Namen des Komponisten haben. Um das zu tun, lasst uns einfach voran und zuerst unser Skelett SQL schreiben. Und es wird der Track Table sein. Und lassen Sie uns auch einfach voran gehen und unsere Ergebnisse auf fünf beschränken. Okay, also werden wir den Namen des Komponisten benutzen. Also lasst uns weitermachen und diese einfach extrahieren, nur damit wir natürlich unsere Ergebnisse vergleichen können. Nun, was wir tun wollen, ist, dass wir vorerst die Namensspalte nehmen wollen. Und dazu wollen wir den Komponisten hinzufügen. Nehmen wir also unsere Namensspalte. Und nun wollten wir am Ende einfach die Komponistenspalte hinzufügen. Die Art und Weise, wie wir diese String-Verkettung tun können, besteht darin nur diese doppelten vertikalen Linien zu verwenden. Also werden wir unsere erste Zeichenfolge hier setzen, die in diesem Fall auf den Spaltennamen verweisen wird. Und jetzt werden wir unsere zweite Zeichenfolge hier setzen, die in diesem Fall auf den Spaltenkomponist verweisen wird. Und dann, was es tun wird, wird es nehmen, was hier ist, und dann bis zum Ende, es wird sich anschließen, was hier ist. Also lasst uns dem einen Namen geben. Wir schneiden dies aus, rufen diese concat-Spalten auf, schleifen Concat-Spalten für verkettete Spalten. Und lassen Sie uns einfach weitermachen und sehen, wie es aussieht. Okay, also haben wir hier unsere erste Namensspalte. Dann haben wir unseren Komponisten, und jetzt haben wir hier unser Ergebnis, das buchstäblich nur der Name ist. Und dann können Sie sehen, sobald es endet sind Komponisten hier beginnen. Und wir können auch sehen, dass für andere Dinge, wenn wir keine Werte haben, das Endergebnis, wie wir hier sehen können, tatsächlich auch ein bekannter Wert sein wird. Nun natürlich ist das Format, dass wir diese Daten jetzt haben, nicht besonders nützlich. Also lassen Sie uns voran und machen es ein wenig schöner zu betrachten, indem Sie nach dem Spaltennamen ein Leerzeichen hinzufügen. Und dann sagen wir Tschüss, und dann sagen wir den Komponentennamen. Also, um das zu tun, werden wir hier nur den Saitenraum setzen. Und dann werden wir Tschüss haben. Und dann haben wir einen Raum. Und dann können wir einfach die vertikalen Linien des Tumors hinzufügen. Und plötzlich machen wir jetzt mehrere verschiedene Verkettungen. Zuerst nehmen wir die Namensspalte. Dann fügen wir zum Ende Raum für Raum hinzu. Und dann machen wir noch eine Verkettung. Zum Schluss fügen wir nun die Spalte „Composer“ hinzu. Also, wenn wir voran gehen und das laufen, können wir jetzt sehen, okay, die Formate, die besser wir den Namen haben, dann haben wir kaufen, und dann haben wir hier die Komponisten selbst. Jetzt können wir hier noch mehr tun. Also lassen Sie uns das den ganzen Weg nehmen und beginnen wir mit der Spur. Und dann legen wir die LKW-ID. Und dann geben wir den Namen des Liedes. Und dann geben wir dem Komponisten. Davor sagen wir „Track“. Und dann wollen wir jetzt die Spur IT haben. Also, wie können wir das tun? Also, um das zu tun, Was ist cool daran ist, dass wir tatsächlich, solange wir dazwischen sind, auch in ganzzahlige Werte setzen können. So können wir einfach direkt auf die Spur-ID-Spalte und die String-Verkettung verweisen. Wir kümmern uns eigentlich nur um die Konversion für uns. Und um diese Formatierung ein bisschen schöner zu machen, werde ich hier einen Doppelpunkt und ein Leerzeichen setzen. Und wenn wir das ausführen, können wir hier sehen, jetzt haben wir Track und dann haben wir die ID, und jetzt haben wir unsere Namensspalte eingeschaltet. Also lassen Sie uns voran und fügen Sie einfach ein weiteres Leerzeichen hier nur für einige Formatierungen hinzu und führen Sie das erneut aus. Und so können wir sehen, obwohl unsere Track-ID tatsächlich eine Ganzzahl ist, die wir auch sehen können, wenn wir sie nur hier betrachten. Die String-Verkettung kümmert sich für uns um die Konvertierung. Aber natürlich, wenn es nicht auch wissen würde, wie man die Konvertierung selbst mit Casting macht , indem sie zum Beispiel einfach in einen Textwert umwandelt. Für den Fall, dass es sich nicht um uns gekümmert wurde, könnten wir es so ausführen. Und natürlich würde es uns darum kümmern. Oder wir könnten es auf einen anderen Datentyp umwandeln, den wir besser finden. Aber wie wir sehen können, die String-Verkettung. Eigentlich kümmert sich um all das für uns. Nun, natürlich, in der Regel ist dies in die entgegengesetzte Richtung, wohin wir wollen gehen. Normalerweise können wir Daten wie diese haben und dann möchten wir in dieses Format gehen. Aber trotzdem ist es wirklich schön, String-Verkettung zu sehen , weil Sie es irgendwann verwenden und gut verwenden möchten. Und in diesem Fall sind unsere Datenbanken natürlich sehr sauber, ähm, aber in einigen Fällen können Sie Zeiten haben, wenn Sie zum Beispiel, werfen wir einen Blick auf die Rechnungsspalte. Es kann Zeiten geben, in denen Sie das Datum und die Uhrzeit in zwei separaten Spalten haben. Und Sie möchten sie nur zusammenfügen und sie als vollen Datumswert verwenden. Dann könnten Sie String-Verkettung durchführen, um ein Datum plus Zeit zu erhalten. Und dann können Sie zum Beispiel ein Casting zu einer Datetime machen. Und dann von dort direkt die Datetime und eine Spalte haben. Je nachdem, wie Ihre Daten formatiert sind, sind die Spalten, die Sie verwenden würden, manchmal nicht in dem idealen Format, in dem Sie tatsächlich möchten, dass sie sich befinden. Entweder keine weitere Analyse in der Zeile oder nur eine Verarbeitung, die Sie tun möchten, oder auch nur für einen saubereren Export, indem Sie weniger Spalten haben. Und so kann String-Verkettung wirklich schön sein, denn wie wir sehen können, sind wir in der Lage, verschiedene Spalten zu verbinden, sowie in Zoll hinzuzufügen. Unsere eigenen Streicher sind alle miteinander verbunden. Und natürlich, beachten Sie hier wieder, dass die benutzerdefinierten Texte, die wir haben, in einfachen Anführungszeichen sind. Und jeder Verweis auf Spalten hier befindet sich in doppelten Anführungszeichen. Nun brauchen wir die doppelten Anführungszeichen, da durch die Tabelle erstellen, die Spaltennamen mit doppelten Anführungszeichen zu finden waren. Wenn unsere Tabelle nicht mit doppelten Anführungszeichen für die Verwendung der Spalten definiert ist, könnten wir auch einfach die Spalte direkt so referenzieren. Aber wir können niemals doppelte Anführungszeichen für Strings verwenden. Es sind nur für Spaltennamen reserviert, wie wir sahen, sind auch Tabellennamen in diesem Fall, wie wir auch sehen können, abhängig davon, wie die create table Anweisung geschrieben wurde. In Ordnung, jetzt haben wir uns die Dinge angeschaut und miteinander verbunden. Gehen wir in die entgegengesetzte Richtung und schauen wir uns an, Dinge zu reduzieren. Also werde ich das wegnehmen, nur damit wir hier unten keinen sehr langen Ausgang mehr haben. Und das nächste, was wir betrachten werden, ist die Verwendung oder Finden von Teilzeichenfolgen einer Zeichenfolge, die wir haben. Also lassen Sie uns einen Blick auf eine, nur die einfachste Implementierung zuerst, um die Teilzeichenfolge zu finden. Wir gehen und verwenden diese Teilstring-Methode, Teilzeichenfolge. Und dann können wir hier Klammern öffnen und schließen. Und dann ist das erste, was wir einfügen möchten der Text oder die Zeichenfolge, von der wir die Teilzeichenfolge nehmen möchten. Nehmen wir zum Beispiel die Spalte „Composer“. Und dann wollen wir hier reinbringen, wo wir anfangen wollen. So können wir zum Beispiel von Position eins in SQL sagen, von Position eins in SQL sagen, die erste Position wird immer Position eins sein , falls Sie wissen, an welche andere Programmiersprache Sie gewöhnt sind. Die erste Position, die als Position 0 bezeichnet wird. Aber in SQL ist die erste Position Position eins. Und wenn Sie keine andere Programmiersprache kennen, dann ist dies natürlich sehr intuitiv, dass die erste Position als Position 1 referenziert wird. So oder so von einem und dem ersten Zeichen hier wird an Position eins sein. Und jetzt möchten Sie sagen, wie viele wir extrahieren möchten. Also, um das zu tun, wollen wir sagen, wir wollen die ersten fünf extrahieren. Also sagen wir ab 145. Was das bedeutet, ist, dass wir die Teilzeichenfolge nehmen. Also nehmen wir einen kleineren Teil der Schnur von allem, was hier drin steckt. Und wir werden das an Position eins beginnen. Und wir gehen für fünf Charaktere. Und geben wir dem einen Alias. Also können wir diese Unterspalte aufrufen, und lassen Sie uns voran gehen und das ausführen. Und so können wir hier sehen, wir beginnen mit Angus zum Beispiel, und wir gehen, Wir beginnen an Position 1. Mai gehen für 1, 2, 3, 4, 5. Sie kann hier sehen. Schauen wir uns das nächste an. F Ball Tez So starten wir an Position 112345. Und so können Sie sehen, das ist auch genau das, was wir hier haben. Jetzt gibt es tatsächlich einen anderen Weg, wie wir auch die Syntax tun können , von der Sie nicht wirklich schreiben müssen. Und vier können auch Kommas verwenden, stattdessen eine Trennung. Zum Beispiel könnten Sie hier einfach die Zeichenfolge anlegen und dann können wir ein Komma einfügen. Und das wird der Ausgangspunkt sein, und das wird sein, wie viele Werte wir extrahieren wollen. Wenn wir also voran gehen und das ausführen, können wir sehen, dass wir genau das gleiche Ergebnis bekommen. Und tatsächlich brauchen wir nicht einmal den letzten vier Wert. So ist der letzte vier Wert nicht einmal notwendig. Und wir können das auch rausnehmen, an welchem Punkt wir einfach werden. Beginnen Sie, die gesamte Zeichenfolge nur von der Ausgangsposition aus zu nehmen. So können wir hier sehen, in diesem Fall beginnen wir an Position 1. Also nehmen wir alles. Wenn wir zum Beispiel an Position fünf beginnen, dann gehen wir nur weiter von Position fünf weiter. Also 1, 2, 3, 4, 5. Von diesem Charakter an werden wir alles nehmen, wie wir hier sehen können. Jetzt können wir auch bei dieser Methode die Ergebnisse anderer Methoden verwenden, die wir zuvor gelernt haben. Zum Beispiel, Lassen Sie uns versuchen, die ersten fünf Zeichen zu extrahieren , nachdem wir das erste Leerzeichen begegnen. Um dies zu tun, müssen wir zunächst die Position des ersten Raumes finden. Und das können wir mit der Positionsmethode tun, die wir vorher gelernt haben. Also hier werden wir die Position finden. Und zuerst werden wir hier den Komponisten einbauen. Und wir wollen die Position des ersten Raumes finden. Und dann werden wir die nächsten fünf Zeichen extrahieren. Aber da wir nach dem ersten Leerzeichen beginnen wollen, anstatt nach dem ersten Leerzeichen, müssen wir hier auch eine Eins zum Ergebnis hinzufügen. Seit der Position des ersten Leerraums, werden wir einen Anfang genau auf den Raum machen. Aber wir wollen bei einem nach diesem Raum beginnen. Also werden wir hier einen hinzufügen. Also lasst uns weitermachen und das laufen. Jetzt auch diese Aussage können wir intelligenter machen, indem wir andere Funktionen verwenden, die wir auch vorher gelernt haben. Versuchen wir zum Beispiel, die ersten fünf Zeichen nach dem ersten Leerzeichen zu finden , auf dem Zähler begegnet. Um dies zu tun, müssen wir zunächst die Position des ersten Raumes finden. Wir können das mit der Positionsfunktion tun, die wir früher gelernt haben. So können wir Position sagen. Und jetzt möchten Sie die Position des Raums in unserer Komponisen-Spalte und Typ 2 finden. Denken Sie daran, die Positionsfunktion zu verwenden. Also wollen wir die Teilzeichenfolge der Composer-Spalte finden. Und wir wollen an der Position oder besser nach der Position beginnen. Und wir werden das in einer Sekunde nach der Position des ersten Platzes erreichen. Also, um das Nachher zu bekommen, wird dies uns die Position des ersten Raumes geben. Und das würde bedeuten, dass wir dort anfangen werden. Aber wenn wir die Position nach dem ersten Raum einnehmen wollen, und wir müssen eine zu unserem Ergebnis hier hinzufügen. Und dann wollen wir die ersten fünf Zeichen extrahieren. Und so, und das werden die fünf hier sein. Und jetzt wieder, was wir tun, ist, dass wir diese Trump-Zeichenfolge finden oder eine Teilzeichenfolge und die Farbe des Komponisten verfeinern. Jede Zeile wird also wieder einen anderen Wert haben. Und wir werden an der Position des ersten Platzes plus eins beginnen. Also beginnen wir eins nach dem ersten Leerzeichen, und dann werden wir fünf Zeichen extrahieren. Also, wenn wir das ausführen, können wir hier sehen, das sind die Ergebnisse, die wir bekommen. Und nehmen wir unsere Limit-Aussage weg und sehen, wie es für alles aussieht. Konkret. Für Fälle, in denen es keinen Platz wie ein AC, DC hier. Oder mal sehen, ob es in diesem Fall noch einen gibt. So können Sie in diesen Fällen sehen, wir beginnen gerade mit dem Anfangswert, da die Position von Raum und Komponist, gibt es keinen Platz. Und deshalb wird uns das 0 geben. Also, wenn wir dies separat ausführen und wir speichern diese als Platzposition und sind auf der zweiten. So können Sie die Platzposition in diesem Komponisten sehen, zum Beispiel, es gibt kein Leerzeichen, und so wird dies uns 0 geben. Und so das Plus, als wir nur bei Charakter eins beginnen, weshalb wir hier zum Beispiel so beginnen und y zum Beispiel für CDC. Wir sehen auch mehr nur die ersten fünf hier genommen, was uns tatsächlich den vollständigen Komponisten Namen geben wird , weil der Raum Position hier 0 sein wird. Und so werden wir an Position eins beginnen, da wir das Plus 1 hier machen. Jetzt können wir dies noch komplizierter machen, wenn wir es noch einmal wollten, mit den gleichen Methoden sind die gleichen Funktionen, die wir zuvor hatten. Und lassen Sie uns das tatsächlich tun, teilen Sie dies über mehrere Zeilen auf, um es nicht zu weit in die Horizontale gehen zu lassen. Also, was wir tun werden, ist, dass wir das erste Wort nach dem ersten Leerzeichen finden. So wollen wir zum Beispiel alles zwischen dem ersten und dem zweiten Raum finden. Also in diesem Fall wird es junges Komma sein, oder hier wird es Bolzen Komma haben. Also, wie können wir das tun? Nun, jetzt müssen wir diese Komponente hier schlau machen, sonst musst du sie dynamisch machen. Also zuerst, was wir tun wollen, ist, dass wir alles nach dem ersten Raum finden wollen. Und dann wollen wir nur alles bis zum nächsten Raum finden. Also fangen wir damit an, alles in den ersten Raum zu finden, was wir hier tatsächlich schon gemacht haben. Also können wir das einfach nehmen und das kopieren und hier reinlegen. Aber dann schließen Sie unsere Klammern ab, da wir alles nach dem ersten Leerzeichen nehmen wollen . Nun, wir haben dies tatsächlich bereits getan, weil genau das hier, dieser Teil unserer Abfrage hier extrahiert, na ja, in diesem Fall extrahieren wir die ersten fünf Zeichen, aber wir könnten das genauso leicht entfernen. Und jetzt extrahieren wir alles nach dem ersten Raum. Also wollen wir das aber als Eingabe nehmen. Also, was wir tun werden, ist, anstatt unsere Composer-Spalte hier zu verwenden, oder besser gesagt die Zeichenfolge, die der aktuellen Zeile der Composer-Spalte entspricht. Wir werden stattdessen das Ergebnis davon verwenden. Und so gehen wir einfach hier, können wir das sehen. Wir wollen nur sicherstellen, dass alle unsere Klammern richtig geschlossen sind. Also unser erstes Element hier drin, und lassen Sie uns wieder einfach unseren Abstand anpassen, um dies lesbarer zu machen. Wir können sehen, dass das erste Element oder der erste Wert, und beiseite hier ist das Ergebnis dieser Aussage. Und das wird uns nach dem ersten Platz alles geben. Also jetzt in diesem Fall, zum Beispiel, werden wir jung und so weiter haben, weil wir die Charaktere nicht einschränken. Das nächste, was wir tun wollen, ist, dass wir alles bis zum nächsten Platz finden wollen. Da wir also wissen, dass wir nach dem ersten Leerzeichen beginnen, kann unser Startcharakter hier nur eins sein. Da wir direkt nach dem ersten Leerzeichen beginnen, was bedeutet, dass wir immer mit dem nächsten Wort beginnen wollen. Aber jetzt müssen wir die Endposition finden, die sich basierend auf der Länge des Namens ändern wird. Zum Beispiel hat junge fünf Zeichen im Namen Malthus F6. Und in jedem dieser Fälle haben wir tatsächlich ein Komma hinter sich. Und wie weit wir gehen wollen, um den zweiten Raum zu erreichen, wird sich wieder ändern. Also, was wir tun können, ist, dass wir sagen können , in Ordnung, nun, wir haben das schon hier. Grundsätzlich wollen wir nur auf die Position des nächsten Raumes gehen, sondern vielmehr auf die Position des nächsten Raumes und Komponisten gehen, was die Position des ersten Raumes sein wird. Wir müssen das Ergebnis dieser Aussage hier wieder verwenden. Also setzen Sie das hier rein und setzen Sie es einfach wieder auf eine neue Zeile, so dass alles einfacher zu wiederholen ist. Na gut, also gehen wir weiter und geben dem einen Lauf. Und schauen wir uns unser Ergebnis an. Also, was wir sehen können, ist jetzt bekommen wir genau das, was wir wollten, das ist jung ein Biotas Komma und dieses Quiz, es ist nur eine AMD. Lasst uns das noch einmal durchlaufen, denn diese Struktur ist irgendwie kompliziert. Hier gibt es viele verschachtelte Komponenten. Also unser erster Wert, die Zeichenfolge, von der wir die Teilzeichenfolge nehmen, ist tatsächlich das Ergebnis der Einnahme der Teilzeichenfolge der Composer-Spalte, die nach der Position des ersten Leerzeichens beginnt, was wir getan haben früher. So zum Beispiel, für unsere erste Reihe hier, wäre es nur jung und alles danach, da wir nicht einschränken, wie weit wir gehen. Das nächste, was wir dann mit diesem Ergebnis tun, ist, dass wir an Position 1 beginnen. Da wir jetzt, damit, beginnen wir nach dem ersten Raum. Und wir wollen auf die Position des nächsten Raumes gehen. Also wird die Position des nächsten Raumes dann zwei sein oder besser gesagt, um das richtig zu bekommen, wir müssen wieder das Ergebnis hier verwenden. Und so können wir dann die Jungen benutzen und so weiter. Und jetzt müssen wir die Position des nächsten Raumes finden, denn wenn wir nur die ursprüngliche Komponisten-Spalte verwendet haben, dann wird es uns nur die Position des ersten Leerzeichens in der vollständigen Spalte geben. Aber wir wollen das nicht, weil wir bereits einen Teilstring Teil dieser Spalte verwenden. Also wollen wir sicherstellen, dass wir, wenn wir die Positionsfunktion hier verwenden, das gleiche Substrat verwenden. Also wieder, wir werden die Position der ersten Zeichenfolge im Ergebnis der Teilstring-Anweisung finden , die wir hier geschrieben haben, die die gleiche sein wird, die wir hier unten verwenden. Nun, eigentlich gibt es hier eine Subtilität, die ist, dass wir tatsächlich ein nachgestelltes Leerzeichen zusätzlich zu den nachgestellten Kommas haben , die wir in einigen Fällen haben. Und jetzt könnten wir versuchen, im Grunde zu sagen, okay, wir gehen auf die Position minus eins, um die hinteren Leerzeichen loszuwerden. Aber das Problem ist in einigen Fällen, wenn es keine Leerzeichen mehr in unserer Teilzeichenfolge gibt. Zum Beispiel hier wird unser Ergebnis hier 0 sein. Also werden wir schon gehen für 0 Länge, weshalb, zum Beispiel hier AC, DC, wir haben nichts Kühler genommen eine keine Zeichen. Und wenn wir einen negativen Wert setzen, können Sie hier sehen, dass sich Postgres in diesem Fall beschwert, weil wir nicht in negative Werte setzen dürfen. Hier können wir negative Mengen von Text oder negative Mengen von Zeichen entfernen. Aber wir haben die Lösung bereits bekannt oder wir kennen bereits die Funktion, mit der wir dieses Problem lösen können. Nämlich, wir werden die Trim-Methode verwenden. Und hier werde ich nur den richtigen Trumpf verwenden , weil wir gezielt die rechte Seite abschneiden wollen. Und was wir tun wollen, ist, dass wir das abschließende Komma und auch das nachfolgende Leerzeichen abschneiden wollen. Wir werden unsere Funktion hier beenden und dies einfach wieder in die gleiche Zeile setzen , nur um irgendwie alles und Syntax zu haben. Und lasst uns weitermachen und das laufen. Und jetzt können wir sehen, dass wir das abschließende Komma sowie den abschließenden Raum, der tatsächlich versteckt ist, losgeworden sind. Und wenn wir hier nur ein Komma hätten, würden sich die Ergebnisse tatsächlich nicht ändern, weil wir zuerst das nachgestellte Leerzeichen haben , das wir in diesem Fall nicht sehen können, weil die Ausgabe aussieht. Seien Sie sich dessen bewusst, dass wir in diesem Fall einen Trainingsraum und ein abschließendes Komma haben würden. Nun, wie er hoffentlich sehen kann, auch wenn einige der Funktionen in den Postgres selbst ein wenig ähnlich erscheinen mögen. Zum Beispiel, warum sollten wir wissen die Position, dass es nicht sehr viele Anwendungsfälle geben darf. Aber die coole Sache ist, dass Sie alle diese Funktionen zusammen nutzen können. Und dadurch können Sie tatsächlich einige ziemlich coole Verarbeitungssachen schreiben. Und Sie können sehen, dass wir hier Art von Verschachtelungsergebnissen und die Ergebnisse einer Sub-Zeichenfolge als Einstiegspunkt für eine andere Teilzeichenfolge verwenden können . Es gibt also eine Menge coole Sachen, die wir tun können, indem wir verschiedene Funktionen miteinander verketten , verwenden die Ergebnisse, um einige wirklich schöne Datenverarbeitung zu machen. Selbst in diesem Fall, wenn die Aufgabe nur war, den ersten Wert nach dem ersten Leerzeichen und zwischen, zwischen dem ersten und dem zweiten Leerzeichen eher herauszuziehen . Also können wir hier sehen, es gibt wieder einige wirklich nette Sachen, die wir tun können, indem wir einfach mehrere dieser verschiedenen Funktionen zusammen verwenden , so dass wir ino, eine einzigartige und benutzerdefinierte Verarbeitung bekommen können , wo alles irgendwie nur Anpassung an die Eingabewerte, die wir haben. Und wir müssen nicht speziell hartcodieren bestimmte Längen Startpunkte oder so etwas sind. Wie wir hier sehen können, sind diese beiden Werte, die wir zurückgegeben haben, nicht sehr unterschiedliche Längen. Aber das ist völlig in Ordnung, weil unsere Abfrage alles kümmert und es ist nicht wirklich egal, wie lange jeder von ihnen ist, weil es auch das automatisch im Inneren erledigt hat. 30. 28String-AusstellungHB: Und wir haben uns bereits eine Menge Dinge angesehen , die wir mit Strings in SQL tun können. Aber es gibt noch eine coole und nützliche Sache, die ich Ihnen zeigen möchte, die Werte innerhalb von Strings ersetzt. Also lasst uns zuerst einfach unseren Skelett-Code hier schreiben. Einrichtung, wir haben etwas. Und in diesem Fall werden wir tatsächlich die Rechnungsspalte verwenden , weil ich diese Datumsspalte hier verwenden möchte. Also werden wir aus dieser Rechnungsspalte auswählen. Lassen Sie uns nur unsere Ergebnisse zuerst auf fünf beschränken. Und was ich tun möchte, möchte ich diesen Raum hier stattdessen mit einem T ersetzen. Nun gibt es verschiedene Möglichkeiten, dass verschiedene Programme und Schreibzeiten gibt es verschiedene Möglichkeiten, dass verschiedene Leute Themen formatieren können? Also manchmal etwas, das Sie sehen werden, ist ein T hier, oder Sie werden einige Schrägstriche hier sehen. Jetzt hat SQL ein sehr spezifisches Format, das Sie auch hier sehen können, Jahr, Monat, Tag mit Bindestrichen zwischen ihnen. Und du hast den Platz, und dann hast du Stunden, Minuten, Sekunden. Und dann haben Sie hier die Millisekunden-Komponenten. Und Sie können sehen, all dies ist Unterfelder sind durch Doppelpunkte getrennt. Und hier haben wir einen durch einen Punkt getrennt. Und so können wir auch in Ehre Rechnungstabelle suchen. Und wir können hier sehen, dass das Rechnungsdatum in diesem Fall tatsächlich ein Zeitstempel ist. Aber der Wert, den wir sehen, wie die Benutzer Art von freundlich für uns gemacht. Und es ist eigentlich die schönere Darstellung dieses Zeitstempelwerts. Und wir können dieses Ergebnis auch direkt nutzen. Aber weil verschiedene Programme und manchmal sogar verschiedene Menschen Datumsangaben anders formatieren. Und das ist das SQL-Format, das Sie wollen, aber Sie können es nicht immer bekommen, weil manchmal, wenn die Daten gerade aus dem Ergebnis einer Zeichenfolge von Urlaub eines Zeitstempels hochgeladen werden, manchmal die Art und Weise, wie dieses Programm diesen Zeitstempel oder dieses Datum in eine Zeichenfolge und ist möglicherweise nicht das tatsächliche Format, das Sie benötigen. Also schauen wir uns einfach eine Reihe von Platzierungen an. Auch wenn wir bereits den Wert haben, den wir hier wollen. Mit den String-Ersetzungen können Sie, wenn das andere allgemeine Format das gleiche ist, können Sie bereits einige wirklich schöne Werte erhalten. Wir können wirklich einfach zu dem Format gehen, das Sie brauchen. Also hast du das getan? Lassen Sie uns einfach dieses Rechnungsdatum hier ändern, um stattdessen Gewohnheit Kapital T dazwischen hier, die die gemeinsame Sache sind, die Sie irgendwann sehen könnten. Um das zu tun, werden wir Rechnungsdatum auswählen und wir werden es auswählen, so dass wir zu vergleichen haben. Und jetzt, um die tatsächliche Platzierung zu tun, werden wir die Ersetzen-Funktion verwenden. Und lassen Sie uns das Großbuchstaben behalten. Und die Syntax, die wir hier verwenden möchten, ist zuerst, wir wollen die vollständige Zeichenfolge setzen, die wir verwenden werden, was in diesem Fall nur mit dem Ergebnis des Rechnungsdatums sein wird, dann wollen wir den Wert haben, den wir wollen ersetzen. So zum Beispiel, in diesem Fall, und lassen Sie uns den Raum ersetzen. Und dann haben wir den Wert, durch den wir ihn ersetzen wollen. Also, zum Beispiel, ersetzen wir es durch das Kapital T und dann geben wir diesem einen Alias als modifiziertes Datum. Jetzt gibt es tatsächlich eine weitere Subtilität, um die wir kümmern müssen, das ist unser Rechnungsdatum intern ein Zeitstempel ist. Aber wenn wir es betrachten, wird es tatsächlich zu uns in die Textdarstellung dieses Zeitstempels umgewandelt, was es natürlich viel einfacher macht zu lesen. Es ist viel einfacher, das tatsächliche Datum mit Jahr, Monat, Tag, Stunden, Minuten, Sekunden zu lesen Monat, Tag, Stunden, Minuten, , anstatt nur eine Reihe von Zahlen zu betrachten, die eine Zeit darstellen. Was wir tun müssen, um dies richtig zu tun ist, müssen wir auch diesen Zeitstempel in ein Textformat konvertieren. Und gehen wir weiter und machen die Bekehrung hier. Und lassen Sie uns auch voran und machen die Konvertierung intern. Eigentlich, lassen Sie uns das hier nicht tun, weil ich Ihnen das Ergebnis seiner beiden zeigen möchte, aber wir müssen es hier drin haben, denn sonst betrachten wir diese, sind dies tatsächlich Zeitstempelwerte. Es gibt also Zeitstempel, aber wir müssen sie in eine Textdarstellung eines Zeitstempels konvertieren , der, wenn Sie es in SQL tun, so aussieht. Andernfalls können wir es nicht richtig verwenden. Wenn wir also voran gehen und dies ausführen, können wir hier sehen, dass dies das Ergebnis ist, das wir bekommen, wenn wir es in ein Textformat konvertieren, was im Grunde alles nach dem Punkt hier ist, der in diesem Fall nicht nur verwendet wird weil es nicht anwesend ist. Und dann haben wir den Platz hier durch den Tee ersetzt. So können wir sehen, dass dies die SQL oder Präsentation ist, die wir sehen, wenn wir Zeitstempelwerte haben, aber wir machen keine andere Konvertierung. So werden sie in diesem Fall dem Benutzer angezeigt. Und wir würden tatsächlich, wenn wir dies in einen Text umwandeln wollen, können wir hier sehen, dies ist das resultierende Casting, das wir haben, die genau den gleichen Wert sind , weil wir hier keine zusätzlichen Millisekunden-Komponenten haben. Aber es ist immer noch schön, nur diesen subtilen Unterschied bewusst zu sein , den Sie erhalten werden, wenn eine Zeitstempelspalte in einen Textdatentyp konvertieren. Nur weil es etwas ändert, wie die Ausgabe aussieht, aber das wirkt sich auch wirklich darauf aus, wie wir diese Werte verwenden werden. So können wir manchmal sehen, dass wir Datumswerte, Datumswerte oder Datetime-Werte erhalten , die dieses Team zwischen haben, die in diesem Fall können wir tatsächlich verketten. Und wir werden an die Kette gehen. Denn in Wirklichkeit, lassen Sie uns einfach das Beispiel behandeln, dass wir diesen Wert in sich bekommen. Also werden wir unsere Operationen hier verketten. Aber in Wirklichkeit haben wir nur diese modifizierte Datumsspalte genommen und dann lassen Sie uns dieses grundlegende UND, ODER dieses t wieder entfernen . Also werden wir das Ergebnis dieser Ersatzaussage hier ersetzen, was wir hier sehen. Wenn dies also eine echte Eingabe war und wir den Tee wegnehmen wollen, da diese Art von bringt es in das esco Format, dass wir es als ID, Datum, Uhrzeit oder als Zeitstempel verwenden müssen . Also werden wir das ersetzen und wir werden ersetzen. Und lasst uns das vorerst auf eine neue Linie setzen. Wir werden das T ersetzen, und wir werden es durch einen Raum und das Endlose ersetzen . Und es ist auch geben Sie den Spaltennamen hier wieder. Wenn wir also weitermachen und das ausführen, können wir sehen, dass wir den genauen Wert zurückbekommen. Aber wieder, was wir getan haben, ist, dass wir den Raum hier durch das t ersetzt und dann haben wir das T waken ersetzt. Und manchmal werden Sie nur sehen, dass es Fälle geben kann, in denen Sie nur Datumszeiten haben, die so aussehen. Jetzt gibt es einige SQL-Datenbanken, die sich mit diesem Format befassen können. Zum Beispiel ist postgres einer von ihnen, wo wir das tatsächlich noch nehmen und es in einen Zeitstempeltyp konvertieren können . Und wir können sehen, ob wir das laufen, rennen, diese ganze Sache. Wir können hier sehen, dass wir es irgendwie wieder in Zeitstempel umwandeln. Aber im Allgemeinen die richtige SQL-Formel, die Sie als Leerzeichen zwischen hier wollen, da nicht jede SQL-Datenbank mit diesen T-Werten wie folgt umgehen kann. Und so in einigen Fällen kann die Aussage tatsächlich abstürzen. Und so sei dir bewusst, dass es eine Art ideales SQL für immer gibt, ohne dass du willst, das ist Jahr, Monat, Tag, Raum, Stunden, Doppelpunkt Minuten, Doppelpunkt Sekunden. Und der Grund, warum Sie es so haben, ist, dass , selbst wenn diese Werte Strings sind, wenn Sie sie sortieren, sie immer noch in der richtigen Reihenfolge sortiert werden. Und deshalb ist es auch wichtig, dass wir dieses Format von Jahr, Monat, Tag und NADH Tag, Monat, Jahr oder Monat Tag, Jahr oder so etwas haben. Mit diesem sehr spezifischen Format ist alles sehr Standard. Also in diesem Fall können wir in Postgres sehen, das Kapital T ist kein Problem, aber das gilt nicht für alle Datenbanken. Und SQL ist irgendwie sehr variabel. Und natürlich, wenn Sie am Ende tragen müssen, verwenden Sie vielleicht mehrere verschiedene SQL-Datenbanken. Die Aussage kann mehr als eine von ihnen machen und kann abstürzen und die andere, weil sie wieder näherten, dass etwas anders war. Also seien Sie sich dessen bewusst. Idealerweise möchten Sie für dieses saubere Format gehen. Und natürlich können Sie alle Ersatz- und Gussteile verwenden. Und das waren Teilzeichenfolgen und alles andere, was wir gelernt haben, alle Verarbeitungssachen, um alle Spalten zu modifizieren und sie in das richtige Format zu setzen, so dass Sie die Typkonvertierung durchführen können. Aber seien Sie sich bewusst, dass Sie manchmal Datumsspalten und falsche Formate haben können. Und eine andere, die häufig gesehen wird, ist zum Beispiel, Striche, Schrägstriche anstelle von Bindestrichen zu haben . Also eine andere, die nicht so häufig gesehen ist, ist , um zu beginnen, dies in einen Zeitstempel zu konvertieren, damit wir das Ergebnis tatsächlich sehen können. Aber eine andere, die allgemein als Summen wie Striche hier oder so etwas gesehen wird. Seien Sie sich also bewusst, dass dies Dinge sind, denen Sie begegnen können. Und dieser Fall, wie wir sehen können, weil das Timestamp-Casting wieder funktionierte, aber andere SQL-Datenbanken sind möglicherweise nicht so großartig, sich an diese verschiedenen Formate anzupassen. Seien Sie sich also bewusst, dass wir die einfachen Ersetzungsmethoden sowie andere String-Methoden verwenden können , die wir zuvor für die Verarbeitung oder Bearbeitung von Daten verwendet haben , um unsere Daten in das richtige Format zu bringen. 31. 29DateandTimeHB: Jetzt werden Datums- und Uhrzeitinformationen, wie wir auch hier in der Spalte Rechnungsdatum haben , wahrscheinlich in der einen oder anderen Form sehr oft in Ihren SQL-Tabellenerscheinen in der einen oder anderen Form sehr oft in Ihren SQL-Tabellen weil es wirklich schön ist, den Überblick zu behalten, wann Dinge aufgetreten sind. Lassen Sie uns also einen Blick auf Daten und Zeiten werfen und wie wir sie verwenden können, um einige Informationen aus ihnen zu extrahieren. Nur weil es so ein gemeinsames Feld sein wird, das zu sehen ist. Nun, was wirklich schön ist, ist, dass SQL wirklich gut im Umgang mit Datums- und Zeitinformationen ist . Und, und das ist großartig, weil es uns viel Flexibilität gibt. Also lassen Sie uns einfach voran und schreiben Sie zuerst eine Skelett-Select-Anweisung aus unserer Rechnungstabelle, die unsere Ergebnisse begrenzt 25. Und wieder, wir haben das schon vorher gesehen, aber lassen Sie uns einfach voran und wählen Sie die Spalte Rechnungsdatum aus. Und wir gehen weiter und führen das aus. Und wir können hier sehen, dass dies eine Art von Texten oder Präsentation ist, die wir in unserer Tabelle nicht zu uns zurückkehren können , weil der Wert selbst einen Zeitstempel hat. Und wir haben auch gesehen, dass, wenn wir dies auf einen Textwert umwandeln, wir es einfach ohne die Millisekundenkomponente in diesem Fall bekommen können , weil es tatsächlich nicht enthalten ist. Aber sagen wir, wir sind nur daran interessiert, das Datum zu verwenden, zum Beispiel, wir sind nicht besonders daran interessiert, die Zeit zu nutzen. Nehmen wir an, wir wollen eine Analyse durchführen, wo wir sehen wollen, okay, ich muss verstehen, wann Dinge von Tag zu Tag allein passieren, oder vielleicht sogar nicht einmal diese Größe. Aber ich bin nicht super interessiert an der Zeitkomponente hier. Was wir also tun können, ist unser Rechnungsdatum zu verwenden. Wir können das einfach zu einem Date machen. Also lasst uns voran und vielleicht lasst uns diesem einen Alias als Datum geben. So können wir das ausführen und wir können hier sehen, dies wird nur unsere Art von anfänglicher Ausgabe sein. Und wenn wir nur die Datumskomponente herausnehmen, können wir sehen, dass wir sehr leicht das Datum ausschneiden und wir Dinge mit dem Datum machen können. Und wir können zum Beispiel auch die Zeit rausholen. Denn vielleicht, sagen wir mal, wir sind nur daran interessiert , eine Analyse durchzuführen, die bestimmte Tageszeit betrachtet. Und wir sind nicht sehr interessiert an den Tagen und dem Datum hier, sondern wir sind eher daran interessiert, die Tageszeit zu betrachten , weil wir Schwankungen mit der Tageszeit oder so etwas verstehen wollten. So können wir hier sehen, sobald wir es im richtigen Zeitstempelformat oder im richtigen Datumszeitformat haben. Wir können dann sehr einfach nur die Informationen, die wir brauchen, daraus extrahieren. Und wir können dies auch zum Filtern verwenden. Also zum Beispiel, nehmen wir zuerst unsere Limit-Anweisung weg , so dass wir irgendwie das vollständige Ergebnis erhalten. Nehmen wir an, wir sind daran interessiert, einige Verhaltensweisen basierend auf der Tageszeit in der Woche zu analysieren. Das ist zwischen, Das beginnt mit der ersten der ersten Linie 2000 und geht bis zum sechsten der ersten. So können wir tun, ist in unserer Where-Klausel, wir können sagen, wo Rechnungsdatum zwischen ist. Und hier können wir sagen, wir nehmen die Saite 2019, äh, 11. Dies können wir zu einem Datum und Ende werfen. Brauche diese Klammern nicht dazwischen. Und dann auch hier, was wir dieses 2000 haben werden und wen ich hier neun schreiben wollte jetzt 192 Tausend Zeile und dann ein 1 und 0, 6. Und wieder, wir werden das in ein Date umwandeln. Wenn wir also voran gehen und dies ausführen, können wir hier sehr leicht sehen, wir können Datumsfilterung durchführen und wir können auch tagsspezifische während tun. Weil SQL von Natur aus Datums- und Uhrzeitformate versteht, was natürlich sehr nützlich ist, weil Datums- und Uhrzeitwerte so oft auftauchen. Und zuletzt, oder ganz allgemein, kümmern Sie sich um das, was zuletzt passiert ist, nicht so sehr wie das, was fünf Jahre passiert ist. In der Vergangenheit sollten Sie natürlich auf diese Informationen zugreifen können. Aber die meisten der Zeit, wenn Sie versuchen, auf Informationen zuzugreifen oder eine Analyse durchzuführen, sind Sie am meisten an den neuesten Daten interessiert. Und so können wir dies mit SQL sehr einfach tun, indem wir nur die inhärenten Datumswerte, die inhärenten Zeitwerte sowie den Zeitstempelwert verwenden die inhärenten Zeitwerte , da sie alle Art miteinander kompatibel sind. Nun, es gibt auch eine andere coole Sache, die diese Funktion jetzt genannt wird. Nun, was das tut, ist, dass es im Grunde den aktuellen Datums- und Zeitwert gibt. Also lasst uns weitermachen und das laufen. Und wir können hier sehen, dass das Ergebnis hier das gleiche ist , weil es nur einen Wert zurückgibt, aber es gibt das aktuelle Datum und die Uhrzeit in UTC-Zeit. So können wir sehen, dass es den genauen Datums- und Zeitwert in UTC-Zeit gibt. Und wir können dies auch hier wieder verwenden, um Werte daraus zu extrahieren. Zum Beispiel, um das aktuelle Datum zu erhalten, können wir einfach ab und zu das Ergebnis verwenden. Und von hier aus extrahieren Sie einfach das Datum. Und wir können dies als aktuelles Datum speichern. Und so unsere aktuelle Datumsspalte hier, zum Beispiel, wird es nur sein, was wir hier sehen, das aktuelle Datum. Jetzt können wir dies auch für Filter verwenden. Zum Beispiel können wir sagen, in Ordnung, lassen Sie uns alle Orte finden, an denen das Rechnungsdatum größer oder gleich oder Eisbahn ist. In diesem Fall wird es mehr Sinn machen. Aber sagen wir, oder die Devs-Komponente des Rechnungsdatums ist gleich dem heutigen Datum, was wir tun können. In diesem Fall werden wir natürlich keine Werte an uns zurückgeben, weil die Daten hier alt sind und es nichts gibt, was dem heutigen Datum nahe kommt, wie wir sehen können. Aber wir können immer noch dynamische Filterung wie diese verwenden. Zinsen lassen sich unsere Abfragen basierend auf dem Datum anpassen und wenn sich die Dinge ändern, bleiben unsere Daten immer noch aktualisiert, weil wir diese interne NOW-Funktion verwenden, die uns nur das aktuelle Datum und die aktuelle Uhrzeit gibt. Und dann können wir zum Beispiel das Datum extrahieren und, wissen Sie, Datumsinformationen von dort erhalten. Und natürlich, weil SQL von Natur aus Datums- und Zeitwerte versteht und richtig verwendet, können wir alle möglichen Vergleiche durchführen und Bereiche und alle möglichen coolen Sachen betrachten. 32. 30DateTimeIntervall, 30DateTimeIntervall, 30Date-: Keine Ergänzung dazu, nur Datums- und Zeitwerte zu extrahieren und Vergleiche und so zu machen. Sql hat auch eine wirklich coole Option, dass wir Zeitintervalle verwenden können. Sehen wir uns das an. Lassen Sie uns einfach unsere Skelett-Select-Anweisung hier ausführen, wählen Sie aus unserer Rechnungstabelle und beschränken Sie unsere Ergebnisse auf fünf. Gehen Sie weiter und führen Sie das aus. Versuchen wir nun, zuerst die Zeitdifferenz zwischen dem heutigen aktuellen Datum und dem Rechnungsdatum auszuwählen, oder versuchen wir, hier zu finden . Also lassen Sie uns das Rechnungsdatum extrahieren, so dass wir Vergleichswert haben. Und dann werden wir unsere jetzt nutzen, um uns den aktuellen Zeitpunkt zu geben. Und jetzt, um ein Intervall zu erhalten, müssen wir nur vom Rechnungsdatum subtrahieren, das einen Zeitstempel hat. Da beide Zeitstempel-kompatibel sind, können wir jetzt unseren Nullwert nehmen , der uns auch einen Zeitstempel gibt und vom Datum der Rechnung subtrahieren. Und hier können wir das zum Beispiel als Zeit seit der Rechnung nennen . Und wenn wir das ausführen, können wir hier sehen, das ist unser Rechnungsdatum und dieses Jahr ist der Zeitunterschied seit der Stimme. So zum Beispiel, wir haben hier gesehen, sind wir in diesem Fall zu sehen, es ist etwa 4.200 Tage seit diese Rechnungen halb vorbei, abhängig vom genauen Datum. Jetzt können wir diese beispielsweise auch in Datumswerte konvertieren, da wir derzeit Informationen über Stunden, Minuten und Sekunden erhalten. Wir können diese auch auf Datum umwandeln. Also, wenn wir wollen und welchen Fall werden wir nur direkt Daten bekommen, dunkle di, Unterschiede, wie wir hier sehen können. Dies ist also eine Möglichkeit, dass diese Art von Intervall auftaucht. Wir können Intervallunterschiede zwischen verschiedenen Zeiten bekommen. Aber natürlich hört es dort nicht auf. Wir können auch Intervalle verwenden. Sehen wir uns das an. Nehmen wir zuerst unsere Rechnungsspalte und unsere Rechnungsdatumsspalte, und lassen Sie uns einfach etwas Zeit darauf hinzufügen. Also Baby, wir wollen nicht haben oder wir wollen die Daten nicht in UTC zeigen. Wir haben nicht intern in UTC gespeichert, aber wenn wir es herausnehmen, wollen wir zu einer separaten Zeitzone wechseln. Gehen wir zum Beispiel zu UTC plus 1. Also, wie können wir hier eine Stunde auf Tour Rechnungsdatum hinzufügen? Nun, es ist wirklich einfach, weil alles, was wir tun müssen, ist Plus hier. Und jetzt haben wir diese Intervalloption und SQL. Und das Intervall. Jetzt haben wir hier nur eine Zeichenfolge von der Menge an Zeit, die wir hinzufügen möchten. Zum Beispiel möchten wir auf eine Stunde hinzufügen. Und hier können wir dies speichern, wie zum Beispiel, fügen Sie eine Stunde. Also, wenn wir das ausführen und uns das vorerst wegnehmen, kommt irgendwie im Weg. Wenn wir das ausführen, können wir sehen, dass dies unser ursprünglicher Eingabezustand ist und das ist unser Rechnungsdatum mit einem unserer Audits darauf. Was schön ist, ist, wenn wir unsere Datetime-Werte intern haben, wie Sie sehen können, können wir immer noch alle möglichen Timeline-Konvertierungen durchführen. Und sobald wir es herausnehmen und es angemessen machen, was auch immer wir zeigen wollen, sind natürlich Optionals viel, nur um eine Stunde hinzuzufügen, aber wir können wirklich nicht alles, was wir möchten, zum Beispiel, sondern lassen Sie uns unsere Spalte zuerst umbenennen. Also hier können wir sagen, Zeit hinzufügen. Lassen Sie uns 1 hinzufügen. Zweitens, Trend. Mach es so. Du kannst das tun und für eine Minute nachdenken. Wir können auf einen Monat hinzufügen, wir können auf ein Jahr hinzufügen, oder wir können sogar auf mehrere Jahre. Wenn Sie mehrere Jahre hinzufügen möchten, können Sie entweder zwei Jahre tun oder Sie können auch ein S hier setzen, wie wir sehen können, ihre Ergebnisse selbst ändern sich nicht. Aber es ist schön, weil wir diesen Intervallwert jetzt verwenden können, um ein Zeitintervall zu haben , das wir durch die Zeichenfolge hier angeben. Nun, was wir auch tun können, sagen wir, wir wollen sie zwei Jahre und einen Monat hinzufügen. Führen Sie das aus. Und wir können sehen, dass sich alles zu zwei annimmt. Die Intervallanweisung hier ist also cool. Und es ist cool, es in der select-Anweisung verwenden zu können, aber es ist noch kühler, es innerhalb unserer Filterung verwenden zu können. Also werfen wir einen Blick auf das und lassen Sie uns wählen oder wegnehmen oder Aussagen. Und lasst uns vorerst unser Limit loswerden. Und auch nur das hier loswerden und es machen, wonach wir filtern werden. Also möchte ich auf 15 Jahre zu unserem Rechnungsdatum hinzufügen. Und jetzt möchte ich filtern, wo unser Rechnungsdatum plus das Intervall aller. Lassen Sie uns alle Kapital machen, nur um irgendwie wieder anzuzeigen, das ist SQL-Anweisung. Plus das Intervall von 15 Jahren ist größer als das aktuelle Datum und die aktuelle Uhrzeit. Also, wenn wir dies ausführen, können wir in diesem Fall sehen, werden wir alle Werte zurückgegeben, weil wenn wir 15 Jahre auf das Rechnungsdatum hinzufügen , dass wir in 2024 sein werden. Und so können wir natürlich sehen, in diesem Fall wird alles nach dem aktuellen Datum und der aktuellen Uhrzeit sein. Das ist ein Weg, es zu tun. Eine andere Möglichkeit, dies zu tun oder zu filtern, ist, sagen wir, wir wollten alle Rechnungen in der letzten Woche finden. Was wir hier tun können, ist, dass wir auch Intervalle auf der anderen Seite verwenden können. Nehmen wir also zuerst an, lassen Sie uns diesen Weg nehmen, nur um die Spalten so zu verwenden , wie wir sie in regulären Tabellen finden würden. Nehmen wir also an, unsere Rechnungsdatumstabelle wird noch aktualisiert und wir möchten alle Rechnungen innerhalb der letzten Woche finden , damit wir alles in Ordnung hören können. Nehmen wir das aktuelle Datum und die aktuelle Uhrzeit und subtrahieren wir das Intervall von sieben Tagen. Also suchen wir alles in den letzten sieben Tagen. Und damit wir das ausführen können. In diesem Fall werden wir nichts zurückbekommen, weil das vor ewig passiert ist. So können wir hier zum Beispiel tun, wie wir es wieder können. In diesem Fall sind unsere Ergebnisse natürlich nicht ändern Routing bekam so viele Jahre. Aber Sie können hier sehen, nur vorstellen, dass unser Rechnungsdatum irgendwie ständig aktualisiert wurde. Wir können unsere Anfragen an die aktuellen Zeitintervalle anpassen lassen, oder wir können bestimmte Zeitbereiche finden, indem wir entweder das aktuelle Datum und die aktuelle Uhrzeit nehmen und sieben Tage abheben. Wir können dies auf ein Datum umwandeln, um sicherzustellen , dass die Zeitinformationen nicht hereinkommen und dann sieben Tage abnehmen. Und auf diese Weise können wir einige wirklich schöne Filterung tun, um zum Beispiel die Dinge zu betrachten, die die letzten sieben Tage passieren und Dinge, die in den letzten 10 Tagen passiert sind, die Dinge, die in den letzten 24 Stunden passiert sind, die Dinge, die geschah in den letzten fünf Stunden. Wir können eine wirklich benutzerdefinierte Zeitintervalle für die Filterung verwenden. Und das ist wirklich schön, weil die meiste Zeit, wenn wir Daten verwenden, die eine Art Zeitstempel zugeordnet sind. Wir werden nicht alle Daten über die ganze Zeit verwenden. Meistens sind wir meistens nur daran interessiert, bestimmte Zeitregionen zu betrachten. Und so können wir sehen, dass diese Option in der Lage sein, Intervalle zu verwenden um entweder Vergleiche mit dem aktuellen Datum und der Uhrzeit oder mit dem aktuellen Datum zu machen, oder Zeitintervalle zu definieren, indem wir diese Intervallanweisung hier verwenden, können wir wirklich benutzerdefinierte Select-Anweisungen, die uns nur Daten für genau die Zeitrahmen liefern, an denen wir interessiert sind. 33. 31KommentareHB: Jetzt ist eine weitere sehr wichtige Sache beim Schreiben von Abfragen oder auch beim Schreiben von Code im Allgemeinen das Verlassen von Kommentaren. Denn wenn Sie etwas lesen und wenn es komplex wird, Es ist wirklich schön, Kommentare oder Anmerkungen zu haben, die erklären, was Sie tun oder was Sie denken oder was dieser Teil vier ist, so dass, wenn Sie später wieder darauf kommen oder als andere Leute versuchten, es zu lesen, verstehen sie den Denkprozess und was hier vor sich geht. Denn manchmal, wenn Sie eine komplexere Abfrage oder komplexeren Code schreiben, und dann lassen Sie es für ein paar Monate und dann versuchen Sie , zurückzukommen, wenn Sie versuchen, herauszufinden , was genau Sie an jedem Punkt getan haben und warum dies hier in Ohio, es hat dieses Format und warum Sie vielleicht den besonderen Trick gemacht haben. Einen Kommentar hinterlassen zu haben, ist eine wirklich nette Möglichkeit, Menschen durch sie zu führen, so dass sie Ihren Denkprozess verstehen, die Art des Denkens und warum, zum Beispiel, spezifisch, das getan wurde oder was auch immer Sie wollen, um zu schreiben. Lassen Sie uns also einen Blick darauf werfen, wie wir Kommentare schreiben können. Und wir werden nur eine einfache Abfrageaussage hier aus unserer Rechnungstabelle verwenden. Und nur unsere Ergebnisse auf fünf zu begrenzen, nur weil es eine Gesichts-Skelett-Aussage ist. Also lasst uns weitermachen und einige Kommentare hinterlassen. Lassen Sie einige sehr grundlegende Kommentare wird die dennoch. Der erste Weg, wie wir Kommentare hinterlassen können, ist mit einem doppelten Bindestrich. Und dann wird alles, was wir nach diesem Bindestrich hier schreiben, gemeinsam sein. - Gut. Setzen Sie hier ein Leerzeichen, damit es besser lesbar wird. Zum Beispiel können wir hier sagen, Spalten auszuwählen. Und wenn wir das ausführen, dann können Sie sehen, dass wir irgendwie alles zurückbekommen. Und selbst wenn wir den Raum hier entfernen, ist es immer noch alles funktioniert. Die Kommentare sind nicht Teil der Ausführung, aber wir können sie hier lassen. Wir können sehen, dass sich diese nicht auf die nächsten Zeilen erstrecken , wie wir sehen können da dieser Teil der SQL-Anweisung noch geschrieben wird. Wenn wir jedoch nicht getrennt oder SQL-Anweisung über mehrere Zeilen haben, dann wird alles danach in der gleichen Zeile kommentiert werden, in diesem Fall werden wir jetzt ein Problem haben. Also das ist auch, es ist schön, all das Zeug über mehrere Zeilen aufgeteilt zu haben. Nun in diesem Fall, wie Sie vielleicht gesehen haben, macht Databricks tatsächlich etwas kluges Kommentieren, wobei, wenn Sie einen Kommentar haben und irgendwo eine neue Zeile hinzufügen, automatisch diesen Zahlenstrich vorne hinzufügt , der in den meisten Fällen eigentlich wirklich schön in diesem Fall als wir versuchten, zu unserer Abfrage zurückzukehren und natürlich nicht das war, was wir zu tun versuchten. Das ist eine Sache, die spezifisch für den Datengriff und nicht spezifisch für Postgres ist. Wie auch immer, wir können gemeinsame Aussagen wie diese verwenden. Und lassen Sie uns das einfach noch einmal ausführen, um die Warnung loszuwerden. So können wir KMS-Anweisungen wie diese verwenden, um unseren Code oder unsere Abfragen zu kommentieren. So können wir hier sitzen, zum Beispiel, Auswahl aus Rechnungstabelle. Natürlich sind unsere Kommentare in diesem Fall irgendwie trivial und nicht besonders nützlich. Aber wenn sich der Gedankenprozess dreht, hinterlässt Sie vielleicht einen Kommentar am Anfang eines komplexeren Teils der Abfrage. Und dann können Sie sehen, dass dieser Teil dies tut. Sie müssen nicht jede einzelne Zeile kommentieren, aber nur sagen, wie dieser folgende Block ist dafür verantwortlich oder wenn Sie irgendwo eine bestimmte Logik haben, verwenden wir zum Beispiel Positionsanweisungen, um bestimmte -Intervallen. Sie können sagen, dass R-Datenformat so ist, weshalb wir die Annahme verwenden können, um die Position dieses zu finden, um diesen nächsten Wert zu finden. Wissen Sie, nur erklären Ihren Denkprozess davon, wenn die Leute kommen, um es zu sehen oder zu erneuern, kommen Sie ein paar Monate später zurück, weil Sie vielleicht nicht ändern müssen, dass Sie immer noch verstehen können , dass Denkprozess und Sie müssen nicht versuchen, die Abfragen aufzuschlüsseln und den verstehen und irgendwie Gedankenprozess zu verstehen und irgendwiezusammenzufassen, den Sie ein paar Monate zuvor aufgetaucht haben. Also ja, wir können einzelne Zeile schreiben kommt dies, wir können sie auch in separaten Zeilen schreiben. Zum Beispiel ein neuer Zeilenkommentar. Dies wird also ein Kommentar sein, der in einer neuen Zeile auftritt. Und wieder, alle diese Kommentare, die mit S Doppelstrich beginnen, erstrecken sich nur über einzelne Zeilen. Wir können auch mehrzeilige Kontinente haben. Nun, eine Möglichkeit, die wir irgendwie gesehen haben, ist, dass wir einfach auf mehrere Zeilen erweitern und Commons und mehr Zeilen hier haben können . Aber das ist nicht sehr effizient. Denn wenn Sie über mehrere Zeilen schreiben möchten, möchten Sie nicht alle diese Bindestriche drin haben. Was wir stattdessen tun können, ist, dass wir ein Format verwenden können, das wie Schrägstrich Stern aussieht. Und dann startet das den mehrzeiligen Kommentar. Und wir können den Kommentar mit Stern Vorwärtsslash wieder beenden. Und dann einfach wegnehmen die Aussagen hier, weil es nicht mehr weniger als nötig. Und jetzt können wir sehen, jetzt haben wir einen mehrzeiligen Kommentar. Also alles zwischen diesem Schrägstrich Stern und Stern vorwärts Schrägstrich, all dies wird kommentiert werden und fragen Kommentare gehen. Wir können sehen, dass sich unsere Ergebnisse natürlich nicht ändern werden, wenn wir dies ausführen . Nun, mit diesem, nun, können wir sogar tun, ist, dass wir ungewöhnlich zwischen den Aussagen. Zum Beispiel können wir hier sagen, um die Tabelle zu sagen und dann enden oder gemeinsam wieder. Und wir können dies ausführen, und das wird immer noch funktionieren, weil nichts davon Teil der tatsächlichen abschließenden Abfrage sein wird, die ausgeführt wird. Alle Kommentare, die hier entlasten, sind nur um unsere Anfragen zu stellen oder wenn Sie es woanders verwenden. Und Code ist die Kommentare im Allgemeinen gibt es, um den Code lesbarer zu machen, um Ihren Denkprozess zu erklären, um die Logik zu erklären. Auch hier ist der Punkt der Kommentare nicht, jede einzelne Zeile zu kommentieren, vor allem wie die triviale gemeinsame, die hier begangen haben, indem wir unsere Spalten auswählen, aus der Rechnungstabelle auswählen. Aber vielmehr ist es, wenn Sie in einen Teil gehen, der nicht offensichtlich und selbsterklärend ist , das einige Verwirrung verursachen kann. Es ist gut, einfach einen Kommentar zu hinterlassen, um in diesem gemeinsamen zu erklären kann kürzer sein, kann lang sein, je nachdem, wie viel Erklärung notwendig ist , nur um zu erklären, was hier vor sich geht. Das ist also jemand, der neu darin ist, der die Abfrage zum ersten Mal sieht. Kommen Sie zurück einen Monat, zwei Monate, sechs Monate, ein Jahr später auf die gleiche Abfrage kann immer noch sehr schnell verstehen und irgendwie verstehen, die Essenz der Abfrage. Verstehen Sie, was in jedem Teil los ist und dass sie nicht durch sie gehen und oder verloren durch das, was auf einem bestimmten Teil vor sich geht. Und dann müssen sie Zeit damit verbringen, herauszufinden, okay, was genau macht dieser Teil der Abfrage hier und warum ist es so und wie warum gibt es all diese besonderen Bedingungen? Auf diese Weise, Mino, Kommentare zu haben, kann das Leben eines jeden viel einfacher machen. 34. 32AggregationsFunctionsHB: Was an SQL wirklich cool ist, ist, dass Abfragen weit über die Auswahl bestimmter Spalten und Zeilen hinausgehen und Operationen für Zeilen ausführen können , was bereits sehr cool ist. Aber wir haben auch Möglichkeiten, alle Arten von Aggregationen durchzuführen. Lassen Sie uns jetzt einen Blick auf etwas davon werfen. Lasst uns wieder in unseren Track-Tisch gehen. Und schauen wir uns genau diese Millisekunden-Spalte an und schauen Sie sie an, versuchen Sie, einige aggregierte Informationen darüber zu erhalten. Zum Beispiel, was, wenn wir wollen, um die durchschnittliche Zeit eines soliden oder die längste Zeit oder die kürzeste Zeit zu finden. Oder was, wenn wir nur einige Informationen wollen, wie viele Werte in dieser Spalte sind? Werfen wir einen Blick auf einige davon. Wir werden unsere Skelett-Select-Anweisung zuerst schreiben, Auswahl aus der Truck-Tabelle und Begrenzung unserer Ergebnisse auf 5 plus nur irgendwie sehen Sie, dies ist die Tabelle für Ich mag die Auswahl aus. Ordnung, also werden wir jetzt zuerst versuchen, die durchschnittlichen Millisekunden für den Patienten zu finden. Um dies zu tun, können wir eine Funktion namens oder bezeichnet AVG für den Durchschnitt verwenden. Und wenn wir hier nur in die Millisekunden-Spalte setzen, dann werden wir einen Wert zurückgeben, der die durchschnittliche Dauer sein wird. Wir wissen, dass es die Dauer ist, weil das irgendwie ist, was die Millisekunden-Spalte spendet. Aber es ist nur der Durchschnitt der Millisekunden-Spalte. So können wir uns einen besseren Aliasdurchschnitt von Milli Sekunden geben. Und so wird dies der Durchschnittswert unserer Millisekunden-Spalte sein. Wir können auch andere Dinge tun. Zum Beispiel können wir die längste Zeit finden. So können wir das Maximum der Millisekunden-Spalte finden, die wir hier sehen können. Dies hier wird die längste Zeit sein, die wir in dieser Millisekunden-Spalte hier haben. Und das ist unser Wert hier. Wir können auch die kürzeste Zeit finden, indem wir das Minimum nehmen. Sum, unseren Namen hier nochmals zu aktualisieren, werden wir das Minimum haben. Und hier können wir sehen, das ist die kürzeste Zeit, die wir in unseren LKW-Werten für die Zeit in Millisekunden haben. Wir können auch eine, eine andere Aggregationsfunktion verwenden, wo wir alle Werte in einer Spalte zusammenfassen können , zum Beispiel. So können wir alles in Millisekunden zusammenfassen, was die Gesamtzeit aller Tracks sein wird. Wenn wir also alle Werte in dieser Millisekunden-Spalte zusammenfassen , wird uns dieses Ergebnis hier geben, wie wir sehen können, jetzt gibt es eine weitere coole Funktion, die wir haben, die die Zählung ist. Jetzt die Zählung hier drin, wir werden eine Spalte setzen und es wird die Anzahl der Vorkommen zählen, die wir haben. Es wird uns also nur eine Zählung der Anzahl der Werte geben, die wir haben. So können wir zum Beispiel hier die Millisekunden-Spalte einfügen. Und es wird uns die Anzahl der Instanzen in Millisekunden sagen. Und wenn wir das ausführen, können wir in diesem Fall sehen, dass wir 3.503 verschiedene Instanzen haben. Also 3.503 Werte hier drin. Dies sind keine eindeutigen Werte. Dies sind nur verschiedene Instanzen in diesem Fall, oder die Tabelle wurde irgendwie bei 500 abgeschnitten, nur weil sie nicht zu viel zeigen will. Aber wir können tatsächlich, wir können hier für Sie sehen in sie Filterung zum Beispiel, wir haben mehr Werte zur Verfügung. In der Tat haben wir 3.503 Zeilen, in denen diese Werte zu finden sind. Nun der Grund, warum ich ausdrücklich die Anzahl der Instanzen in Millisekunden sage und weil, wenn es Nullwerte gibt, dies die Anzahl beeinflusst. Also lassen Sie uns einen Blick auf einen Wert werfen ist, wo wir wissen, dass es keine Werte gibt, die die Komponistenspalte ist. Also lassen Sie uns die Anzahl der Instanzen zählen, die wir haben und die Hoffnung und die Komponistenspalte als Anzahl der Instanzen und Composer und führen Sie diese und Blick auf die Ergebnisse hier sehen wir haben 2525 Zeilen, die keine Nullwerte enthalten. Während für die Millisekunden, haben wir 3.503 Zeilen, die keine Nullwerte enthalten. Was ist, wenn wir nur die Gesamtzahl der Zeilen erhalten wollen, ohne sich Gedanken darüber machen zu müssen, ob eine Spalte passieren kann oder nicht, kein Wert innerhalb. Na ja. Und zwei gängige Wege, das zu tun. Einer von ihnen setzt nur einen Stern hierher. Dies wird die Gesamtzahl der Zeilen sein und der Anfang wird nur im Grunde gehen, um uns alles zählen zu lassen. So können wir hier sehen, wenn wir es betrachten, haben wir 3.503 Zeilen ohne alte Werte. Wir könnten auch die ganze Zahl hier einfügen, und es wird nur eine für jede einzelne Zeile zählen, die es hat. Und damit wir sehen können, werden wir das gleiche Ergebnis hier zurückgeben. So können wir die Zählfunktion für Spalten verwenden, in diesem Fall werden wir die Anzahl der Zeilen zählen, in denen wir eine unbekannte Werte haben, die wir sehen können, sind unterschiedlich in Abhängigkeit von den verschiedenen Spalten. Zum Beispiel, im Komponisten, wo wir einen Nullwert haben, ist diese Zahl niedriger. Oder wir können entweder einen Stern oder die Nummer eins hier drinnen setzen. Und das wird nur für uns die Gesamtzahl der Zeilen zählen, die wir haben, wie wir hier sehen können. Jetzt können wir natürlich immer noch ein paar coole andere Sachen machen, oder Spalten. Zum Beispiel, verwenden wir zuerst einige einfache Arithmetik und drehen oder Millisekunden in zwei Minuten, Bruchminuten. Das erste, was wir tun werden, ist, nur zu teilen oder Millisekunden durch tausend. Das wird uns die Gesungene als Sekunden geben. Und dann werden wir es durch 60 teilen, was uns die Länge des Songs in Minuten geben wird. Also lasst uns weitermachen und das laufen. Und wenn wir nach links scrollen, sehen wir hier die durchschnittliche Songlänge in blau. Dieser Fall wird es Minuten dauern, ist nur ein wenig mehr als sechs Minuten. Also 6.05, das ist 606, das ist jetzt nicht sechs Minuten und Sekunden. Aber dieser Wert liegt hier zwischen 01. Also ist es 0,6 von einem. Das wird also ein Bruchteil sein, der hier ist. So können wir sehen, wir können immer noch Dinge mit unseren Spalten im Inneren tun und dann die Aggregationen darauf verwenden. Und natürlich werden wir nur die Funktion für das Endergebnis aufrufen , das wir hier drin haben. 35. 33Groupingund 33GroupingAndFilteringAggregationsHB: Also haben wir gerade gesehen, dass Aggregationen und Aggregationen cool sind. Aber was ist noch cooler als Aggregationen von verschiedenen Gruppen. Also, was das bedeutet, ist, sagen wir, wir wollen die Anzahl der Songs, die jeder der Komponisten, die geschrieben haben, herausfinden. Derzeit müssten wir die Zählfunktion verwenden, mit der wir die Anzahl der Zeilen zählen können, die wir haben. Und dann müssen wir für jeden Komponisten filtern, für jeden anderen Komponisten. Aber SQL kann tatsächlich weit darüber hinausgehen. Und was wir tun können, ist, dass wir Gruppierungen nach jedem einzelnen Eintrag erstellen können , den wir hier drin haben. Und dann können wir Aggregationen für jeden dieser verschiedenen Einträge erhalten, die wir haben. Jetzt wird dies spezifisch für die Verwendung von Aggregationen sein und es gibt einige spezifische Anforderungen, aber schauen wir uns das an. Lassen Sie uns tun, die erste Aufgabe kann nicht über gesprochen werden, die Auswahl für die Suche nach der Anzahl der Tracks, die wir für jeden verschiedenen Komponisten hier haben. Beginnen Sie also mit unserer Skelett-Anweisung, wählen Sie alle Spalten aus der Truck-Tabelle aus und beschränken Sie unsere Ergebnisse auf Phi, hier ein Semikolon für gute Praxis zu haben. Und wir können es richtig sehen. Das sind also die ersten fünf Ergebnisse auf unserem Tisch. Ok? Also, was wir jetzt haben wollen, ist, vor allem, lasst uns die Anzahl der Zeilen zählen, die wir haben. Und so wird das nur unsere Anzahl von Zeilen sein, die Sie hier sehen können, sind 3.503. Okay, aber wie können wir das nach den verschiedenen Komponisten gruppieren, die wir haben? Nun, wir können tun, ist es eine coole Aussage, die wir aufgerufen und Gruppe BY verwenden können. Und hier können wir die Spalte oder Spalten setzen, nach denen wir gruppieren möchten. Lassen Sie uns beispielsweise nach der Spalte „Composer“ gruppieren. Und jetzt, wenn wir das ausführen, können wir hier sehen, dass wir unterschiedliche Zählwerte bekommen. Eigentlich wissen wir im Moment nicht, worauf sich das bezieht. Das ist okay. Wir können einfach unsere Komponistin Spalte zwei herausnehmen. Und wir können unsere Komponisten-Kolumne zeigen. Und wir können das Ergebnis des Kontos zeigen. Und wir können hier sehen, okay, Also, wenn der Komponist John Dolan ist, sehen Sie, wir haben CounTIF eins und führen den Komponisten ist das, Sie haben eine Zählung von eins, und so weiter. So können Sie hier sehen wir die verschiedenen Werte für die verschiedenen Einträge, die wir Komponisten haben. Und wenn wir wollen, können wir die Frauenaussage entfernen und irgendwie das volle Ergebnis für alle verschiedenen Komponisten sehen. So können Sie hier einige Komponisten sehen, für die wir mehr Einträge haben. Die meisten von ihnen sind viele von ihnen, für die wir nur einen Eintrag haben. Also in diesem Fall ist es wirklich abhängig vom Komponisten ist, können wir hier sehen. Jetzt können wir natürlich auch unsere Order BY Anweisung und weniger Ordnung verwenden und uns auch einen Alias als Anzahl der Tracks geben . Und lassen Sie uns nach einer Reihe von Spuren, nach einer Anzahl von Spuren in absteigender Reihenfolge sortieren, so dass wir zuerst die höchste Zählung erhalten. Also das erneut ausführen, zurück nach oben scrollen, okay, also ist die höchste Anzahl tatsächlich diejenige, bei der Sie keine Werte haben. Danach haben wir Steve Harris, U2, Jogger, Schrägstrich Richards, und so weiter. So können Sie hier jetzt für jeden Komponisten sehen, den wir haben, wir wissen auch, wie viele Tracks in diesem Fall wir für sie in unserer Tabelle haben. Jetzt können wir auch einige Filterung für diese hinzufügen, und es gibt zwei verschiedene Arten der Filterung. Lassen Sie uns zuerst mit einer grundlegenden 1 gehen und nehmen Sie einfach alle Fälle heraus , in denen der Komponist null ist. Also, wo werden wir das hinstellen? Weil wir es von früher erinnern, dass die Reihenfolge, die wir Anweisungen haben, und es ist eigentlich wichtig, eine SQL-Abfrage. Und wir müssen sicherstellen, dass alles in der richtigen Reihenfolge ist. Nun ist der Ort, an dem dies los war, zwischen der Anweisung von und der Gruppe BY. Also werden wir sagen, wo der Komponist nicht null ist. Und jetzt lassen Sie uns das ausführen und wir können hier sehen, jetzt ist der Null-Fall verschwunden, aber keiner der anderen Werte hier wird geändert, weil wir Käuferkomponisten hier gruppieren. Jetzt ist es wieder wichtig, dass wir die richtige Reihenfolge haben. Denn zum Beispiel, wenn wir das nehmen und wir es hier setzen, dann wird es nicht funktionieren. Daher müssen wir sicherstellen, das