Warning: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php on line 58
MySQL für Anfänger einfach erklärt PHP Tutorials nicht nur für Anfänger php-resource.de

php-resource.de

MySQL Tutorial: MySQL für Anfänger einfach erklärt

Dieses Tutorial richtet sich an Anfänger, die noch nie mit SQL gearbeitet haben. Vielleicht ist aber auch für Fortgeschrittene das Eine oder Andere dabei.

|30.09.2008 | Berni | 71041 | KAT : MySQL | | Kommentare 2


15

18

Temporäre Tabellen

Nach einem Rückschlag wie vorhin gibt ein echter Entwickler natürlich nicht gleich auf. Ein schlauer Mensch sagte einmal: "Der Kopf ist rund damit das Denken die Richtung wechseln kann". Die Lösung: Eine temporäre Tabelle, in die jeder Monat eingefügt wird. Der Einfachheit halber begnügen wir uns mit Januar und Februar.

CREATE TABLE tmp (
    artikelnummer integer not null,
    vk_01 double not null default 0,
    vk_02 double not null default 0
)

Jetzt werden die Januardaten von der Tabelle umsatz in die Spalte vk_01 eingefügt:

INSERT INTO tmp ( artikelnummer, vk_01)
SELECT
    artikelnummer,
    verkaufspreis
FROM umsatz
WHERE MONTH(datum)=1

Jetzt werden die Februardaten von der Tabelle umsatz in die Spalte vk_02 eingefügt:

INSERT INTO tmp ( artikelnummer, vk_02)
SELECT
    artikelnummer,
    verkaufspreis
FROM umsatz
WHERE MONTH(datum)=2

Wenn SQLs in einer Programmiersprache erstellt werden, verwendet man in so einer Situation natürlich nur einen SQL und eine Schleife von 1-12 für die Monate Januar-Dezember.

Jetzt bauen wir die Abfrage auf. Wir fangen mit dem SELECT an:
SELECT
    tmp.artikelnummer,
    tmp.vk_01,
    tmp.vk_02
FROM tmp

Ergebnis: siehe oben rechts.

Eine Artikelbezeichnung wollen wir auch noch. Also JOIN mit artikel:
SELECT
    tmp.artikelnummer,
    art.bezeichnung,
    tmp.vk_01 AS Jan,
    tmp.vk_02 AS Feb
FROM tmp tmp
LEFT JOIN artikel art ON tmp.artikelnummer=art.artikelnummer

Und jetzt gruppieren. Wir wollen die Summe der Verkäufe und benutzen die Aggregatfunktion SUM dafür. Alles andere landet im GROUP BY:

SELECT
    tmp.artikelnummer,
    art.bezeichnung,
    SUM(tmp.vk_01) AS Jan,
    SUM(tmp.vk_02) AS Feb
FROM tmp tmp
LEFT JOIN artikel art ON tmp.artikelnummer=art.artikelnummer
GROUP BY tmp.artikelnummer,art.bezeichnung

Warnung:
Das oben genannte Beispiel ist nicht Multiuser fähig. Wenn zwei Personen gleichzeitig die Auswertung starten, können sie sich gegenseitig beeinflussen, da sie dieselbe Tabelle benutzen. MySQL hat für temporäre Tabellen speziell den Parameter CREATE TEMPORARY TABLE [...]. Die Tabellen werden dann pro connection und user erzeugt und werden beim Disconnect automatisch gelöscht. Eigentlich wollte ich das noch hier vorführen, aber dummerweise funktioniert das nicht mit unserem MySQL Query Browser, da er bei jedem Klick auf Execute eine neue Connection aufbaut.

Navigation -> Seitenanzahl : (18)

 « Anfang ...  «  6 7 8 9 10 11 12 13 14 15 16 17 18  » 
Kommentare zum Tutorial
Tutorial kommentieren
 
24.06.2012 10:50:44 Hi, als Anfänger in mysql hat mich dieses Tutorial begeistert und stellenweise schon überf ...
21.01.2010 20:47:24 Ein echt sehr schönes MySQL Tutorials, nur leider fehlen da tiefes eingehen über die Unter ...

Alle Kommentare anzeigen ...
 
Über den Autor
Berni

Berni

Status
Premium Mitglied

Beruf
Selbstständig

Mitglied seit:
22.01.2001

letzte Aktivität
24.06.2018

 

Tutorial bewerten

Hat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend".



 

aktuelle Artikel

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Neu | Berni

Wissensbestand in Unternehmen

Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Neu | Berni