Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

SQL Tutorial für Anfänger | Grundkurs Deutsch

Programmieren lernen51:03 305.677 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 299 Zeilen
Herunterladen
  1. 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
  2. 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
  3. verändern oder sogar komplett neue tabellen erstellen sql ist dabei nicht irgendeine sprache sondern tatsächlich die abfragesprache für das meistgenutzte
  4. datenbanksystem überhaupt und zwar die relationale datenbank das bedeutet du wirst in diesem kurs erst einmal lernen was eine relationale datenbank ist
  5. 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
  6. neue tabellen erstellen kannst und wie du komplexe abfragen erstellen kannst für dieses tutorial muss zunächst installieren sondern wir arbeiten hier
  7. 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
  8. 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
  9. selbstverständlich führst du auch eine kartei über diese kunden gerade bei solchen kundendaten macht es natürlich sinn diese daten in tabellenform
  10. 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
  11. 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
  12. dementsprechend hast du natürlich auch sehr viele daten in solch einer tabelle normalerweise hast du natürlich nicht nur eine tabelle sondern mehrere
  13. beispielsweise auch noch für deine bestellungen das hier wäre jetzt die untere tabelle in der unteren tabelle siehst du also ebenfalls eine
  14. bestellnummer die sogenannte order id dann die customer idea was die jeweilige kundennummer ist welcher mitarbeiter das ganze bearbeitet hat in der employee id
  15. dann noch das datum wann das ganze bestellt wurde unter noch eine sogenannte schipper id die der person zuzuordnen ist die das ganze versendet
  16. 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
  17. möchtest jetzt vielleicht die bestellung herausfinden die dieser kunde gemacht hat oder du möchtest zu der jeweiligen bestellung herausfinden welcher kunde
  18. denn jetzt hinter der customer id2 steckt du musst also eine relation zwischen der tabelle orders und der tabelle customers herstellen du brauchst
  19. daten aus beiden tabellen und genau das kannst du mit sql machen du kannst dir daten aus beliebig vielen tabellen raussaugen und diese beliebig
  20. kombinieren um verschiedene sachen herauszufinden das heißt wenn du jetzt beispielsweise in einem warenhaus arbeitest dann existieren dort in der
  21. 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
  22. 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
  23. mit hilfe von sql erledigen sql oder auch sequel genannt ist also eine sprache um aus relationalen datenbanken verschiedene daten abzufragen
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. so ausprobieren wollen wenn ich nun beispielsweise einen neuen mitarbeiter hinzufügen möchte dann klicke ich auf diese tabelle employees hier haben wir
  39. 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
  40. 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
  41. 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
  42. hier etwas einfügen möchte ich möchte in die employees tabelle etwas rein fügen also schreibe ich insert into employees
  43. übrigens in den meisten datenbanksystemen da draußen ist es egal ob du die befehle groß oder klein schreibst allgemein werden die befehle
  44. sehr ähnlich geschrieben je nachdem welches datenbanksystem du benutzt kann es allerdings sein dass der eine oder andere befehl mal minimal
  45. unterschiedlich geschrieben wird allgemein ist es aber egal ob du jetzt microsoft sql server benutzt ob du oracle dw benutzt michael postgres maria
  46. db oder was es sonst noch alles gibt es gibt sehr viele datenbanksysteme die mit sql funktionieren in den meisten datenbanksystemen hat es sich
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. schreiben in diese klammer nun in anführungszeichen wieder mit komma getrennt was wir denn hier reinschreiben wollen beispielsweise als mitarbeiter
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. wenn wir jetzt unsere tabelle angucken wollen dann schreiben wir hier einfach wieder select stern fromm und den namen unserer datenbank die wir gerade
  62. verändert haben alternativ könnte ich hier auch rechts einfach draufklicken wenn ich das ganze
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. das ganze einfügen ansonsten beschäftigen wir uns jetzt damit wie wir denn einzelne werte aus unserer tabelle abfragen können
  70. nachdem wir im letzten abschnitt einen neuen eintrag zu unserer tabelle hinzugefügt haben wollen wir im jetzigen abschnitt natürlich unsere daten
  71. abfragen das heißt wir haben ja hier verschiedene tabellen und wolle nun aus diesen verschiedenen tabellen datenabfragen stellen wir uns mal vor
  72. 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
  73. 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
  74. 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
  75. 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
  76. jetzt hier oben beispielsweise auch eintragen select stern from orders und dann würde ich aus der tabelle order ist alles abfragen also alle
  77. 196 einträge die es hier in den bestellungen gibt all das ist jetzt nicht besonders interessant wir könnten hier auch beispielsweise
  78. 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
  79. heißt einfach sortieren nach also wir können diese tabelle jetzt anhand von einem feld sortieren wenn wir sie beispielsweise anhand des feldes
  80. 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
  81. 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
  82. wir haben jetzt unsere tabelle anhand des feldes category nahm alphabetisch sortiert hier können wir nur noch andere felder reinschreiben beispielsweise
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. du kannst unglaublich viele verschiedene abfragen mit sql erstellen beispielsweise kannst du wenn du hier alle möglichen kunden hast nur die
  91. 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
  92. allerdings kannst du hier hinter nun ein sogenanntes keyboard einfügen und dieses werk ii word bedeutet dass du nun eine
  93. einschränkung machen könntest du kannst beispielsweise sagen wer city also das feld was hier rechts unten ist gleich in anführungszeichen
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. einer postleitzahl anfangen das ganze kannst du jetzt einmal als übung anfang ja versuch mal alle leute herauszufinden wo die postleitzahl mit null beginnt
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. ansonsten machen wir das ganze jetzt gemeinsam und zwar kann ich hier hinter einfach schreiben and country gleich und hier schreibe ich jetzt rein
  115. 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
  116. 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
  117. 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
  118. 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
  119. kontakt namen wenn man sich übrigens verschreibt ja wenn man hier jetzt irgendeinen verein schreibt was nicht ganz richtig ist und wir das ganze
  120. 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
  121. gemacht hast diese fehlermeldung bedeutet überhaupt nichts schlimmes ja man muss sie einfach nur richtig lesen und hier steht nun dort prix per
  122. 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
  123. 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
  124. fehlermeldung lesen wenn man die verschlüsse wenn man die sieht und nicht gleich verzweifeln denken und eine komische fehlermeldung das passiert sehr
  125. 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
  126. man kopiert sich den teil der fehlermeldung der wahrscheinlich immer gleich ist das hier ist wahrscheinlich immer anders aber das hier oben ist
  127. 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
  128. ergebnis was wahrscheinlich meine fehlermeldung beschreibt hier schreibt jemand okay das ist mein sql code jetzt schon mal ein bisschen komplexer noch
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. ticken komplexer ist und zwar geht es wieder darum dass wir aus unserer tabelle customers datenabfragen wollen wir sagen also wieder select stern rom
  135. rom würde ich es auch wieder groß schreiben customers so jetzt haben wir alle daten und jetzt möchte ich dieses werk so
  136. 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
  137. 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
  138. könnte jetzt hier sagen wer in klammern country gleich usa in anführungszeichen
  139. and hostel code like wieder anführungszeichen soll anfang mit einer neuen und danach
  140. 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
  141. 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
  142. mexico and post it
  143. like anführungszeichen und hier sage ich nun 0 und prozent es soll also mit einer null anfangen führen wir das ganze
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. kundennummer 44 und nun gehst du in die andere tabelle wo die bestellungen drin sind und sucht dort nach allen bestellungen die die customer
  153. 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
  154. komplexer werden schnell nervig werden vor allen dingen kommt so ein fall ja nicht einmal vor sondern das ganze muss automatisiert werden und wird
  155. 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
  156. bestellung beispielsweise noch der name hinzugefügt wird oder wo zwei tabellen einfach komplett kombiniert werden bei solchen kombinationen wollen wir
  157. natürlich nicht alle möglichen kombinationen haben sondern wir nehmen beispielsweise unsere tabelle mit den bestellungen und bei dieser tabelle
  158. ergänzen wir jetzt einfach alle feder die wir zu unseren kunden daten haben in die jeweilige zeit das bedeutet wir haben jetzt
  159. 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
  160. 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
  161. quasi beide tabellen kombinieren man kann zwei tabellen miteinander verbinden indem man ein so genannten join verwendet das bedeutet wir fragen jetzt
  162. 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
  163. tabelle bezeichnen und diese linke tabelle wird nun mit einer rechten tabelle kombiniert deswegen sage ich hier left join
  164. 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
  165. 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
  166. 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
  167. 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
  168. id das heißt ich muss hier nun wieder customers schreiben hier hinter customers id und kombinieren nun aus dieser customer tabelle der skate
  169. 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
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. wir können nun beispielsweise herausfinden wie viele bestellungen in helsinki gemacht wurden dafür kann ich jetzt das ganze so wie vorher gelernt
  176. 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
  177. 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
  178. bestellungen getätigt wurden und wenn ich jetzt beispielsweise herausfinden möchte wie viel unser kontakt nahm renate messner bestellt hat dann
  179. 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
  180. angucken dann wäre es doch sehr interessant zusätzlich nochmal herauszufinden was denn eigentlich bestellt wurde und deswegen wäre es
  181. 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
  182. 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
  183. 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
  184. 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
  185. 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
  186. 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
  187. 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
  188. 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
  189. heißt du hast dieses video jetzt an und versucht einmal die order mit den oder details zu verknüpfen bis gleich
  190. 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
  191. 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
  192. 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
  193. möchte und jetzt muss ich natürlich auch noch sagen welches feld ich verbinden möchte und deswegen schreibe ich hier oder
  194. die tate punkt oder id gleich orders punkt oder id ob ich hier übrigens erst das schreibe oder erst das
  195. 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
  196. dann haben wir nun eine kombination aus allen möglichen bestellungen mit allen bestellung details wir haben hier jetzt also
  197. 518 ergebnisse und jetzt fragen wir uns vielleicht ok warum haben wir denn 518 ergebnisse und nicht 196 ergebnisse schließlich gibt es doch
  198. 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
  199. mehrfach vorkommt es gibt mehrere einträge mit details zu einer einzigen bestellung und deswegen gibt es hier nun alle 518 einträge
  200. 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
  201. 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
  202. behalten und kombiniere das ganze jetzt mit products nachdem ich das ganze gemacht habe sage
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. sehr viele verschiedene informationen die ein vielleicht auch etwas überfordern und genau deswegen kann man hier oben bei diesen stern jetzt zum
  210. 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
  211. 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
  212. 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
  213. 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
  214. ein außerdem wollen wir vielleicht auch noch zum beispiel das datum haben also welches produkt bestellt wurde an welchem datum und dann
  215. 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
  216. auch dieses papier noch weiter kombinieren um beispielsweise auch noch herauszufinden welcher kunde denn jetzt zum beispiel abhängig vom namen welches
  217. 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
  218. 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
  219. 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
  220. 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
  221. 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
  222. 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
  223. 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
  224. 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
  225. 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
  226. drin was wir eben erstellt haben also eine tabelle die wir jetzt permanent haben und der mit der wir weiterarbeiten können
  227. dein chef kommt zu dir und will noch deutlich mehr wissen er will beispielsweise wissen wie viel geld denn jetzt bei einer bestellung ausgegeben
  228. wurde außerdem interessiert ihn natürlich wie viel insgesamt bestellt wurde wie viel geld bei einbestellung in einem monat ausgegeben wurde und so
  229. 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
  230. 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
  231. bereits drei tabellen miteinander kombiniert einmal orders einmal oder details und einmal products und daraus haben wir es nur die feder genommen die
  232. wir dann brauchen und wissen jetzt wer ein datum ein produktnamen eine menge die bestellt wurde zu einem gewissen kreis wir wollen jetzt aber
  233. beispielsweise auch wissen wieviel denn insgesamt in dieser bestellung hier ausgegeben wurde und dementsprechend müssen wir natürlich nicht nur hier den
  234. einzelnen preis für ein produkt haben sondern die gesamtsumme die hier ausgegeben wurde und dementsprechend müssen wir das ganze natürlich
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. 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
  241. schreiben und kann nun hier sagen wie ich das ganze nennen möchte zum beispiel tote ich das wieder ausführen dann sehen wir
  242. 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
  243. insgesamt verdient wurde im jahr 1996 das bedeutet wir müssen nun natürlich von unseren abfragen hier herausfinden
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. haben sondern wir wollen nun diesen tote also dieses komplette bestellvolumen von all unseren bestellungen aufsummieren und das bedeutet wir brauchen nun eine
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. immer ist gewinn gemacht es gibt auch noch weitere funktionen die man hier oben aufrufen kann man kann beispielsweise avg schreiben das steht
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. und wenn ich das jetzt ausführte wissen wir okay es gab 405 bestellungen im jahr 1996
  264. davon wurden jetzt 283.000 euro umsatz generiert und durchschnittlich wurde in einer bestellung für
  265. 698 euro oder dollar oder was auch immer das ist hier bestellt jetzt nehmen wir einmal an wir haben unseren jahresabschluss hier gespeichert
  266. das heißt ich schreibe hier einmal create table jahresabschluss 1996 s und speichert das ganze dann
  267. 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
  268. 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
  269. 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
  270. 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
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. auch nochmal wer und sage jetzt beispielsweise where id diese id ist immer das aller sicherste das ist der so genannte
  277. 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
  278. 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
  279. 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
  280. 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
  281. 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
  282. 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
  283. the database effect 1 ich klicke wieder auf employees und sehe dass der liebe herr jetzt andrew miller heißt
  284. 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
  285. 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
  286. 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
  287. oracle verwendet ob du microsoft verbände ist ob du meist equal verwendest ob du maria db postgres verwendet ja da ist der mechanismus
  288. 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
  289. 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
  290. 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
  291. 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
  292. regelmäßig gebäck abt und irgendwo anders gespeichert und das würde ich auch jedem der mit so einem datenbanksystem mit wichtigen daten
  293. arbeitet auf jeden fall empfehlen wichtig ist informiert ich auf jeden fall vorher ob solch ein sicherheitsmechanismus beide einem
  294. 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
  295. komplexe abfragen auf datenbanksystemen zu machen herzlichen glückwunsch ich versichere dir das ganze wird dich in deiner karriere und in deiner arbeit
  296. 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
  297. 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
  298. 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
  299. ansonsten würde ich sagen wir sehen uns wieder im nächsten video mach's gut dein yunus

Zum Nachlesen