SQL Tabellenerzeugung mit DDL - SQL 2 Informatik - simpleclub https://www.youtube.com/watch?v=i-W5bos0LlE Transkript (automatisch erstellt) 0:00 Hummel Hummel - Mors Mors ihr Landratten ! Na, wo geit die dat? 0:02 Endlich gibts das neue Video zu SQL! Wir haben ja schon gelernt, dass wir durch SQL,Tabellen erstellen und bearbeiten können. 0:06 Aber wie funktioniert das jetzt genau? Die Bearbeitung und Erzeugung von Datenbanktabellen erfolgt in SQL 0:13 über die sogenannte Data Definition Language. Wers kurz haben will , DDL. 0:17 DDL sind einfach SQL Kommandos welche wieder durch eine einfache Struktur und durch englische Befehle definiert sind. 0:24 Aber genug gelabert, schauen wir uns das ganze mal in der Praxis an. DDL, Ahoi! 0:31 Ois klar. Jetzt kanns endlich an die Praxis gehen. 0:34 Damit ihr selber mit dem Code rumspielen könnt, kann ich euch SQL Fiddle oder den w3schools SQL Editor empfehlen. 0:41 Wir wollen jetzt aber erstmal eine neue Tabelle erstellen. Das machen wir immer mithilfe von create table und den Namen der Tabelle. 0:49 Nach der letzten Klammer wird außerdem ein Semikolon angefügt. Wir orientieren uns jetzt mal an den Beispielen der vorherigen Videos. 0:56 In unserem Fall können wir mit create table Film , eine Tabelle mit dem Namen Film erstellen. Da eine leere Tabelle jetzt ziemlich langweilig wäre, schreiben wir in die Klammern unsere 1:07 Attribute, oder auch Spalten, der Tabelle. Zuerst schreiben wir den Namen des Attributs und dahinter den Datentyp. 1:12 Mit einem Komma trennen wir die Attribute voneinander, wobei nach dem letzten Attribut kein Komma steht. 1:19 Die Datentypen ähneln denen in Java und reichen von integer bis String. Am besten wir schauen uns das mal im Code an und ab geht’s! 1:27 Die Attributnamen für unsere Tabelle Film sehen also folgendermaßen aus. Wir haben für jede Spalte der Tabelle den Namen festgelegt. 1:35 Für FilmId,Jahr,Kosten und Regisseur legen wir ein Integer fest, da in allen dieser Spalten ja eine Zahl stehen soll. 1:42 Für Name und Genre legen wir dagegen ein varchar fest, da dort ja überall ein Name stehen soll. 1:48 Varchar 40 ist jetzt einfach ein String der zwischen 1 bis 40 Zeichen enthalten kann. Char dagegen ist ein String der eine feste Länge haben muss. 1:57 Char 10 sagt zum Beispiel, dass der String in der Tabelle 10 Zeichen lang sein muss! En paar von euch denken sich jetzt wahrscheinlich: “Äh jo? 2:05 Aber warum brauchen wir überhaupt Datentypen?” Wenn für die Attribute falsche Werte einsetzt werden,die nicht dem Datentyp entsprechen, 2:13 wird die Tabelle nicht angelegt. Kurz gesagt: Wenn wir zum Beispiel in die Spalte Kosten 2:18 einen String schreiben wollen, denkt sich SQL so : “Whaat? 2:21 Bisch du dumm? Mach ich sicher nicht, is ja falsch!” 2:23 Also, möget ihr immer gut auf die Datentypen achten, gell? So, die Spalten ham wir jetzt auch gesetzt, aber uns fehlen noch die Schlüsselbeziehungen. 2:30 Wenn ihr nicht mehr wisst was ein Schlüssel ist, einfach in des Video davor klicken! In DDL können wir solche Zusätze hinter den Datentyp schreiben. 2:39 Schlüsseldefinitionen sind dabei aber nur ein kleiner Teil von Zusätzen. Die anderen schauen wir uns im nächsten Video an! 2:45 Aber back zum Business! In unserer Filmtabelle würde eine Primärschlüsseldefinition so aussehen. 2:51 Für FilmID schreiben wir ein primary key , da FilmID ja unser Primärschlüssel ist. Wir könnten das ganze auch an den Schluss schreiben und zwar mit primary key FilmID. 3:01 Sprechpause Da müssen wir jetzt aber aufpassen und nach primary key in Klammern immer den Namen der 3:07 Spalte dazuschreiben, die Primärschlüssel ist. Wenn wir jetzt mehrere Attribute als Primärschlüssel festlegen wollen, 3:13 können wir hinter primary key auch einfach mehrere Attribute reinschreiben. Also merkt euch: 3:18 Für den Primärschlüssel schreiben wir also immer primary key hinter den Datentyp oder ans Ende der Tabellendefinition. 3:47 Normal oder? So, jetzt fehlt uns noch die Definition unserer Fremdschlüsselbeziehungen. 4:00 Diesen Fremdschlüssel können wir ähnlich wie den Primärschlüssel erzeugen. Wir schreiben einfach hinter den Datentyp des Attributs ein references. 4:08 Dann müssen wir unseren Tabellennamen schreiben, auf den unser Fremdschlüssel verweisen soll. Dahinter kommt in Klammern dann noch der jeweilige Primärschlüssel der Tabelle. 4:17 Wie sieht das jetzt im Code aus? Für Film würde das ganze also so aussehen. 4:22 Da Regisseur ja unser Fremdschlüssel is, steht hier jetzt Regisseur integer references Regisseur ( RegisseurId) . 4:29 Somit verweist unsere Spalte Regisseur aus Film jetzt auf den Primärschlüssel von der Tabelle Regisseur, nämlich RegisseurId. 4:36 Natürlich können wir unsere Fremdschlüsseldefiniton auch ans Ende der Klammern schreiben. Dafür müssen wir jetzt vor dem references Block ein foreign key schreiben. 4:46 Nach foreign key schreiben wir dann in Klammern noch unser Attribut, welches wir als Fremdschlüssel definieren wollen. 4:52 Bei SQL Fiddle und weiteren Editoren ist hierbei jedoch wichtig, dass alle Tabellen bekannt sind bevor sie referenziert werden! 4:59 Das heißt,die Tabellen mit Fremdschlüsseln müssen nach den Tabellen angelegt werden auf die sich der Fremdschlüssel bezieht. 5:05 Außerdem müsst ihr jetzt wirklich drauf achten, dass euer Fremdschlüssel und der Primärschlüssel den gleichen Datentyp haben! 5:12 Alles klärle? Guade Sach! 5:14 Abschließend schauen wir uns jetzt an, was wir durch den SQL Code überhaupt gebaut haben. Nämlich das. 5:18 Durch den SQL Code haben wir unsere Tabelle Film aufgebaut und natürlich die Schlüsselbeziehungen. Die SQL zu Regisseur haben wir uns jetzt nicht angeschaut, aber die funktioniert ganz genauso 5:28 wie bei Film! So waren jetzt ja ziemlich viele Infos. 5:32 Damit wird das jetzt aber praktisch alles im Hirn speichern, gibts noch en einfaches Beispiel dazu. 5:38 Nehmen wir an in der Klausur steht, dass wir eine Tabelle Buch und eine Tabelle Autor mit geeigneten Spalten erzeugen sollen. 5:45 Natürlich mit SQL DDL. Schauen wir uns das mal an! 5:48 Wir fangen also mit unseren Grundgerüsten an. Die sehen dann so aus. 5:52 Easy wa? Jetzt wollen wir unseren Tabellen noch Spalten übergeben. 5:57 Für Buch könnte es folgendermaßen aussehen. Wir definieren also die Spalten BuchID,Name, Genre, Preis und Autor. 6:04 Preis, BuchID und Autor weisen wir den Datentyp int zu und den anderen ein varchar 30. Für Autor dagegen nehmen wir als Spalten AutorID, Vorname und Nachname. 6:16 Als nächsten sollen wir noch die Primärschlüssel eintragen und die Tabellen sinnvoll durch einen Fremdschlüssel verknüpfen. 6:21 So, wir wissen ja, dass wir uns auf unsere IDs verlassen können. Also legen wir in der Tabelle Buch unsere BuchID als Primärschlüssel fest. 6:29 In der Tabelle Autor machen wir das gleiche mit unserer AutorID. Primary abgeschlossen! 6:34 Um unsere Tabellen zu verknüpfen müssen wir jetzt noch einen Fremdschlüssel definieren. Das machen wir indem wir unsere Spalte Autor aus Buch mit dem Primärschlüssel aus Autor 6:44 verknüpfen. Das geschieht natürlich durch references, wie wir es oben schon gelernt haben. 6:49 So jetzt schauen wir uns noch die genauen Tabellen an, die wir durch den Code aufgebaut haben. 6:54 Durch die SQL Codes haben wir jetzt unsere beiden Tabellen Buch und Autor aufgebaut. Außerdem haben wir die Schlüsselbeziehungen dadurch auch gleich definiert. 7:03 Puuuh jetzt erstmal tief durchatmen bei den ganzen Infos. Was solltet ihr euch auf jeden Fall gemerkt haben? 7:08 Mit DDL kann man Tabellen erzeugen. Dies geschieht immer über Create Table . 7:13 Darin befinden sich die Spaltennamen und die Datentypen dazu. Diese ähneln denen in Java und reichen von int bis String. 7:20 Hinter den Datentypen können wir Zusätze hinzufügen. Für den Primärschlüssel schreiben wir primary key hinter das Attribut oder ans Ende der 7:29 Tabellendefinition. Für den Fremdschlüssel schreiben wir ein references hinter das Attribut oder ein foreign 7:34 key ans Ende der Tabellendefinition! Also Leude, am Besten ihr nehmt den Code und spielt damit en bisl rum und probiert neue 7:40 Tabellen aus. Wir schauen uns im nächsten Video an, was es noch für Zusätze gibt! 7:42 Also bis gleich Freunde!