OrangeVirus

... infects everything!
Aktuelle Zeit: Di 3. Dez 2024, 17:53

Zeitzone: Europa/Berlin




Forum gesperrt Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: SQL Tutorial (1)
BeitragVerfasst: Do 14. Okt 2010, 01:47 
Benutzeravatar
Godlike Member

Registriert: Fr 27. Jun 2008, 09:40
Beiträge: 576
Wohnort: Gescher
Hat sich bedankt: 5 mal
Wurde gedankt: 1 mal
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?
  • SQL bedeutet Structured Query Language, was auf deutsch ungefähr Strukturierte Abfragen Sprache heißt. In SQL arbeitet man mit Datenbanken.

Wie ist eine solche Datenbank aufgebaut?
  • Eine Datenbank ist folgendermaßen aufgebaut:
  • Datenbank -> Tabelle -> Spalten
    Die Datenbank ist der Oberbegriff. Ein Datenbankname sollte nur einmal existieren und mit einem eindeutigem Namen gekennzeichnet werden, damit man zwei Datenbanken nicht verwechselt. In der Datenbank sind beliebig viele Tabellen. Wie man diese erstellt, erfahren wir später. Die Tabellen enthalten Spalten, welche Informationen enthalten. Mehr dazu später.

Was kann ich also mit SQL machen?
  • Mit SQL kann man Datenbanken erstellen, bearbeiten, löschen oder diese Datenbank "befragen", genauer: Daten auslesen. Hier auf OV werden hauptsächlich folgende Funktionen von SQL genutzt:
    => Auslesen bereits existierender Daten
    => Einfügen / Löschen von Daten in bereits existierende Tabellen
    => Bearbeiten bereits existierender Einträge in Tabellen

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 ;)
***************************************************************************************************************/

_________________
Ich werde mir eine passende Signatur überlegen


Zuletzt geändert von Carsten am Fr 15. Okt 2010, 11:31, insgesamt 2-mal geändert.

Offline
Mit Zitat antworten  
 Betreff des Beitrags: Re: SQL Tutorial (1)
BeitragVerfasst: Fr 15. Okt 2010, 07:29 
Member

Registriert: Mi 11. Mär 2009, 20:08
Beiträge: 62
Hat sich bedankt: 0 mal
Wurde gedankt: 0 mal
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?

_________________
BildBild


Offline
Mit Zitat antworten  
 Betreff des Beitrags: Re: SQL Tutorial (1)
BeitragVerfasst: Fr 15. Okt 2010, 08:26 
Benutzeravatar
Godlike Member

Registriert: Fr 27. Jun 2008, 09:40
Beiträge: 576
Wohnort: Gescher
Hat sich bedankt: 5 mal
Wurde gedankt: 1 mal
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 ;)

_________________
Ich werde mir eine passende Signatur überlegen


Offline
Mit Zitat antworten  
 Betreff des Beitrags: Re: SQL Tutorial (1)
BeitragVerfasst: Fr 15. Okt 2010, 08:32 
Benutzeravatar
Admin

Registriert: So 10. Dez 2006, 21:32
Beiträge: 996
Wohnort: Berlin
Hat sich bedankt: 5 mal
Wurde gedankt: 141 mal
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`=....;


Offline
Mit Zitat antworten  
 Betreff des Beitrags: Re: SQL Tutorial (1)
BeitragVerfasst: Fr 15. Okt 2010, 10:30 
Plushy's Held

Registriert: Mo 20. Nov 2006, 20:25
Beiträge: 1494
Wohnort: /home
Hat sich bedankt: 11 mal
Wurde gedankt: 25 mal
Zitat:
Carsten hat geschrieben
* bedeutet, dass ich alle Einträge aus der Tabelle haben will

Das stimmt nicht ganz. Das * bedeutet, alle SPALTEN und nicht Einträge :)


Offline
Mit Zitat antworten  
 Betreff des Beitrags: Re: SQL Tutorial (1)
BeitragVerfasst: Fr 15. Okt 2010, 11:31 
Benutzeravatar
Godlike Member

Registriert: Fr 27. Jun 2008, 09:40
Beiträge: 576
Wohnort: Gescher
Hat sich bedankt: 5 mal
Wurde gedankt: 1 mal
Zitat:
Agahnim hat geschrieben
Zitat:
Carsten hat geschrieben
* bedeutet, dass ich alle Einträge aus der Tabelle haben will

Das stimmt nicht ganz. Das * bedeutet, alle SPALTEN und nicht Einträge :)


Hm, stimmt.

Danke Agahnim <3

€dit: geändert!

_________________
Ich werde mir eine passende Signatur überlegen


Offline
Mit Zitat antworten  
 Betreff des Beitrags: Re: SQL Tutorial (1)
BeitragVerfasst: Fr 15. Okt 2010, 12:05 
Benutzeravatar
Gast

Registriert: Mo 20. Nov 2006, 20:22
Beiträge: 224
Hat sich bedankt: 1 mal
Wurde gedankt: 1 mal
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;

_________________
"Personal data is like plutonium. It gets dangerous once you put to much of it on one pile."

Bild


Offline
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Forum gesperrt Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 7 Beiträge ] 

Zeitzone: Europa/Berlin


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Gehe zu:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de

© 2005 - 2010 OrangeVirus (orangevir.us)