T-SQL in zwei Stunden | Tim Smith | Skillshare

Playback-Geschwindigkeit


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

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu jedem Kurs
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Eine Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu jedem Kurs
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Eine Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

11 Einheiten (2 Std. 20 Min.)
    • 1. Einführung und Teil 1

      10:00
    • 2. Teil 2

      9:46
    • 3. Teil 3

      11:00
    • 4. Teil 4

      11:39
    • 5. Teil 5

      8:45
    • 6. Teil 6

      10:38
    • 7. Teil 7

      9:04
    • 8. Teil 8

      10:26
    • 9. Bonus-Herausforderung - - 1

      33:55
    • 10. Bonus-Herausforderung - - 2

      23:11
    • 11. Sql Interview Serie Intro 1

      1:32
  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Alle Niveaus

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.

148

Teilnehmer:innen

--

Projekte

Über diesen Kurs

In diesem kurzen Kurs lernen wir:

  • Die Grundlagen zur T-SQL
  • So stellen Sie Fragen mit Daten und beantworten diese Fragen mit T-SQL.
  • Zwei hochprofitable Beispielfragen, die wir mit T-SQL beantworten können.

Dieser Kurs ist ideal für:

  • Web- und Anwendungsentwickler, die mit einer Datenbankebene arbeiten.
  • Datenanalysten und Entwickler, die die Grundlagen schnell überprüfen möchten.
  • DBAs denen T-SQL fehlt.
  • Unternehmer, die ihre eigenen Daten schnell analysieren möchten.

Triff deine:n Kursleiter:in

Teacher Profile Image

Tim Smith

Top Instructor - Data & Security

Kursleiter:in

I'm excited about explaining deep technical topics in a clear manner. Many students, readers and clients of mine have noticed that both of these communities are full of jargon that confuses people who are new. These communities prevent new people from entering because rather than bringing the technology to new people, they encumber new learners with terms they don't grasp.

Should you follow me and enroll in my courses? If the following excite you:

Making your data fascinating so that you tell better stories and earn more money Learning the very basics of security, which many people don't know Being taught by someone who's enthusiastic and excited about the topics they're teaching

Remember, if you're a premium student, you have unlimited access to all of my courses along wi... Vollständiges Profil ansehen

Kursbewertungen

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

