Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
SQL Tutorial für Anfänger | Grundkurs Deutsch
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 299 Zeilen
- in diesem tutorial lernst du alles was du über sql als anfänger wissen muss sql oder auch sie cool steht für structured query language daten werden häufig in
- einer tabelle struktur gespeichert und mit dieser abfragesprache können wir aus diesen tabellen daten abfragen wir können die daten in diesen tabellen auch
- verändern oder sogar komplett neue tabellen erstellen sql ist dabei nicht irgendeine sprache sondern tatsächlich die abfragesprache für das meistgenutzte
- datenbanksystem überhaupt und zwar die relationale datenbank das bedeutet du wirst in diesem kurs erst einmal lernen was eine relationale datenbank ist
- anschließend lernst du wie du mit sql zu solch einer datenbank neue daten hinzufügen kannst du lernst wie du die daten abfragen und vätern kannst wie du
- neue tabellen erstellen kannst und wie du komplexe abfragen erstellen kannst für dieses tutorial muss zunächst installieren sondern wir arbeiten hier
- mit eine grafische oberfläche wo du daten aus einer tabelle abfragen und anzeigen kannst und hier oben kannst du direkt ein sql code eingeben aber
- zunächst erstmal was ist überhaupt eine relationale datenbank stell dir einfach solch eine tabelle vor du hast einen laden und hast natürlich auch kunden und
- selbstverständlich führst du auch eine kartei über diese kunden gerade bei solchen kundendaten macht es natürlich sinn diese daten in tabellenform
- abzuspeichern das heißt jeder kunde bei dir hat eine nummer eine so genannte custom a id einen namen einen kontakt nahm vielleicht noch an denen etwas
- geliefert wird eine adresse eine stadt eine postleitzahl und natürlich ein land nehmen wir mal an du hast ein warenhaus dann hast du natürlich viele kunden und
- dementsprechend hast du natürlich auch sehr viele daten in solch einer tabelle normalerweise hast du natürlich nicht nur eine tabelle sondern mehrere
- beispielsweise auch noch für deine bestellungen das hier wäre jetzt die untere tabelle in der unteren tabelle siehst du also ebenfalls eine
- bestellnummer die sogenannte order id dann die customer idea was die jeweilige kundennummer ist welcher mitarbeiter das ganze bearbeitet hat in der employee id
- dann noch das datum wann das ganze bestellt wurde unter noch eine sogenannte schipper id die der person zuzuordnen ist die das ganze versendet
- hat wie du schon siehst ist die customer die jetzt bei der ersten bestellung 2 und bei unserer person oben gibt es ebenfalls eine customer id2 und du
- möchtest jetzt vielleicht die bestellung herausfinden die dieser kunde gemacht hat oder du möchtest zu der jeweiligen bestellung herausfinden welcher kunde
- denn jetzt hinter der customer id2 steckt du musst also eine relation zwischen der tabelle orders und der tabelle customers herstellen du brauchst
- daten aus beiden tabellen und genau das kannst du mit sql machen du kannst dir daten aus beliebig vielen tabellen raussaugen und diese beliebig
- kombinieren um verschiedene sachen herauszufinden das heißt wenn du jetzt beispielsweise in einem warenhaus arbeitest dann existieren dort in der
- realität natürlich nicht zwei tabellen sondern ganz ganz viele über die mitarbeiter über die versender die die ware versenden und noch deutlich mehr
- und wenn dein chef jetzt zu mir kommt und sagt hey wir brauchen alle bestellungen die 1996 in berlin getätigt wurden dann kannst du solch eine abfrage
- mit hilfe von sql erledigen sql oder auch sequel genannt ist also eine sprache um aus relationalen datenbanken verschiedene daten abzufragen
- im ersten abschnitt schauen wir uns erst einmal unser interface an und versuchen dann ein paar daten zu unserer tabelle hinzuzufügen wir sehen also diese
- oberfläche hier das ganze ist natürlich auch verlinkt in der youtube beschreibung da kannst du einfach auf den link drücken und dann siehst du
- diese oberfläche hier und hier steht jetzt schon so ein bisschen sql code drin und rechts an der seite sind einige tests datenbanken die wir verwenden
- können die datenbank die du eben schon gesehen hast war die customer datenbank und die orders datenbank wenn du hier drauf drückt dann siehst du auch immer
- gleich was in dieser datenbank gespeichert ist das liegt daran dass sobald du hier drauf drückt automatisch dieser code hier ausgeführt wird und das
- ist auch schon der einfachste code dem man den sql machen kann select also auswählen dann neues wort stern was so viel bedeutet wie alles dann from also
- wovon wir das ausgeben wollen und dann in diesen eckigen klammern das brauchen wir sogar gar nicht die kammern wegnehmen customers also die tabelle das
- bedeutet wenn wir diesen code hier aus führen dann kommen wir hier unten wie wir sehen an diese tabelle wir wählen alle daten aus unserer tabelle customers
- wenn ich jetzt statt customers hier beispielsweise products schreibe dann kann ich auf diese produkte tabelle hier rechts unten zu greifen führen wir das
- ganze mal aus und wir sehen nun hier ganz genau was für eine product id wir haben was für ein produkt also hier chairs dann was für eine supply die
- category id wir haben und natürlich auch noch die unit und der preis damit haben wir jetzt alle informationen die in dieser tabelle vorhanden sind wir können
- uns in diesem interface hier komplett austoben wir können daten löschen aus den tabellen wir können daten hinzufügen wir können daten manipulieren und wenn
- wir alles kaputt gemacht haben oder zu unserer ausgangssituation zurückkehren wollen dann können wir hier rechts unten einfach auf restore database drücken und
- anschließend ist alles wieder da wo wir ganz am anfang waren das heißt wir haben hier also die perfekte umgebung und einfach mal alles auszuprobieren was wir
- so ausprobieren wollen wenn ich nun beispielsweise einen neuen mitarbeiter hinzufügen möchte dann klicke ich auf diese tabelle employees hier haben wir
- aktuell zehn mitarbeiter und ich möchte nun einen elfter mitarbeiter hinzufügen und diesen elf mitarbeiter füge ich hinzu indem ich hier oben ein sql code
- eingeben das heißt wir müssen nun quellcode schreiben und können natürlich nicht einfach hier auch so ein plus oder sowas drücken um diese daten
- hinzuzufügen dafür schreibe ich jetzt den code in wörth into um zu sagen dass ich etwas einfügen möchte nun sage ich in welche von meinen ganzen tabellen ich
- hier etwas einfügen möchte ich möchte in die employees tabelle etwas rein fügen also schreibe ich insert into employees
- übrigens in den meisten datenbanksystemen da draußen ist es egal ob du die befehle groß oder klein schreibst allgemein werden die befehle
- sehr ähnlich geschrieben je nachdem welches datenbanksystem du benutzt kann es allerdings sein dass der eine oder andere befehl mal minimal
- unterschiedlich geschrieben wird allgemein ist es aber egal ob du jetzt microsoft sql server benutzt ob du oracle dw benutzt michael postgres maria
- db oder was es sonst noch alles gibt es gibt sehr viele datenbanksysteme die mit sql funktionieren in den meisten datenbanksystemen hat es sich
- eingebürgert dass für die sql befehle also sowas wie inserate und intuit marco schreiben und alles was immer anders ist klein schreiben und nun mit dem ersten
- buchstaben zb groß sowie employees nachdem wir also gesagt haben in welche tabelle wir etwas einfügen wollen müssen wir jetzt noch sagen was wir in dieser
- tabelle einfügen wollen und wohin wir das ganze einfügen wollen wir sagen als erstes in welche spalten wir das ganze einfügen wollen wir wollen in employee
- id etwas einfügen also schreiben wir so eine runde klammer auf und dann den namen der ersten spalte dann ein komma namen der nächsten spalte ein komma name
- der nächsten spalte und immer so weiter das machen wir jetzt für alle spalten weil wir wollen ja in alle spalten werte einfügen unser mitarbeiter sollte alle
- werte hier befüllt haben und so weit fertig sind machen wir wieder eine klammer zu so sieht das ganze jetzt aus nun müssen wir natürlich noch sagen
- welche werte wir für diese ganzen spalten einfügen wollen deswegen schreiben wir jetzt als nächstes values das ganze muss nicht an eine neue zeile
- geschrieben werden aber ich finde das ganze kann man so ein bisschen besser lesen und hier schreiben wir nun wieder eine klammer auf und eine klammer zu und
- schreiben in diese klammer nun in anführungszeichen wieder mit komma getrennt was wir denn hier reinschreiben wollen beispielsweise als mitarbeiter
- nehmen wir mal die elf dann nehme ich als nachnamen ergehen als vornamen yunus dann nehme ich als geburtsdatum mein geburtsdatum also 1991 10 03 ein foto
- habe ich nicht da schreibe ich jetzt einfach mal irgendwas rein die 1 punkte jetzt habe ich halt das gleiche bild was auch der erste
- mitarbeiter hat und dann noch ein paar notizen hier schreibe ich irgendwie nur hallo welt ich lerne sql und nun führen wir das ganze einfach
- mal aus und gucken was passiert hier unten steht jetzt einfach nur bei review of major changes to the database effekte 1 was mit anderen worten
- bedeutet wir haben änderungen an unserer datenbank vorgenommen und wir haben genau eine reihe verändert und zwar die reihe die wir jetzt neu eingefügt haben
- wenn wir jetzt unsere tabelle angucken wollen dann schreiben wir hier einfach wieder select stern fromm und den namen unserer datenbank die wir gerade
- verändert haben alternativ könnte ich hier auch rechts einfach draufklicken wenn ich das ganze
- jetzt aus führe dann sehen wir dass unsere gesamte tabelle hier wieder angezeigt wird und die wir sehen hat unsere tabelle jetzt einen weiteren
- eintrag und zwar den eintrag mit der employee id 11 und dort habe ich jetzt nicht reingeschmuggelt als weiteren mitarbeiter und genau so kannst du
- verschiedene neue werte zu einer tabelle mit sql hinzufügen wenn du das ganze jetzt üben möchten empfehle ich dir einfach ein zwei andere tabellen zu
- nehmen und einfach mal selber weitere daten hinzuzufügen dadurch kannst du überprüfen ob du das ganze verstanden hast und ob du diesen befehl auch
- anwenden kannst weil zugucken kann jeder ausprobieren da merkt man dann häufiger mal dass man doch einen kleinen fehler gemacht hat oder sich irgendwie vertippt
- oder vielleicht doch noch nicht das ganze anwenden kann wenn das der fall ist das gut einfach ein zwei minuten zurück und guck dir nochmal an wie ich
- das ganze einfügen ansonsten beschäftigen wir uns jetzt damit wie wir denn einzelne werte aus unserer tabelle abfragen können
- nachdem wir im letzten abschnitt einen neuen eintrag zu unserer tabelle hinzugefügt haben wollen wir im jetzigen abschnitt natürlich unsere daten
- abfragen das heißt wir haben ja hier verschiedene tabellen und wolle nun aus diesen verschiedenen tabellen datenabfragen stellen wir uns mal vor
- wir haben die tabelle customers ja das steht hier häufig schon standardmäßig drin so wie bei mir jetzt gerade und dort wollen wir nun unsere daten
- abfragen dann steht hier dieser befehl hier schon standardmäßig drin ich lösche jetzt mal die untere zeile und wir führen erst mal nur die obere zeile aus
- hier steht select stern from customers also wähle aus stern steht für alles fromm steht wovon wir das ganze aussehen wollen und die tabelle heißt customers
- also wir werden alles aus der tabelle customers und das ergebnis wird ja auch gleich unten angezeigt alle einträge aus unserer tabelle customers ich könnte
- jetzt hier oben beispielsweise auch eintragen select stern from orders und dann würde ich aus der tabelle order ist alles abfragen also alle
- 196 einträge die es hier in den bestellungen gibt all das ist jetzt nicht besonders interessant wir könnten hier auch beispielsweise
- categories eintragen dann würden wir alle kategorien bekommen eben stand hier standardmäßig jetzt noch eine weitere zeile drin und zwar oder bei oder bei
- heißt einfach sortieren nach also wir können diese tabelle jetzt anhand von einem feld sortieren wenn wir sie beispielsweise anhand des feldes
- category nahm also nach dem namen der kategorie sortieren wollen dann schreiben wir hier einfach order by kategorie namen und führen das ganze mal
- aus und sehen dass hier nun beispielsweise beverages also ein board mit b als erstes steht dann wird er mit c dann mit de und immer so weiter also
- wir haben jetzt unsere tabelle anhand des feldes category nahm alphabetisch sortiert hier können wir nur noch andere felder reinschreiben beispielsweise
- description da wird wir unsere tabelle anhand der beschreibung hier rechts sortieren außerdem stand hier noch ein komisches wort und zwar dieses asc wenn
- wir das dahinter tun dann ändert sich gar nichts das heißt einfach dass wir es in es sending oder sortieren wollen standing order steht für aufsteigender
- reihenfolge und genau das ganze machen wir auch hier die reihenfolge ist aufsteigend wir könnten sie auch absteigend machen dafür würden wir hier
- de sc schreiben gehen wir das ganze einmal ein und nun ist die reihenfolge genau andersrum weil das ending order steht für absteigender reihenfolge also
- je nachdem ob du hier asc rein schreibst du das ganze aus fürst oder de sc rain schreibst hast du die tabelle entweder in die eine richtung oder in die andere
- richtung sortiert wenn du gar nix rein schreibst dann ist es genauso wie wenn du asc rein schreiben würdest also ganz normal in die standard richtung
- alphabetisch sortiert jetzt denkst du wahrscheinlich ok schon ganz cool aber kann man mit sql denn nicht noch mehr machen und ja das ist natürlich möglich
- du kannst unglaublich viele verschiedene abfragen mit sql erstellen beispielsweise kannst du wenn du hier alle möglichen kunden hast nur die
- einträge aus der stadt berlin abfragen das ganze kannst du machen indem du natürlich so wie hier oben wieder schreibt select stern from customers
- allerdings kannst du hier hinter nun ein sogenanntes keyboard einfügen und dieses werk ii word bedeutet dass du nun eine
- einschränkung machen könntest du kannst beispielsweise sagen wer city also das feld was hier rechts unten ist gleich in anführungszeichen
- berlin und wenn wir das ganze jetzt ausführen dann kriegen wir nur die einträge wo die stadt berlin ist wenn ich jetzt beispielsweise madrid ein gebe
- und das ganze ausführe sehen wir dass wir gleich drei einträge haben bei drei kunden kommen aus der stadt madrid und jetzt stellen wir uns einfach vor wir
- wollen alle kunden haben die innstadt erleben oder die innenstadt beleben das heißt zum beispiel entweder in madrid oder in berlin dann kann man das ganze
- so macht man schreibt und schreibt es hier sowohl madrid in anführungszeichen in diese klammern als auch zum beispiel berlin ja das hier ist jetzt einfach
- eine liste von verschiedenen einträgen das definiert man so runde klammer auf ganz am ende runde klammer zu und dann in anführungszeichen immer die
- jeweiligen begriffe aus dieser liste und das ganze ist er mit einem komma getrennt und wir wollen nun alle einträge aus unserer tabelle haben wo
- die stadt entweder madrid ist oder berlin führen wir das ganze mal aus jetzt hat sich unser eintrag natürlich hier um 1 erweitert
- und jetzt stellen wir uns einmal vor wir wollen alle felder haben aus unserer tabelle wo der contact nahm mit maria beginnt ja also wir wollen nicht das
- ganze feld haben sondern nur einen teil von dem text der hier drin steht das heißt ich schreibe jetzt nicht mehr contact nahm gleich in anführungszeichen
- maria weil das würde nicht funktionieren da gibt es kein ergebnis für wieder unten steht stattdessen kann man schreiben wer kontakt namen like maria
- und hier hinter kommt nun ein prozent zeichnen das bedeutet dass der text mit maria anfängt und danach ein beliebiger text kommt wenn ich das ganze ausfülle
- dann sehen wir dass hier zwei marias rauskommen war ja anders aus berlin und maria larsson aus recke in schweden ich könnte jetzt auch beispielsweise nur
- alle kontakte mehr holen die mit am anfang in dem ich hier einfach m prozent schreibe und das sind dann natürlich einige mehr oder beispielsweise mit und
- da kann ich echt beliebig viel filtern und das ganze ist dann schon ziemlich ziemlich hilfreich beispielsweise werden wir alle leute haben wollen die mit
- einer postleitzahl anfangen das ganze kannst du jetzt einmal als übung anfang ja versuch mal alle leute herauszufinden wo die postleitzahl mit null beginnt
- hast du gemacht okay wenn nicht dann machen wir das ganze gemeinsam ich gebe jetzt hier in das war einfach mal postakut ein und sage dass ich hier mit
- einer null anfangen möchte und nun haben wir alle postleitzahlen wo das ganze mit null anfängt allerdings befinden sich diese post seine mexiko in brasilien in
- spanien in deutschland überall und das ganze kann natürlich so nicht stimmen ja das muss man in der realität wahrscheinlich nicht so häufig machen
- deswegen können wir das ganze jetzt auch kombinieren und können sagen wo der post code mit null anfängt und gleichzeitig das land mexiko zum beispiel ist das
- ganze machen wir jetzt einmal und du kannst ja einmal kurz das video noch mal anhalten und einmal experimentieren wie man das ganze machen könnte
- ansonsten machen wir das ganze jetzt gemeinsam und zwar kann ich hier hinter einfach schreiben and country gleich und hier schreibe ich jetzt rein
- mexiko wenn ich das ganze jetzt aus führe dann haben wir zwei abfragen miteinander verbunden und man merkt schon das ganze liest sich an sich
- genauso wie englisch ja wir wollen alle einträge aus customers haben wo der apostel code mit null anfängt also sowie 0 irgendwas ist und wo das land gleich
- mexiko ist und das ganze haben wir hier wunderbar abgefragt und das ganze kann man natürlich beliebig kombinieren vielleicht wollen wir jetzt nur leute
- haben die in einer gewissen adresse in mexiko leben und beispielsweise anna heißen dann würde ich jetzt aufschreiben und als contact nahm natürlich hier den
- kontakt namen wenn man sich übrigens verschreibt ja wenn man hier jetzt irgendeinen verein schreibt was nicht ganz richtig ist und wir das ganze
- ausfüllen dann bekommt man solch eine fehlermeldung vielleicht hast du dich schon das ein oder andere mal jetzt gesehen wenn du das tutorial nach
- gemacht hast diese fehlermeldung bedeutet überhaupt nichts schlimmes ja man muss sie einfach nur richtig lesen und hier steht nun dort prix per
- statement also er konnte dieses statement dass wir hier aus rein geschrieben haben nicht ausführen und dann steht hier noch 1 boss colin also
- es gibt nicht so eine spalte und dann steht hier auch der name der spalte contact ahs und so weiter gibt es nicht steht hier ganz klar also einfach diese
- fehlermeldung lesen wenn man die verschlüsse wenn man die sieht und nicht gleich verzweifeln denken und eine komische fehlermeldung das passiert sehr
- häufig ist aber meistens überhaupt nicht schlimm und wenn du diese fehlermeldung nicht verstehst ist es auch gar kein problem dann macht man folgenden trick
- man kopiert sich den teil der fehlermeldung der wahrscheinlich immer gleich ist das hier ist wahrscheinlich immer anders aber das hier oben ist
- wahrscheinlich immer gleich deswegen kopiere ich mir den teil fügt das ganze bei google ein und dann sehe ich hier direkt auf stack overflow das erste
- ergebnis was wahrscheinlich meine fehlermeldung beschreibt hier schreibt jemand okay das ist mein sql code jetzt schon mal ein bisschen komplexer noch
- als das was wir hier machen und wenn ich hier runter gucke dann gibt es hier auch jemanden der mir diese frage beantwortet und sagt wie man das problem
- wahrscheinlich lösen kann ja und so etwas hilft auch häufig weiter ja wenn es nicht weiterhilft dann kann man auch einfach weiter lesen und den nächsten
- eintrag den nächsten eintrag oder auch noch ein zwei google ergebnisse weiter aber gerade weil so anfänger sachen ja wo man jetzt gerade anfängt findet man
- sehr sehr häufig so den fehler wenn man selber nicht darauf kommt was so eine fehlermeldung hier bedeutet ok also entfernen wir jetzt hier dieses komische
- a s oder was da stand und jetzt funktioniert das ganze wieder an dieser stelle habe ich noch mal ein kleines beispiel für eine anfrage die noch ein
- ticken komplexer ist und zwar geht es wieder darum dass wir aus unserer tabelle customers datenabfragen wollen wir sagen also wieder select stern rom
- rom würde ich es auch wieder groß schreiben customers so jetzt haben wir alle daten und jetzt möchte ich dieses werk so
- abändern dass sich entweder alle daten aus usa kriege wo die postleitzahl mit einer neuen anfängt oder alle aus mexiko wo die postleitzahl mit einer null
- anfängt also zwei verschiedene abfragen wo beide sachen komplett anders ist und was man hier in diesem fall braucht ist eine so genannte klammere das heißt ich
- könnte jetzt hier sagen wer in klammern country gleich usa in anführungszeichen
- and hostel code like wieder anführungszeichen soll anfang mit einer neuen und danach
- irgendetwas anderes so wenn ich das hier aus führen dann kriege ich schon mal alle aus usa wo die postleitzahl mit einer neuen anfängt und jetzt kann ich
- hier hinten ein ohr hinzufügen also ein oder und jetzt kann ich hier eine weitere abfrage einfügen das heißt hier könnte ich jetzt sagen country gleich
- mexico and post it
- like anführungszeichen und hier sage ich nun 0 und prozent es soll also mit einer null anfangen führen wir das ganze
- einmal aus hier habe ich noch mexiko geschrieben hier muss natürlich mexiko stehen und wenn ich jetzt auch ran sql drücke dann sehen wir dass hier nun auch
- die ganzen einträge von mexiko dabei sind ja das heißt wir haben hier jetzt usa und mexiko und in mexiko fangen die alle mit null an und den usa fangen die
- ganzen dinge mit 9 an ich empfehle dir solche komplexe abfragen auch noch ein bisschen weiter zu machen zum beispiel könntest du dir alle leute raussuchen di
- maria heißen und den usa oder mexiko wohnen ja also überlegt ihr ein paar abfragen und trainiert das ganze einfach mal verseuchte komplexe abfragen wirst
- du auch in der realität im berufsalltag häufiger mal brauchen wir haben ja nicht nur eine tabelle sondern wir haben mehrere tabellen so
- haben wir beispielsweise eine tabelle da sind all unsere kunden drin und eine andere tabelle da sind all unsere bestellungen drin das heißt wir haben
- jetzt hier einen ausschnitt aus beiden tabellen und jetzt stell dir einmal vor deinen chef kommt zu dir und sagt hey wir brauchen alle bestellungen die
- renate messner gemacht hat dann kannst du natürlich jetzt irgendwie in deiner tabelle nachgucken mit den kunden und sie ist okay renate messner hat die
- kundennummer 44 und nun gehst du in die andere tabelle wo die bestellungen drin sind und sucht dort nach allen bestellungen die die customer
- 44 haben da müsstest du jetzt natürlich mehrere abtragen hintereinander ausführen und das ganze kann auch gerade wenn solche abfragen noch größer noch
- komplexer werden schnell nervig werden vor allen dingen kommt so ein fall ja nicht einmal vor sondern das ganze muss automatisiert werden und wird
- wahrscheinlich jeden tag ausgeführt genau aus diesen gründen macht es sinn neue tabellen zu erstellen wir können nun eine tabelle erstellen wo zu jeder
- bestellung beispielsweise noch der name hinzugefügt wird oder wo zwei tabellen einfach komplett kombiniert werden bei solchen kombinationen wollen wir
- natürlich nicht alle möglichen kombinationen haben sondern wir nehmen beispielsweise unsere tabelle mit den bestellungen und bei dieser tabelle
- ergänzen wir jetzt einfach alle feder die wir zu unseren kunden daten haben in die jeweilige zeit das bedeutet wir haben jetzt
- beispielsweise zwei bestellungen von unserer kunden mit der customer die 44 in beiden zeilen ergänzen wir nun die gesamte reihe aus unserer kunden tabelle
- mit der zeile 44 das heißt dort wo in beiden zeilen als customer die 44 vorkommt dort wollen wir dann die oberen einträge noch dahinter hinzufügen und
- quasi beide tabellen kombinieren man kann zwei tabellen miteinander verbinden indem man ein so genannten join verwendet das bedeutet wir fragen jetzt
- nicht nur alle bestellungen hier ab so wie wir das ganze hier nun schon machen sondern wir sagen dass wir diese bestellung tabelle als unsere linke
- tabelle bezeichnen und diese linke tabelle wird nun mit einer rechten tabelle kombiniert deswegen sage ich hier left join
- join steht immer für kombinieren warum sage ich jetzt hier left join ganz einfach weil ich für jeden eintrag auf meiner linken tabelle also aus der
- tabelle orders noch ein paar spalten hinzufügen möchte und zwar alle spalten aus unserer tabelle customers das heißt ich sage jetzt hier left join
- customers und kombiniere damit nun diese beiden tabellen jetzt muss ich natürlich noch sagen anhand von welchem feld ich diese tabellen kombinieren möchte und
- dafür muss ich jetzt noch schreiben und ich möchte von orders also aus dieser tabelle die customer id verbinden mit der tabelle customers punkt customer
- id das heißt ich muss hier nun wieder customers schreiben hier hinter customers id und kombinieren nun aus dieser customer tabelle der skate
- customer die mit meiner order tabelle und hier das feld customer id das heißt in beiden tabellen gleich und weil wir wollen dass diese beiden gleich sind
- muss man hier hinter noch so ein gleich zeichen setzen das heißt wir wählen nun unsere tabelle orders aus und kombinieren die mit unserer tabelle
- customers und zwar immer genau da wo die customer id das heißt zum beispiel diese zahlen hier der customer id aus unserer anderen tabelle entspricht
- wenn wir das ganze jetzt kombinieren dann kommt hier unten so eine riesen tabelle raus und hier sehen wir nun dass wir sehr sehr viele daten haben die den
- wir auf jeden fall schon mal deutlich mehr anfangen können wir haben hier nicht einfach nur plump die bestellung city und sowas sondern wir haben
- dahinter auch den namen wir haben einen kontakt haben wir haben die adresse die stadt und so weiter und damit kann man jetzt schon mal deutlich mehr anfangen
- wir können nun beispielsweise herausfinden wie viele bestellungen in helsinki gemacht wurden dafür kann ich jetzt das ganze so wie vorher gelernt
- auch schon einfach einschränken und sage hier varsity gleich helsinki und wenn ich das ganze jetzt aus führe dann hin wir okay es wurde nur
- eine bestellung aus helsinki getätigt wenn ich hierhin gegen madrid rein schreibe und das ganze ausführe sehen wir dass dort schon etwas mehr
- bestellungen getätigt wurden und wenn ich jetzt beispielsweise herausfinden möchte wie viel unser kontakt nahm renate messner bestellt hat dann
- schreibe ich hier einfach wo er kontakt gleich renate messner und da findet man jetzt wirklich schon sehr sehr viel raus wenn wir uns diese orders tabelle hier
- angucken dann wäre es doch sehr interessant zusätzlich nochmal herauszufinden was denn eigentlich bestellt wurde und deswegen wäre es
- natürlich irgendwie von vorteil von dieser orders tabelle hier auf die produkte zu kommen hier gibt es jetzt eine product id produkten aim supplier
- und so weiter und diese product id ist ja eindeutig das ding womit man hier eindeutig identifizieren kann um welches produkt es sich handelt das heißt eins
- ist dieses produkt hier zwei ist dieses produkt und so weiter es müssen wir also irgendwie auf diese product id schließen können von den bestellungen und das
- ganze das klappt hier leider nicht weil hier in den order star ist keine die vorhandenen für die produkte das heißt wie sollen wir denn jetzt hier so einen
- left join machen dafür gibt es neben den orders auch noch die order details da gibt es also immer eine order id und dann gibt es hier noch ganz ganz viele
- details zu jeder bestellung wir sehen hier oben dass es 518 oder details gibt aber nur 196 orders das heißt es gibt noch mal deutlich mehr details als es
- bestellungen gibt und dementsprechend wollen wir jetzt erstmal nur zu diesen orders alle oder details bekommen das heißt diese order id hier und die order
- id hier die müssen irgendwie miteinander verbunden werden und das ganze du hast es dir wahrscheinlich schon gedacht gebe ich dir jetzt einmal als aufgabe das
- heißt du hast dieses video jetzt an und versucht einmal die order mit den oder details zu verknüpfen bis gleich
- so wie du gemerkt hast die aufgabe war schon etwas anspruchsvoller wenn du es nicht geschafft hast dann machen wir das ganze jetzt einmal zusammen das heißt
- ich wähle mir hier natürlich wieder unsere orders aus und sagen nun left join weil ich natürlich nur für jede order
- also für alle 196 einträge einmal etwas herausfinden möchte aus oder details das heißt ich schreibe hier nun dass ich das ganze mit oder die tales verbinden
- möchte und jetzt muss ich natürlich auch noch sagen welches feld ich verbinden möchte und deswegen schreibe ich hier oder
- die tate punkt oder id gleich orders punkt oder id ob ich hier übrigens erst das schreibe oder erst das
- also ob ich schreibe orders punkt order idee gleich oder details punkt order id oder andersrum das ist komplett egal so wenn ich das ganze jetzt hier aus führen
- dann haben wir nun eine kombination aus allen möglichen bestellungen mit allen bestellung details wir haben hier jetzt also
- 518 ergebnisse und jetzt fragen wir uns vielleicht ok warum haben wir denn 518 ergebnisse und nicht 196 ergebnisse schließlich gibt es doch
- nur 196 bestellungen und wir wollten für jede bestellung die order die tace haben das liegt daran dass eine order id in den order details so wie man hier sieht
- mehrfach vorkommt es gibt mehrere einträge mit details zu einer einzigen bestellung und deswegen gibt es hier nun alle 518 einträge
- und jetzt wollen wir aus diesen bestell details natürlich noch wissen welches produkt bestellt wurde das heißt wir müssen nun diese zwei tabellen die wir
- kombiniert haben noch mit einer dritten tabelle kombinieren das heißt ich schreibe hier wieder left join um unsere ganzen einträge hier auf jeden fall zu
- behalten und kombiniere das ganze jetzt mit products nachdem ich das ganze gemacht habe sage
- ich nun natürlich noch welche fehler ich kombinieren möchte also schreibe ich wieder und schreibe nun dass ich oder die tales punkt product id also dass
- sich das feld product id aus der tabelle oder details verbinden möchte mit dem feld product id das heißt da genauso aus der tabelle products wenn du da unsicher
- bist einfach nochmal auf products draufdrücken vorher am besten für diese komplexe abfrage hier kopieren damit man die nicht wieder neue tippen muss wenn
- ich das ganze jetzt aus führe dann sehe ich dass ich nach wie vor 518 einträge habe dass sich aber zu all diesen einträgen jetzt hier hinten noch alle
- informationen aus der products tabelle hinzugefügt habe das bedeutet ich habe jetzt hier auch den preis des jeweiligen produktes ich habe die unit ich habe
- hier die category id usw product nahm also wirklich alles drin und damit kann man jetzt schon viel anfangen allerdings haben wir hier ist natürlich auch sehr
- sehr viele verschiedene informationen die ein vielleicht auch etwas überfordern und genau deswegen kann man hier oben bei diesen stern jetzt zum
- beispiel auch die da sagen welche fehler man denn anzeigen möchte aktuell sagen wir dass wir einfach alle spalten anzeigen wollen durch diesen stern hier
- jetzt können wir allerdings sagen dass wir nicht hier oben einfach plump diesen stern eingeben um alle spalten anzuzeigen sondern dass wir hier zum
- beispiel einfach product namen eingeben dann hätten wir nur die spalte product nahm und nix anderes und so wir jetzt einfach uns nur die
- dinge heraus suchen die wir denn haben wollen das heißt zum beispiel product nehmen wollen wir haben komme den preis wollen wir haben also geben wir den auch
- ein außerdem wollen wir vielleicht auch noch zum beispiel das datum haben also welches produkt bestellt wurde an welchem datum und dann
- wollen wir natürlich auch noch wissen wie viel der bestellt wurde also wanted ii so und damit können wir jetzt schon mal sehr viel anfangen übrigens man kann
- auch dieses papier noch weiter kombinieren um beispielsweise auch noch herauszufinden welcher kunde denn jetzt zum beispiel abhängig vom namen welches
- produkt bestellt hat und so weiter und so fort und nachdem wir das ganze hier gemacht haben sehen wir nun ok oder date product quality
- preis ja also wir wissen jetzt ist wurden zwölf dinger zu jeweils 21 dollar oder was das auch immer für eine einheit ist vielleicht auch euro besteht ja hier
- steht das produkt was bestellt wurde und hier steht auch das datum die bestellungen liegen übrigens alles schon sehr sehr lange in der vergangenheit wir
- können uns diese ergebnisse natürlich auch in einer neuen tabelle speichern manchmal macht es sinn hier rechts einfach eine neue tabelle anzulegen und
- dort alles mögliche rhein zu speichern was wir so haben wollen das heißt wenn wir diese ergebnisse jetzt länger aufbewahren wollen dann können wir hier
- einfach eine neue tabelle einfügen mit dem befehl create neues wort table nun der name der tabelle ich nenne das ganze mal product orders und dann schreibe ich
- noch es und alles was hinter diesen es steht das ist nun was in die tabelle reinkommt das heißt das ganze ergebnis hier wird nun in die neu erstellte
- tabelle die wir herstellen product orders eingefügt ich führe das ganze mal aus und hier unten steht major changes to the database sieht
- schon ziemlich cool aus und wir sehen nun dass hier eine neue tabelle entstanden ist rechts an der seite product orders und dort ist nun alles
- drin was wir eben erstellt haben also eine tabelle die wir jetzt permanent haben und der mit der wir weiterarbeiten können
- dein chef kommt zu dir und will noch deutlich mehr wissen er will beispielsweise wissen wie viel geld denn jetzt bei einer bestellung ausgegeben
- wurde außerdem interessiert ihn natürlich wie viel insgesamt bestellt wurde wie viel geld bei einbestellung in einem monat ausgegeben wurde und so
- weiter und so fort und deswegen ist es wichtig dass wir unsere abfragen noch ein bisschen komplexer formulieren um es zu schaffen auch noch deutlich mehr
- insights über unsere daten zu gewinnen und genau das ganze schauen wir uns jetzt einmal an wir haben hier unser beispiel von letzten mal ja wir haben
- bereits drei tabellen miteinander kombiniert einmal orders einmal oder details und einmal products und daraus haben wir es nur die feder genommen die
- wir dann brauchen und wissen jetzt wer ein datum ein produktnamen eine menge die bestellt wurde zu einem gewissen kreis wir wollen jetzt aber
- beispielsweise auch wissen wieviel denn insgesamt in dieser bestellung hier ausgegeben wurde und dementsprechend müssen wir natürlich nicht nur hier den
- einzelnen preis für ein produkt haben sondern die gesamtsumme die hier ausgegeben wurde und dementsprechend müssen wir das ganze natürlich
- ausrechnen und das coole ist dass man hier in diesem select ding hier oben nicht nur einfach hier oben die spalten angeben kann die man hier haben möchte
- sondern man kann auch weitere spalten hinzufügen und hier sogar rechnen das heißt ich könnte hier ist beispielsweise sagen ich möchte eine weitere spalte
- hinzufügen und die ist quantity x prize ich multipliziere also dass hier mit dem hier wenn ich das ganze ausführe sehen wir dass hier nun einfach eine
- neue spalte entstanden ist jetzt konnte ti x prize so wie es da oben rein geschrieben habe und es wird das feld konnte ti mit dem feld preis
- multipliziert und dadurch haben wir hier noch mal ein deutlich besseres ergebnis womit wir deutlich mehr anfangen können wenn ich das ganze jetzt umbenennen
- möchte weil ich hier nicht einfach möchte das hier konnte thema preis steht ist ja ein bisschen unprofessionell kann ich hier hinter auch noch ein ass
- schreiben und kann nun hier sagen wie ich das ganze nennen möchte zum beispiel tote ich das wieder ausführen dann sehen wir
- hier dass wir oben nun einfach tote steht es wird also einfach hier oben das ding umbenannt dein chef möchte jetzt beispielsweise wissen wie viel denn
- insgesamt verdient wurde im jahr 1996 das bedeutet wir müssen nun natürlich von unseren abfragen hier herausfinden
- welche denn alle im jahr 1996 gemacht wurde weil wenn ich hier runter gehe sehe ich das auch manche hier aus dem jahr 1997 sind wir müssen also hier
- wieder filtern und wie wir etwas fitter das wissen wir schon ja das haben wir bereits gemacht und zwar mit dem verb statement das heißt ich schreibe jetzt
- hierher und filter nach order date und ich möchte jetzt dass immer wenn es mit dem hier was ich nun markiert habe anfängt aufgenommen wird und unsere
- tabelle und sonst nicht ja das heißt ich möchte hier jetzt nicht nach dem gesamten datum filtern also nicht sowas hier sondern wir verwenden den navas war
- es nochmal like operator genau und hier hinter müssen wir jetzt ein prozent zeichen schreiben um zu sagen dass wir hinter diesem 1996 und - und so noch ein
- bisschen mehr anzeigen wollen ja also alles was mit 1996 - anfängt und danach kommt da noch irgendetwas anderes das wollen wir anzeigen und haben wir es
- auch gemacht und wir sehen hier dass wir nur noch einträge haben die aus 1996 stammt jetzt wollen wir allerdings nicht einfach hier ist so alle dinge
- haben sondern wir wollen nun diesen tote also dieses komplette bestellvolumen von all unseren bestellungen aufsummieren und das bedeutet wir brauchen nun eine
- neue funktionalität wie schaffen wir es in sql die summe von all diesen spalten hier oder von allen zeilen aus der spalte tote zu bilden das geht mit der
- so genannten summen funktion hier oben können wir jetzt statt select oder date usw einfach nur schreiben dass wir die summe haben wollen also schreiben wir
- selects anklamer auf und da steht jetzt quantity mal preis drin und das ganze bezeichnen wir so wie vorher als tote das können wir auch weglassen und
- nachdem wir das hier machen wird nun aus allen spalten also aus dem gesamten ergebnis was in dem hier unten geliefert wird einfach die quality mal den preis
- für jede einzelne zeile genommen so gucken wir was da rauskommt und wir sehen hier ist wurde 283.000 euro oder dollar oder was auch
- immer ist gewinn gemacht es gibt auch noch weitere funktionen die man hier oben aufrufen kann man kann beispielsweise avg schreiben das steht
- für average das heißt hier könnte ich jetzt schreiben es average und wenn ich das jetzt einfüge dann habe ich den durchschnitt einer bestellung und
- natürlich können wir hier auch mit komma getrennt mehrere sachen hintereinander schreiben das heißt wir könnten hier schreiben summe und könnten hier
- schreiben tote und wenn ich das hier so schreiber haben wir zwei spalten einmal die gesamt bestell summe und einmal die durchschnittliche bestellung man kann
- hier auch noch count verwenden auch noch ganz interessant das heißt ich würde hier einfach mal schreiben count ganz am anfang hier rein kann
- jetzt eigentlich irgendwas ist egal welcher spalte wird zählen weil es ja immer gleich viel und hier würde ich jetzt einfach mal als titel wählen
- und wenn ich das jetzt ausführte wissen wir okay es gab 405 bestellungen im jahr 1996
- davon wurden jetzt 283.000 euro umsatz generiert und durchschnittlich wurde in einer bestellung für
- 698 euro oder dollar oder was auch immer das ist hier bestellt jetzt nehmen wir einmal an wir haben unseren jahresabschluss hier gespeichert
- das heißt ich schreibe hier einmal create table jahresabschluss 1996 s und speichert das ganze dann
- haben wir jetzt hier eine neue tabelle und vielleicht wollen wir tabellen auch irgendwann mal wieder entweder löschen oder updaten fangen wir an mit dem
- löschen das geht wirklich ganz einfach aber es darf natürlich nicht ausgelassen werden das macht man einfach mit dem befehl drop neues wort table und
- dahinter dass der name von der tabelle die gelöscht werden soll das bedeutet wenn ich das hier ein tipp da kriegen wir auch keine abfrage ob das wirklich
- getan werden soll oder so zeigt die tabelle wurde hier einfach gelöscht auf der rechten seite wenn ich auch dem webbrowser aktualisiere ist die tabelle
- immer noch weg das nächste was auch noch wichtig ist ist natürlich das updaten von feldern jetzt stellen wir uns einmal vor andrew hat geheiratet und hat jetzt
- einen anderen nachnamen dann müssen wir diesen natürlich updaten und dafür müssen wir erst einmal sagen welche tabelle wir updaten wollen das heißt ich
- schreibe update employees und nun muss ich sagen was ich updaten möchte ich möchte beispielsweise mit z sagen dass ich last name updaten
- möchte zu wie heißt er jetzt bilder und im nächsten schritt möchte ich jetzt natürlich noch sagen welches tätig updaten möchte weil ich möchte hier hin
- nicht alle im dorf namens aus meinen mitarbeitern hierzu müller ändern sondern nur einen ganz bestimmten und deswegen brauche ich hier so wie sonst
- auch nochmal wer und sage jetzt beispielsweise where id diese id ist immer das aller sicherste das ist der so genannte
- primary key und da sagen wir jetzt employee id2 an dieser stelle schauen wir uns noch einmal an was ein sogenannter primary ist unsere daten
- speichern wir ja immer in solch einer tabelle neben daten wie dem namen der adresse der stadt oder postleitzahl haben wir ganz links allerdings auch
- immer diese customer id diese id ist eine zahl die ganz eindeutig jeder reihe zuzuweisen ist das heißt die reihe mit der customer die einst die gibt es nur
- einmal die reihe mit der customer id2 gibt es auch nur einmal und das heißt wenn ich sagen möchte gibt mir die reihe 4 dann gibt es diese nur ein einziges
- mal und die hat immer als customer nannte horn und als kontaktnahme thomas hd jeder eintrag in unserer datenbank hat also immer einen ganz eindeutigen
- schlüsse womit wir den jeweiligen eintrag in der datenbank wiederfinden können und wenn ich jetzt das ganze ausführe steht hier humaid changes to
- the database effect 1 ich klicke wieder auf employees und sehe dass der liebe herr jetzt andrew miller heißt
- und jetzt kommt natürlich noch die preisfrage was ist denn wenn ich aus versehen etwas geändert habe naja dann hast du natürlich erst einmal pech weil
- sql hat standardmäßig kein befehl um das ganze wieder rückgängig zu machen weil das ganze allerdings häufiger passiert ist ist so dass moderne datenbanksysteme
- dafür natürlich einen mechanismus eingeführt haben der ist jedoch bei jedem datenbanksysteme ein bisschen anders das heißt je nachdem ob du jetzt
- oracle verwendet ob du microsoft verbände ist ob du meist equal verwendest ob du maria db postgres verwendet ja da ist der mechanismus
- immer ein bisschen anders aber normalerweise gibt es in jeder dieser datenbank systeme eine möglichkeit das ganze wieder ein schritt rückgängig zu
- machen bei oracle zum beispiel ist es so dass man solche änderungen häufig auch noch kommen muss das heißt man macht eine änderung grundsätzlich immer erst
- einmal auf einer kopie und diese kopie die kann man dann abspeichern so zu sagen und damit das original überschreiben außerdem ist es natürlich
- so dass gerade in großen firmen oder wenn das ganze professionell gemacht wird häufiger natürlich das ganze gepäck ab wird ja dhs tabellen werden
- regelmäßig gebäck abt und irgendwo anders gespeichert und das würde ich auch jedem der mit so einem datenbanksystem mit wichtigen daten
- arbeitet auf jeden fall empfehlen wichtig ist informiert ich auf jeden fall vorher ob solch ein sicherheitsmechanismus beide einem
- datenbanksystem existiert und ob diese auch ganz sicher aktiviert ist wird dem wissen was du in diesem video gelernt hast bist du nun in der lage wirklich
- komplexe abfragen auf datenbanksystemen zu machen herzlichen glückwunsch ich versichere dir das ganze wird dich in deiner karriere und in deiner arbeit
- sehr viel weiterbringen wenn du das eine oder andere mal mit datenbanksystemen arbeiten musst wenn du jetzt sagt okay das hat ihr mega spaß gemacht und
- programmieren ist echt cool für dich ja weil es cool ist programmieren dann schaue ich doch gerne mal auf diesem kanal hier um denn hier geht es um
- nichts anderes als um das thema wie man programmieren lernen und das auf dem einfachsten weg der möglich ist also wenn ich das interessiert szabo und
- ansonsten würde ich sagen wir sehen uns wieder im nächsten video mach's gut dein yunus
Zum Nachlesen
Data Manipulation LanguageDie Sprachelemente zur Datenabfrage (bei SQL sind das die Schlüsselwörter SELECT , JOIN , WHERE etc.) werden aufgrund ihrer Sonderstellung manchmal einer …
Join (SQL)Ein SQL-Join (deutsch: Verbund) bildet aus den Datensätzen zweier Tabellen einer relationalen Datenbank eine Ergebnistabelle, deren Datensätze Attribute beider …
Selektion (Informatik)In der Relationalen Algebra ist die Selektion einer der fünf Operatoren, die in Relationalen Datenbanken eingesetzt werden.
Selektivität (Informatik)Selektivität ist ein Maß, das in der Informatik bei Datenbankabfragen auf Datenbanktabellen in relationalen Datenbankensystemen gebraucht wird; sie bestimmt …