SQL Abfragen - SQL 6 Informatik - simpleclub https://www.youtube.com/watch?v=phdWpI5VUWk Transkript (automatisch erstellt) 0:01 Willkommen zurück! Ihr habt wohl immer noch nicht genug von SQL, was? 0:04 Kein Wunder! Heute gehts ja auch endlich um das Kernstück in SQL. 0:07 Nämlich die Abfragen! Diese fallen unter die Data Manipulation Language, auch DML genannt. 0:13 Die kennen wir ja schon von den Kommandos Insert , Delete und Update. Also, packt eure Brotzeit ein und ab geht die Luzie! 0:20 Also, wir wissen ja jetzt schon was SQL ist und wie wir Datenbanken damit erzeugen und verwalten können. 0:29 Wenn ihr es nochmal auffrischen wollt, einfach in die SQL Videos davor reinklicken! Mit den Abfragen können wir jetzt nen sehr wichtigen Teil übernehmen. 0:37 Wir wollen ja Daten aus den Tabellen jetzt auch irgendwie auslesen. Genau das machen wir mit Abfragen. 0:43 Das Abfrageergebnis wird dabei wieder in Form einer Tabelle angegeben. In SQL sind Abfragen allgemein in drei Teile aufgebaut. 0:51 In der 1. Zeile schreiben wir ein Select. Da geben wir an, welche Attribute wir aus den Tabellen nehmen wollen. 0:57 Wir sagen also einfach, welche Spalten wir in der Ergebnistabelle haben möchten. Die Namen in Select müssen dabei natürlich den Namen aus den Tabellen entsprechen. 1:04 In die zweite Zeile schreiben wir immer ein from. In dieser Zeile geben wir dann einfach an, aus welcher Tabelle wir etwas nehmen möchten. 1:11 Dabei können wir natürlich auch mehrere Tabellen mit einem Komma getrennt angeben. Somit ist es also möglich in der Select Anweisung auch Spalten aus mehreren Tabellen anzugeben. 1:20 Da könnt ihr euch den Begriff Join dazu merken, aber die behandeln wir ausführlich in nem anderen Video. 1:26 In die dritte Zeile können wir optional eine Where Klausel schreiben. Diese funktioniert genauso wie in den DML und DDL Anweisungen. 1:34 Dadurch können wir also Bedingungen für unsere Abfrage setzen . Falls wir diese Zeile leer lassen, werden alle Daten aus den Spalten genommen, die wir 1:42 in Select angegeben haben. Grob gesagt, können wir mit dem Select also die Spalten, und mit dem where die Zeilen 1:48 bestimmen. So, da des jetzt klar is, schauen wir uns das ganze etwas genauer an! 1:53 Mit Select können wir ja jetzt bestimmte Spaltennamen angeben , die wir in der Ergebnistabelle auch haben möchten. 1:58 Wenn wir jetzt aber alle Spalten haben möchten, wäre es ja ziemlich umständlich alle Spalten aus den Tabellen hinzuschreiben. 2:04 #FaulheitSiegt Dafür kennen wir in SQL hinter unser Select einfach nen Stern schreiben. 2:10 Dann werden alle Spalten aus den Tabellen genommen, die wir in From angegeben haben. Gehen wir mal von unserer Tabelle Film aus den vorherigen Videos aus. 2:17 Die is mit jetzt mit mehreren Filmen gefüllt. Wir schreiben in unsere Zeile Select also den Stern. 2:29 Nach der From Klausel schreiben wir unseren Tabellennamen Film. Die Where Klausel is uns jetzt erstmal egal. 2:35 Wenn wir diese Anweisung dann ausführen kriegen wir folgendes Ergebnis. Wat? 2:39 Des is ja die gleiche Tabelle. Jou. 2:41 Da wir mit dem Stern jetzt alle Spalten übernommen haben und wir keine Einschränkungen bei Where für die Zeilen haben, werden alle Daten übernommen. 2:48 So wir können ja jetzt auch nur einzelne Spalten aus der Tabelle nehmen. Dabei kann es passieren, dass mehrere gleiche Werte in unserer Ausgabe stehen. 2:56 Da das nicht immer sinnvoll ist, können wir des in SQL verhindern. Wir schreiben jetzt einfach nach unser Select ein Distinct. 3:02 Dann wird für jede Ausgabezeile überprüft ob es Duplikate für die jeweilige Spalte gibt, die rausgeworfen werden können. 3:09 Das Distinct könnt ihr eigentlich fast immer dazu schreiben. Schauen wir uns des mal an der Tabelle Film an. 3:15 Wir haben jetzt zwei Filme mit den gleichen Regisseuren in unserer Tabelle drinstehen. Als Ausgabe wollen wir alle Regisseure haben, die in der Filmtabelle drinstehen. 3:24 Dafür schreiben wir erstmal unser Select und die Spalte Regisseur. In From schreiben wir jetzt unser Film. 3:29 So was steht jetzt in der Ausgabe? Genau. 3:33 Zweimal der gleiche Regisseur, da ja alle Daten unserer Spalte Regisseur ausgegeben werden. 3:38 Jetzt setzen wir mal unser Distinct nach Select. Et voila! 3:40 Schon werden gleiche Werte in unserer Ausgabenspalte gelöscht. Jetzt steht unser Regisseur nur noch einmal drin. 3:47 Natürlich lassen sich hinter des Distinct auch mehrere Spalten schreiben. Dann werden aber nur die Zeilen zusammengefasst, wo jeder Wert der Spalten übereinstimmt. 3:56 Wenn wir jetzt also noch Kosten in unsere Ausgabe schreiben wollen, wird unser Regisseur mit unseren Kosten wieder doppelt auftauchen. 4:02 Wenn die Kosten jetzt allerdings in beiden Filmen gleich sein würden, würde das Duplikat wieder rausgenommen werden, da beide Zeilen ja genau gleich sind. 4:10 Soweit klaro? Jetzt kann es aber auch mal sein, dass wir unserer Ausgabetabelle andere Spaltennamen 4:15 geben wollen. Dafür können wir hinter unseren Spaltennamen in Select einfach ein as schreiben. 4:20 Dahinter kommt dann noch der gewünschte Name der Spalte. Und schon haben wir einen neuen Spalten Namen, geil oder? 4:26 Die Where Klausel kennen wir ja jetzt schon aus den vorherigen Videos zu SQL. Da können wir ja bestimmte Bedingungen wie größer,kleiner,gleich, und so weida angeben. 4:36 Diese Bedingungen können wir jetzt aber auch verknüpfen. Mit einem AND zwischen den Bedingungen geben wir an, dass alle Bedingungen gelten müssen. 4:43 Mit OR geben wir an, dass eine dieser Bedingungen gelten muss. Mit NOT drehen wir diese Bedingung ins negative. 4:49 Wir können außerdem überprüfen ob Spalten einen bestimmten Teil eines Wortes enthalten. Dafür setzen wir nach unseren Spaltennamen ein LIKE. 4:58 In Anführungszeichen dahinter kommt dann die Zeichenkette , die unsere Spalte enthalten soll. 5:03 Durch ein Prozentzeichen können wir jetzt sagen, dass da irgendwelche Zeichen sein können. Nehmen wir an, wir wollen jetzt den Filmnamen und die FilmID ausgeben lassen. 5:11 Außerdem soll dies nur für den Film Iron Man passieren oder wo die FilmID 2 ist. Zuerst geben wir natürlich unseren Spaltennamen und die Tabelle an. 5:20 In die Where Zeile schreiben wir erstmal ein Name gleich Iron Man. Mit einem OR können wir dahinter schreiben FilmId gleich 2. 5:27 Somit werden uns alles Filme ausgegeben, die Iron Man heißen, oder wo die FilmID gleich 2 ist. 5:33 Nice Sache! Jetzt schauen wir uns den theoretischen Schmarn aber an nem Praktischen Beispiel an! 5:38 Gehen wir mal von unseren beiden Tabellen Buch und Autor aus den vorherigen Videos aus. Da stehen jetzt mehrere Bücher und Autoren drin. 5:46 Zuerst wollen wir alle Bücher ausgeben die in der Tabelle Buch stehen. Dafür schreiben wir hinter unser Select erstmal nen Stern. 5:52 Hinter unser From schreiben wir den Tabellennamen Buch. Die Where Zeile können wir dabei rauslassen. 5:57 So schnell gehts! Als nächstes wollen wir uns ausgeben lassen, was für Preise im Buchladen vorkommen. 6:03 Dafür schreiben wir in unsere Select Zeile den Spaltennamen für den Preis und in From unsere Tabelle Buch. 6:09 Als Ergebnis würden jetzt aber Preise auch doppelt vorkommen, da ja alle Preise pro Zeile ausgegeben werden. 6:15 Wenn wir jetzt aber ein Distinct vor unser Preis setzen, werden doppelte Preise einfach gelöscht. 6:20 So zum Schluss wollen wir jetzt noch alle Autorennamen ausgeben, deren Vorname mit “Da” anfängt. 6:26 Also schreiben wir erstmal Select Distinct Vorname from Autor. Dann schreiben wir in die Where Zeile die Spalte Vorname. 6:33 Dahinter kommt ein Like. In Anführungszeichen dahinter schreiben wir dann noch unser Da und das Prozentzeichen. 6:39 Somit werden alle Vornamen ausgegeben, die mit Da anfangen. Puh, da waren jetzt wieder ziemlich viele Infos. 6:45 Fassen wir das doch grob zusammen. Durch Abfragen können wir bestimmte Daten aus einer Datenbank rauslesen. 6:51 Dabei wird keine neue Tabelle erstellt, aber die Ausgabe erfolgt in Form einer Tabelle. In die erste Zeile schreiben wir dabei immer ein Select. 6:59 Dort wird angegeben welche Spalten uns überhaupt interessieren. In die From Zeile schreiben wir die Tabellennamen, aus denen wir die Spalten lesen wollen. 7:06 Die Where Zeile ist optional. Da können wir Bedingungen reinschreiben, da wir ja nicht immer alle Zeilen der Spalte 7:12 ausgeben wollen. Wenn wir hinter unser Select einen Stern schreiben, werden alle Spalten der Tabelle ausgegeben. 7:18 Durch ein Distinct zwischen dem Select und dem Spaltennamen, werden alle Duplikate in dieser Spalte zusammengefasst. 7:24 Durch ein As hinter den Spaltennamen können wir unserer Spalte für die Ausgabe einen neuen Namen geben. 7:30 In der Where Zeile können wir noch mehrere Zusätze schreiben. Durch ein AND können Bedingungen verknüpft werden. 7:35 Durch ein OR muss nur eine Bedingung gelten. Durch ein NOT wird die Bedingung umgedreht. 7:41 Durch ein Like kann man bestimmen ob nur ein Teil eines Wortes enthalten sein soll. Für beliebige Zeichen kann ein Prozentzeichen geschrieben werden. 7:48 Alright Buddies! Det wars erstmal zu den Abfragen. 7:50 In den nächsten Videos schauen wir uns dann an, wie des mit Abfragen aus mehreren Tabellen ausschaut.