Im Oktober 2018 haben wir unser Bewertungssystem aktualisiert, um das Verfahren unserer Feedback-Erhebung zu verbessern. Nachfolgend die Bewertungen, die vor diesem Update verfasst wurden.

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 bei 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 und Teil 1: In Ordnung, wir werden mit der Einführung beginnen. Die heutige Datenbankentwicklung Basic T Fortsetzung Abfrage. Dies ist also der Teil des Kurses, in dem wir einige der Grundlagen von TCP-Querian durchlaufen werden . Ich würde vorschlagen, durch diesen Teil der Serie zu gehen, dann kommen zurück zu diesem Teil der Siri, wenn Sie beginnen, an dem Kursprojekt zu arbeiten, OK, es gibt eines meiner Lieblings-Ratschläge Überprüfen Sie die Grundlagen Ihres Berufs jeder Jahr. Also jedes Jahr gehe ich über grundlegende t Fortsetzung Abfrage, was wir durchmachen werden auf dem Grund, warum ich das tue, ist, weil ich auch einige Grundlagen vergessen werde . Okay? Und Sie wollen immer wieder auf die Grundlagen, die Sie lernen. Also werde ich diese Videos auf jeweils etwa 10 Minuten halten, und nach 10 Minuten werde ich aufhören. Und dann wird es einen Teil zwei in einem Teil drei geben. Also werde ich ziemlich schnell gehen. Mein Vorschlag wäre bei dir zu mir. Du kannst die Geschwindigkeit verlangsamen, wenn du mehr daraus herausholen willst oder wenn du denkst, dass ich langsam werde , kannst du den Ort beschleunigen, Geschwindigkeit. Also die erste wichtige Sache zu beachten, wenn wir Cleary Teoh mit TC voll, wir müssen im Kontext der Datenbank abfragen. Und wenn ich mich hier bei einem Server wie diesem Server anmelde, wird es mich standardmäßig beherrschen. Okay, du wirst es bemerken. Ich sage, verwenden Sie Anwendung, weil ich zuerst eine Verbindung mit der Anwendungsdatenbank herstellen möchte. Das Wichtigste. Wenn ich das nicht tue, wird es mich standardmäßig fangen, um zu meistern. Und dann bin ich nicht mehr in dem Kontext, den ich sein muss. Jetzt, da ich im Kontext der Anwendung bin, kann ich die Tabellen abfragen, die an der Anwendung beteiligt sind, und wir werden in einer Sekunde übergehen. Wie ich Cleary-Tabellen in einer anderen Datenbank kann, die wir abfragen über Datenbankabfragen hinweg machen können, aber im Moment werden wir das nicht abdecken. Also schauen wir uns an, ich werde den obersten Stern aus dieser Tabelle Gold historische Daten oder GLBT Historische Daten auswählen . Nun, was ist Top One Star? Ich. Okay. Wenn ich Stern auswähle, bedeutet das, dass ich alles aus einer Tabelle auswähle. Sofort. Es gibt 2300 und 55 Reihen, die Sie ganz unten rechts sehen. Einige von euch könnten meinen Mund sehen. Einige von Ihnen können nicht, abhängig von der Software, die Sie verwenden, um dies anzuzeigen, und Sie können sehen, dass die Ausgabe auf die Ausgabe in einer Sekunde mit den Spalten hier abdeckt. Aber der Schlüssel ist, dass, wenn ich Sturm wähle, alles aus der Tabelle zu bekommen, richtig, so ist dies der Tabellenname, den wir sehen können. Die Tabelle hier wird DB O in einer Sekunde abdecken. Aber das ist der Tisch hier. Ich bekomme alles. Das ist es, was Stern bedeutet. Wenn ich sage, wählen Sie oben einen Stern, das bedeutet, dass Sie einfach den oberen. Holen Sie sich einfach einen Datensatz im Grunde. Und wir sehen, dass der Nachfolge-Server tut, ist es, dass ich das Gefühl habe, dass es hier keinen Index gibt . Das werden wir später abdecken. Also, was sind die Spalten? Werden die Spalten, wenn ich dies in der Tabelle herunterklappen? Wir haben Spalten in dieser Tabelle und in den Spalten haben wir Zeilen von Daten, oder? Ich kann tatsächlich sehen, wie dieser Tisch gebaut wurde. Wir bauen derzeit keine Tabellen, aber wir bauen Tabellen in diesem Kurs. Und wenn ich diese Tabelle skripte, kann ich sehen, dass dieser Tisch so entworfen wurde, oder? Es gibt eine I D-Spalte, und es ist eine Ganzzahl. Es gibt eine Preisdatenspalte und es ist ein Datum, richtig? Preisdatumsspalte und es ist ein Datum. Es gibt eine Preisspalte. Es ist eine Dezimalzahl, etcetera, richtig. Dies ist diese Tabelle, Also Intriger sind, was Tabellen Luft auf eine Menge Leute hängt davon ab, wer Sie fragen, wirklich, Aber viele Leute verwenden Schema ist für die Organisation, richtig? Also lassen Sie uns ein Beispiel verwenden. Hier werde ich Schema erstellen, bla, bla , und es wird mir ein neues Schema erstellen. Nun, wenn ich Tabellen aktualisiere, werden keine Tabellen, die dieses Schema verwenden. Aber lassen Sie uns sagen, dass ich dieses Schema verwenden möchte. Ich könnte Select Star in bla bla Punkt Gold historische Daten tun, und ich habe jetzt eine Tabelle auf diesem Schema erstellt Also lasst uns zurück zu diesem. Schauen wir uns die neue Tabelle an, die wir gerade erstellt haben, und wir werden dies später im Kurs behandeln. Aber das ist eine der schnellsten Möglichkeiten, eine Tabelle aus einer vorhandenen Tabelle zu erstellen, besteht darin nächste Zeile in den neuen Tabellennamen aus der vorhandenen Tabelle auszuwählen. Aber es geht davon aus, dass wir einen neg zip Stacheltisch haben. Denn wenn wir es nicht tun, dann tun wir es nicht. Und du wirst sehen, dass ich jetzt weiß, wie es mir leid tut. Ein Tisch unter dem bla, blah Schema auf dem Tisch. Der Name ist Gold. Historische Daten. Okay. Und es hat die gleiche Menge an Daten hat die gleiche stieg. Dasselbe. Alles in Ordnung? Denn im Grunde haben wir es kopiert. Die regs squiggly Zeile ist, weil ich einen Fortsetzungsserver wieder verbinden müsste. Es denkt, dass das nicht existiert. Das tut es, aber es erkennt das nicht, weil es nicht so oft auffrischt. Und das gilt auch für sequel server 2016. Jetzt ist das hier 2008 auch. In diesem Kurs haben wir 2008 auch verwendet , und wir verwenden sequel server 2000 und 16. Wir könnten sogar sequel Server 2014 verwenden. Ich benutze mehrere Ergänzungen zum Nutzen der Studenten, und ich möchte sagen, dass die Sequels über 2016 Ich benutze ich denke, es ist entweder dieser über Entwickler , der für mich. Ich zeichne eine leere oder die Enterprise-Edition. Es ist also entweder Enterprise Edition oder was auch immer. Der ist direkt unter der Enterprise. Es ist über Entwickler. Dieser hier wird ausgedrückt. Okay. In Ordnung. So wissen wir, wie man Daten aus einem Datenbankkontext auswählt. Richtig? Waren im Zusammenhang mit der Anwendung. Wir wissen, wie wir alle Daten auswählen können, die wir auswählen können. Ein wenig der Daten wird später in die Where-Klausel gelangen. Nicht in diesem Video. Nur weil ich gerade die Zeit betrachte, in der es wahrscheinlich ein bisschen sein wird, also was, wenn ich alle Daten aus einer anderen Datenbank auswählen wollte? Es tut mir leid. Aus einer Datenbank in A aus A-Tabelle in einer anderen Datenbank. Okay, jetzt, zuerst, bevor wir das tun, schauen wir uns an, wie schwächer wird. Nehmen wir an, ich war mit Master anstelle der Anwendung verbunden. Wie kann ich den Versuch auswählen, über ein Wort nachzudenken, wie kann ich eine vollständige Tabelle aus der Datenbank auswählen , die mit der Datenbank beginnt? Okay, also erinnere dich, bevor ich historische Golddaten mache, okay? Ich gebe das Schema nicht an, also könnte ich, wenn ich den Schemahinweis angeben würde, wie das funktioniert. Wenn ich bla bla mache, würde es richtig funktionieren. Ich kann die Daten auswählen. Was wäre, wenn ich bla bla mo machen würde, die Altria Group ist? Für die Aufzeichnung, es gibt keinen Objektnamen so richtig? Ich bekomme einen Fehler. Aber was passiert, wenn ich db o dot miow tun würde Wir sehen, dass es eine db omo, richtig? sehen wir nicht. Da ist ein bla bla. Lassen Sie mich das auffrischen. Deswegen siehst du, wo wir eine bla bla haben, aber wir haben keine db bla, bla mo richtig. Wir haben nur eine bla, bla Gold historische Daten. Okay, also nur zu wissen, dass das etwas ist, das wir gut machen. Einer der Kontext für die Auswahl der Punktschema-Dot-Tabelle der Datenbank ist dieser Punktkontext , richtig? Sie werden bemerken, dass ich aus der Anwendungsdatenbank, dem Schema und dann der Tabelle auswähle ? Ich kann sie auch in Klammern setzen, und das ist für mich die beste Methode für dio-Datenbankschema und den Tabellennamen. Ich kann auch hier tun, weil wir wissen, dass wir ein Blockgesetz haben, und wir werden sehen, dass das auch funktioniert. Okay, um zurück zur Ansicht zu gehen Also der Kontext hier und ich schreibe das hier draußen gibt es keinen Tabellenname das ich sah, dass etwas sofort nicht stimmt. Okay. Der Kontext ist daher select star aus der Datenbank dot Schema dot Tabellenname oder eine Tabelle. Ok, während außerhalb des Geltungsbereichs dieses Kurses. Weil wir keinen Linkserver machen würden, wenn Sie einen Linkserver machen würden, würden Sie das tun. Server dot Datenbank dot Schema Punkt Tabelle Studenten achten Posits Video, wenn Sie Teoh benötigen . Ich habe mit Senior Entwicklern gearbeitet, die das nicht wissen. Das ist ziemlich peinlich, weil es sehr einfach ist. Wie Sie Datenbankpunktschema Punkttabelle sehen, wenn Sie es auf der Datenbankebene auf der Serverebene tun möchten , funktioniert Serverpunktschema Punkttabelle immer auf die gleiche Weise, wie dieser Server sein wird was auch immer der Servername ist, Die Datenbank wird unabhängig von dem Datenbanknamen sein, das Schema wird unabhängig von dem Schemanamen sein, auf der Tabelle wird der Tabellenname im Fall von Link-Servern sein. Sie müssen also sicherstellen, dass Sie Berechtigungen haben, die Sie nicht richtig eingerichtet haben, und Manchmal werden Sie feststellen, dass, wenn sie nicht funktionieren, hier ein schneller Hack für ein Problem ist, mit dem Sie konfrontiert werden. Was Sie tun müssen, ist, dass Sie mit der rechten Maustaste auf den Link-Server klicken, ihn laden und dann drücken. Okay, du hast nichts geändert, aber das erfrischt es. Ich weiß nicht warum, aber das ist eigentlich eine Lösung für viele Linkserver-Probleme, Also notieren Sie, dass unten sehr wichtig ist. Ich habe mit älteren Entwicklern gearbeitet, die das nicht wissen, und es ist ziemlich peinlich. Okay, also sind wir im Kontext der Anwendung. Wir haben noch eine Minute. Schauen wir uns an, wie könnte ich, wenn ich in einer Datenbank bin, eine Verbindung zu einer anderen Datenbank herstellen, ohne diese Verwendung in eine andere Datenbank zu ändern? Also, während ich mit der Anwendung verbunden bin, kann ich aus einer anderen Datenbank auswählen, die ich aus der Bitleihanalyse auswählen kann. Db o dot db o dot Tabelle Agentur Bewertungen. So postiert Video. Ich werde Ihnen jetzt eine Frage stellen und ein Video schreiben und sehen, ob Sie das beantworten können bevor Sie die Antwort hören. Was bedeutet das? Natürlich bin ich auf Antrag. Was bedeutet das? Die Bit-Darlehens-Analyse. Was ist db o bedeuten. Und was ist TB? Unterstrichen Agentur Bewertungen bedeuten posten-Video und beantworten die Frage. Ich gebe fünf Sekunden, bevor ich antworte. Okay, so bieten Lindy Analyse Datenbankname BBO war ein Schemaname und TB Unterstrich. Agenturbewertungen sind ein Tabellenname, richtig? Obwohl ich im Kontext der Anwendung bin, sehen Sie, es hat sich nicht geändert, oder? Ich bin immer noch im Kontext der Anwendung, weil ich die Datenbank hier mit dem Punkt, Punkt angegeben habe , den ich mit dieser Datenbank verbinde. Das schließt also diesen ersten Teil ein. Im nächsten Teil gehen wir auf ein bisschen mehr Details. 2. Teil 2: Beginnen wir Teil zwei basiert, im Grunde Fortsetzung Abfrage. Und ich werde direkt in das eintauchen, damit wir unsere Zeit am effektivsten nutzen können. Wenn du denkst, dass ich schnell werde, bitte langsamer. Die Geschwindigkeit, die du zu mir hast, erlaubt dir das zu tun. Wenn Sie denken, dass ich langsam werde, beschleunigen Sie bitte die Geschwindigkeit. Ordnung, also im letzten Video, was wir uns angeschaut haben, ist, dass wir uns einige der Grundlagen der Auswahl eines Rechts angesehen haben, und wir haben Spalten und wir haben Datenreihen. Also wähle ich die Top 100 aus diesem Tisch aus. Ich werde es dir wirklich schnell zeigen. Also diese ich d ist eine Spalte Preisdaten gebracht Preisdatum ist eine Spalte. Preise nennen ihn durchschnittlich. Ich weiß nicht, was, Boba, Boba ist auf der Waffe. Natürlich ist dieser eine Reihe zu seiner Reihe usw., usw., und Sie können das sehen. Sie wissen, dass es Daten in diesen Tabellen wie 5 4004 usw. gibt. OK, aber was passiert, wenn ich nur eine Datenzeile betrachten möchte und die Datenzeile betrachten möchte? Das sind 2000 und 11. Nun, ich wähle Star aus und füge hier eine Codezeile hinzu, die die Tray Clots genannt wird. Die where-Klausel, wenn Sie Notizen machen, ist eine Filterklausel. Hier wenden wir unseren Filter an. , Es gibt viele verschiedene Möglichkeiten,wie ich diesen Teil des Kurses unterrichten könnte. Aber worauf ich mich stattdessen konzentrieren werde, sind einige der Grundlagen über die Where-Klausel, die sehr wichtig ist, über die Leute stolpern. Sogar ältere Menschen stolpern zuerst darüber, wo Klauseln ohne Index bedeutungslos sind. Okay, ähm, wir zeigen ein Beispiel, dass dieser Button hier oben in Management-Studio-Shows den tatsächlichen Ausführungsplan enthält . Okay, wir werden sehen, wie sequel server tatsächlich analysiert diese Abfrage hinter den Kulissen. Folge-Server wird also versuchen, alle Abfragen zu optimieren, die wir ausführen, und wir werden sehen, dass es einen Tabellen-Scan macht. Willst du wissen, warum? Weil es überhaupt keinen Index in welcher Tabelle Skin gibt, denn diejenigen von Ihnen haben keine Treffer die gesamte Tabelle, richtig, weil es keine Filterung gibt. Also wirklich, das ist eine Art sinnlose Abfrage in dem Sinne, dass es keinen Sinn für mich gibt, eine bewusste Klausel anzugeben , wenn ich nicht wirklich einen Index darauf habe, es sei denn, ich möchte nur Ressource verschwenden, und das ist immer ein Möglichkeit. Aber das Bessere wäre, die Tabelle zu indizieren. Also in dieser Version von Sequel Server, die 2008 sind zwei und ein gutes Interview Frage, übrigens, wäre ich würde ich fragen Interview Fragen viel, die ich versuche, Leute zu stolpern, so werde ich sagen, so in Fortsetzung Server 2000 und acht sind auch. Ich habe einen gruppierten Spaltenspeicherindex, der, was ich erwarten würde, dass jemand sagt, Sie können keine gruppierten Spaltenspeicher-Indexzwiebeln haben, die über 2008 gleich sind, sind auch Sequel Server 2000 und acht oder zwei. Sie können nur zwei Indizes haben. Ein gruppierter Index und ein nicht gruppierter Index als Nächstes. Das war's. OK, also werden wir einen nicht gruppierten Index erstellen, damit die Sündensteuern einen nicht gruppierten Index erstellen . Ich werde sagen, ich X Ich werde die Spalte Preisdatum auf dem Tabellennamen benennen, das ist G. L D historische Daten und dann der Spaltenname Preisdatum und ich möchte es indiziert. Nun, wir werden nur, äh, was ist das Fälligkeitsdatum? muss ich nicht tun. Ist Cindy okay? Also werde ich diesen Index jetzt erstellen, denken Sie daran, daran, im Ausführungsplan, dass, wenn ich nach Preisdatum gefiltert habe, es eine Tabelle Skin gemacht hat. jetzt, Vergleichen wirjetzt,was passiert, wenn ich das mache, okay. Whoa. Es ist völlig anders, oder? Es ist nicht mehr nur ein Tisch-Scan, okay? Und wir werden sehen, dass es hier eine verschachtelte Schleife macht. Es indiziert nicht suchen, und es tut es nicht. Alles klar, du schaust nach Haufen. Okay, jetzt werde ich hier nicht zu tief in Kriechpläne eingehen. Einige davon werden wir später in diesem Kurs behandeln, aber der Schlüssel ist, dass es sich nicht mehr um einen Tabellen-Scan handelt. Nun, wirklich, für die meisten Leute, selbst eingeschlossen, bedeutet das nicht wirklich viel, oder? Weil es so ist, ja, aber ich meine, ist das viel besser als es war? Also lassen Sie uns voran und lassen Sie uns den Index fallen. Okay, jetzt ist es weg. Lassen Sie uns die Abfrage erneut machen und wir werden sehen, dass es einen Tabellen-Scan macht. Und da wir wie Licht abfragen, gehen wir voran und vergleichen wir die Kosten. Also werde ich die Statistiken festlegen. Ich 01 Ich habe einen Senior Entwickler gearbeitet, übrigens, die nicht wissen, wie das zu tun? Das ist also das wirklich gute Zeug, auf das du achten willst, Teoh. Und wenn Sie Notizen machen, würde ich Notizen machen und lernen, wie man das macht. Denn das ist, wenn ich tune abfrage. Die Leute denken, ich bin unglaublich gut im Cleary Tuning, aber das ist alles, was ich tue. Ich schaue mir den Plan an und schaue mir die Statistiken an. Das war's, und ich werde es von dort bestimmen. Aber ich bin immer überrascht, wie viele Leute nicht wissen, wie man das macht. Weil es eine Menge gibt, also haben wir unseren Tisch Betrug. Was sind die Statistiken? Ich sehe, dass es das getan hat. Ein Scan, 1274. Logische Lesevorgänge. Was ich tun werde, ist, dass ich eine Kopie bin. Diese Waffenkontrolle. Siehst du das? Okay, so kannst du wie ein Genie aussehen. Alles klar, das ist meine 1. 1. Jetzt gehe ich zurück, und ich werde meinen Index auf diesem Tisch aufbauen, und wir werden dieselbe Abfrage auswählen. Sehen Sie sich den Ausführungsplan an. Ja, Index. Sieh Gott, äh, iata und wir werden das kopieren und vergleichen. mag gerne, Ichmag gerne,wie diese Schriftrollen danken Ihnen. Sequel Server zu versuchen, es dort oben für Sie Studenten. Hier natürlich alles andere. Zero, ich denke, alles Null k. Also sehen wir die beiden Seiten. Mit dem Index haben wir also eine Scan-Anzahl von eins. Das macht Sinn. Logische Lesevorgänge von vier und 0000 Alles andere. Also im Vergleich zu zwei, welches ist billiger? Nun, logische Lesevorgänge von vier sind viel weniger als logische Lesevorgänge von 1274. Denken Sie daran, dass die Tabelle nur 23 55 Datensätze 2355 Datensätze enthält. Ich denke eine Sekunde darüber nach. Stellen Sie sich vor, diese Tabelle wäre 1.000.000.000-Datensätze Was die logischen Lesevorgänge wären. Es wäre viel mehr als 12. 74. Schau dir an, was das ist. Das ist nur vier Reeds Frau. Weil welche Fortsetzungsserver tun? Ich will nicht voran kommen. Also versuche ich mir zu überlegen, wie ich dir das als Student vermitteln kann. Das macht Sinn eine Art Einleitung zum Nachfolge-Server hier, aber denken Sie daran, als wenn Sie in einem Auto sind und Sie entscheiden, links, rechts, rechts. Und du schaust dir Autos an, die kommen. Was du in deinem Gehirn tust, ist deine Art, dein Raten mit der Geschwindigkeit dieser Autos zu berechnen . Richtig? Du wirst nur rechts abbiegen, wenn du denkst, dass du genug Zeit hast, das zu tun, basierend auf dem, was du schätzst, dass ihre Geschwindigkeit richtig ist. Das ist also ein unabhängiges Beispiel. Der Fortsetzungsserver. Aber was der Optimierer Was ist der Fortsetzungsserver Optimizer tut, ist es Annahmen zu machen , wie man diesen Datensatz so schnell wie möglich basierend auf den Annahmen erhält, die er hat. Und was wir tun, ist, dass wir Tabellen so strukturieren, dass sie schnellere Annahmen treffen können. Durch den Aufbau eines Index ist es in der Lage, eine schnellere Annahme zu machen, dass, wenn es keinen Index gibt, also das meine ich mit einer Where-Klausel nutzlos wird. Wenn ich keine Art von Indizierungsstruktur habe, die es mir ermöglicht, diesen Filter zu maximieren, warum würde ich einen Filter für eine Abfrage werfen, wenn es überhaupt keinen Index gibt? Und ich und ich fragen uns, warum? Nun, warum ist meine Frage. Im Moment gibt es Ausnahmen von dieser Regel. Es kann sein, dass ich nur eine Abfrage einmal ausführen möchte, und das ist das einzige Mal, dass ich diese Abfrage jemals ausführen möchte. Aber es macht keinen Sinn, dass ich bei einer regulären Abfrage würde, dass ich keinen Index hätte und sehr streng mit meinen Filtern wäre und mich darüber beschweren würde, dass meine Abfragen langsam gehen. Also ein paar Dinge wirklich hier zu überprüfen, weil dies tatsächlich ein wenig fortgeschrittener als nur Junior Level und ich habe mit Junior-Entwickler gearbeitet haben keine Ahnung, wie zu bestimmen, ob Aquarius schneller, langsam Satz Statistiken. Ich Owen Okay, das wird Ihnen die Statistik Ihrer Anfragen sagen. Okay, schließen Sie den tatsächlichen Ausführungsplan ein und lesen Sie dann den Ausführungsplan. Es gibt ein großartiges Buch von Grant Fritchey, und ich glaube, es ist frei durch Red Gate über Ausführungspläne und Lesen von Ausführungsplänen, Ich habe dringend vorgeschlagen. Zuallererst ist es kostenlos. Zweitens, es wird Sie viel vertraut machen mit dem, was los ist. Wir werden etwas davon im Kurs machen, aber ich lese dieses Buch jedes Jahr, weil es so nützlich ist. Okay, wenn Sie eine Where-Klausel verwenden und es sehr wichtig und am wichtigsten ist, dann möchten Sie auch sehen, wo sich Ihre Indizes befinden und wie können Sie die Geschwindigkeit maximieren. Also weiß ich, es scheint, als ob es nicht alles Sinn ergibt. Aber während wir den Kurs durchlaufen und die Dinge optimieren und neu abstimmen, werden Sie feststellen, wie wir diese Tools immer und immer wieder verwenden. Wenn Sie also eine Where-Klausel haben und keine Indizes haben, nicht das Klügste der Welt, zumindest wenn es sich um eine regelmäßig zurückkehrende Abfrage handelt, die Sie möchten , möchten Sie sehr schnell ausgeführt werden, nicht das Klügste der Welt, zumindest wenn es sich um eine regelmäßig zurückkehrende Abfrage handelt, die Sie möchten, möchten Sie sehr schnell ausgeführt werden, damit diese Teil zu verringern. Ich glaube nicht, dass ich genug Minuten habe, um das nächste Thema abzudecken, aber wir haben uns irgendwie die Grundlagen der Where-Klausel angesehen, und wenn wir in unser Projekt gehen, wird die Where-Klausel viel mehr Sinn für viele von Ihnen sein Oh, ich verstehe es jetzt. Dies ist, wo wir dies anwenden, aber für jetzt, nur erkannt, dass die Where-Klauseln einen der Filter, die wir in Fortsetzungsserver haben, und es ist sehr wichtig, dass, wenn wir etwas brauchen, um schnell zurückzukehren und wir haben eine where Klausel, aber wir haben keine Indizes als die, wo Ursachen nicht maximiert. 3. Teil 3: Wir werden nicht mit Teil drei der Einführung in die Datenbankentwicklung beginnen. Grundlegende T-Fortsetzung Abfrage. Und wir werden auch in diesem Video lecker gespalten werden. Wenn ich zu schnell gehe, verlangsamen Sie es mit Ihnen zu mir. Wenn ich es mit dir verlangsamen werde, werden wir heute zwei Dinge hier demonstrieren. Wir werden uns die Gruppe in der Reihenfolge ansehen. Bevor wir das tun, möchte ich den Schülern das Konzept der Update-Statistik vorstellen. Jedes Mal, wenn Sie Daten hinzufügen oder eine Spurdaten verwenden, wenn Sie jede Art von Struktur in der Tabelle ändern , ob es sich um Daten weniger Daten, mehr Daten handelt, würde ich dringend vorschlagen, Updates auszuführen. Statistiken auf dem Tisch. Dadurch werden Statistiken für die Tabelle selbst sowie alle zugehörigen Objekte aktualisiert. In der Tat können wir alle Statistiken in Bezug auf diese Tabelle sehen. Siehst du diese fünf Statistiken? Diese werden alle aktualisiert. Wenn ich diese Objekte einzeln angeben würde, könnte ich sie nur aktualisieren. Zum Beispiel kann ich Statistiken für einen Index nur aktualisieren, wenn ich will, aber die Aktualisierung von Statistiken wird Sie nicht stören. Es ist alles, Statistiken zu aktualisieren, hilft in einigen Fällen, und es ist eine gute Möglichkeit, zu stimmen. Sie können mehr darüber lesen, aber ich möchte zeigen, dass jetzt, weil es sehr nützlich ist, früh zu lernen, jedes Mal, wenn Sie eine Reihe von Daten hinzufügen, es ist dasselbe mit meinem ET al Kurs , den ich Studenten im Detail unterrichte war. Es ist eine sehr gute Sache, Statistiken zu aktualisieren. Sie werden in vielen Fällen viel mehr Geschwindigkeit bekommen. Manchmal passiert das eigentlich als Seniorin. Db A. Ich bin auf viele Probleme gestoßen, die nur eine einfache Frage der Aktualisierung von Statistiken sind. Du würdest auch nicht glauben, was sie sind . Es überrascht mich immer. Also lasst uns rüber gehen. Aufgewachsen durch eine Bestellung von Grow by ist ein sehr schwieriges Konzept für die meisten Menschen zu bekommen. Also werde ich mit Wasser beginnen und Sie könnten dieses Video mehrmals überprüfen wollen. Okay, also zuerst gehen wir zu dieser Abfrage hier, und wir werden einen von Fortsetzungsservern verwenden, die in Funktionen integriert sind. Werden mehrere von ihnen tatsächlich, so werden Sie sehen, dass der Preis Zustand, den wir ausgewählt ist 2011 Nein. 104 Nun, was passiert, wenn ich alle Termine in 2000 und 11 bekommen möchte? Gehen wir weiter und machen das jetzt. Dies ist eine Abfrage von sehr schlechter Qualität, aber ich tue dies absichtlich, um etwas zu demonstrieren. Ich kann sagen, das Jahr des Preisdatums und ich kann gleich zwei, 2000 und 11. Eigentlich glaube ich, dass es das ist. Ja, das werde ich demonstrieren. Bestellen Sie den Kauf einer Sekunde jetzt wollte Ihnen eine schnelle nicht hören. Der Grund, warum dies schrecklich schrecklich ist, ist, was Sequel Server tun muss, ist, dass er diese Funktion auf diese ganze Spalte sehr schlecht geschrieben anwenden muss. Der bessere Weg, um die Abfrage zu schreiben, wäre, wo das Preisdatum zwischen 2011 Peitschen Nr. Eins, Nein. Eins und 2011 12 Schiffe 12 31 Recht, und wir bekommen das gleiche. Der Grund ist, weil bemerkt wurde, dass es keine Funktion darauf angewendet wird, so dass der Sequel-Server nicht zuerst Funktion anwenden muss. Ich komme jetzt vorbei. Ich sage, Hey, nimm einfach diese Kolumne und finde mir alle Aufzeichnungen dazwischen, es kann viel weniger Annahmen machen. Dies ist, was wir eine lösbare Abfrage nennen. Okay, sehr wichtig. Viel bessere Möglichkeit, Ihre Abfragen zu schreiben. Also werden wir es jetzt tun. Ich wollte dir zuerst zeigen, wie man es falsch macht. Es ist immer gut zu wissen, wie man nichts macht, damit man weiß, was zu tun ist und warum. Und wenn jemand sagt, warum kann ich das nicht tun? Warten Sie, jetzt können Sie klingen wie auf Experte und sagen, weil es kein Sergeant Query Clam ist. Also schauen wir uns die Bestellung nach Preisdatum an, was denkst du, wird passieren, wenn ich das von Price State abgewehrt habe? Was denkst du, wird mit dem Preis State passieren? Schau dir an, wie der Preiszustand gerade ist. Im Jahr 2011. 0103 oder vier oder fünf oder sechs oder sieben. Was wird passieren? OK, jetzt ist der Standard aufsteigend, er tut es aufsteigend. Und übrigens, die Art und Weise, wie Sie aufsteigend angeben, ist dies. Aber es ist die Standardeinstellung. Was passiert, wenn ich absteigend mache, okay? Und übrigens, ich bin ein umgekehrter Denker. Ich warne Sie nur. So werde auch ich manchmal auf aufsteigende und absteigende getauscht. Also, ähm, ich werde die 1. 1 sein, die mich dazu anruft. Und es ist absteigend bedeutet später zuerst. Aufsteigende bedeutet früher kommt zuerst, aber ich Du würdest nicht glauben, wie oft ich das rückwärts bekommen habe, und es ist, weil ich ein umgekehrter Denker bin. Also dachte ich rückwärts und muss rückwärts überdenken. Ich weiß, es ist verrückt. Also, welche Ordnung nach tut? Da steht: Wie soll ich, dass die Aufzeichnungen wieder reinkommen? Welche Bestellung? Sofort. Im Moment mache ich es auf Date. Also esse ich. Entweder kann mit den frühen Daten aufsteigend oder den späteren Datumsangaben beginnen, die absteigend sind. Was passiert, wenn ich stattdessen mit dem Preis tun möchte? Schauen wir uns einfach auf den Preis an, den ich vom Preis absteigend für das Jahr tun möchte. Nun, jetzt ist es egal, was die Termine sind, oder? Hören Sie, die Termine sind nicht mal bestellt, aber ich bestelle den Preis. Der höchste Preis kommt zuerst zurück. Okay. Was ist mit Aufstieg? Was war der niedrigste Goldpreis oder der G L Der E T F. Dieses Jahr war 1 27 wieder. Die Termine sind nicht bestellt. Es ist der Preis. Dieser Befehl. Richtig? Okay, also ist das etwas zu beachten auf der Bestellung von sagt, dass aus dem Weg Gruppe durch ein bisschen schwieriger gemacht wird . Du hast fünf Minuten, um das zu besprechen. Also lassen Sie uns nach dem gehen. So wuchs durch Es ist schwierig, weil viele Male Menschen haben, um dies oft zu tun, bevor sie es bekommen. Also bestellen wir nach dem Monat des Preisstaates, also wissen wir, dass es aufsteigend zurückkommen wird, richtig? Wir bestellen diese nach dem Preis Tag am Tag des Preisdatums. Tut mir leid, und wir machen das aufsteigend. Was ist mit der Gruppe? Durch das, was ist Gruppe hier zu tun. Also schauen wir uns das an. In Ordnung. Ich gruppiere nach dem Monat des Preisdatums Anfrage eins, eine Anfrage an ich gruppiere nach dem Tag des Preisstaates. Also, wenn wir durch den Monat des Preises State wuchs, was wir in dieser Abfrage tun, sagen wir , sagen Sie mir alle Preise, die wir die Anzahl aller Preise pro Monat haben. Okay, also gibt es 12 Monate im Jahr. Du wirst sehen, dass wir 12 Platten zurückbekommen, okay? Und wir können das sehen, denn nehmen wir an, ich würde diesen Anruf auslassen, und ich würde sagen, Sag mir die Zählung von allem, und es wird so sein, na ja, okay, gut okay, . Ich kann das bestellen, aber Sie werden bemerken, dass wir nicht wissen, in welchem Monat das IHS, richtig? Also gehen wir zurück. Ebenso kann ich diese Spalte entfernen und beobachten, was passieren wird. Es war nur sagen Sie mir den Tag des Monats. Es gab nur 12 Monate, oder? Also in der Regel, wenn Sie tun, Gruppe kauft. In der Tat, fast jedes Mal. Was Sie versuchen zu tun, ist, dass Sie Aggregate ermitteln wollen, oder? diese Weise aggregieren wir Daten. Also werde ich dieses Fenster nach oben scrollen und wir schauen uns einige der anderen Aggregate . ist es zu hoch Eigentlichist es zu hoch. Einige der anderen Aggregate, die wir tun können. So kennen wir die Anzahl der Werte jeden Monat. Wie hoch ist der Durchschnitt der Werte pro Monat? Was ist das Maximum der Werte pro Monat? Und was ist das Minimum der Werte essen Monat? Ich muss nach dem Monat gruppieren, weil das die Aggregate sind, die mich interessieren. Ich interessiere mich für den County Durchschnitt einen Unfall Männer jeden Monat, richtig? Also bin ich bis zu diesem Monat in einer Gruppe. Okay? Ich kann mich nicht tagtäglich gruppieren. Schau, was passiert, wenn ich das mache, wenn ich von Tag zu Tag wuchs, aber ich suche nach dem Monat. Es wird sein, als wäre es ungültig in der Schlankheit, weil weder in einer Aggregatfunktion noch in der Gruppe von Klaus enthalten ist . Also, wenn ich nach diesen Werten, diesen aggregierten Werten nach Monat suche, brauche ich eine Gruppe für Monat. Okay, also schauen wir uns die an und wir werden es sehen. Ich liebe den Namen ohne Spalte. By the way, können Sie das lösen, indem Sie sagen, als zählen in Monaten als Durchschnitt des Monats Durchschnitt des Monats als Max of Month, was vergessen wurde H und dann kann ich als Männer des Monats Fall tun. Schauen wir uns das an und wir werden jetzt sehen, zwei Spalten haben einen Namen, so dass wir sehen können. Zum Beispiel, in Datum Monat, das Datum Monat wäre ein Januar sein würde. Ich zeichne ein leeres Stück. Es gibt 202 Gesamtwerte in der Tabelle, die im Monat Januar sind, der Durchschnitt in den Monats-Gold-Pricer GL. Dieser Preis, ich sollte sagen, ist 100 bis zu dem Maximum, den es jemals im Monat Januar war, ist 169 und das Minimum, das es jemals Waas im Januar war 41. Was für mich sehr interessant ist, ist immer über eine Analyse wie diese ist, dass Sie immer diese Monate finden , in denen es wie was ist und wir tatsächlich tun können, ich möchte sagen, dass STD Evey gesammelt ist dass wir die Standardabweichung der schnellen Standardabweichung von des Monats, nur um wirklich schnell zu sehen. Halten Sie fest. Ja, das ist wirklich nicht so aussagekräftig. Für eine Minute war ich wie, ich frage mich, wie sinnvoll diese Werte relativ zur Standardabweichung wären. Nicht sehr bedeutungsvoll, aber Sie können es sehen. Es ist ziemlich interessant, dass es so aussieht, als hätte Gold bestimmte Zeiten des Jahres. Es spitzelt höhere Gld Ich sollte es sagen. Es ist etwas höher als zu anderen Zeiten des Jahres. Was ich hier mache, ist, dass ich nach Monat gruppiere, richtig? Ich kann die gleichen Aggregate hier nehmen und ich kann mich in diese Karriere bewerben. Ich gruppiere stattdessen nach dem Tag. Jetzt ist das Problem, ich habe es nicht monatlich. Lassen Sie mich heute umziehen. Ja, ich werde 11 Minuten auf dieses Video drücken und ich entschuldige mich für diese Bombe und gehe wirklich schnell, jetzt, wenn ich Distel Tag und dann Tag austippt und der Zweck ist, dir die Gruppe zu zeigen, die ich aber die meisten Leute mit Gruppe kaufen braucht es eine Menge Arbeit, um durch Schritt durch Übung nach dem Training zu bekommen, weil es nicht das Gefühl, intuitive Bemühungen, obwohl einige von Ihnen sofort bekommen diese. Also sehen Sie, jetzt, was ich tue, ist, dass ich die Anzahl in der Tabelle die Gesamtzahl der Werte betrachte die am Tag des Monats eins und dann am Tag des Monats von zwei und am Tag des Monats von drei sind . Und ich schaue auf den Durchschnitt im Maximalwert im Mini-Wert. Und dann, natürlich, die Standardabweichung. Also, durch welche Gruppe nach gewachsen ist, erlaubt mir, Aggregate zu betrachten. Es erlaubt mir, Dinge wie zu betrachten, Was sind die Gesamtzahl der Werte, die ich in der Tabelle, die im Monat Januar sind ? Was ist die Gesamtzahl? Was ist der Durchschnitt dieses Wertes im Januar oder wie hoch ist der Durchschnitt dieses Wertes am ersten Geschäftstag eines jeden Monats, etcetera so um wuchs, ist in Aggregaten sehr nützlich. Jedes Mal, wenn Sie jemanden haben, der aggregierte Daten anfordert, waren Sie mehr als wahrscheinlich, dass Sie eine Gruppe von 4. Teil 4: In Ordnung, schauen wir uns die Einführung in die Datenbank heute an. Die grundlegende Abfrage Teil vier. Wir werden uns linke Joins und innere Joins ansehen, und wir werden einige einfache Beispiele im Kursprojekt verwenden. Wir werden mehr fortgeschrittene oder etwas fortgeschrittenere Analysen machen, ich sollte sagen, wenn wir das Kursprojekt abdecken, werden Sie sehen, Mawr der Gelenke und linken Verbindungen, innere Verbindungen und linke Gelenke im Kontext von ihnen tatsächlich für Geschäftslogik verwendet. Dies ist nur ein einfaches Demo-Beispiel, das wir uns ansehen werden. Scrollen wir hier nach oben und schauen wir uns unsere beiden Tische an. Einer unserer Tabellen wird Tabelle genannt. Verbinden Sie eine in einer unserer Tabellen wird Tischgelenk genannt, auch. Wir betrachten speziell die Spalte eins i d. Und wir betrachten die Spalte eins i d und die andere Tabelle. Also haben beide Tabellen eine Spalte namens I D. Und was ich tun werde, ist, dass ich einen einfachen Join machen werde, wo ich auf dem Tisch beitreten werde, einer beitreten und nicht auf dem Tisch beitreten werde. Was ich tun werde, ist, dass ich mich der einen anschließen werde, und ich werde mich der anderen anschließen. Ich habe Recht. Also schauen wir uns das an. Also im inneren Join sucht nach einem Spiel. Okay, also gehen wir zurück zu den Tischen. So sieht das Joint aus. Sie werden jeden Tisch sehen. Haus von einem I d. von 12341234 Aber wenn wir auf die Tische schauen wird erkennen, dass Tabelle verbunden hat eine Nacht ein i d. von fünf. Jetzt haben wir bemerkt, wenn wir tun, um beizutreten, wir sehen nicht fünf. Warum ist das so? Nun, es sieht Tabelle verbunden aus. Ein rechter Tisch verbunden man hat nicht fünf auf Lee hat bis zu vier, so dass man ausgeschlossen ist, weil es nicht auf ihre. Was uns zum Konzept der linken Gelenke bringt. Und das sind absichtlich einfache Beispiele. Aber wir werden im Kursprojekt sehen, warum dies wichtig ist und warum wir das tun wollen . Und die Geschäftslogik, insbesondere für die Analyse, Linksverbindungen und Inter Joins sind sehr nützlich. Also werde ich jetzt auch aus Table-Join auswählen , und ich werde zu Tabelle Join eins beitreten. Ein linker Join sagt also, ich möchte, dass Sie sich alle Datensätze aus dieser Tabelle ansehen, die in der anderen Tabelle vorhanden sind oder sie nicht existieren. Mit anderen Worten, wo es eine Übereinstimmung dafür gibt, wo es keine Übereinstimmung gibt. Wenn keine Übereinstimmung vorhanden ist, geben Sie einfach ein Nein für die Spalte zurück. Also bekommen wir alles in Tabelle zwei und wir bekommen alles in Tabelle eins, das passt, und wir bekommen Knowles für etwas, das nicht übereinstimmt. Okay, wenn wir diese Abfrage nehmen würden und wir sie umdrehen würden, würden wir die Fünf nicht bekommen. Und der Grund, warum ich sage, ist, wählen Sie alles von hier aus, was in dieser Tabelle ist, die übereinstimmt, und das tut es nicht. Aber die Position beginnt in dieser Tabelle, richtig? Diese Tabelle, jeder seiner Datensätze ist auch in der anderen Tabelle vorhanden. Wo ist diese Abfrage? Ich sage, sieh dir alles an, was in dieser Tabelle ist, und hol mir die Aufzeichnungen, die in dieser Tabelle übereinstimmen . Tabelle 1 sind einige verbundene, aber die nicht übereinstimmen und dann eine Notiz für diejenigen zurückgeben, die nicht übereinstimmen. Richtig. Der Grund, warum diese beiden anders zurückkehren, ist der Ausgangspunkt in einer Abfrageröhre. Der Startpunkt ist eine Tabelle verbunden, die keinen Datensatz von fünf hat. Und so gibt es nur alles zurück, was passt, weil es nicht etwas hat, das nicht übereinstimmt. Jetzt können wir das eine Sekunde ändern. Lass uns das nur tun, um die Dinge nicht durcheinander zu bringen. Okay, jetzt schauen wir uns unsere Tische an. Ich habe einen Datensatz in diese Tabelle eingefügt und wir werden feststellen, dass dies einen Datensatz hat, dass dies nicht richtig fünf hat. Sehen wir uns jetzt unser linkes Gelenk an. wir uns zuerst die erste Abfrage an, Schauenwir uns zuerst die erste Abfrage an,weil Tabelle Joint zu sagen, Holen Sie mir alles hier rein. Das stimmt nicht mit fünf überein. Aber wo sind die sechs Akte? Aber wir fangen nicht vom Tisch an. Schließen Sie sich einem an, richtig? Wir fangen beim Kabel an. ihm verbunden ist fünf und der andere Tisch nicht, aber er weiß nicht über sechs. Was passiert, wenn wir von der Tabelle verbunden beginnen, weiß ein Lit über sechs, weil es eine Sechs darin hatte , aber Tabelle Zeichnung hat keine sechs darin. Okay, deshalb ist das das Verhalten dieser Luft anders, denn was ist der Tisch, mit dem wir anfangen? Wir beginnen mit Tabelle verbunden eine rechts oder wir beginnen mit Tabelle Gelenk, das wird unser linkes Gelenk beeinflussen. Sehr wichtiger Hinweis. Aber wenn ich zurück zum inneren Join, beobachten, was passiert, wenn ich den inneren Join mache Denken Sie daran, dass ich in sechs hatte. Es spielt keine Rolle, oder? Denn sechs ist nicht in beiden Tabellen. Es ist auch nicht fünf. Also haben wir Datensätze in beiden Tabellen, die in der anderen Tabelle nicht existieren, richtig? Wir haben fünf nur sechs. Die existieren nicht. Eine andere Tabelle, so dass das linke Gelenk wird das herausziehen, aber die innere Verbindung wird nicht. In Ordnung, jetzt schauen wir uns ein Beispiel an. Das ist ein sehr wichtiges Beispiel. Sie werden darauf stoßen, wenn Sie ein Nachfolger, T-Fortsetzung, Datenbankentwickler sind. So ziemlich deine gesamte Karriere. Und das ist die Frage der Duplikate. Weil innere Joins von Duplikaten betroffen sind, wie wir sehen werden. So haben wir das im Tischgelenk Eins bemerkt. Wir haben auch eine Vorstellung davon. Wir haben gewonnen I d 12 Idee von, Ich sollte sagen, aber in Tabelle Joint haben wir 12342 IDs von zwei. Nun, sagen wir hypothetisch, sind Duplikate. Wie wird sich das auf unseren inneren Join auswirken? Was denken Sie, unsere inneren Joins zu tun, wenn wir in einer Tabelle nur eine Idee von zwei haben , Aber in einem anderen Tisch haben wir vier Ideen zu sehen. Was passiert. Wir kriegen vier zurück, wir wissen, dass wir warten werden. Warte mal, Tim, aber es gibt keine vier für Ideen und Tisch eins, es spielt keine Rolle . Es bestimmt, ob es eine Übereinstimmung richtig gibt. Es gibt vier Übereinstimmungen auf der Idee von zwei in Tabelle zwei, dass es keine Tabelle eins gibt, also wird es alle vier von denen zurückgeben, die jetzt darüber nachdenken, wie sich das auf die Duplikate auswirkt , wenn wir nur eines brauchen. Was das bedeutet, ist an dieser Tabelle Joint hat drei Duplikate, wenn Sie von der ersten. In Ordnung, also schauen wir uns ein einfaches Beispiel für den Tisch mit Duplikaten an, und es hat nur einen Film. Ich habe das einfach gehalten. Nehmen wir an, dass die Regel die Geschäftsregel dieser Tabelle ist, dass sie nur eine eindeutige I d haben kann . Was ich damit meine ist, dass wir eine haben können. Wir können drei haben. Wir könnten vier haben, aber wir können nicht zwei von denen i d. S. S. aber wir stellen fest, dass wir zwei haben. Das ist ein Problem. Richtig? Okay, also ist dies eine der schnellsten Möglichkeiten, zu entfernen oder auszuwählen. Wir schauen uns nur an, Duplikate auszuwählen. Entfernen. Wir können später hineinkommen. Aber wir werden mit Select Out Dupes tun, während wir gehen, um die Zeilennummer zu wählen. Eigentlich. Wird es tun. Ich habe nicht über getrunken. Partitioniert von I d um i d und wir nennen diese Dupe I d weil wir nicht zwei Spalten haben können. Nennen Sie das Gleiche aus diesem Tisch hier. Dann werden wir selektive Sterne von ausgesuchten Dupes machen, und wir werden in einer Sekunde abdecken, was wir tun, eigentlich, was mache ich? Äh, Roh Nummer nicht schrumpfte nicht. Da gehst du. Rückwärts gefahren. Ordnung, InOrdnung, also und mir wurde klar, dass die Logik für Anfänger irgendwie so ist, Whoa, wir kommen in einer Sekunde hinein. Was die duplizierte Idee macht, ist, dass sie uns sagt, wo Duplikate sind. In Ordnung. Also, wenn ich wählen wollte, wo nicht duplizierte Rose sind, würde ich nur sagen, wo pai d gleich eins ist? Okay, jetzt habe ich die Duplikate jetzt noch ausgewählt. Okay, aber gehen wir zurück, um zu diesem und Zeilennummer über Partition von Id ord Obaidi zurückzukehren . Ich gebe zu, dies ist in der Regel sehr schwierig für einige Leute von i d bestellt zu bekommen. Wir alle verstehen, dass die Rose in einer bestimmten Weise bestellt wird. Okay, also verstehen wir alle, dass wir diese Partitionierung in Kategorien unterteilen . Okay, also sage ich, partitioniert von i d. Es ist wie ein Divisionsproblem. OK, also werde ich sagen, ich möchte, dass Sie die Zeilennummer partitionieren, was das sein wird. Es wird die Zeilennummer über sein und wir können das sehen. Lassen Sie mich demonstrieren. Das ist gut, was passiert, wenn ich gerade die Zeilennummer über Ordnung von i d sagte. Lassen Sie uns nur zum Spaß absteigend tun. Es sei denn, Sie sind absteigend i d. Und dann lassen Sie uns kopieren die gleichen Dinge wird wahrscheinlich mehr Sinn für Studenten, die auf dem Flug Codierungaufsteigen , die auf dem Flug Codierung , übrigens ist eine Menge Spaß, aber es ist sehr hilfreich, und es hilft. Du wirst sehen, wie man diese Dinge macht. Sehen wir uns das jetzt an. Wie Stern. Okay, gut. So können Sie sehen, was ich mit den aufsteigenden Ideen gemacht habe. 12345 Rechts. Also, ich meine, es ist alles, was es tut, ist dasselbe mit diesem 12345 richtig macht. Es ist nur Bestellung und dann Abstieg geht nur rückwärts. Richtig? Also bekommen wir, dass dies ziemlich einfach ist. Diese, um Sinn zu machen, bestellten es einfach. Aber wenn ich sage Partition von I d, was ich sage, ist, was ich will, dass Sie tun, ich will, dass Sie es durch wiederholte i ds teilen, wenn es ein Recht gibt , also werden wir diesen Kommentar ausschreiben. Übrigens, so kommentieren Sie etwas, zu dem wir hier zurück sind. Also gibt es zwei davon, richtig? Also, wenn ich durch das I d partitioniere, wird es sagen: „ Warte, Warte, es gibt zwei davon, also werde ich das bestellen, richtig. Das ist also eine eindeutige Zeilennummer, weil es nur 11 gibt. Das ist eine Bezirksnummer, weil es nur 13 gibt und es nur 14 gibt. Aber es gibt zwei I ds, also wird es sagen, okay, na ja, ich werde das nach der Straßennummer bestellen. Also werde ich eins sagen und ich werde es so weiter und so weiter sagen. Und lassen Sie uns das einfach beweisen, richtig? Und das können wir tun. Und das Tolle an T. C ist der Mathematik sehr ähnlich. In Tabelle einfügen dupliziert Werte. Lassen Sie uns noch zwei einfügen und sehen, was passiert. Und lassen Sie uns eine 2. 3 einfügen und dann fünf einfügen. Und tatsächlich sind das noch zwei. Und dann lassen Sie uns noch drei einfügen und sehen, was passiert. Also werden wir mehr Werte in diese Tabelle einfügen und mal sehen, was der Effekt ist, wenn wir diese Rollennummer machen. Und ich weiß, dass ich in der Nähe von 10 Minuten komme, aber das wird nach 10 Minuten viel mehr Sinn machen. Tut mir leid, aber du wirst 1234 bemerken, weil wir jetzt vier Zweier haben, richtig? Es ist also, die falsche Zahl zu bestellen, aber es teilt sie durch, dass ich d. Gleiche Sache mit drei wusste nicht, dass wir drei drei haben, oder? Wir haben vier Zweier und drei, aber wir haben nur eine Form. Wir haben nur 15 und wir haben nur 11 Recht? Wenn ich also meine Duplikate auswählen möchte, kann ich einfach sagen, wo das Dubai D eins ist und was passiert. Es filtert sie alle heraus, und ich bekomme die eindeutigen Ideen zurück. Ok? Sehr wichtig zu beachten, denn Sie werden diese Herausforderung viel im Geschäft haben, wo Sie Duplikate entfernen . Dies ist eine Möglichkeit, in der Sie Duplikate auswählen können, so dass die Grundlagen des inneren abdeckt . Schließen Sie sich der linken Verknüpfung an und wählen Sie dann Duplikate aus, da Sie in Zeiten laufen, in denen Ihre innere Verknüpfung zurückkehrt. Zwei Werte. Drei. Valerie's vier Werte. Was das bedeutet, ist eine der zugrunde liegenden Tabellen in diesem Joint hat Duplikate Drillinge, Quadruplets, was immer Sie ihn in einer dieser Tabellen nennen wollen, und so können Sie diese auswählen. 5. Teil 5: werden wir schnell die grundlegende T-Fortsetzung Lektion von Cross bewerben. Nun, cross apply ist eine der nützlichsten Funktionen in T gleich ist. Und ich habe in Interviews nach diesem hier gefragt, weil es sehr nützlich ist. Also werden wir Jahre machen. Wir schauen uns einen Tisch mit Studentendarlehensdaten an, oder wir schauen uns einen Tisch an, sollte ich sagen, mit Nettowertdaten von Echo Boomers, die Menschen sind, die von 1980 bis 1995 geboren wurden. Und in diesem Fall filtere ich alle amerikanischen Echo-Boomer aus. Ich lebe in den Vereinigten Staaten. Doch nicht alle Echo-Boomer sind Amerikaner. Einige von ihnen sind nicht aus den Vereinigten Staaten. Und so betrachtet man hier ausschließlich ausländische Echo-Boomer. Darauf sollte ich sagen, Jahrgang. Und dann geht es hier um den durchschnittlichen Nettowert und den durchschnittlichen Studentenkredit für die Echo-Boomer. In der Tat, was ich tun werde, ist, dass ich das durchschnittliche Studentenkredit subtrahieren werde, weil wir uns nur Nettowürdigkeiten ansehen werden, wenn du das hier unten auch subtrahierst. Okay, also schauen wir uns die nur an. Dies ist also der durchschnittliche Nettowert für alle Echo-Boomer in diesem Jahr der Studie. Also in diesem Jahr der Studie, das sind alle ausländischen Echo-Boomer. Wie Sie sehen können, die nicht-amerikanischen Echo-Boomer dort etwa 76, glaube ich. Ich wollte sagen, dass es mehrere 1000 Echo-Boomer pro Jahr gab, mit denen ich gesprochen habe. Nun, was passiert, wenn ich mir jeden einzelnen dieser ausländischen Echo-Boomer ansehen will? Und ich möchte vergleichen, was ihr Nettowert im Verhältnis zum Nettowert der gesamten Gruppe ? Und so werden wir hier tun, ist, dass wir Crosspack machen werden. Es gibt tatsächlich viele Möglichkeiten, dieses Problem zu lösen, aber dies ist eine Möglichkeit, cross apply zu verwenden. Also, was ich hier tun werde, ist, dass ich mein Fenster ein wenig nach oben schiebe und dann ziehe ichhier runter, und dann werden hier runter, wir zu mir, um mir Platz zu verschaffen, und was ich das abnehmen werde, um sich diese Anfrage anzusehen, weil ich merke, Es kann einige Fragen zu dieser Abfrage geben, also werden wir das in Sekunde übergehen, aber ich werde wirklich schnell demonstrieren, dass das Kreuz angewendet wird, und ich werde diese Spalte als Fremdecho Boomer Unterschied nennen. Was ist also, was hier los ist? Also schauen wir uns diese beiden Abfragen an, was ich wirklich mache, ist, dass ich zwei Abfragen betrachte. Ich schaue mir alle ausländischen Echo-Boomer an, und ich schaue auf den Durchschnitt des gesamten Nettowerts aller Echo-Boomer. Richtig? Das ist alles, was ich jetzt tue, was ich mit Cross Supplies mache. Ich sage, ich möchte, dass Sie diese Ergebnismenge anwenden, die das Falsche hervorgehoben hat. Ich möchte, dass Sie diese Ergebnisse auf jede einzelne Spalte der Tabelle anwenden. OK, also mit anderen Worten oder jede einzelne Zeile, Ich sollte sagen, so dass ich will, dass Sie einen Anruf sie an den Tisch, und dann möchte ich, dass Sie anwenden, um ihn auf jede einzelne Zeile rufen. Okay, wenn wir uns das ansehen, wenn ich diese Daten auswählen würde, kommt dieser durchschnittliche Nettowert von diesem Cross-Angebot. Hinweis, wie dieser durchschnittliche Nettowert. Es hat eine Spalte aus dem Kreuz hinzugefügt, gelten in Ordnung. Und dann jede einzelne Straße, die wir haben, von Nettowert. Es fügt eine Zeile hinzu, die diese Ergebnismenge ist. Okay, also fügt es tatsächlich diesen Wert zu jedem Kegel hinzu. Ich versuche jetzt jede Reihe. Dieser Wert, wenn Sie darüber nachdenken. Es gibt nur einen dieser Werte, aber dieser Wert wird zu jeder Regel hinzugefügt. Warum ist das nützlich? Nun, was mache ich hier? Nun, ich schaue mir den Unterschied zwischen dem Nettowert dieser Person und dem durchschnittlichen Nettowert an, richtig? Also möchte ich wissen, wie sich der Nettowert dieser Person unterscheidet. Ich meine, jeder dieser Echo-Boomer, diese ausländischen Echo-Boomer oder nicht-amerikanischen Echo-Boomer, ich sollte sagen, wie sehr jeder dieser nicht-amerikanischen Echo-Boomer ihr Nettowert von dem durchschnittlichen Nettowert aller die Echo-Boomer. Richtig? Dies erlaubt mir, in diese Analyse zu bohren und insgesamt zu sehen, wie viele, wie gut es ihnen geht. Und ich weiß zufällig aus all den Daten, die ich gesammelt habe, über glauben, dass drei oder vier Jahre ausländische Echo-Boomer im Allgemeinen viel besser sind als die Vereinigten Staaten Echo-Boomer . Menschen, die Nicht-Amerikaner sind, machen in unserem Land viel besser. als die Menschen, die aus unserem Land auf eine Menge von, dass kommt zu verschiedenen Gründen, die Art von außerhalb des Geltungsbereichs dieser sind. Aber das ist etwas, mit dem ich jetzt in die Analyse einarbeiten kann. Es gibt auch etwas Nützliches hier, das ich verwende, was in diesem Fall Win-Anweisung ist. Und ich werde das wirklich kurz erklären, denken Sie daran, dass ich die Differenz zwischen dem Nettowert und dem durchschnittlichen Nettowert betrachte , aber der durchschnittliche Nettowert ist jetzt negativ. Was ist ein Negativ? Minus acht? Was ist ein Subtrahieren? Ein negatives Ergebnis bei der Subtraktion eines negativen Ergebnisses führt zu einem positiven Recht. Lassen Sie uns eine kleine schnelle Demo davon machen, nur um einige grundlegende Mathematik zu überprüfen. Und deshalb ist Mathematik irgendwie hilfreich zu verstehen. Wenn ich da sitze und eins minus fünf sage, bekomme ich gleich Negativ vier. Richtig? Aber was passiert, wenn ich ein Minus negativ sage? 51 Mathe? Wir wissen, dass das gleich sechs ist. Warum? Weil ein negatives Minus ein Negativ gleich plus richtig ist, weil wir den Unterschied bekommen . Das ist das Wichtigste. Das ist der Grund, warum ein Minus von minus fünf einem Plus entspricht. weil wir den Unterschied bekommen. Also, was müssen wir tun? Wir wollen schauen, wir wollen die Differenz des Nettowerts vergleichen. Also, wenn die Differenz des Nettowerts in unserem Beispiel hier eine negative Zahl ist, dann werden wir den absoluten Wert dieser Zahl nehmen, richtig? Was ist der absolute Wert von negativen fünf? Nun, es sind fünf, oder? Also sagen wir eins und dann sagen wir, Minus, wenn wir sagen, wir werden das in Klammern setzen, absoluter Wert von negativen fünf, das ist fünf, was negativ vier ist. Okay, also bekommen wir unsere Antwort zurück, die wir sollten. Nun, das Gleiche gilt hier. Was ich tue, ist, dass ich den Fall sage, wenn der durchschnittliche Nettowert weniger als Null ist, um es negativ ist. Dann besorgen Sie mir den absoluten Wert dieser Nüsse. Sonst. Besorgen Sie mir einfach den Wert des Netzwerks. Das sonst bedeutet, dass Sie einfach voran gehen und mir den Normalwert besorgen, wenn er größer oder gleich Null ist. Denn wenn es größer als oder gleich Null ist, wen kümmert es sich, richtig? Ich meine, ich muss kein Negativ unterwerfen. Mit anderen Worten, ich muss nicht den absoluten Wert nehmen, weil es eine positive oder Null ist, weil, sagen wir, was ist das? Fünf minus Null war 50 hat keinen Einfluss darauf, aber fünf minus negative eins wird sechs sein, weil wir den Unterschied bekommen. Und deshalb ist diese Funktion hier, diese B s Funktion in Klammern, die zum Beispiel wirklich schnell demonstrieren lassen, mich zum Beispiel wirklich schnell demonstrieren lassen,wie ein B s minus eins minus fünf wird mir die absoluter Wert von fünf. Es tut mir leid. Negative Fünf, richtig. Das Gleiche. Wenn ich den absoluten Wert von fünf bekomme , der nur fünf sein wird, wird es auch fünf sein. Das ist es, was ein BS tut. Der Fallgewinn wickelt Logik um ihn herum. OK, der Fall, wenn nur sagen Hey, dieses Szenario bekommen Sie mir den absoluten Wert, wenn das Netzwerk weniger als Null ist, wenn es eine negative Zahl ist, Ansonsten, geben Sie mir einfach das Netzwerk. Jetzt wissen wir im Voraus, dass das Netzwerk negativ ist. Aber wenn das Netzwerk Nettowert jemals positiv sein sollte, ist das der Schlüssel hier. Und der Grund, warum wir es so schreiben wollen, ist, weil sich das Nettowert im Laufe der Jahre ändert da ich immer mehr Analysen mache, oder? Dasselbe mit deinem Geschäftsmodell. Obwohl Ihr Geschäftsmodell oder Ihre Idee oder Ihr Programm oder Ihre Web-Entwicklungsanwendung , was auch immer es ist, können Sie in einer Situation, in der zwei negative Zahl sein. Aber man weiß nie, ob es später eine positive Zahl sein wird. Richtig? Sie möchten also vorsichtig bei der manuellen Hartbeschichtung sein? Wenn ich das tun würde, wenn ich manuell harten Code würde, das heißt, dann könnte es die Dinge beeinflussen. Nun, in diesem Fall ist dies ein seltenes Beispiel, bei dem ich tatsächlich nur den absoluten Wert des Nettowerts insgesamt nehmen kann . Aber du willst sehr vorsichtig sein, wenn du das machst. Dies zeigt also eine Art von Fall, einer davon, wie wir den absoluten Wert seiner negativen Zahl verwenden können, oder wir können den anderen verwenden. Und das zeigt auch, wie man Cross Apply jetzt verwendet, im Falle egal was passiert, ich möchte immer eine positive Zahl. Es gibt den Wert der Verwendung des absoluten Wertes als Fall wichtig. Also lass mich dieses Jahr einfach weitermachen, wir werden das ausschneiden und dann das hier einpacken, und wir werden einfach nachschreiben, und was wir hier tun können, ist der absolute Wert des Netzwerks. Denn egal was passiert, es wird sich nicht ändern. Und so würden wir das schreiben. Und wir sehen. Egal, ob es sich um eine positive Null oder irgendetwas handelt, wir können es einfach so machen. Der Fall ist sehr nützlich, wenn wir wollen, wenn wir wollen, dass eine Logik darin eingebaut wird. Aber der Fall ist nicht nützlich, wenn wir keine Logik brauchen. Das schließt das Betrachten von Kreuzlage ein, und das sieht als ein einfaches Beispiel für die Verwendung einer eingebauten T-Fortsetzungsfunktion nach. Das ist es, was Rosa bedeutet. Dies ist Erwachsener in TC für Funktion. Und dann, natürlich, die Case-Win-Anweisung, die ist, wie wir unsere Geschäftslogik um alles, was unsere Anwendungen versuchen, zu wickeln . 6. Teil 6: Alles in Ordnung in diesem Video in Basic T Fortsetzung, wichtige Funktionen und Ansichten wurden in einige der eingebauten Funktionen bekommen , die Fortsetzung Server bietet. Und wir werden auch Ansichten jetzt eines der Dinge betrachten, die Sie in T-Fortsetzung in zwei Stunden nicht abdecken , da sie nicht benutzerdefinierte Funktionen abdecken. Und der Grund ist, weil benutzerdefinierte Funktionen sehr ineffizient sind und t Fortsetzung und ich halte für eine der schlechten Praktiken der Erstellung von Funktionen und T Sequel. Es gibt ein paar Funktionen, die Sie erstellen können, aber zum größten Teil, wenn Sie die eingebauten Funktionen verstehen, werden die meisten guten Funktionen, die Sie Anti-Sequel verwenden könnten, Ihnen bereits von Microsoft Sequel zur Verfügung gestellt Server. Was Sie lieber tun würden, ist Punktnetz zu verwenden, also lasst uns voran gehen und schauen uns das an. Und zuerst werden wir uns etwa 44 grundlegende ansehen, denke ich, einige der wichtigsten Funktionen, vor allem, wenn Sie Datensätze betrachten. Und da das Kursprojekt um Datensätze aufgebaut ist, in denen alle wichtigen Daten, möchte ich, dass Sie sich den Datensatz ansehen, in dem Sie es nur zusammenfassen und 500 Wörter oder mehr. Weil es wirklich schwule Praxis ist. Diese Funktionen sind sehr nützlich. Das erste, was wir uns ansehen werden, ist die maximale Änderung, der Durchschnitt und die Standardabweichung. Diese sind unglaublich nützlich bei allen Arten von verschiedenen Analysen. Ich schaue auf den maximalen Mindestpreis von irgendetwas. Es ist das oder sagen wir, Öl oder so. Das ist das. Ein wirklich hilfreiches Schreiben. Ich schaue mir die Studentendarlehensanalyse von Echo-Boomern an, die die Jahrtausendgeneration sind . Echo-Boomer ist ein weiterer Name für ihn, weil es eine große Generation gibt, und das ist aus einigen Daten, die ich gesammelt habe, und Sie werden feststellen, dass das größte Studentenkredit in den Mulford-Millennials $300.000 ist. Das Mindestdarlehen, natürlich, Null. Der durchschnittliche Kredit beträgt 6500 und dann beträgt die Standardabweichung $19 in 857. Nun sind einige von Ihnen vielleicht wie Warte, Tim, ich dachte, die Medien sagten, dass das durchschnittliche Jahrtausend viel mehr Studentenkredite in 6500 hat. Ich meine, als wären sie sie in Schulden begraben. Das ist eigentlich nicht wahr. Was sie mit dem durchschnittlichen Schüler meinen, bedeutet nur, dass der durchschnittliche College-Student oder der durchschnittliche Kreditnehmer das, was sie tatsächlich bedeuten, wenn Sie wirklich in die Daten eingraben, nicht nur die Daten, die ich gesammelt habe, sondern wenn ich eingrub, sogar auf die Daten der Regierung. Was ich fand, ist eine Menge der Zahlen, die Luft zitiert sind der durchschnittliche Kreditnehmer. Das ist nicht das gleiche wie die durchschnittliche Millennials, weil nicht alle Millennials Gold zur Schule gehen Onley über, Ich denke, wenn ich es tat, Ich möchte sagen, im Bereich von 40 bis 50% der Millennials ging zur Schule. Es gibt also eine ganze Reihe von ihnen, die es nicht getan haben und sich daran erinnern, dass nicht alle Millennials, die zur Schule gehen, Studentenkredite auf Lee haben. Ungefähr 1/3 hatten Studentenkredite. 1/3 der Millennials haben ihre Eltern Papier ihrer Schule oder sie bezahlt und dann eine weitere dritte Verwendung Stipendien, und dann nur 1/3 hatte ein Student Darlehen. Das ist eine andere Sache, die wir tun können, ist, dass wir das auf unserer Anfrage kombinieren können. Nehmen wir an, wir schauen uns das durchschnittliche Studentenkredit an, wenn die Schüler mindestens einige haben, also werden Sie hier in meinem Filter feststellen, weil ich größer als Null verwende. Das ist wirklich wichtig. Sehen Sie sich einige Hinweise zur Datenanalyse an. Plötzlich beträgt der durchschnittliche Kredit jetzt 20.597. Als ich meine Studie machte, war der durchschnittliche Kreditnehmer oder der durchschnittliche Student Darlehensnehmer, laut Medien, $22.000. Das ist also sehr nah an dieser Zahl. Und die Regierungszahlen, die ich dann gezogen habe, waren darüber arrangiert. Einer von ihnen war etwa 19.000. Ein anderer war etwa 21.000. Also war ich genau dazwischen und was die Leute betrachten, , ist,dass sie den durchschnittlichen Kreditnehmer betrachten, den durchschnittlichen Kreditnehmer, nicht die durchschnittliche Millenniale. Es ist sehr wichtig, denn wieder, wenn Sie mit dem Datensatz nicht vertraut sind, wenn Sie tatsächlich anfangen, in die Zahlen zu graben, Sie erkennen, was sie bedeuten. Aber oft mit Journalisten zitieren sie versehentlich etwas Falsches und wissen nicht, wo sie schief gelaufen sind. Deshalb ist es sehr wichtig, diese Dinge zu wissen. Was sind noch einige andere Dinge, die wir betrachten können? Nun, es wäre irgendwie bedeutungslos, aber eine andere Sache, eine andere Funktion, die wir beim Schreien betrachten können, ist, dass wir einen Studentenkredit abgeben können ,der Studentenkredit abgeben können , ein numerisches Feld ist, und wir können es als Textfeld umwandeln. Also nehmen wir an, ich will es als Textfeld werfen und ich werde von hier hier sagen, also werde ich Studentenkredit zu einem var Autofeld machen. Nun, warum sollte ich das tun? Nun, ich könnte jetzt sagen, dass es von unserem Autofeld ist, im Gegensatz zu einem numerischen Feld, könnte ich sagen Echo, Lassen Sie mich es so machen, Echo Brumer. Oh, und dann plus Also verunreinige ich hier eine Zeichenfolge und Sie werden feststellen, dass ich den numerischen Wert im Grunde hier zu einer Zeichenfolge gemacht habe . Ok. Und C scharf. Das ist irgendwie wie ein Ersatz. Es tut mir leid, einen Convert nicht zu ersetzen. Ich kann mir nicht vorstellen, was es von meinem Kopf ist. Improvisieren ist keine Stärke. Immer, wenn ich Mathe mache. Wo ist, wenn ich das ohne die Besetzung gemacht habe? Sieh zu, was passieren würde? Was würde, wenn ich was wäre, wenn ich das einfach mache? Ich gehe da rein und es ist so, als könntest du keine Zeichenkette in Geld umwandeln, oder? könntest du keine Zeichenkette in Geld umwandeln, Das ist Geld. Es ist sogar numerisch. Also kann ich das nicht tun. Aber das ist es, was mir diese Besetzung erlaubt. Es erlaubt mir, eine Zeichenfolge in einen numerischen Wert zu konvertieren. Richtig. Was ist, wenn ich Teoh wollte? Ah, halten Sie eine Sekunde. Also sagen wir ja, lass uns das benutzen. Ich wollte ersetzen, also werde ich eine andere Funktion benutzen, die den Ort Control Control Z nannte. Nicht sicher, warum ich das getan habe. Und ich möchte alle Instanzen von Nullpunkt 00 durch nichts ersetzen. Okay, also wird es durch die Schnur gehen, und jedes Mal, wenn es eine 0.0 gibt, kann man 0.0 sehen, es wird mit nichts Platz. In der Tat, machen wir es besser. Machen wir es auf diese Weise, was bedeutet, nicht anwendbares Recht. Und Sie werden sehen, es geht in es ersetzt. Jetzt gibt es ein Problem. Und einige von Ihnen werden das erkennen, wenn wir uns das gut ansehen, aber das Problem mit 0,0 ist, dass einige Leute, sagen wir $120.000. Nun, es gibt eine 0.0 Also, was ich tun möchte, ist, dass ich es ersetzen möchte, wo es ein Leerzeichen rechts gibt , und das führt auch Kurs, als das Problem auf dem neuen Raum offen ist, um in einem ersetzten kann ein kniffliger -Funktion, um mit zu spielen. Aber zum größten Teil sollten wir die richtigen Zahlen bekommen, weil es keinen Platz für die Menschen geben sollte , die Beträge schulden. Aber wie Sie sehen können, ist dies eine eingebaute Funktion. Eine andere Sache, die ich tun kann, was ich in einem früheren Video gemacht habe. Wir können uns den absoluten Wert des Studentendarlehens ansehen. Dies ist eine weitere integrierte Funktion, sehr nützlich. Mathematisch glaube ich, dass alle Studentenkredite, die ich in dieser Tabelle habe, in positiven Zahlen gemeldet werden . Ich werde also keine Wirkung haben. Das ist eine Sache, die wir tun können, wenn wir negative Zahlen in einem Feld haben, oft werden wir in die Situation laufen, wo wir keine negative Zahl haben wollen . Also werden wir unsere Daten allein strukturieren ist technisch eine negative Zahl. Aber beachten Sie, wie die Art und Weise, wie ich es melde, als positive Zahl ist, und vieles davon wird für das Filtern sein. Das bringt uns zum nächsten Punkt, wenn wir uns hier ansehen, das sind Ansichten, richtig? Was wir tun wollen, ist, dass wir uns ansehen wollen, wie man eine Ansicht erstellt. Nun, eine der großen Notizen hier, gehen wir voran und kopieren das. Wir werden die Verwendung von Echo-Boomern dazu bringen, den Datenbankkontext hier zu verwenden, eines der Dinge, die ich sehr vorschlage. Und wir werden hier eine einfache Ansicht benutzen. Schnelle Analyse, wie ich sehr vorschlage, Erstellen einer Abfrage, die Sie auf jeden Datensatz anwenden können. Okay, ich benutze das die ganze Zeit. Dies ist wahrscheinlich ein Goldbarren als Faras Mathematikunterricht für einige von Ihnen in diesem Kurs, weil viele von Ihnen, wenn Sie dies anwenden, werden Sie in der Lage sein, dies die ganze Zeit in Ihrem Leben zu verwenden. Lassen Sie mich ein Beispiel nennen. Ein Verkäufer kommt zu Ihnen und sie sagen, wir wollen, dass Sie Erdgas kaufen. Und ich hatte das schon mal. Genau da. Ihr Elektrounternehmen in ihrem Leben. Wir wollen, dass Sie Erdgas kaufen, wohin Sie gehen. Schauen Sie sich den Preis von Erdgas an. Und was ist es? Es sind $11. Wirst du gehen? Sie importieren die Geschichte und schauen sich die ganze Erdgasgeschichte an. Sie finden heraus, dass $11, dass nur 10% der Zeit Erdgas ist $11 oder mehr. Versucht dieser Verkäufer, Ihnen zugute zu kommen? Versuchen sie, Sie zu rauben versuchen, Sie zu rauben schreiben, wie das ist, warum in der Lage, schnell jeden Datensatz zu analysieren, wird Ihnen Tonnen Wert bieten. Ich habe Abfragen wie diese verwendet, die mir Tausende von Dollar gemacht haben, und ich habe sie auch verwendet, um Tausende von Dollar zu sparen, so dass Sie wirklich schnell sagen können, wenn jemand Sie abreißt. Das ist eine Möglichkeit, es anzusehen. Zuerst denken Sie, Sie können auch verwenden, um wirklich gute Anlagemöglichkeiten zu identifizieren waren nur Chancen im Allgemeinen, vor allem in Ihrer Nähe. Nun, da wir die Ansichten erstellt haben, habe ich diese Ansicht erstellt und Sie werden feststellen, dass die Strukturen Ansicht erstellen. Es gibt einen Ansichtsnamen als und dann diese Abfrage. Was es tut, ist, dass es meine Abfrage speichert. Okay, jetzt kann ich aus dieser Ansicht auswählen, ob ich es richtig mache und du wirst feststellen, dass es sicher ist. Wenn ich also andere hilfreiche Analysen finde, finde ich vielleicht Median hilfreich. Ich füge Median hinzu. Vielleicht finde ich die Standardabweichung von jedem Punkt. Eine der Ansichten, die ich verwende, einer der Datensätze, die ich verwendet habe, oder Datenprogramme, die ich zum Analysieren von Datensätzen verwende, wird tatsächlich gespeichert. Verfahren auf, was es ist dynamisch genug, wo ich in jeder Tabelle und jedem Kamm passieren kann, die ich analysieren, das ist in der Regel der Preis. Sagen wir, es ist ein Lego-Set. Ich möchte sehen, ob ein Lego-Set ziemlich billig ist. Ich kann in der Tabelle übergeben, den Preis nennen, und es wird durchgehen, wenn es eine Analyse über die gesamte Geschichte von Lassen Sie uns sagen, es ist das Lego-Set und ich könnte gehen, um die gesamte Geschichte über Lego-Set und die Preis alles. Und es tut etwas Ähnliches. Aber es hat viel detailliertere Informationen, und wieder kann ich sehen und sehen, was diese ganze Geschichte ist. Tolle Analyse. Das ist also etwas, das wir tun können. Wir können eine Ansicht erstellen, bekam speichert eine Abfrage. So können wir jetzt die Ansicht im Gegensatz zur Abfrage aufrufen, die uns hilft. Und dann, natürlich, sequel Server bietet uns einige eingebaute Funktionalität. Es gibt viel mehr Funktionen. Dies sind einige der hilfreichsten, und das sind wahrscheinlich einige von denen, die ich am meisten verwende, und deshalb habe ich sie vorgestellt. Aber im Allgemeinen, wenn Sie nach einer Funktion suchen, die Sie etwas tun müssen, hat die meiste Zeit T Fortsetzung diese Funktion bereits in sehr Ausnahmefällen, in denen Sie eine erstellen müssen. Wenn Sie eine erstellen müssen, jedoch vor, schlage ich jedoch vor,dass es in den meisten Situationen viel effektiver ist, dies in einer objektorientierten Programmiersprache wie Dot Net zu tun, oder was nicht, als es in T-Fortsetzung da T sequel eine satzbasierte Sprache und keine objektbasierte Sprache ist. 7. Teil 7: Alles klar, schauen wir mal. Eine grundlegende T-Fortsetzung wurde gespeichert Prozeduren Dynamik gleich. Sie werden oft hören, dass die dynamische Fortsetzung schlecht ist. In den meisten Fällen ist es etwas, das Sie sehr vorsichtig mit der Verwendung sein sollten, wenn überhaupt. Ich werde definitiv einige Bedenken darüber zum Ausdruck bringen. Aber zum größten Teil, wenn Sie Analysen machen, gibt es einige praktische Dinge, die Sie dio können, wenn Sie tun, das ist eine schnelle Analyse für sich selbst oder Sie versuchen, einige Männer zu bekommen. Und Max ist von Tabellen oder was nicht sind nur Informationen wirklich schnell. Lassen Sie uns also voran gehen und beginnen, indem wir einfach die gespeicherte Prozedur in unserem ersten Tour-Verfahren erstellen . Was wir zu dio gehen, weil wir nur den ersten Start von dieser Tabelle auswählen, OK, OK, und wir werden die Filialprozedur nennen. Entschuldigen Sie, das muss ich loswerden. Sie verwenden nicht diese, die gespeicherte Prozedur genannt wird, und die Art, wie ich es aufrufe, ist nur akzeptieren und dann den Prozedurnamen. Und wenn wir es nennen, wird es einfach den obersten Stern aus dieser Tabelle auswählen. Ok, ausgezeichnet. Und Sie werden auch bemerken, auch bemerken, wenn ich die gespeicherte Prozedur ändern möchte. Ich tippe einfach einen Altar, anstatt ihn zu erstellen, zu erstellen, zu erstellen. Alter ändert es. Okay, nun, ich kann auch Anweisungen einfügen , Anweisungen löschen , Anweisungen aktualisieren usw. Also lassen Sie uns sagen, dass ich oben einen Stern in den Tisch neu auswählen möchte, und ich werde das tun. Zuerst werde ich zuerst den Tisch erstellen. Und wenn ich einen selektierten oberen Stern wieder in eine Tabelle mache, wird es fehlschlagen, weil es bereits ein Objekt war. Also, was ich jetzt tun werde, ist, dass ich es umschalten werde, und ich werde die Kontrolle X übernehmen, und dann mache ich einen zweiten Einsatz in diesen Tisch und ich werde es einfach testen . Es funktioniert. Meine Prozedur geändert, es funktioniert, und rufen Sie dann die Prozedur auf. Und danach wählen wir aus der Tabelle die neue Tabelle aus und wir werden sehen, dass es drei Zeilen geben sollte. Sie werden also feststellen, dass ich auch in eine Tabelle einfügen kann, die ich löschen kann. Ich kann nicht ködern etcetera OK, in meinem Verfahren, so kann ich aus ihm wählen. Ich kann einfügen, ich kann nicht schlagen, ich kann löschen. Also lasst uns weitermachen. Lassen Sie uns demonstrieren. Löschen. Nehmen wir an, ich möchte alle Datensätze aus der Stable löschen. Löschen Sie also Oops, wählen Sie nicht löschen aus Tabelle neu. Und lasst uns weitermachen. Tun Sie das und lassen Sie uns aus dieser Tabelle auswählen und wir werden sehen. Ich muss es zuerst Altar nennen, die Prozedur aufrufen und alle Zeilen löschen. Alle drei Straßen waren betroffen, und dann werden wir sehen. Da ist nichts drin. So gespeicherte Prozeduren Luft. Toll, weil sie im Grunde gespeicherter Code sind, oder? Wenn ich einen Prozess habe, sagen wir, ich importiere Daten und ich möchte den Prozess automatisch speichern. Sagen wir Peelings. Die Daten säubern die Daten für mich. Nun, dann kann ich es im Laden speichern. Aber gespeicherte Prozedur wie diese einfrieren, richtig? Also muss ich nicht ständig Code dafür erstellen. Das kann ich in einem Sturmverfahren sagen. Okay, nun, im Moment schauen wir uns eine Ladenprozedur an, die etwas richtig nennt. Es gibt keinen Parameter, der übergeben wurde. Was passiert, wenn wir Parameter in eine Sturmprozedur übergeben wollen? , Mit anderen Worten, sagen wir in einem hypothetischen Beispiel, dass ich Stern aus einer beliebigen Tabelle auswählen möchte, also möchte ich meinen Parameter b eine Tabelle und ich möchte, dass meine Abfrage in der Prozedur jede Tabelle abfragt , die ich übergebe. Hier beginnt es zu debattieren, ob dies eine gute Idee ist oder nicht. Aber größtenteils werden wir weitermachen und ein Beispiel dafür zeigen. In diesem Beispiel erstelle ich einen Prozedurtabellennamen ist mein Parameter und ich deklariere eine dynamische Fortsetzung, Strand, was bedeutet, dass dies geändert werden kann. Was ich damit meine, ist, dass je nachdem, welche Tabelle ich darin gebe, vielleicht Stern aus Tabelle auswählen, wie Start von Tabelle zu Tabelle drei usw. Richtig? Also, welche Tabelle ich gut übergebe, ändert die potenzielle Abfrage, die ausgeführt wird. Jetzt werden Sie feststellen, dass ich einen ausgewählten Stern aus der Tabelle mache, die ich in Anführungszeichen eingeschlossen habe, die eine eingebaute Funktion ist, die Systemobjekte verwendet. Ich könnte viel Zeit damit verbringen, das zu erklären, aber die Quintessenz ist die Fortsetzung Injektion ist definitiv ein Problem. Und so, mit dynamischer Fortsetzung, so wickle ich immer meine Systemobjekte in Anführungszeichen Namen. Es ist nur etwas, das ich gute Übung mache. Es ist das gleiche, wie ich Parameter meine bewussten Klauseln ausprobiert. Okay, gute Übung. kannst du nachsehen. Jetzt. Beachten Sie hier, dass ich die Fortsetzung drucke. Ich werde dies nicht ausführen, indem ich tatsächlich daraus auswähle. Zuerst werde ich es ausdrucken und das habe ich schon erschaffen. Also möchte ich nur sehen, was das tun wird, und du wirst sehen, was es tut. Ist es? Wählen Sie Stern aus der Echo ist eine Echo Student Darlehensanalyse. Also, wenn ich das anrufe und ich sage wählen, , machen wir das. Halten Sie eine Sekunde lang. Top einen Stern. Ok. Wie zusammen eins. Lass uns das machen. Okay, nennen wir es. Es ist, diesen Ort zu kopieren, dass Okay, ich tue das. Wir sehen, dass es den oberen auswählt. Fangen Sie von dort an. Nun, alles, was ich mache, ist zu diesem Zeitpunkt zu drucken. Also was? Wie nenne ich das? Wie schaffe ich es, wo ich will? Wenn ich diese Prozedur ausführe, wird es tun, was ich hier wähle, direkt von dem, was ich übergebe, was dynamisch ist. Es wird immer aus der Tabelle auswählen, die ich übergebe. Und das ist, ich werde die genaue Funktion nennen. Dies ist SP unter School Execute Sequel, die eine dynamische Fortsetzung String ausführen wird, und Sie werden diese Fortsetzung sehen. String ist eine dynamische Fortsetzung String. OK, also kommt das von hier, was jedes Mal deklariert wird, wenn ich Variable deklarieren muss. Ich habe zuerst die Variable den Datentyp deklariert. Und dann, natürlich, habe ich diese Variable gleich gesetzt, was ich sein wollte. In diesem Fall ist es eine dynamische Fortsetzung, Strand. Okay, lassen Sie mich durch die gespeicherte Prozedur hier. Also bin ich jetzt geändert. Dieses Mal wird es tatsächlich aus den Ställen wählen. Ich drucke es nicht aus. Es wird tatsächlich daraus wählen. Okay, also schauen wir uns die Logik hier in einem Altarverfahren an. Es tut mir leid, eine Kistenprozedur, wenn es einen Parameter nach der Erstellungsprozedur gibt, was auch immer der Prozedurname ist, müssen wir die Variable im Datentyp deklarieren. Wenn es einen anderen Datentyp gibt, den ich Komma machen würde und sagen wir, ich sagte: Ah, Ah, Spaltenwert. Und ich sagte, es war Navarra Car 100. Das wäre das in der Steuer. Richtig? Es wird also der Variablenname sein, der Datentyp Komma, der nächste sehr gut benannte den Datentyp Komma am nächsten und so weiter. Und so weiter. Es gibt nur eine gemeinsame Notwendigkeit, die ich tun werde, wie und dann innerhalb meines Anfangs beginnen . Ich werde die Daten hier ablegen. Es tut mir leid. Der Abfragetext ist jetzt in diesem Fall eine dynamische Fortsetzung. Also muss ich meinen dynamischen Sequel Stream deklarieren , der in diesem Fall eine Fortsetzung ist. Variabel. Das ist der Variablenname. Variablennamen beginnen immer mit dem at-Symbol, auf das ich diese dynamische Fortsetzung setzen werde. In diesem Fall ist dies eine String-Variable. Ich bin sehr String-Variable und ich setze das gleich ein, um einen Stern zu wählen und dann kommt der dynamische Teil ins Spiel. Was auch immer der Tabellenname ist, dass ich in diese Filialprozedur übergebe und dann werde ich es hier nennen. Okay, jetzt gibt es noch andere Dinge, die ich tun kann. Lassen Sie uns voran und demonstrieren dies in diesem Fall, wir werden nur drucken Fortsetzung. Es wird es ausführen, aber es ist alles, was es tun wird, ist die Fortsetzung auszudrucken. Ich bin Anfang darauf hinweisen, den Text und wir werden Druck sehen. Verwendung von Dynamik ist gleich sehr, sehr schlechter Tabellenname. Sehen Sie? Ok. Also können wir tun, ich meine, wir können alle Arten von Dingen in der Dynamik gleich machen, ich kann dynamisch in eine Tabelle einfügen. Ich kann daraus wählen. Ich kann daraus löschen. Ich kann es aktualisieren. Ich kann Dinge ausdrucken. Aber dynamische Fortsetzung ist kein gespeicherter Code. Es wird also zur Abfragelaufzeit kompiliert, was nur eine ausgefallene Art ist, zu sagen, dass es nicht immer auf die optimale Weise ausgeführt wird, also seien Sie vorsichtig. Es bedeutet nicht, dass es immer schlecht läuft, aber es wird nicht unbedingt den optimalen Weg laufen. Und dann ist die andere Sache, Sie müssen Parameter erhöhen Ihre Abfragen. Sie können nicht zulassen, dass Menschen eingeben, was sie wollen. Okay, du musst sehr streng sein, wenn du dynamische Fortsetzung verwenden willst. Wo mag ich Dynamics gleich? Nicht in irgendeiner Anwendung. Ich möchte harten Code verwenden. Ja, es braucht etwas mehr Arbeit, aber es ist sicher. Aber wenn es um dynamische Fortsetzung geht, verwende ich gerne für meine eigene Analyse. Also habe ich einige Abfragen, die ich ausführe, und ein großer Teil meiner Karriere ist, dass ein Läufer Datensätze sehr schnell zu analysieren, und da diese Datensätze der Preis und die Datumsinformationen immer gleich sind, oder das ist , wie ich es strukturieren. Ich kann die gleichen Abfragen immer und immer wieder verwenden, bis ich die Dynamik gleich verwende. In diesem Fall habe ich eine gespeicherte Speicherprozedur im sicheren Zustand, dh und die gespeicherte gespeicherte Prozedur. Ich kann das immer und immer wieder verwenden, indem ich einfach die neue Tabelle übergebe, die Preisspalte und dann die Datumsspalte benenne. Und da gehst du. Davon abgesehen, ich setze das nicht auf das Frontend für irgendjemanden, der benutzt werden kann. Das ist nur für meinen eigenen Gebrauch. Das ist also einer der Gründe, warum ich Dynamic sequel Dieser Fall verwenden kann. Wenn es eine Anwendung ist, muss es in 99,9999% der Zeit ein sehr starkes Argument geben. Die Antwort ist, ich werde nicht die Dynamik gleich verwenden. Also haben wir uns diesen Überblick über die Verwendung der Store-Prozedur angesehen. Die Tatsache, dass wir daraus auswählen können, wir aktualisieren können, wir können einfügen, wir könnten alle möglichen Dinge tun, sind gespeicherte Prozeduren, die Codes speichern, die wir nicht jedes Mal neu schreiben müssen. Wenn wir uns dynamische Fortsetzung, die uns erlaubt, in einem sich ändernden Objekt übergeben und Dinge auf Objekte tun, die möglicherweise ändern, zusammen mit einigen der Bedenken über dynamische Fortsetzung Vielleicht gut kann nicht gut sein. 8. Teil 8: In Ordnung, schauen wir uns auseinander. Acht von Basic T Sequel und wir werden uns Tim-Tabellen, variable Tabellen und Setis gängige Tabellenausdrücke ansehen, und wir werden uns auch ein paar Abfragen ansehen, und ich muss das da oben stellen, richtig? Beginnen wir also gleich mit 10 Tischen, variablen Tischen und globalen Tim-Tabellen. Tim Tabellen beginnen also mit dem Hash-Symbol. Wenn Sie Twitter verwenden, wissen Sie, dass dies das Hash-Symbol ist. Onda Global Tim Table, die ich in einer zweiten Demo in einem zweiten Starts zeigen werde, muss Asche. Eine Variablentabelle hat eine andere Syntax. Beachten Sie, dass die Tabellensyntax der Tim-Tabelle erstellt Tabellenname und dann die Spalten darin ist. Dasselbe mit dem globalen Tim-Tisch. jedoch Eine Variablentabelle istjedochnicht. Es ist wie eine Variable. Wir deklarieren es. Und dann setzen wir die Spaltennamen. Wir haben den Namen davon erklärt, was temp ist. Also erklären wir Tim Tim Tisch, und dann setzen wir die Anrufnamen und die Klammern. Jetzt werden Sie mit diesen Zeitplänen feststellen, dass ich in die Top 5 von dieser Tabelle einfüge . Echo Boom Es tut mir leid, Echo Student Kreditanalyse, und ich füge es ein. All das und ich wähle aus all diesen Tabellen aus. Für den Datensatz, mit Tim-Tabellen können wir von ihnen löschen, wir können aktualisieren. Wir können einfügen, schwächen, wählen schwächen, alles tun, was wir normalerweise mit den meisten Tabellen tun können. Die Unterschiede, die diese Tabellen in Tempe gespeichert werden, sind also temporäre Tabellen. Der Zweck von ihnen ist Lee für temporäre Zwecke. Also, wenn Sie schauen, sollten wir fünf Datensätze in jeder dieser Tabellen bekommen, alle mit dem Geschlecht hier von F jetzt sehr Schlüssel, um den Unterschied zu beachten. Einer der großen Unterschiede zwischen einer variablen Tabelle und einer Tim-Tabelle ist, dass, wenn ich Stern aus dieser variablen Tabelle auswählen würde , es heißt, Hey, Sie müssen die Tabellenvariable temp deklarieren, richtig? Mit anderen Worten, die temp, die Variablentabelle muss im Transaktionsprozess existieren. Damit ich das wieder tun kann, muss ich die gesamte Transaktion erneut ausführen. Im Gegensatz dazu muss ich das mit dieser Tabelle nicht tun. Diese Tim Tische gibt es noch. Sie sind erschaffen, und sie existieren. Bis ich sie fallen gelassen habe oder bis der Umfang dieser Transaktion erlischt. Was meine ich damit? Wenn Sie mich das kopieren lassen, wenn ich Star aus diesem Zeitplan auswählen würde, ist alles großartig. Aber wenn ich zu einem anderen Transaktionsfenster gehe, ist dies eine neue Transaktion. Und ich sollte Star von dieser Tim Tischfrau auswählen. Was wird passieren? Wir werden sagen, es existiert nicht. Es ist so, als gäbe es keinen Val-Objektnamen, während ich zur globalen Variablen gehe, es mir leid tut. Die globale temporäre Tabelle Es existierte alle Transaktionen. Das bedeutet, dass Sie sehr vorsichtig sein sollten, da jede Transaktion, die stattfindet, Zugriff auf das hat, was dort drin ist. Richtig? Seien Sie also immer vorsichtig mit globalen. Denken Sie daran, dieser Zeitplan existiert. Wenn ich hierher gehe, existiert es. Wenn ich zu diesem hier gehe, existiert es auch, oder? Beide Gruppen, ähm, beide sind beide in diesen beiden. Beide existieren in diesem Bereich, aber in diesem Bereich in dieser Transaktion Onley existiert diese. Das ist sehr wichtig zu beachten zwischen den Unterschieden mit einer, die Onley in dieser Transaktion und der globalen, ist, und der globalen, die in allen Transaktionen existieren. Wie Sie sollten sehr vorsichtig sein, damit. Diese Transaktion ist Nummer 52. Diese Transaktionsnummer ist 55. Ich gehe über das Schweben dort. Okay, also hat diese Transaktion Zugriff auf alles. Aber das ist diese Variablentabelle bereits außerhalb des Geltungsbereichs, weil es sein muss. Es existiert nur während der Laufzeit. Also, wenn ich Teoh wäre, um daraus wieder auszuwählen, oder ich würde dies wieder tun, werden Sie kleine Wurffehler bemerken, weil diese Tabellen bereits existieren. Also lassen Sie mich diese beiden codieren und jetzt sind Variablentabelle wird wieder existieren. Natürlich haben unsere Tim-Tabellen diesmal mehr Datensätze, weil wir noch mehr Datensätze in sie eingefügt haben. Richtig? Aber die Variablentabelle Onley existiert in diesem einen Bereich. Es hat also nur diese fünf. OK, also lassen Sie uns voran und lassen Sie uns eine Demo einer variablen Tabelle nur von selbst machen, um dies sehr klar zu machen , denn dies neigt dazu, viele Entwickler und Tim-Tabellen zu stolpern. Sie können Indizes erstellen. Du könntest viele Dinge machen, mit denen du tust, ähm mit normalen Tischen. Der Schlüssel ist, obwohl, ist ihre temporäre Also, wenn ich äh, beginnend mit Master, wenn ich diese Transaktion ausführe, wird es die Daten einfügen. Wenn ich es erneut ausführe, werden die Daten eingefügt. Aber wenn ich das nur hervorheble, renne ich nur. Was ich hervorheben möchte, existiert nicht. Dasselbe, wenn ich nur die zwei hervorhebt, existiert es nicht. Jetzt gibt es auch eine Notiz über Tim Tische. Wir können auch ein Band Tim Tisch erstellen, indem Sie einen ausgewählten Stern in. Aber denken Sie daran, das können wir nur einmal tun. Sobald es erstellt ist, können wir es nicht mehr auf diese Weise erstellen. Also könnte ich technisch sagen, wählen Sie Top 5 in die temporäre Tabelle. Ich habe jetzt einen neuen Zeitplan, und er wird diesen Tisch erstellen. Und jetzt, wenn ich Stern davon wähle, werde ich von diesem Zeitplan bekommen und wir haben das. Okay, ich kann das jedoch nicht mit variablen Tabellen tun . Wenn ich Temp Table Bullets tun würde, um Tim zu machen, wird es mir nicht erlauben, das zu tun, okay? Und das liegt daran, dass eine variable Tabelle in Ordnung erklärt werden muss, damit wir Stern in eine Tabelle auswählen können . Aber wenn ich das noch einmal mache, gibt es diese Tabelle jetzt. Es wird einen Fehler auslösen, weil es bereits ein Objekt mit dem Namen dieses Rechts gibt, also muss ich zurück zu einer Insert-Anweisung gehen. In Ordnung, also lasst uns in Sub-Abfragen und CT's übergehen, und ich werde das ziemlich einfach halten. Sie können wirklich ins Detail auf Seti schauen oder sie sind sehr nützlich. Ich mag sie, weil sie sauber codieren. Sie sind sehr einfach zu organisieren, und sie sind sehr einfach, die meiste Zeit zu beheben. Und T Sequel wird bei der Fehlerbehebung eingesetzt. Das ist nur die Realität, wie es funktioniert. Wie ein CT funktioniert, ist die Erklärung der Sünde Steuern mit CTE als oder eine andere alternative Sündensteuer mit C T E. Wie Sie die Spalten angeben. Und dann, in diesem Fall, wäre es Geschlecht. Und dann, in dieser Halterung, haben Sie Ihre Idee, Ihre Gegenstände. Okay, ich gebe meine Klammern innerhalb der CD an. Das ist meine Vorliebe. Du könntest tun, was du willst. Ähm, es spielt keine Rolle. Es wird nicht die Analyse beeinflussen. Also werde ich das ausführen, und dann wähle ich aus dem C. T. Also, was ich hier einfüge, begrenzt, was später zurückgegeben wird, richtig? Also eine der Fragen, die Leute stellen, ist Nun, was ist der Zweck des CTO, oder warum sollte ich eine C T über Versuch Tabelle machen und hängt davon ab, wen Sie fragen, Aber eines der Dinge, die ich gerne Tee sehen, als im Gegensatz zu versuchsfähig, muss ich nicht die Einfügung in Schritt machen, was Sie darüber nachdenken, dass es Daten schreibt und Daten liest, oder? Wenn ich in Tabelle Select-Star aus einer anderen Tabelle einfügen, musste ich mit einem CT lesen und schreiben. muss ich nicht richtig machen. Ich mache eine Abfrage. Ich setze es in Klammern und dann wähle ich aus, was ich will, damit ich meine Abfrage hier oder meine Abfragen einschränken kann . Es könnte ein Beitritt zu einer Gewerkschaft sein. Und dann wähle ich hier aus, damit ich nicht zu diesem Schritt der Erstellung einer temporären Tabelle gehen muss. Wenn ich also weiß, dass ich eine Tim-Tabelle erstellen muss, betrachte ich immer die Anwendungsfälle, Anwendungsfallanalyse und frage mich dann, ob ein C T eine bessere Idee ist. Und in der Regel wird ein CT jetzt sein. Manchmal ist ein CT jedoch jedoch langsamer als eine Unterabfrage. Also, was ist eine Unterabfrage und ich schaue mir diese an. Mit anderen Worten, ich werde diese vergleichen, wenn ich und ich darauf warte, dass eine Abfrage fast identisch ist. Es ist sehr ähnlich, ein bisschen anders, aber es ist sehr ähnlich. Du wirst bemerken, dass ich meinen typischen ausgewählten Stern aus okay habe. Aber anstatt hier eine Tabelle in diesen Klammern anzugeben, gebe ich eine Abfrage an, richtig? Also mache ich meine ausgewählten fünf Geschlechter von Echo Echo Studentendarlehensanalyse, die immer wieder Echo-Boomer sagen wollen. Ähm, von dieser Abfrage hier wähle ich aus, also das wird mein Tisch. Und dann beschrifte ich das als U-Boot. Und das ist der Grund, warum sub dot star die Sub-Abfrage. Wenn ich das ausführe, bekomme ich natürlich die gleichen Ergebnisse. Aber die Idee ist, dass meine Unterabfrage, aus der ich wähle, dass eine Abfrage ist, richtig? Dies könnte sehr, sehr nützliche Befehle sein. Dies könnte sehr nützlich sein, wenn Sie aus einer Abfrage auswählen, die Verknüpfungen aufweist. Dies könnte eine sehr nützliche Analyse sein. Es hängt davon ab. Die Sache, die ich an einigen Abfragen nicht so sehr mag, hängt davon ab, wie sie strukturiert sind . Wenn Sie tun, wo nicht existiert, was viele Leute mit Unterabfrage tun, und dann werden sie wie in einer Spalte auf der Tabelle beitreten . Sie können die Abfrage nicht zwischen der Unterabfrage suchen. Ok? Und was meine ich damit? Wenn ich bei der Fehlerbehebung von einem Wert aus einer Tabelle beitreten werde, die zu einer Tabelle in meiner Unterabfrage vorhanden ist , kann ich das in der Unterabfrage nicht debuggen, wo ich mit dem allgemeinen Tabellenausdruck kann. Okay, das ist ein Grund, warum ich auch dort ein wenig gemeinsame Tabellenausdrücke bevorzuge, auch wenn sie ein wenig langsamer sind. Und der Hauptgrund ist, weil der gemeinsame Tabellenausdruck ein vereinfachtes Debuggen ermöglicht , bei dem U-Boote das etwas komplizierter machen. In zukünftigen Videos werden wir uns einige Joins mit einigen Abfragen und CTS ansehen. Aber jetzt wissen Sie nur, dass, wenn Sie einen Joint an einem normalen Tisch machen, das U-Boot Sie ein wenig einschränken wird. Und was Sie in der Lage sind zu tun, vor allem auf wie auf einem waren nicht existieren, etcetera. Das schließt also unser Segment hier von Tim-Tabellen ein, die sowohl lokale Tim-Tabellen als auch globale temporäre Tabellen, variable Tische CTs und natürlich einige Abfragen abdecken variable Tische CTs und natürlich . 9. Bonus-Herausforderung - - 1: In diesem Video werden wir eine Codierungsherausforderung machen. Und wir werden eine Codierungsherausforderung mit einem technischen Muster machen. Für diejenigen von Ihnen, die von der technischen Analyse gehört haben, ist einer meiner wirklich guten Freunde in der technischen Analyse und jetzt er und ich vor kurzem und wir sprechen über ein Muster, das ich dachte, wäre interessant, weil es ein sehr herausforderndes Muster für SQL. Aber es ist ein großartiges Beispiel für einen, in dem wir tun können, wo, wenn Sie ein Anfänger sind, das ist eine wirklich gute Herausforderung, mit mir auf und Code zu gehen , wie ich code und dann können Sie Verbesserungen machen, wie Sie weitermachen. Und dann, wenn Sie fortgeschritten sind, können Sie sehen, wie ich codiert habe, um zu beenden. Wenn Sie fortgeschritten sind, sehen Sie eine Art und Weise, wie Sie es noch besser machen möchten. Also zuerst einmal, schauen wir uns ein Diagramm genau hier an. Und dieses Diagramm zeigt das Muster, das wir erstellen werden. Und ich werde es irgendwie herausziehen und sehr gut im Zeichnen hier. Aber ich werde weitermachen und auszeichnen, was wir haben. Also das Muster, das wir uns ansehen, mal sehen, ob ich hier gehe, ist das, was als der Becher Teil der Firma behandelt wird, lassen Sie es so sagen. Und in diesem Fall wird der Becher in der Theorie genau hier sein. So sollte es hier rauskommen. Der Griff wäre hier. Und bedenken Sie, dass das alles meine Freunde Theorie ist. Es gibt keine Möglichkeit zu wissen, denn wenn man sich das als Firmenhandle ansieht, wenn man mit der technischen Analyse vertraut ist, könnte eine Person sagen, hey, das war ein Firmenhandle genau hier, aber es war nicht. Und so mein Punkt ist, dass es irgendwie wird, kann es eine Art von Nachsicht Voreingenommenheit sein, aber im Wesentlichen begleiten Griff dessen, was wir beim Codieren tun werden , ist, dass wir so etwas tun werden. Wir werden nach dem Becher suchen. Wenn wir nun weiter gehen wollten, würden wir einen Griff machen. Der Griff könnte auch so etwas sein. Hier lassen Sie mich das stattdessen tun. Der Griff könnte so etwas sein. Und bedenken Sie auch, dass, obwohl es hier einen Zeitbereich gibt , und wir werden dies betrachten, wie wir anfangen zu programmieren. Der Zeitbereich kann tatsächlich sehr unterschiedlich sein. Also lasst uns weitermachen und einen Code öffnen. Und schauen wir uns das an. Und so werde ich hier zur Dummy-Datenbank wechseln. Und ich habe die Datei GLD gespeichert. Jetzt ist GLD ein ETF, das heißt, sagen wir, repräsentiert Gold, aber es ist nicht der genaue Preis. Die Preise werden also etwas anders sein als das Bild, das wir gerade gesehen haben. Das erste, was ich tun möchte, ist, dass ich diese GLD-Daten tatsächlich importieren möchte. Also, was ich tat, ist, dass ich gerade zu Yahoo Finance gegangen bin und ich tot GLD ETF bekam. Also habe ich mein Codierungsfenster vor mir. Das erste, was ich hier machen will, ist, dass ich einen Tisch kreieren will, und ich werde ihn Tafelgold nennen. Und dann werde ich f tun, Datum, weil das erste Feld am Datums- und Zeitwert ist. Und dann gibt es f offen. Und ich werde diese Felder nicht verwenden Daten, aber ich werde voran gehen und speichern. Ich werde voran gehen und es varchar. Also, wenn es ein Varchar ist, aber ich werde das Feld nicht benutzen. Ich werde f hi tun. Und das wird ein Varchar, f niedrig. Das wird ein Varchar. F in der Nähe. Das wird auch ein Varchar sein. Und dann werde ich Kleidung anpassen, die ich behalten werde. Und so wird das 228 sein. Und dann werde ich f Volume machen. Und das wird ein Varchar. Und eigentlich werde ich hier einen Unterschied machen, GLB-Date. Also im Grunde werden die Felder, die ich behalten werde, so nah hier und dieses Datum genau hier sein . Und ich werde es wieder sehr unkompliziert und einfach halten , damit Anfänger es verstehen können. Die gesamte Logik wird in sql geschrieben werden. Es gibt andere Sprachen, in denen Sie dies schreiben könnten, aber das ist wieder SQL, dies ist vor allem für Anfänger zu nehmen, um zu bekommen. Und dann natürlich, ausfallfähiges Gesetz, sollte ich sagen. Und für fortgeschrittene Menschen, aus einer Perspektive zu betrachten , wie könnte ich das noch besser machen? Okay, also gibt es Meer und ich glaube ETL und auf diesem Computer in GLD dot csv. Okay, da halte ich es draußen. Ok, so mit, und dann werden wir die Standard-Bucheinlage hier machen. Und es wird ein Feldterminator sein. Und das kommt aus, genau wie diese Felder hier. Dies kommt von der ersten Zeile in der Datei. Also, wenn Sie die GLD-Datei als CSV mit allen Daten herunterladen. Übrigens, Sie möchten sicherstellen, dass es sich um alle Daten handelt. Das ist es, worauf wir sprechen. Also ist das Feld Terminator, wie wir wissen, ein Komma. Und dann ist der Zeilenabschluss eine neue Zeile, also ist das 0 x 0 a. Und dann werden wir die erste Zeile speichern, was die Wahrheit ist. Hier, wird zu tun ist, wir gehen zu überspringen, wir werden die Header-Zeile überspringen. Das erste, was wir tun wollen, ist, dass wir unseren Tisch erstellen wollen. Und das nächste, was wir tun wollen, ist, dass wir unsere Daten massiv einfügen wollen. Und das haben wir getan. Und dann das nächste, was wir tun wollen, ist, dass wir von TV G golden löschen wollen. Auf diese Weise können wir alle auf dem gleichen Zeitrahmen sein. Also alle von euch, die entlang folgen, wo das GLD-Datum größer ist als. Und wir werden 2020 machen. Wir werden August machen. Wir werden 31. Hoppla. Also wollen wir das aus der Tabelle entfernen. Also werden wir das loswerden. Okay? Und dann werden wir das GLD-Datum auswählen. Und wir werden die angepasste Nähe schneiden. Wir werden diese für die Bewertung auswählen. Und wir werden von TB G Gold tun. Okay. Okay, also haben wir das getan. Dies ist Select Stern in diesem erstellt eine andere Tabelle. Also haben wir jetzt diesen Tisch hier. Und was wir tun können, nur um das zu überprüfen, und Sie sollten das auch sehen. Wenn wir zum GLD-Datum gehen, sollten Sie dies in Ihrem Foul der Bewertung sehen und wir können das Mindestdatum sehen. Okay. Schauen wir uns das an. Und dann schauen wir uns das andere an, schauen wir uns das Maximum an. Ich schließe mich einfach. Wir wollen uns den Preis des Mac ansehen. Und wir sehen, es ist ein 193. Wie ich schon sagte, GLD als ETF ist ein bisschen anders als die anderen. Nun, was ich hier tun werde, damit ich es einfach ausführen kann, ist, dass ich einen Kommentar auscodieren werde. Und das ist, was ich wirklich schnell gemacht habe, als dies auskommentieren. Und so kann ich den Code einfach wie verrückt ausführen. Okay? Also gehen wir zurück zu diesem Bild hier, okay, also was wir machen werden, ist dieser COP, okay? Also lasst uns das aus einer logischen Perspektive nachdenken, okay? Was wir hier tun, suchen wir hier im Wesentlichen nach einer Zeitspanne, einer Zeitspanne. Und zwischen diesem Zeitbereich als Ausgangspunkt, der hier ist. Und es gibt einen Indian Point, der in einem Bereich von hier liegt, richtig? Technisch gesehen sieht das so aus, als würde ich ein Smiley-Gesicht zeichnen. Ich kann sehen, wie Studenten das denken. Aber technisch gesehen, diese Periode, haben wir diese hohe Periode. Wenn Sie diesen hohen Preis haben würden, gibt es einen Zeitraum und dann gibt es einen weiteren hohen Preis. Und denken Sie daran, dass dies über einen langen Zeitraum oder einen kurzen Zeitraum passieren kann , oder? Wir sehen in diesem war es wie 2011, aber auch 2012. Es gibt eine Art von dieser hohen Periode hier, oder? Und dann sehen wir später, da ist diese hohe Periode hier, richtig? Und dann ist da noch dieser Becherteil hier. Und wieder, ja, es sieht aus wie ein Smiley-Gesicht, jetzt, wo ich das alles so herausziehe, wie ich es zeichne. Okay? Also und ich gehe zurück. Ok. Also im Wesentlichen eines der Dinge und der Grund, warum ich das hervorsteche, was wir in diesem Fall nicht tun wollen, und ich weiß nicht, wie spezifisch die TA-Regeln sind, oder Sie müssen ihn fragen, er bei TA Experte. Aber was wir nicht suchen wollen, ist etwas, das super dünn ist, oder? Wenn es also eine Zeit gibt, in der es ein Hoch erreicht , dann gibt es einen Kanal und dann gibt es eine andere Zeitspanne. Das ist eher wie eine zweifache Gabel, oder? Mit anderen Worten, wir gehen davon aus, dass, wenn auch immer die Periode ist, die hier beginnt , genau hier, sagen wir, dass der Zeitraum zwischen hier länger ist, mindestens dreimal länger ist als der Zeitraum hier. Also, was ich damit meine, ist wir, wir sagen, es ist eine Schwache, die es braucht, um zu diesem Hoch zu kommen. Und es ist eine Woche, die es braucht, um zu diesem Hoch zu kommen. Wir gehen davon aus, dass das hier 21 Tage ist, richtig? Also gehen wir davon aus, dass die Zeit, die es braucht, um hier zu erreichen, die sagen, ob es ein sieben Tage ist, der Durchschnittspreis der Sieben Tage und der Durchschnittspreis dieser sieben Tage. Das hier wird 21 Tage dazwischen sein, okay? Das ist nicht unbedingt harte und schnelle Regeln von TA By the way, Sie müssten einen Experten fragen, aber ich bin nicht 100% sicher, ob dies als eine Tasse definiert werden würde. Oder in Bezug auf einen Teil eines Unternehmens Handles oder ob es so ist, dass es eine lange Zeit geben muss. Ok, der Grund, warum ich das hervorsteche, ist weil wir hier Gold betrachten und wir wissen, dass Gold natürlich ist, ist ziemlich gut, ist es ziemlich ausgestreckt, so weit wie lange das geht? Es geht von 2011 bis 2020. Problem, weil Sie in diesem Jahr haben wir es getroffen ein Hoch zum Zeitpunkt dieses Videos. Was das bedeutet, ist, schauen wir uns an, wir werden definitiv einige Variablen deklarieren wollen. Und eine dieser Variablen wird max sein. Und das wird den Preis des Mac repräsentieren. Und wir haben die Dezimalzahl 228 verwendet. Das ist das erste Mal, dass wir wissen wollen, was das Max ist, denn wir werden das hier oben als dieses Gebiet benutzen. Das machen wir also, wenn wir über die Macs reden, wir schauen uns entweder das an, oder es wird genau hier sein, richtig? Das kann also tatsächlich in diesem Fall sein, das Max wird dies sein, weil wir wissen, wenn wir dieses Diagramm betrachten, das ist, wo wir definieren werden. Ok, das ist es, wonach wir eigentlich suchen, zuerst. Die andere ist, naja, ist, dass, obwohl wir es als Tasse beschreiben, mehr als wahrscheinlich, dass es innerhalb eines Bereichs sein wird. Also werde ich noch einen bekommen, der den Prozentsatz nennt. Und dieser Prozentsatz wird dezimal sein und es wird 32. Okay? Und ich werde einige dieser Variablen festlegen, während ich das mache. Also lassen Sie uns MAX wählen. Und das ist gleich dem Maximum durch nur nahe von der Beurteilung. Und du hast einen Wolf gemacht. Ich sage es dir, während ich das in einer Sekunde mache. Das wird also sein, sagen wir den oberen Teil des Bechers. Und wir werden jetzt nach einer Reihe suchen. Und ich werde die Bereichsmenge in Prozent gleich 10% definieren. Ja. Also was das bedeutet, wieder ist, dass ich will, wo immer dieses Hallo ist, ich suche nach einem anderen Hoch, das innerhalb von 15% davon liegt. Wir könnten es strenger definieren, und in der Tat werden wir damit spielen, dass es strenger ist. Aber fangen wir bei 15% an. Ich denke, wir könnten 20% machen, aber fangen wir damit an, beginnen bei 15%, und dann spielen wir mit Zahlen, während wir sie entwickeln. In diesem Fall schaue ich mir diese Grafik hier an und ich passe Treffer 2 Tausend, und das war 1810% von dem, was ist das? 2 Tausend ist 200. Damit wir uns vielleicht bis zu 10% dehnen können. Okay. Ordnung. Dann. Oh, okay. Ja. Setzen sie das ja. Bei max auf fest. Das ist in Ordnung. Okay. Was wir dann tun wollen, ist, dass wir tun wollen, was ist es? Dies wäre ein Zeitraum. Also der Zeitraum und klein und sicher, weil wir es nicht tun, ich meine, wir brauchen keine große int für den Zeitraum ist die Zeit, die wir werden, um den Durchschnitt zu bekommen. In diesem Fall ist es der Zeitraum, in dem es diesen Punkt oder diesen Punkt erreicht, oder? So zum Beispiel, wieder, mit dem Graphen auf Gold. Und so wäre das eine Zeitspanne genau hier. Und das wäre eine Zeitspanne, weil es wirklich ist, man könnte sagen, ein Doppeltop dort und dann wäre das eine Zeitperiode, richtig? Und so in diesem Fall wir sagen, dass der Zeitraum wird gesetzt werden, Zeitraum gleich 90. Jetzt lass uns, lass uns 60 mm machen. Es ist ein bisschen hart. Ich meine, es könnte sein, wir könnten sogar tun, ist robust, aber das sieht aus, als hätte es ein bisschen mehr gedauert. Das könnte ein bisschen mehr gedauert haben denn das sind Jahre, und ich muss mich daran erinnern. Aber lass uns 60. Lassen Sie uns, wir können immer wieder, tun länger, obwohl, je länger es dauert, um die zu erreichen, desto mehr davon wäre, desto kürzer dauert es, wie eine Abkürzung zu erreichen und behandelt. Übrigens, Sie werden diese manchmal sehen, die über einen Zeitraum von zwei Wochen passieren, dann würden wir einen Zeitraum von wie einem verwenden, obwohl wir wahrscheinlich die Werte im Laufe des Tages nicht brauchen würden. Okay? Also werden wir eine Schleife für dieses Beispiel machen müssen. Also werden wir weitermachen und wir müssen Schleife machen. Also wollen wir einen Loop-Start machen. Und das ist eine Sache. Verdünnter Start wird sein, es muss ein Datum sein, weil wir über Zeiträume iterieren. Also werden wir diese Datetime aufrufen und der Schleifenstart wird das heutige Datum sein. Jetzt wissen wir, dass wir Werte für heute losgeworden sind, aber wir werden weiter über die Werte iterieren, bis wir aber wir werden weiter über die Werte iterieren, bis wirrückwärts gehen, weil das im Wesentlichen wir tun und laut denken, während ich das mache. Aber im Wesentlichen werden wir rückwärts gehen. Also, das ist der Loop-Start wird nur der Anfang einer Schleife sein und dann wird es rückwärts gehen. Okay? Das bedeutet also, wenn wir einen Schleifenstart haben, dann haben wir ein Schleifenende. Und das wird das Original sein, der allerfrüheste Wert des Tisches. Das ist also unser Min-Wert, das ist es, was das ist. Okay, also Schleifenende. Ich denke noch einmal daran, während ich das mache, also wird das Schleifenende das Minimum sein. Und das wird das GLD-Datum von der Bewertung sein. Und ich gehe hier rauf und stelle sicher, dass du dir das GLD-Datum ansiehst. In der Tat, was ich tun will, ist, das nach unten zu scrollen. Das macht es für jeden leicht zu sehen. Okay, also haben wir einen Schleifenstart, der der Anfang der Schleife und dann das Ende der Schleife sein wird. Okay? Und dann werden wir es haben, okay. Also haben wir diesen Zeitraum , der 60 sein wird, aber wir müssen den Preis für diesen Zeitraum bekommen. Was wir also brauchen, ist der aktuelle Durchschnitt. Und das ist der aktuelle Durchschnitt für den Zeitraum. Und in diesem Fall wird der aktuelle Durchschnitt dezimal 228 sein. Okay? Und dann müssen wir das natürlich tun. Wir wollen überspringen. Ja, ich glaube nicht, dass wir noch einen brauchen. Ich denke, wir können genau das tun. Ich denke hier laut nach, aber ich denke das, also hier ist das Problem. Wenn wir die Schleife sofort starten, geht sie rückwärts. Also sagen wir, es bekommt den Durchschnittspreis. Lassen Sie uns also folgen, was unser Algorithmus tun würde. Wie sollen wir das machen? Wir kriegen den Preis des Mac in diesem Bereich über 60 Tage. Es wird den maximalen Preis nehmen, dann wird es anfangen, rückwärts zu gehen. Aber wir wollen nicht, weil weil denken, wo ich schon bin. Ich bin schon 2009. Du bist schon ein Jahr gegangen, weil dieses Bild so ausgestreckt ist. Ich möchte nicht wirklich für mindestens ein Jahr nach dem nächsten Max Price suchen. Also, was das bedeutet, eine Möglichkeit, das zu tun, ist, dass wir ein ähnliches Konto haben könnten , das eine bestimmte Anzahl von Perioden überspringen würde. Aber ein anderer Weg, jetzt, wo ich darüber nachdenke, ist ich könnte wählen Sie einfach die Schleife, starten gleich Datum Anzeige, das wird Tage hinzufügen, Tag, Tag, das wird Tage hinzufügen. Verdammt, jemand würde eine Subtraktion machen. So subtrahiere ich übrigens 365 Tage und bekomme Datum. Also, eigentlich werde ich nur wegen der Ordnung, was ich tun werde , ist, dass ich das tun werde und da ist das. Und was ich jetzt tun kann, ist, dass ich das einfach tun kann. Also Loop-Start ist ein über ein Jahr. Also werden wir den Maximalwert bekommen. Das heißt, wir werden diesen maximalen Wert für die ersten 60 Tage erhalten und dann werden wir einen Zeitraum überspringen. Okay. Ich denke nur darüber nach, ist das alles, was ich brauche? Denn wenn ich zu diesem Bild gehe, werden wir im Grunde hier anfangen. Wir werden rückwärts gehen und wir werden diese Durchschnittswerte im Laufe der Zeit bekommen. So wie ein Fall in Punkt, würden wir den Durchschnitt von hier bekommen. Dieses Mal erhalten wir den Durchschnitt und diesen Zeitraum, diesen Durchschnitt, diesen Durchschnitt, diesen Durchschnitt, diesen Durchschnitt, diesen Durchschnitt, diesen Durchschnitt, diesen Durchschnitt. Und dann werden wir uns ansehen, ob dieser Durchschnitt innerhalb eines Prozentbereichs von dem Maximalpreis liegt , den wir bekommen haben. Also lasst uns voran und lasst uns anfangen, unsere Logik mit einer while-Schleife auszuarbeiten. Und das ist, das wird hübsch sein, hier wird es ein bisschen intensiv, okay, zuerst. Und so werde ich wahrscheinlich einen Teil der Schleife anfangs machen, nur um zu zeigen, was los ist. Also, was wir tun, ist, dass wir rückwärts gehen. Was wir uns also ansehen, ist, dass wir suchen, wenn die Schleife, in der wir uns gerade befinden, wir suchen, dass dies eine gute Frage ist. Grundsätzlich suchen wir nach, während sie noch Daten sind, über die sie iterieren müssen. Mit anderen Worten, während es noch Daten rückwärts gehen, werden wir weiter gehen. Also im Wesentlichen, was wir sagen, ist, während Datum Anzeige Tag, Tag minus 60. Und das ist Loop-Start. Also, während Datum Ad größer ist als Loop End durch dies ist die Herausforderung der Live-Codierung. Beginne, Ende. Okay? Also, okay. Also, wenn wir dies ausführen, das ist Spaß, aber wir wollen, ist, dass wir wählen, während Datum Anzeige. Gehen wir voran und wählen Sie diesen Wert. Und was wir machen wollen, muss es eine festgelegte Operation geben. Wir werden den Loop-Start einstellen, müssen wir. Deshalb, weil es diesen Schleifenstart verwendet. Wir müssen diese Schleife beginnen gleich Datum Anzeige, und dann unser Tag, Tag minus 60. Und dann wird es Schleife beginnen, sich selbst zu referenzieren. Und es hat mich getroffen, dass wir tatsächlich die Zeit hier haben. Also, was ich hier tun werde, kann ich das ersetzen und das ersetzen. Und ich kann das ersetzen. Also und ja, wenn Sie einen negativen Zeitraum setzen, wird es den negativen Zeitraum tun. Also, wer sich anschließt, da ist dieses und dann Scheckdatum. Also werden wir das Datum überprüfen. Also, was sollte hier passieren? Lassen Sie mich das hochziehen, ist, was passieren sollte, wird es darüber iterieren. Und während es noch gibt, während dieser Schleifenstart im Wesentlichen größer ist als Schleifenende, wird es immer und immer wieder gehen. Aber irgendwann ist es nicht. Das ist es, was diese Set-Operation tun wird. Schließlich Schleifen beginnen wird früher als Luke Ende sein und es wird aus der Schleife brechen. Also lasst uns, ich mache wählen. Oh, ja, das kann ich tun, ist, als ob mir gerade gesagt wurde, dass ich auch drucken könnte. Aber lassen Sie uns voran gehen und wählen. Also, wenn wir das laufen, sollte es langsam, aber sicher rückwärts gehen. Und so sehen wir 20191086422018108, und es geht weiter und es gibt einige Werte, aber das ist genau das, was wir wollen. Also, dass für diejenigen von euch, die fragen , okay, was sollen wir damit machen? Was wir werden den Durchschnitt des Preises in diesem Zeitraum bekommen. Jetzt ist es interessant, ich habe mich gerade getroffen, wie ich auf diesen Halt auf 1 Sekunde schaue. Dass dies tatsächlich hier wegen der 365 beginnt. Okay? Okay, aber es ist, wir erklären bereits, dass Max hier ist, also sollten wir okay sein. Ich denke, dass wir Max erklären, in der Schleife zu sein, aber es ist nicht der Fall. Wir deklarieren Max hier. Also sollten wir okay sein, weil ich sagen wollte, dass es auf den max 2020-Preis überspringt, aber das ist schon außerhalb davon deklariert. Das macht also Sinn, weil wir uns den aktuellen Preis ansehen und das ist es, worüber wir eine Einschätzung vornehmen würden. Okay? Und das ist immer die Herausforderung der Live-Programmierung, aber es ist sehr nützlich für Studenten zu sehen, denn wieder, es ist, es ist, gute Praxis. Ok, also wollen wir behalten, dass wir unser Set hier behalten wollen. Das ist sicher. Wir müssen diese Auswahl nicht behalten und wir haben unser Datum überprüft. Jetzt wollen wir anfangen, die Logik dessen zu programmieren, was wir tun werden. Also, was wir als Nächstes tun wollen, ist, dass wir einen der Schlüssel auswählen wollen, ist, dass wir den aktuellen Durchschnitt erhalten wollen, richtig? Wir wollen den aktuellen Durchschnitt über Ost-Iteration einer Schleife erhalten. Wir wollen also sagen, dass der derzeitige Durchschnitt gleich dem Durchschnitt sein wird , und er wurde nahe angepasst, wenn ich mich genau dort von der Einschätzung richtig erinnere. Von der Beurteilung. Und wir wollen, dass, wo das GLD-Datum. Und wir müssen uns immer daran erinnern. Vergessen Sie diesen Teil, wenn es um jede Logik hier geht, aber ich muss immer von Anfang bis Ende beginnen. Also, wo es zwischen und seine Datumsanzeige ist. Und es wird Tag, Datum minus Zeitperiode sein. Und es wird Loop-Start und Loop-Start sein. Und ich habe mich vorher in der Logik gesehen, mache Schleifenstart und dann hier drüben das Ende und dann etwas anderes. Und es wird nie etwas finden, weil es rückwärts ist. Also mache ich diesen Fehler mit Datum, manchmal mit dem zwischen Operator. So muss es das früheste bis zum letzten Mal sein. Es kann nicht frühestens sein, das ist rückwärts. Es wird sich nichts einfallen lassen. Okay? Und okay, also haben wir den aktuellen Durchschnitt. Und so eigentlich, wenn ich das tat und ich wählte den Durchschnitt, In der Tat, Ich denke, lasst uns voran gehen und das tun. Mal sehen, was passiert. Aktueller Durchschnitt. Und lassen Sie uns ein Vg tun. Okay? Lass uns einen Scheck machen. Und da ist der aktuelle Durchschnitt. Es geht und erhält den aktuellen Durchschnitt. Und übrigens, wenn Sie weiter fortgeschritten sind, könnten Sie hier Optimierungen herausfinden. Dies ist ein großartiges Video für Anfänger, und das ist ein großartiges Video für fortgeschrittene Lernende, um herauszufinden, wie man besser macht. Ok? Also würden wir tatsächlich gehen unseren aktuellen Durchschnitt zu bekommen. Das ist genau das, was wir wollten. Es wird Schleife und es wird gehen, um den aktuellen Durchschnitt all dieser Zeiträume zu erhalten . Okay, aber denken Sie daran, dass wir wollen, dass es zurück zu unserem Bild geht, wir wollen, dass es diesen Bereich hier zurückgibt. Und hier werden wir diesen Prozentsatz bekommen, richtig. Also im Wesentlichen der Prozentsatz, den wir betrachten, ist, wenn es innerhalb von 15% des Mac-Preises ist. Also, was wir hier sagen werden, jetzt werden wir eine If-Anweisung schreiben. Ich werde nach unten scrollen. Ich glaube nicht, dass ich einen Tisch brauche. Ja, ja. Okay. Also, wenn wir sagen, wenn wir die aktuelle sagen, Ich habe dies in Klammern vor der Zeit, wenn der aktuelle Durchschnitt zwischen, Ich werde dies in Klammern setzen und, und, und das in Klammern. Wenn es zwischen dem Preis des Macs max mal ist. Und ich werde das sagen, es wird eins minus dem Prozent sein. Prozent da ist es. Also eins minus dem Prozent, richtig? Also, warum ist es eins minus dem Prozent? Weil es 85% des Preises sein wird, richtig? Und die Maximalzeiten. Und das wird anders sein, eins plus Prozent, richtig? Also ist es zwischen diesem Wert, es wird entweder zwischen im Grunde 85% des Mac-Preises und 115% sein. Das machen wir hier. Wir bekommen diese prozentuale Reichweite. Es kann ein bisschen weniger, ein bisschen größer sein. Und wie ich schon sagte, wir können es festziehen. Also, wenn der aktuelle Durchschnitt zwischen dort liegt, dann werden wir anfangen und enden. Und wir werden, Mal sehen, wir iterieren über. Lassen Sie uns darüber nachdenken, dass wir könnten, wir tun können, wir wählen Sie aus der Tabelle. Und machen wir die min, min. Und lasst uns das GLD-Datum machen. Und lassen Sie uns das maximale GLD-Datum machen. Und dann machen wir den AVG-Preis. Und dann werden wir von der Einschätzung zu tun. Das ist richtig, denn das gibt es. Und wir werden uns das hier ausleihen. Whoops, es tut mir leid. Das ist genau hier. Denn das ist der Zeitraum, in dem wir uns gerade befinden. Das wird uns also sagen, wenn der aktuelle Durchschnitt, da er über alles iteriert, zwischen diesem Bereich liegt. Und ich denke an Preis. Das ist es, was es ist, aber es ist tatsächlich in der Nähe angepasst. Also, okay, wenn wir das tun, mal sehen, was passiert. Okay, scrollen wir nach oben und schauen wir uns unsere Werte an. So haben wir 2012201220112011. Also lassen Sie uns wirklich zurück zu dem Bild und was wir sehen würden. Und ja, lasst uns diese Farbe hier benutzen. Ist das hier, wo unser Hoch technisch steht. Es ist also, weil wir 15% verwenden, es wird etwas hier drin finden, das ist 20112012. Das wäre richtig. Schauen wir uns das an. Dieser Wert ist 168166165171. Okay, gehen wir zurück. Das ist, das. Das ist richtig. Denken Sie daran, dass wir 15% verwenden und ich weiß, wie ich schon sagte, dass wir mit anderen experimentieren können. Verwenden wir 12%. Lassen Sie uns hier etwas strenger sein. Und wir bekommen 2011 und wir haben 171. Das war ein stärkerer Filter. Okay, also wissen wir, dass R max Preis 193 war. Es technisch gesehen 19.3 nur und das ist Gold, das ist nicht GLD, aber 193 wäre wahrscheinlich meine Vermutung, dass es sowieso über diesem Bereich sein wird. Also, weißt du, wenn ich nur eine volle Tasse mache, würde ich wahrscheinlich wie 185 anfangen, aber ja, das ist eigentlich richtig. Also lasst uns wieder zurückgehen und schauen wir uns unsere Logik hier an. Und nur um zu zeigen, aber was wir getan haben. Und wieder gibt es viele andere Möglichkeiten, dieses Problem zu lösen. Also versteh mich nicht falsch. Es gibt, das ist nicht die einzige Möglichkeit, dieses Problem zu lösen. Dies ist nur eine gute Praxis, denke ich für Anfänger zu sehen. Aber was wir getan haben, ist, dass wir in einem Maximalwert übergeben haben oder der Wert im Grunde, dass wir zwei Faktoren vergleichen wollen , wäre eigentlich besser benannt, vergleichen zwei. Wir gehen vorerst mit Max. In diesem Fall haben wir es als das Maximum aus dieser Tabelle bekommen. Wir hatten einen Prozentsatz, der nicht ein Prozentbereich innerhalb dieses Maximums ist, wie wir hier verwenden, oder? Es ist der Prozentsatz darüber, in Prozent darunter, und das ist es, was wir tun. Das Prozent darunter. Das Prozent darüber, richtig. Okay. Dann haben wir den Zeitraum. In diesem Fall sind es 16 Tage. Wir suchen nach einem Durchschnitt über diesen Zeitraum. Denken Sie daran, wenn wir uns ein Unternehmen ansehen würden, das über drei Monate abgewickelt wurde, wäre dies viel, viel kleiner. Das wären wahrscheinlich nur fünf Tage oder vielleicht sogar drei Tage, oder? Es hängt also wirklich von der Länge der Zeit ab, nach der wir suchen. Wir haben dann unseren Loop Start. Und, und das ist ein weiterer Punkt, an dem unsere Schleifen beginnen würden überhaupt nicht weit draußen sein. Wie zum Beispiel, wenn Sie nach einem Firmengriff oder einer Tasse suchen, tut mir leid, über 30 Tage. Ich hätte das Anfangsdatum der Schleife am Tagesdatum minus wahrscheinlich höchstens drei oder 55 würde es schieben. Definitiv drei über 30 Tage. Ja, ich will nicht zu viele Tage überspringen, oder? Und dann hatten wir dieses Schleifenende und das ist nur ein Mindestdatum für jeden Datensatz, den wir haben. Und so gehen wir durch und erhalten den aktuellen Durchschnitt jeder dieser Gruppen von Daten. Und dann überprüfen wir den aktuellen Durchschnitt, wenn er zwischen diesem Bereich liegt, und dann geben wir ihn zurück, wenn es der Fall ist. Und dann iterieren wir natürlich über unsere Loop-Startzeitperiode. Nun das Tolle ist, dass dies nicht SQL ist, was natürlich definitiv eines der Dinge in diesem Kurs ist. Aber denken Sie daran, es gibt andere Sprachen, denen dies wahrscheinlich bereits automatisch hinzugefügt wurde. Dies macht also eine großartige Codierungsübung, die der Zweck davon ist. Aber wenn Sie eine andere Sprache haben, die Sie bevorzugen, in der Sie dies tun würden, müssten Sie es nicht in SQL tun. Aber wenn Sie im Allgemeinen ein großes Abendessen sind und SQL beginnen und noch nie mit SQL gearbeitet haben. Dies ist eine große Herausforderung für Sie zu folgen und dann zu optimieren, wie Sie es für richtig halten und es zu Ihnen machen, vielleicht über einen kürzeren Zeitraum zu schaffen. Wenn Sie ein Experte sind, schauen Sie sich das an und denken Sie darüber nach, wie Sie es mit einem der Tools optimieren würden, nicht nur SQL, sondern auch mit jedem Tool. Aber das macht eine großartige Praxis, und ich denke, es ist ein großartiges Beispiel für etwas, das, weißt du, einige Leute, übrigens, für x und sie denken, dass Firmengriffe legitim sind. Manche Leute denken, sie sind nicht echt. Ich finde TAs irgendwie lustig, aber meine Freunde, einige von ihnen, ich sollte sagen, dass sie es wirklich mögen, aber ich denke, es ist eine lustige Übung. Und für das Protokoll würde ich jeden von Ihnen empfehlen, der besser werden will, sagen wir, SQL zu beschichten, mit allen Arten von technischen Mustern wie Kopf und Schultern, umgekehrtes Muster usw. herumspielen , richtig? Wie das sind wirklich lustige Programmierübungen und es wird Sie definitiv besser beim Schreiben von SQL bekommen. 10. Bonus-Herausforderung - - 2: In diesem Video werden wir uns die Sicherheit ansehen, wenn es um SQL-Injection und Bereinigung von Eingaben geht, dies gilt für den gesamten Datenbankkontext und alle SQL-Datenbanken. Wenn wir wirklich darüber nachdenken wollen, erlauben wir Eingaben von Benutzern. Also, was wir hier tun werden, wird das ein komplettes Codierungsvideo sein. Wir werden uns ein paar Beispiele ansehen. Und das erste ist ein erfundenes Beispiel und das zweite wird Live-Codierung sein. Es wird also eine Übung Live-Codierung sein. Ich werde das Skript anhängen, die zweite Live-Codierung, weil ich denke, dass es für Sie alle sehr nützlich sein wird, um zu spielen und zu sehen. Dies gilt also für Ihre Datenbankentwicklung. Es gibt gilt für Extrahieren, Transformieren und Laden. Dies gilt für alles, an dem Sicherheit beteiligt ist. Und ich habe gesehen, dass dynamisches SQL effektiv verwendet wird, aber wenn es nicht gut geschrieben wird, könnte es potenziell Kompromisse von Hackern geben und so könnte es eine SQL-Injection ermöglichen. Lassen Sie uns also beginnen, indem wir uns unbereinigtes und unsauberes SQL ansehen. Und wir werden ein erfundenes Beispiel verwenden. Und lassen Sie uns sagen, dass das, was wir hier tun, und ich werde das erklären, warum es aus mehreren Gründen schlecht ist , ist, dass wir eine Variable namens irgendetwas geht. Wir werden sehen, dass dies ein Varchar von 1000 ist. Das ist in diesem Fall viel zu lang. Und was alles geht, sollte nur dazu dienen, den Stern von unserem Tisch auszuwählen, oder? Das ist es, was es sein soll. In der Tat, eigentlich, lassen Sie uns gehen und ich wusste das nicht, als ich das gemacht habe, aber lassen Sie uns etwas tun, sagen wir, es war ein legitimer Wert. Also, was das sein sollte, ist nur unser Tisch, oder? Ich werde das ausprogrammieren. Was wir also bekommen sollen, wenn wir das ausführen, ist dass wir im Grunde Stern aus unserer Tabelle auswählen sollen, und das ist die beigesetzte Ausgabe, wie wir sehen, ich wähle diese beigelegte Ausgabe aus, das ist, was übergeben wird, und das ist, was herauskommt, die ID in der Tabelle ist leer. Da ist nichts drin. Okay, nun, nehmen wir an, ein Hacker würde das benutzen, weil wir diese Eingabe nicht bereinigen, wie wir sehen, wir erlauben alles. Und wir sehen auch, dass es einen Varchar von 100 gibt, oder? Das ist nicht gut, oder? Nehmen wir an, dass sie das ausführen würden. Und was wir sehen werden, ist sehr, sehr besorgniserregend, richtig? Wir sehen das, dass es tatsächlich diesen ausgewählten Stern von unserem Tisch läuft, oder? Aber dann bricht es hier und es führt diese Select-Anweisung aus. So ist der Hacker in der Lage, Informationen aus unseren SIS-Tabellen zu erhalten, wo es wie Admin ist. Dies hier ist ein Beispiel im Backend dessen, wie SQL-Injection aussieht. Mit anderen Worten, sie waren in der Lage, mehr SQL und mehr Informationen zu injizieren , um Details zu extrahieren. Das häufigste Beispiel ist jedoch, was passiert, wenn sie eine Drop-Tabellenanweisung ausführen? Und das ist wieder etwas Wahrheit. Aber oft wollen Hacker Recognizance machen, und so suchen sie nach mehr Informationen. Okay, also schauen wir uns das gleiche Beispiel an und schauen wir uns die Desinfektion an, und schauen wir uns an, warum dies eine bessere Desinfektion ist. Also eigentlich werde ich anfangen, indem ich die schlechte Verletzung benutze. Also gehen wir wieder hier hoch. Ich benutze dieselben Einträge, aber ich meine, er ist eine schlechte Technik, dann benutzen wir den guten Eintrag. Ok? Also haben wir, in diesem Fall, was wir statt irgendetwas haben, geht als Variable. Wir haben eine Tabellenvariable. Sie werden feststellen, dass eines der Dinge ist, dass die Tabellenvariable 25 ist. Jetzt beschränken wir das. Also wieder, wenn dies, wenn eine dieser Zeile gespeicherte Prozedur. Das würde alles erlauben. Das hier würde nur 25 erlauben, richtig? Oder wenn dies SQL direkt im Code ist, beachten Sie, wie dies restriktiver ist und dies alles zulässt. Dann sehen wir, dass der Hacker wieder in seinem bösartigen Wert passiert. Mal sehen, was passiert, wenn wir dies ausführen und was zum Teufel zum Wert sich herausstellt dass es sich um, es ist Tabelle, unser Tabellenname, der würde, das würde, das würde, sogar hier oben scheitern. Und in der Tat könnten wir, gehen wir voran und tun das. Eigentlich sollte ich keinen Code wie diesen leben. Gehen Sie weiter und tun Sie das. Und nur als Experiment, aber wir gehen, alles geht gut. Also werden wir dasselbe tun und wir werden sehen, dass Fehler, richtig, denn das ist keine legitime Abfrage, richtig? So scheitert das schon. Okay, ich werde das rückgängig machen. Ok? Und gehen wir hier runter. Also werden wir sehen, wenn wir das ausführen, das schlägt bereits fehl, dass es nicht lang genug ist. Aber selbst wenn es legitim war und wir werden uns ein Beispiel dafür ansehen, dass es in einer Sekunde legitim ist. Wenn wir diese ganze Sache ausführen würden, wird es scheitern. Und der Grund ist, dass wir nicht dynamisch aus der Tabelle auswählen, die diese Person eingibt. Was wir tun, ist, dass wir hier unten eine ausgewählte Tabelle deklarieren. Und wir gehen, und wir bekommen, wir setzen, dass Tabelle wählen gleich dem Tabellenschema. Deshalb ist dies übrigens länger Punkt der Tabellenname. Wir sind der Tabellenname gleich Tabelle. Was das ist, ist das eine Desinfektion, richtig? Wir nehmen nicht, was, wer auch immer, die Benutzer, den Hacker in diesem Fall, wir sind eigentlich erst, bereinigen es. Und wenn wir eine legitime Variable übergeben, werden wir sehen, wie das alles funktioniert. Aber du wirst bemerken, dass das null ist. Das liegt daran, dass es nach einem Tisch mit seinem vollen Namen sucht und es keinen gibt, oder? Das gibt es eigentlich nicht. Will eigentlich, würde ich sie rausbringen. Es sucht nach einem Tisch, der so heißt, es tut mir leid. Das würde es genau da sein. Richtig. Aber es gibt keinen Tabellennamen, und daher findet es keine Tabelle, so dass es nichts zurückgibt. Was passiert also mit dieser Ausgabe, wenn wir eine legitime Tabelle übergeben? Whoops. Okay, machen wir das. Wir sehen, dass wir bekommen, bekommen wir unsere Intrade-Ausgabe, richtig, richtig? Was also passiert, ist, und ich habe die Auswahlabfrage nicht dynamisch hier zuerst erstellt, ich werde das tatsächlich tun, direkt danach. Ich kann das Live-Codieren machen, aber wir sehen, dass es in legitimen Wert übergeht. Es sollte an dieser Stelle kein gehackter Eintrag sein. Das ist also ein legitimer Wert und es gibt DIYBio-Tabelle, unsere Tabelle. Also gibt es das hier zurück, diese Auswahltabelle, und wir sehen, was der Zitatname tut, ist es in Klammern umhüllt, richtig? Also umschließt es den Namen in Klammern. Es hat dann diesen Zeitraum hier und Zitat Namen. Dies ist übrigens ein gutes Beispiel gute Datenbankentwicklung hier in guter SQL-Entwicklung, richtig? Es wird die Eingabe legitimiert. Aber Sie bemerken, indem Sie die Eingabe legitimieren, erhalten wir das aus diesem Informationsschema Punkttabellen. Wir kriegen es nicht vom Benutzer, oder? Also, was passiert, wenn wir die gleiche Abfrage hier oben nehmen? Ok. Und ich würde es immer noch nicht so schreiben, aber wenn wir es so schreiben wollten, und wir wählen Stern aus der Auswahltabelle. Ok? Und dann werden wir, und ich, tatsächlich voran und hash das hier draußen, weil wir bereits wissen, was das ist. Also lasst uns weitermachen und das laufen. Und wir werden sehen, dass die ID leer ist, da es wieder keine Werte in dieser Tabelle gibt, aber es gibt diese Auswahl zurück. Nun wieder, das ist nicht sauber auf, Ich bin kein großer Fan von diesem, aber es ist immer noch ein 1000 Mal besser als diese Affäre. Und der Grund dafür ist, dass das, was hier im Wesentlichen läuft, genau hier ist. Und das ist genau hier, richtig? Und denken Sie daran, dass Sie sagen, gut, was passiert, wenn sie ein Semikolon setzen? Nun, sie können es nicht, weil diese Select-Tabellenvariable daraus kommt. Es gibt keine Möglichkeit, dass sie dazu Eingaben hinzufügen können, oder? Deshalb müssen wir uns um diese Situation überhaupt keine Sorgen machen. Okay, cool. Also lassen Sie uns jetzt tatsächlich eine Live-Codierung Übung machen. Und das wird ein bisschen Arbeit brauchen. Also werde ich mein Mikro ein wenig bewegen, weil ich tatsächlich Live-Kleidung sein werde. Und was wir tun werden, ist, dass wir uns ein Beispiel ansehen , weil ich sehen kann, wie einige Schüler sagen, nun, warum sollten wir jemals Dynamic SQL verwenden? Und ob wir Datenbankentwicklung oder ETL-Entwicklung oder irgendeine Art von Entwicklung betreiben , es gibt legitime Anwendungsfälle für dynamisches SQL, aber wir sollten uns einige der Nachteile davon bewusst sein, wie wir gerade gesehen haben. Wir wollen sie desinfizieren. Dies ist also ein Beispiel für einen legitimen Anwendungsfall von dynamischem SQL und warum es praktisch ist. Also habe ich hier einen Tisch und was ich hier tun werde, ist, dass ich einen CTE erstellen werde. Ich nenne es „Drops“ hier. Und ich werde tun, wie und ich werde zu tun, wählen Sie Stern aus Tabellengruppen. Und dann werde ich einen Stern aus Dips machen, okay? Und so sollte dies Ausgabe zurückgeben. Ja, wir sehen, dass diese drei Werte Duplikate sind. Wir sehen, diese beiden Werte sind Duplikate und wir sehen, diese Werte sind Duplikate. Mathe in der Wohnung sieht so aus wie für Werte aus dieser Tabelle sind Duplikate, die wir entfernt werden möchten. Ok? Okay, damit wir die doppelte Logik schreiben und jedes Mal die doppelte Logik loswerden können, richtig? Und das ist etwas, das viele Leute tun und es hängt davon ab, wir wollen vielleicht eine Teilmenge von Spalten, aber ich kann Ihnen sagen, dass es viele Umgebungen gibt, in denen ich gegangen bin, in denen wir Duplikate durch alle Spaltennamen entfernen möchten. Was wir also wollen, ist die gesamte Liste der Spalten. Und wir wollen in der Lage sein, Duplikate durch die gesamte Liste der Spalten zu entfernen. Wenn wir eine Situation wie diese haben, wenn Sie darüber nachdenken, werden alle Spalten dupliziert. Es ist wahr, dass wir manchmal nur diese beiden haben , die dupliziert sind, die wir entfernen wollen. Aber es gibt viele Situationen, in denen wir die Zeilen in der Tabelle entfernen möchten , die doppelte Spalten in der Tabelle haben. Wie können wir das dynamisch machen? Na gut, also lasst uns weitermachen und etwas Live-Codierung schreiben. Was wir tun werden, ist, dass wir dynamisch die gesamte Spaltenliste bekommen. Also, was ich zuerst hier tun werde, ist, dass ich deklarieren werde, und ich werde hier eine große Variable deklarieren, weil sie groß sein wird. Und das ist Navarra Auto 1000. Und ich werde eine andere Variable namens Spalte deklarieren, und es wird die gleiche Größe haben, 1000. Und es ist, weil dies alle Spalten speichern würde. Und dann wird SQL kein varchar max sein. Und wir werden, Ich werde SQL in einer Sekunde demonstrieren und warum es Max. Aber im Moment ist das hier, wie das, der Grund, warum das so lang ist, ist, weil ich alle Spaltennamen speichern würde, ID, die ich nenne, ich datiere. Aber es könnte mehr in dieser, dieser Spaltenliste sein. Okay, dann deklariere ich eine Tabelle wie die andere, die eine Variable sein wird. Und wir machen das als Varchar 100 und wir werden es auf Tabellengruppen setzen. Wir erinnern uns daran, dass das unser Tisch war. Okay, das nächste, was ich tun werde, ist, dass ich Stern aus Informationsschema-Punkttabellen auswählen werde . Und ich werde erklären, warum das, tut mir leid, nicht Tabellen, ich habe das falsch gemacht. Spalten. Dies liegt daran, dass es mir alle Spaltennamen aus einer Tabelle bringt. Und ich werde sagen, wo Tabellenname gleich Paypal ist. Okay, also gehen wir weiter und machen das. Und wir werden die Ausgabe sehen, sehen Sie die Datenbank, das Tabellenschema und sehen Sie sich diese, die Spaltennamen, richtig? Das ist cool. Alles klar, was ich jetzt von hier aus tun werde, ist, dass ich unser dynamisches SQL benutzen werde und ich habe hier einen Fehler gemacht. Ich muss dies auf einen leeren Wert setzen. Ok? Und deshalb kann Live-Codierung so schwierig sein weil ich manchmal vergesse, was ich tue. Und ich bin wie, okay, warte mal, wie habe ich das vorher gemacht? Okay, was ich tun werde, ist, dass ich diese Spaltenlisten plus gleich setzen werde. Das heißt, fügen Sie hinzu, was Sie hier haben und fügen Sie dann auch den Namen des Zitats hinzu. Wir sahen dies bereits in der anderen verwendet. Was das tut, ist es in Klammern zu wickeln. Denken Sie daran, und wir sagen den Spaltennamen. Zurück zu diesem Beispiel, wenn wir diesen Anführungsnamen verwenden, wickelte er ihn in Klammern wie folgt ein. Okay, also werden wir uns die Ausgabe hier ansehen. Aber Sie werden feststellen, dass wir Spalte n auswählen und wir fügen Spaltenliste hinzu, es tut mir leid, und wir fügen jeden der Spaltennamen plus ein Komma hinzu. Ok, Also schauen wir uns die Ausgabe dessen an, wie das aussehen würde. Alle Kolumnist. Okay, schauen wir uns das an. Wir sehen, wir haben ID, ich Name, ich Datum, dann haben wir ein Komma am Ende. Jetzt wird die Logik in einer Sekunde sehen, aber im Endergebnis wollen wir, dass indisches Komma entfernt wird. Also, was wir tun werden, ist, dass wir die Länge dieser Zeichenfolge auswählen. Whoops. Was passiert, wenn Sie zu viele Sprachen verwenden, da Sie in einer anderen Sprache gültig sind, okay? Und wir werden sehen, es ist 21. Es gibt jedoch eine Funktion in T-SQL namens Teilzeichenfolge. Und Teilzeichenfolge, werden wir den Ausdruck eingeben, der Spaltenliste ist, wird an der ersten Position beginnen. Und wir machen die Länge wird die schließende Klammer hier bis zur Länge der Spaltenliste minus ein K sein. Ja, das ist richtig. Wir tun dies und wir sehen, was es zurückgibt, ist diese ID I name, es gibt kein nachstehendes Komma. Das ist genau das, was wir hier wollen. Und was ich tun werde, ist, dass ich die Länge der Ruhe teilen werde 21 Zeichen war. Wir sehen, was diese Spaltenliste ist. Es ist diese ganze Sache. Was ich tun werde, ist, dass ich das ausprogrammieren werde. Ich werde den Code anhängen. Aber wenn ich den Code angehängt habe, wird es so aussehen, im Gegensatz zu diesem anderen. Ich werde das auch tatsächlich codieren. Und was ich hier tun werde, ist, dass ich Kolonne setzen werde. Ich werde diese Spalten nennen. Ich habe das nicht richtig gemacht? Gleich und es ist Teilzeichenfolge dies. Dies ist also diese Variable gleich diesem. Ok? Nun sind Sie, einige von Ihnen fragen sich wahrscheinlich richtig, okay, also wissen Sie, warum machen wir das dynamisch so? Und das ist eine gute Frage. Wie wir jetzt sehen, konnten wir es schaffen. Und die Spaltenliste, und wir konnten die nachgestellten Spalten entfernen, speichern Sie das. Was wir jetzt tun werden, ist, dass wir uns aussuchen, wir werden nicht entfernen, wir werden die doppelten Werte auswählen. Dies ist, wo wir dieses SQL und das varchar max verwenden und waren der Grund, warum wir es SQL varchar max setzen, weil wir eine Menge SQL haben, die wir hier einfügen werden. Und so werden wir diesen gemeinsamen Tabellenausdruck mit Hadoop's As verwenden, und wir werden der gleichen Logik folgen. Das erste, was ich tun werde, ist dasselbe, was ich vorher getan habe. Ich werde wählen Stern aus dem Fernsehen zu tun. Denken Sie daran, wir könnten hier dynamisch Dopes hinzufügen. Wir könnten ein Plus und dann den Tabellennamen tun. Der Grund, warum ich eigentlich bin, komme ich zurück und je nachdem, wie viel Zeit wir zurückkommen und das tatsächlich tun werden, und wenn nicht, könnten wir das tun. Wir können es zu einer weiteren Dynamik machen. Ich möchte zeigen, dass die dynamischere benannte Natur dieser Spalten. Aber wenn wir Zeit haben, werde ich das tun. Also werde ich einen ausgewählten Star von Duke machen. Dies stammt aus dem allgemeinen Tabellenausdruck. Der allgemeine Tabellenausdruck erhält seine Werte von hier. Aber ich wähle aus diesem gemeinsamen Tabellenausdruck. Und ich werde es vorerst dabei belassen. Und ich weiß, was ich hinzufügen werde. Nun, eigentlich werde ich vorgehen und das kommentieren, aber ich werde sagen, wo du by dy, was der Name der Spalte sein wird und die Zukunft eins ist. Grundsätzlich sind wir, wir bekommen keine der doppelten Werte. Ich kommentiere jedoch, dass dies nicht ausgeführt wird und das wird ausgeführt, wenn ich das ausführe. Okay, und dann werde ich SP ausführen, SQL ausführen, und ich werde das SQL ausführen. Ich könnte ein ganzes Video ausgeben und warum wir das stattdessen benutzen sollten. Aber für jetzt würde ich vorschlagen, wenn Sie wirklich wissen wollen, können Sie definitiv nach y suchen. Aber dies ist eine Prozedur, die auf jeden Fall Running Dynamic SQL macht. Wenn es gut geschrieben ist, fügt es eine Sicherheitsebene hinzu. Es macht eine Desinfektion, aber ich werde es vorerst bei dem belassen, weil das ein wenig fortgeschritteneres Thema ist und wir das tun werden, okay? Und so sehen wir, dass es tatsächlich alles auswählt. Denken Sie daran, dass es neun Werte gab. Wir erinnern uns daran, dass es vier Werte gibt, die Duplikate sind. Ok? Also haben wir noch nichts getan, um die Duplikate zu entfernen, aber wir sehen unsere dynamischen SQL-Läufe, richtig? Und denken Sie daran, dass es keine Eingabe in diesem dynamischen SQL gibt. Also, wenn jemand sagen würde, dass es unsicher ist, ist das falsch, weil es tatsächlich keine Eingabe gibt, aber wir sind dabei, die Eingabe der Spaltenliste zu verwenden. Die Verwendung dieser Desinfektion ist so wichtig, dass wir nicht den direkten Wert verwenden, den sie übergeben haben, oder? Wenn dies eine Prozedur war, wenn dies von außen kam, verwenden wir diesen Wert nicht. Wir werden tatsächlich diese bereinigten Werte verwenden, oder? Okay, also schauen wir uns das hier an. Ok? Also machen wir hier ein Komma und wir werden Zeilennummer machen. Und ich gehe aus dem Speicher hier, also Zeilennummer über und es ist Partition für Leerzeichen plus, plus das. Und ich werde, darauf komme ich in einer zweiten Reihenfolge zurück, um plus das. Und dann werde ich diese dupe ID nennen. Da ist unsere Kolumne, okay? Jetzt partitionieren wir durch eine Reihe von Spalten, die wird, wir organisieren es durch eine Reihe von Spalten. Und dann werden wir es nach diesen Spalten bestellen. Und woher sollen wir die bekommen? Es werden die Säulen sein. Und denken Sie daran, dass diese bereits in Form von Klammern sind, oder? Wir müssen also keine Klammern zu unserem dynamischen SQL hinzufügen. Also, was wir hier tun, in der Tat werde ich zuerst die doppelte ID auswählen. Wir wählen den Stern vom Tisch aus. Also werden wir das tun, damit die Leute können, Studenten die Ausgabe sehen können. Ok. Also, was ich hier mache, denn um fair zu sein, geht dieses Video davon aus, dass Leute vom Anfänger bis zum Fortgeschrittenen sich das ansehen. So fortgeschrittene Menschen verstehen Anfänger wird nicht so viel. Was ich hier mache, ist, dass ich in diesen Spalten vorbeikomme. Denken Sie nun daran, dass diese Spalten nicht etwas sind, was sie eingegeben haben, oder? Dies ist, warum dynamisches SQL sehr nützlich sein kann, ist, dass wir das bekommen haben, weil wir es bereinigt haben. Also hat unser Desinfektionsschritt das tatsächlich bekommen. Okay, also lasst uns das jetzt laufen. Und wir sehen übrigens, die du by dy, richtig? Und das ist richtig. Dies ist, was passiert, wenn Sie partitionieren, wir partitionieren nach diesen Spalten und es heißt, warte eine Minute, es gibt drei Partitionen, weil diese genau gleich sind. Wenn wir uns diese Werte ansehen, sind diese genau die gleichen, oder? Wenn man sich das anschaut, diese partitioniert von 123 Partition, gibt es hier Duplikate, es gibt 12. Wir werden sehen, dass es hier keine Duplikate gibt. gibt es keine Duplikate, aber hier gibt es Duplikate, richtig? Da sind diese beiden. Und so ist das, dass die Partitionierung tut und wir bestellen es nur nach diesem Satz von Spalten. Das ist in Bezug auf die Entfernung weniger wichtig, aber wir müssen es noch einbeziehen. Es muss sein, dass es eine Bestellung geben muss, wenn wir diese Zeilennummer angeben. Ok, was passiert, wenn wir die du nach dy auswählen, wo du durch dy gleich eins ist, was wird auswählen, sind Duplikate, richtig? Sehen Sie, wie das funktioniert. Also gehen wir zurück zu hier, nur um zu vergleichen. Und wieder wird das Skript angehängt werden. Sehen Sie, wie wir die du von dy 1231212 sehen. Es wird wählen, wo es ist, oder? Und so wird das alle unsere Pflichten eliminieren, was bedeutet, dass vier Werte eliminiert werden und wir haben fünf Werte. Ok? Dies ist also ein gutes Beispiel dafür, wo und das kommt in vielen Umgebungen. Wir werden manchmal Duplikate darüber in jeder Spalte der Tabelle haben. Und wir wollen es aussuchen. Und Sie werden bemerken, dass ich dynamisches SQL verwende. Ich muss das, was am Tisch ist, nicht jedes Mal wiederverwenden. Und ich habe nicht die Augen zu sagen, es tut mir leid, ich muss das nicht neu schreiben. Was ist es für CTE jedes Mal, wenn dies für jede Tabelle mit Duplikaten funktioniert, richtig? Das ist die Schönheit von dynamischem SQL. Nun ist es wahr, dass es so viele Spalten geben kann, dass dies viel länger sein muss. Das ist, das ist möglich. Ok. Die andere Sache auch, und ich sehe das. Die eine Sache, wie ich das betrachte, ist , dass wir den Tabellennamen nicht dynamisch machen. Also, was ich hier tun will, und wie gesagt, wenn ich Zeit hätte, würde ich darauf zurückkommen. Lass uns mal sehen. Ich werde das wirklich schnell machen. Ok? Und von der Oberseite meines Kopfes, habe ich das nicht versucht, aber das ist wieder, ist mehr Live-Codierung. Seien Sie sich also bewusst, dass dies der Vor- und Nachteil der Live-Codierung ist. Wenn ich hier eine andere Variable namens Tabelle erstellen würde, wählen Sie varchar. Und ich denke, der Tisch ist 100. Ok? Und ich weiß nicht, ob ich das tun kann, aber wenn ich Tabelle tun würde, wählen Sie gleich, Zitat, Name. Und ich werde Tabellen-Schema machen. Und dann werde ich das tun, und dann werde ich den Namen zitieren. Ihr Grund ist, dass wir es immer in anderen Select-Anweisungen tun können , damit wir die Benennung, einen Tabellennamen haben könnten, okay? Wir können immer einen anderen Batch von hier für Informationen Schema-Spalten auswählen, und wir können eine andere haben. Allerdings könnten wir in der Lage sein, etwas Platz zu sparen, indem wir es einfach hier tun. Ich weiß nicht, ob wir das schaffen. Deshalb führe ich das als Test durch. Aber mal sehen, falsche Syntax in der Nähe. Oh, es tut mir leid. Wählen Sie, wählen Sie, Tabelle, wählen Sie aus. Das ist jetzt fertig. Okay, das funktioniert. Nun, aber lassen Sie mich überprüfen, ob Spalten sind, okay? Wählen Sie Spalten aus. Lassen Sie mich, ich muss das überprüfen. Ja, das ist okay. Ok. Also können wir das beides tun. Okay, cool. Also können wir beide tun. Ok, cool. Also werde ich das hier lassen. Jetzt, da ich darüber nachdenke, codiert, in dem Skript auskommentiert, das ich im Skript anhängen werde oder was nicht. Oder für diejenigen von Ihnen, die es nur replizieren, sollte ich sagen. Sie können es einfach replizieren. Für diejenigen von Ihnen, die diese Übung durchlaufen, gibt es definitiv Plattformen, auf denen ich das Skript hinzufügen kann , und dann gibt es Plattformen, die ich das Skript nicht hinzufügen kann. Ok. Also jetzt alles, was ich tun muss, um diese weitere Dynamik zu machen, ist, dass ich von und dann Plus und dann das OK tun werde. Und was ich tun werde, ist eine Tischauswahl. Ok. Und jetzt lassen Sie uns sehen, ob ich etwas verpasst habe. Ich fühle mich, als hätte ich alles bekommen. Okay, jetzt lass uns das laufen und da haben wir es. Also, wenn dies eine gespeicherte Prozedur war, muss ich das nie neu schreiben. Wieder. Der Teil, den ich möglicherweise neu schreiben muss, ist die Verbindung dieser Parameter. Und der Grund ist, weil es möglich ist, dass die Tabelle viele Spalten hat. Ich habe Tabelle gesehen, Tabellen mit Hunderten und Hunderten von Spalten. Und so ist das definitiv möglich. Aber Sie können mit diesem Code sehen, was wir tun können und deshalb bin ich nicht gegen Dynamic SQL. Wenn wir jedoch dynamisches SQL verwenden, wie Sie sehen können, bin ich ein großer Verfechter der Bereinigung der Eingabe. Also für diejenigen von Ihnen, die auf Plattformen sind, dass die, Das erlaubt Ihnen, Ich sollte auch sagen, Das erlaubt mir, den Code anzuhängen. Dieser Code wird angehängt, wenn Sie nicht sind, und Sie sind in mehr von dem Anfängerkurs, wo es nicht erlaubt, das ist eigentlich sehr einfach zu replizieren, denn was Sie tatsächlich replizieren, ist genau das, das hier. Und dann replizieren Sie das hier. Und dann replizieren Sie das. Also, das zu tun, selbst in SQL Express, all dies funktioniert das, es gibt kein fortgeschrittenes T-SQL, verschiedene Sprachen, verschiedene SQL-Sprachen wie MySQL oder PostgreSQL könnten ein bisschen anders sein, aber Dies ist sehr einfach zu replizieren. Und jetzt haben Sie eine dynamische SQL-Funktion, die Sie innerhalb einer gespeicherten Prozedur erstellen können , mit der Sie Duplikate in jeder Tabelle entfernen können, in der das Duplikat auf jeder einzelnen Spalte basiert. So können Sie doppelte Zeilen loswerden, bei denen alle Spalten genau gleich sind. 11. Sql Interview Serie Intro 1: In dieser Serie werden wir uns einige beliebte Fragen zum SQL-Interview ansehen . Diese Serie verfügt über Live-Codierung , sodass Sie alle keine Code oder Datenbanken herunterladen müssen. Sie können es im laufenden Betrieb erstellen. Und wir werden uns einige der populäreren Fragen ansehen populäreren Fragen , die in SQL-Interviews vorgestellt werden. Und so werden wir die durchgehen. Und so haben Sie eine gute Vorstellung davon, worauf Sie sich vorbereiten müssen. Eine Sache, die ich beachten möchte, ist, wenn Sie in einem Interview sind und sagen wir, Sie kennen die Antwort auf eine Frage nicht. Es ist tatsächlich akzeptabel , es in einem Interview zu sagen. Ich bin mir nicht sicher, was die Antwort darauf angeht, aber lassen Sie mich das sehr schnell aufschreiben , damit aber lassen Sie mich das sehr schnell aufschreiben , damit ich das nach diesem Interview nachschlagen kann. Und der Grund dafür ist, dass es auf der Interviewer-Seite vollkommen verständlich ist . Und ich war viele Male Interviewer , dass jemand die Antwort auf alles vielleicht nicht kennt. Und es ist tatsächlich eine positive Eigenschaft, wenn man jemanden interviewt. Wenn die Person sagt, schaue ich das nach. Ich habe Hunderte von Menschen hauptsächlich in Bezug auf Datenbankverwaltung, Datenbankentwicklung, Datenentwicklung, Datenentwicklung, Datenarchitektur und ETL-Entwicklung interviewt hauptsächlich in Bezug auf Datenbankverwaltung, Datenbankentwicklung, Datenentwicklung, Datenentwicklung, Datenarchitektur . Und ich habe Hunderte von technischen Artikeln veröffentlicht, hauptsächlich Datenarchitektur und Administration abdecken. In einigen Fällen schreiben Sie bei Interviews den Code, schreiben Sie bei Interviews den Code während Sie in anderen Fällen die Logik nur mit der Geschichte des Problems erklären die Logik nur mit der , das Sie gelöst haben. Was wir also in dieser Serie machen werden, werden wir beides machen. Wir werden etwas Code schreiben, aber wir werden auch über einige Probleme sprechen, die Sie mit dem von uns geschriebenen Code lösen könnten. Auf diese Weise verstehen Sie die Logik, aber Sie haben auch einen Code, den Code schreiben können, wenn Sie den Code schreiben müssen. Und auf diese Weise werden Sie in beiden Arten von Interviews behandelt.