OrangeVirus https://www.orangevirus.eu/community/ |
|
SQL Tutorial (1) https://www.orangevirus.eu/community/viewtopic.php?f=14&t=15029 |
Seite 1 von 1 |
Autor: | Carsten [ Do 14. Okt 2010, 01:47 ] |
Betreff des Beitrags: | SQL Tutorial (1) |
Tach Leute, Vorab: Die Farben benutze ich, um euch die Zusammenhänge klar zu machen. Wenn euch die Farbe stört, kopiert den Text in einen Texteditor und lest es euch da durch! Ich hab jetzt mal den Entschluss gefasst, ein SQL Tutorial für die OV-Community zu schreiben. Es gibt zwar genug Tutorials im Internet, jedoch sind diese manchmal nicht ganz einfach geschrieben. Ich versuche hier eins zu schreiben, was für jeden verständlich sein sollte! (Wenn nicht, dann haut mich :/ ). Ich werde hier bewusst keine Beispiele nennen. Versucht erstmal, SQL zu verstehen. Wenn ihr meint, ihr könnt es einigermaßen, dann schreibt mir eine PN und ihr bekommt Übungsaufgaben Erstmal ein Paar Grundbegriffe: Was ist eigentlich SQL?
Wie ist eine solche Datenbank aufgebaut?
Was kann ich also mit SQL machen?
Zusatz: Folgende Funktionen von SQL benutzen wir hier in der Regel nicht, können aber vorkommen: * Ordnen von existierenden Daten * Zählen von Einträgen in einer Tabelle * Abkürzungen von Tabellennamen (Auch: Alias) * Eine neue Tabelle erstellen * Struktur einer Tabelle ändern * Eine Tabelle löschen * Alle Daten einer Tabelle löschen So, das wäre alles, was man wissen muss! Im folgendem Abschnitt erkläre ich, wie die Befehle funktionieren: Erstmal: Die Befehle von SQL werden immer groß geschrieben bei uns, auch wenn Groß-/Kleinschreibung keinen Unterschied machen. Jedoch ist es so übersichtlicher und für andere leichter zu verstehen, was derjenige geschrieben hat. Ebenfalls wird hinter jeder Abfrage ein Simikolon (;) verwendet. So wird die Abfrage beendet. Der wohl einfachste Befehl ist der SELECT Befehl, was so in diesem Zusammenhang auslesen bedeutet. Mit dem SELECT Befehl liest man Daten aus einer bereits existierender Datenbank aus. Man kann aber nicht nur einfach SELECT eingeben, darauf würde einen Syntaxfehler folgen. Man muss noch auswählen, aus welcher Tabelle der Datenbank man etwas auslesen möchte. Das geht folgendermaßen: SELECT * FROM `Tabellenname`; SELECT bedeutet, wie oben bereits geschrieben, auslesen * bedeutet, dass ich alle Spalten aus der Tabelle haben will FROM `Tabellenname` bedeutet, dass ich die Daten aus der Tabelle `Tabellenname` haben will. Kurz: Ich möchte alles aus der Tabelle `Tabellenname` haben. Jetzt kann man die "Auslese" noch spezifizieren. Die wohl häufigste Variante ist die, dass man eine Bedingung einbaut. Diese Bedingung wird mit WHERE eingeleitet. Oft brauch man die nun folgende Formel: SELECT * FROM `Tabellenname` WHERE `Spaltenname` = `wert`; SELECT bedeutet, wie oben bereits geschrieben, auslesen * bedeutet, dass ich alle Spalten aus der Tabelle haben will FROM `Tabellenname` bedeutet, dass ich die Daten aus der Tabelle `Tabellenname` haben will. WHERE `Spaltenname` = `wert` bedeutet, dass die Bedingung der Spalte `Spaltenname` gleich dem `wert` sein sollte. Sonst kommt ein leeres Resultat. Kurz: Ich möchte alle Einträge aus der Tabelle `Tabellenname` haben, wo der Wert `wert` in der Spalte `spaltenname` ist. Jetzt kann man mehrere Sachen ausgeben lassen, indem man ein Stichwort hinzufügt. Nämlich IN( ). Mit IN( ) kann man viele Einträge gleichzeitig ausgeben lassen. Was hat man davon? Vieles, denn man brauch nicht für jeden Eintrag eine neue SQL-Abfrage . Statt: SELECT * FROM `tabellenname` WHERE `spaltenname` = `wert1`; SELECT * FROM `tabellenname` WHERE `spaltenname` = `wert2`; schreibt man also: SELECT * FROM `tabellenname` WHERE `Spaltenname` IN(`wert1`, `wert2`, ....); Wie euch sicher beim aufmerksamen durchlesen aufgefallen ist, wird das " = " weggelassen. Das kommt daher, dass das " = " nur bei genau einem Wert verwendet wird! /*************************************************************************************************************** Das war's mit mit Teil 1, Teil 2 wird nächste Woche Mittwoch erscheinen. Falls ihr Fragen habt, schreibt mir einfach. Entweder hier oder per PN ***************************************************************************************************************/ |
Autor: | Dreknor [ Fr 15. Okt 2010, 07:29 ] |
Betreff des Beitrags: | Re: SQL Tutorial (1) |
Gibt der Befehl den dann alle Ergebnisse zurück, die den Wert1 und Wert2 haben oder ist dies eine OR Verknüpfung, wo alle Werte ausgegeben werden, die Wert1 oder Wert2 enthalten? |
Autor: | Carsten [ Fr 15. Okt 2010, 08:26 ] |
Betreff des Beitrags: | Re: SQL Tutorial (1) |
ES wird geprüft, ob wert1 und wert2 in der jeweiligen Spalte vorhanden sind. Wenn jedoch nur wert1 vorhanden ist, werden auch nur alle Daten ausgegeben, die zum wert1 gehören |
Autor: | Schlauer Gerd [ Fr 15. Okt 2010, 08:32 ] |
Betreff des Beitrags: | Re: SQL Tutorial (1) |
Oder andersrum: SELECT * FROM `tabellenname` WHERE `Spaltenname` IN ('wert1', 'wert2', ....); ist das gleiche wie SELECT * FROM `tabellenname` WHERE `Spaltenname`='wert1' OR `Spaltenname`='wert2` OR `Spaltenname`=....; |
Autor: | Agahnim [ Fr 15. Okt 2010, 10:30 ] | |||||||||||||||||||||||
Betreff des Beitrags: | Re: SQL Tutorial (1) | |||||||||||||||||||||||
Das stimmt nicht ganz. Das * bedeutet, alle SPALTEN und nicht Einträge |
Autor: | Carsten [ Fr 15. Okt 2010, 11:31 ] | ||||||||||||||||||||||||||||||||||||||||||||||
Betreff des Beitrags: | Re: SQL Tutorial (1) | ||||||||||||||||||||||||||||||||||||||||||||||
Hm, stimmt. Danke Agahnim <3 €dit: geändert! |
Autor: | Xath [ Fr 15. Okt 2010, 12:05 ] |
Betreff des Beitrags: | Re: SQL Tutorial (1) |
Recht schnell lernt man das auch auf http://sqlzoo.net/ -> einfach oben mysql auswählen und die tutorials durcharbeiten ; ) Kann man nichts kaputt machen und muss sich nicht selbst Beispiele basteln um zu testen; |
Seite 1 von 1 | Zeitzone: Europa/Berlin |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |