· 7 years ago · Oct 30, 2018, 10:50 AM
1-- C:\Users\andreasalef>c:\xampp\mysql\bin\mysql --local-infile -u root -p
2-- C:\Users\andreasalef>c:\xampp\mysql\bin\mysql -u root -p
3
4
5
6DROP DATABASE IF EXISTS nbb;
7-- DROP DATABASE NBB;
8-- DROP DATABASE NBB;
9/* DROP DATABASE NBB; */
10
11CREATE DATABASE nbb;
12
13USE nbb;
14
15SET utf8 ;
16
17-----------------------------------------------------
18-- Table tblKunde
19-- -----------------------------------------------------
20CREATE TABLE tblKunde
21(
22 kid INT NOT NULL AUTO_INCREMENT,
23 name VARCHAR(45),
24 vorname VARCHAR(45),
25 strasse VARCHAR(45),
26 plz CHAR(5),
27 stadt VARCHAR(45),
28 email VARCHAR(45),
29 PRIMARY KEY (kid)
30) ENGINE = InnoDB;
31
32
33-- -----------------------------------------------------
34-- Table tblArtikel
35-- -----------------------------------------------------
36CREATE TABLE tblArtikel (
37 aid INT NOT NULL AUTO_INCREMENT,
38 name VARCHAR(45),
39 beschreibung VARCHAR(45),
40 PRIMARY KEY (aid))
41ENGINE = InnoDB;
42
43
44-- -----------------------------------------------------
45-- Table tblVersand
46-- -----------------------------------------------------
47CREATE TABLE tblVersand (
48 vid INT NOT NULL AUTO_INCREMENT,
49 name VARCHAR(45),
50 beschreibung VARCHAR(45),
51 kosten VARCHAR(45),
52 PRIMARY KEY (vid))
53ENGINE = InnoDB;
54
55
56-- -----------------------------------------------------
57-- Table tblZahlungsart
58-- -----------------------------------------------------
59CREATE TABLE tblZahlungsart (
60 zid INT NOT NULL AUTO_INCREMENT,
61 name VARCHAR(45),
62 PRIMARY KEY (zid))
63ENGINE = InnoDB;
64
65
66-- -----------------------------------------------------
67-- Table tblRechnung
68-- -----------------------------------------------------
69CREATE TABLE tblRechnung (
70 rid INT NOT NULL AUTO_INCREMENT,
71 datum DATE,
72 vid INT,
73 zid INT,
74 kid INT,
75 PRIMARY KEY (rid),
76 INDEX fk_tblRechnung_tblVersand1_idx (vid ASC),
77 INDEX fk_tblRechnung_tblZahlungsart1_idx (zid ASC),
78 INDEX fk_tblRechnung_tblKunde1_idx (kid ASC),
79 CONSTRAINT fk_tblRechnung_tblVersand1
80 FOREIGN KEY (vid)
81 REFERENCES tblVersand (vid)
82 ON DELETE NO ACTION
83 ON UPDATE NO ACTION,
84 CONSTRAINT fk_tblRechnung_tblZahlungsart1
85 FOREIGN KEY (zid)
86 REFERENCES tblZahlungsart (zid)
87 ON DELETE NO ACTION
88 ON UPDATE NO ACTION,
89 CONSTRAINT fk_tblRechnung_tblKunde1
90 FOREIGN KEY (kid)
91 REFERENCES tblKunde (kid)
92 ON DELETE NO ACTION
93 ON UPDATE NO ACTION)
94ENGINE = InnoDB;
95
96
97-- -----------------------------------------------------
98-- Table tblRechnung_has_tblArtikel
99-- -----------------------------------------------------
100CREATE TABLE tblRechnung_has_tblArtikel (
101 a2rid INT NOT NULL AUTO_INCREMENT,
102 rid INT NOT NULL,
103 aid INT NOT NULL,
104 INDEX fk_tblRechnung_has_tblArtikel_tblArtikel1_idx (aid ASC),
105 INDEX fk_tblRechnung_has_tblArtikel_tblRechnung1_idx (rid ASC),
106 PRIMARY KEY (a2rid),
107 CONSTRAINT fk_tblRechnung_has_tblArtikel_tblRechnung1
108 FOREIGN KEY (rid)
109 REFERENCES tblRechnung (rid)
110 ON DELETE NO ACTION
111 ON UPDATE NO ACTION,
112 CONSTRAINT fk_tblRechnung_has_tblArtikel_tblArtikel1
113 FOREIGN KEY (aid)
114 REFERENCES tblArtikel (aid)
115 ON DELETE NO ACTION
116 ON UPDATE NO ACTION)
117ENGINE = InnoDB;
118
119
120--- SQL Datei: https://pastebin.com/YrXSLpCd
121--- mwb-Datei:
122
123Einfügen von Daten:
1241. INSERT INTO
1252. Per csv-Datei und LOAD DATA LOCAL INFILE
126 - csv-Datei erstellen
127 - einlesen mit LLI
128
129
130-- Zilberberg
131INSERT INTO tblVersand (name,beschreibung,kosten)
132 VALUES
133 ('Andreas','Alef','drölf'),
134 ('Mark','Blef','drölf'),
135 ('Paulo','Clef','drölf'),
136 ('Leo','Dlef','drölf'),
137 ('Maria','Elef','drölf'),
138 ('Ronaldo','Flef','drölf'),
139 ('Arnold','Jlef','drölf'),
140 ('ACE','Ülef','drölf'),
141 ('Klivlend','Älef','drölf'),
142 ('Dude','Ölef','drölf'),
143 ('Ernesti','Zlef','drölf')
144;
145
146-- Gallistl
147
148-- Grautstück
149INSERT INTO tblZahlungsart(name)
150 VALUES
151 ('PayPal'),
152 ('giropay'),
153 ('Sofortueberweisung'),
154 ('EC'),
155 ('Visa'),
156 ('MasterCard'),
157 ('American Express'),
158 ('Nachnahme'),
159 ('Vorkasse'),
160 ('Rechnung')
161 ;
162
163-- Jan Savas
164INSERT INTO tblArtikel (name) VALUES (‘Acer Laptop’);
165INSERT INTO tblArtikel (name) VALUES (‘Lenovo Laptop’);
166INSERT INTO tblArtikel (name) VALUES (‘Dell Laptop’);
167INSERT INTO tblArtikel (name) VALUES (‘HP Laptop’);
168INSERT INTO tblArtikel (name) VALUES (‘Macbook’);
169INSERT INTO tblArtikel (name) VALUES (‘Logitech Maus’);
170INSERT INTO tblArtikel (name) VALUES (‘Logitech Tastatur’);
171INSERT INTO tblArtikel (name) VALUES (‘Logitech Maus Tastatur Set’);
172INSERT INTO tblArtikel (name) VALUES (‘Logitech Headset’);
173INSERT INTO tblArtikel (name) VALUES (‘24†Monitor’);
174INSERT INTO tblArtikel (name) VALUES (‘27†Monitor’);
175
176-- Gallistl
177INSERT INTO tblZahlungsart (name) VALUES ('Kreditkarte');
178INSERT INTO tblZahlungsart (name) VALUES ('Vorkasse');
179INSERT INTO tblZahlungsart (name) VALUES ('Visa');
180INSERT INTO tblZahlungsart (name) VALUES ('Mastercard');
181INSERT INTO tblZahlungsart (name) VALUES ('EC-Karte');
182INSERT INTO tblZahlungsart (name) VALUES ('Leasing');
183INSERT INTO tblZahlungsart (name) VALUES ('Bar');
184INSERT INTO tblZahlungsart (name) VALUES ('Girocard');
185
186-- Zistler
187INSERT INTO tblversand (name, beschreibung, kosten)
188VALUES
189('Nutzer', 'Test2', '50'),
190('TBS', 'Test3', '230'),
191('Max', 'Test4', '560'),
192('Mustermann', 'Test5', '870'),
193('Nut zer', 'Test6', '58'),
194('Test', 'Test7', '556'),
195('ITF16b', 'Test8', '5023'),
196('Bochum', 'Test9', '540'),
197('Usr', 'Test10', '80');
198
199-- Nihat
200INSERT INTO tblVersand(name)
201VALUES
202(‘DHL’),
203(‘Hermes’),
204(‘GLS’),
205(‘UPS’),
206(‘DPD’);
207
208-- Schülzky
209INSERT INTO tblartikel (name,beschreibung)
210 VALUES
211 ('HP00','notebook1'),
212 ('HP01','notebook2'),
213 ('HP02','notebook3'),
214 ('HP03','notebook4'),
215 ('HP04','notebook5'),
216 ('HP05','notebook6'),
217 ('HP06','notebook7'),
218 ('HP12','notebook8'),
219 ('HP13','notebook9'),
220 ('HP55','notebook20'),
221 ('HP77','notebook12'),
222 ('HP88','notebook13'),
223 ('HP99','notebook15'),
224 ('HP334','notebook18');
225
226-- Florian Pötsch
227insert into tblversand (name, beschreibung, kosten)
228 values
229 ('Lucifer', 'Morningstar', '666'),
230 ('Disco', 'Pogo', 'Dingalingaling'),
231 ('Alle', 'Atzen', 'Sing'),
232 ('A', 'B', 'C'),
233 ('D', 'E', 'F'),
234 ('Lucifer', 'Morningstar', '666'),
235 ('Lucifer', 'Morningstar', '666'),
236 ('Lucifer', 'Morningstar', '666'),
237 ('Lucifer', 'Morningstar', '666');
238
239
240LOAD DATA LOCAL INFILE '***'
241#REPLACE
242INTO TABLE ***
243CHARACTER SET utf8
244FIELDS TERMINATED BY ';'
245OPTIONALLY ENCLOSED BY '"'
246LINES TERMINATED BY '\r\n'
247# Linux:
248# IGNORE 1 LINES
249(<spalten>);
250
251INSERT INTO table_name
252VALUES
253(value1, value2, value3, ...),
254(value1, value2, value3, ...),
255(value1, value2, value3, ...),
256(value1, value2, value3, ...)
257;
258
259----- Bertram et al
260INSERT INTO
261 tblArtikel (name, beschreibung)
262 VALUES
263 ('Acer Predator Helios 300 (G3-572-79KL)', 'y0y0y0 n1 description'),
264 ('HP Pavilion Power', 'power'),
265 ('MacBook Pro', 'y0'),
266 ('Razer d000ge', 'zerstört sich von selbst nach ablauf der garantie'),
267 ('Razer noch mehr dogshit', 'auch kabutt nach garantie'),
268 ('Roccat Kone', 'stabil')
269;
270
271LOAD DATA LOCAL INFILE 'Artikel.csv'
272INTO TABLE tblartikel
273FIELDS TERMINATED BY '\,'
274OPTIONALLY ENCLOSED BY '"'
275LINES TERMINATED BY '\r\n'
276(name,beschreibung);
277
278
279
280--- Galinski, Waide et al
281INSERT INTO tblzahlungsart (name) VALUES ('VISA');
282INSERT INTO tblzahlungsart (name) VALUES ('Bargeld lacht');
283INSERT INTO tblzahlungsart (name) VALUES ('Muscheln');
284INSERT INTO tblzahlungsart (name) VALUES ('Überweisung');
285INSERT INTO tblzahlungsart (name) VALUES ('Paypal');
286
287#Pfad Anpassen!!!
288LOAD DATA LOCAL INFILE 'zahlungsart.csv' INTO TABLE tblzahlungsart COLUMNS TERMINATED BY ';' LINES TERMINATED BY '\r\n' (name);
289
290SELECT * FROM tblzahlungsart;
291
292
293
294--- Schöckel et al
295INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Fahhrad', 'Platten reifen', '213');
296INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Auto', 'Platten reifen', '1');
297INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Fuß', 'dauert ewig', '453');
298INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('DPD', 'Fast', '453');
299INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Post', '3 Tage', '2');
300INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Gar nicht', 'kommt nie an', '312');
301INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('UPS', 'World shipping', '213');
302
303
304--- Schäfer et al
305INSERT INTO `tblkunde` (`name`, `vorname`, `strasse`, `plz`, `stadt`, `email`) VALUES
306 ('Heise', 'Kevin', 'Wasserstraße, 3', '42448', 'Bochum', 'test.bla@gmail.com'),
307 ('Soggi', 'Daniel', 'unter der Bruecke, 13', '47892', 'Bochum', 'soggi@gmx.de'),
308 ('Mustermann', 'Max', 'Musterstrasse ,1', '12345', 'Musterstadt', 'mustermail@musterprovider.muster'),
309 ('Wasgehtsiedasan', 'Kevin', 'Schneckenstraße, 12', '44544', 'Bikini Bottom', 'wasgehtsiedasan@gmail.com'),
310 ('Hackfleischhackendezerhasser', 'Der', 'Muschelsand Superhighway', '99999', 'Bikini Bottom', 'zerhacker@bikinibotton.de')
311 ;
312
313LOAD DATA LOCAL INFILE 'loadfile.csv'
314INTO TABLE tblKunde
315CHARACTER SET utf8
316FIELDS TERMINATED BY ';'
317LINES TERMINATED BY '\r\n'
318(`name`, `vorname`, `strasse`, `plz`, `stadt`, `email`);
319
320--- Brünenkamp, Carstensen et al
321SELECT * FROM mydb.tblartikel;
322
323LOAD DATA LOCAL INFILE 'test.csv'
324INTO TABLE tblartikel
325FIELDS TERMINATED BY ';'
326OPTIONALLY ENCLOSED BY '"'
327LINES TERMINATED BY '\r\n'
328(`name`, `beschreibung`);
329
330INSERT INTO tblArtikel (name, beschreibung)
331VALUES
332('Maus','Maus'),
333('Notebook','Notebook'),
334('SSD','SSD 512GB'),
335('Schreibtisch','groß'),
336('Stift','Kugelschreiber'),
337('Monitor','NEC 3D')
338;
339
340
341SHOW DATABASES;
342SHOW TABLES;
343SHOW COLUMNS FROM tblArtikel;
344SHOW EXTENDED COLUMNS FROM tblArtikel;
345DESCRIBE tblArtikel;
346EXPLAIN tblArtikel;
347
348SELECT * FROM tblArtikel;
349SELECT name, beschreibung FROM tblArtikel;
350
351#Kevin Heise
352#09.05.2018
353#über Muschelgeld
354#zu Fuß
355
356INSERT INTO tblRechnung(datum, vid, zid, kid)
357VALUES('2018-05-09',3,3,3);
358INSERT INTO tblRechnung(datum, vid, zid, kid)
359VALUES('2018-05-10',3,3,3);
360INSERT INTO tblRechnung(datum, vid, zid, kid)
361VALUES('2018-05-11',3,3,3);
362INSERT INTO tblRechnung(datum, vid, zid, kid)
363VALUES('2018-05-13',3,3,2);
364INSERT INTO tblRechnung(datum, vid, zid, kid)
365VALUES('2018-05-14',3,3,2);
366
367INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
368VALUES
369(1,1),
370(1,3),
371(1,5),
372(1,7),
373(1,9),
374(1,9),
375(1,1),
376(1,3),
377(1,5),
378(1,7),
379(1,1)
380;
381
382
383INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
384VALUES
385(2,3),
386(2,4),
387(2,6),
388(2,9),
389(2,2),
390(2,5),
391(2,5),
392(2,5),
393(2,5),
394(2,5),
395(2,5)
396;
397
398
399INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
400VALUES
401(3,3),
402(3,4),
403(3,6),
404(3,9),
405(3,2),
406(3,5),
407(3,5),
408(3,5),
409(3,5),
410(3,5),
411(3,5)
412;
413
414
415INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
416VALUES
417(4,3),
418(4,4),
419(4,6),
420(4,5),
421(4,5)
422;
423INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
424VALUES
425(5,5),
426(5,5),
427(5,5),
428(5,5),
429(5,5),
430(5,5)
431;
432
433
434SELECT * FROM tblKunde;
435SELECT name, vorname FROM tblKunde;
436SELECT name AS Name, vorname as Vorname FROM tblKunde;
437SELECT name, vorname, strasse, stadt, email FROM tblKunde WHERE name = 'soundso';
438SELECT name, strasse, stadt, email FROM tblKunde WHERE name LIKE '_u%';
439
440# * alle Spalten
441# _ ein einzelnes Zeichen in Verbindung mit LIKE in der WHERE Klausel
442# % eine beliebige Zeichenfolge in Verbindung mit LIKE in der WHERE Klausel
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459# Ein neuer Kunde „Kunde“ kommt am 18.05.2018 und kauft die bereits geführten Artikel „Notebook“ (aid = 17) und „Maus“ (aid=18) ein. Gliedern Sie den Vorgang in Untervorgänge auf. Die DB „nbb“ und ihre Tabellen existieren bereits. Geben Sie auch "Hilfskommandos" usw. an, mit denen Sie z. B. eine id recherchieren (da wir Subselects noch nicht gehabt haben).
460
461Neuer Kunde -> kid
462Neue Rechnung -> mit kid und neue rid
463Positionen mit bestehenden Artikeln in die Positionstabelle einfügen.
464
465# Neuen Kunden anlegen
466INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg2', 'Nikita');
467# neue Rechnung anlegen
468SELECT kid FROM tblKunde WHERE name = 'Zilberberg2'; # --> 11
469INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, 11);
470SELECT rid FROM tblRechnung WHERE kid = 11 AND datum = '2018-06-12'; # ---> rid = 2
471# tblArtikel2Rechnung rid, aid = 17 bzw. rid, aid = 18
472INSERT INTO tblRechnung_has_tblArtikel (rid, aid) VALUES (3,17);
473INSERT INTO tblRechnung_has_tblArtikel (rid, aid) VALUES (3,18);
474
475
476
477# Nun möchte ich die Rechnung ausdrucken (mit allen Informationen)
478Kunde, Rechnung
479JOINS
480
481SELECT * FROM tblRechnung;
482SELECT * FROM tblKunde;
483Verknüpfung zwischen Rechnung und Kunde über die Schlüssel fehlt
484--- > JOIN
485
486# 1. Versuch
487SELECT
488 name,
489 vorname,
490 datum
491FROM tblKunde
492INNER JOIN tblRechnung;
493
494# 2. Versuch
495SELECT
496 tblKunde.kid,
497 tblKunde.name,
498 tblKunde.vorname,
499 tblRechnung.rid,
500 tblRechnung.kid,
501 tblRechnung.datum
502FROM tblKunde
503INNER JOIN tblRechnung
504ON tblRechnung.kid = tblKunde.kid;
505# ON FK = PK
506--------------------------------------------> ITF16b
507# 3. Versuch alternativ , funktioniert auch nur bei gleichen Bezeichnern PK und FK
508SELECT
509 tblKunde.kid,
510 tblKunde.name,
511 tblKunde.vorname,
512 tblRechnung.rid,
513 tblRechnung.kid,
514 tblRechnung.datum
515FROM tblKunde
516INNER JOIN tblRechnung
517USING (kid);
518
519# 3. Versuch beliebter Fehler
520SELECT
521 tblKunde.kid,
522 tblKunde.name,
523 tblKunde.vorname,
524 tblRechnung.rid,
525 tblRechnung.kid,
526 tblRechnung.datum
527FROM tblKunde
528INNER JOIN tblRechnung
529ON tblRechnung._r_id = tblKunde.kid;
530
531SELECT
532 tblKunde.kid,
533 tblKunde.name,
534 tblKunde.vorname,
535 tblRechnung.rid,
536 tblRechnung.kid,
537 tblRechnung.datum
538FROM tblKunde
539INNER JOIN tblRechnung
540ON tblRechnung.rid = tblKunde.alterdesbusfahrers;
541
542
543# LAST_INSERT_ID() liefert die letzt hinzugefügte ID des Systemes
544# Die Anzahl der Datensätze einer Tabelle mittels COUNT
545
546SELECT COUNT(kid) FROM tblKunde;
547
548# 2 Tabellen miteinander verbunden über einen INNER JOIN
549SELECT
550 tabelle1.spalte1,
551 tabelle2.spalte3,
552 tabelle1.spalte5,
553 tabelle2.spalte1
554FROM tabelle1
555INNER JOIN tabelle2
556ON tabelle1.PK = tabelle2.___FK___;
557
558# 2 Tabellen miteinander verbunden über einen INNER JOIN bei gleicher Bezeichnung von PK und FK
559SELECT
560 tabelle1.spalte1,
561 tabelle2.spalte3,
562 tabelle1.spalte5,
563 tabelle2.spalte1
564FROM tabelle1
565INNER JOIN tabelle2
566USING(PK/FK);
567
568
569# IHK, aber unschön
570SELECT ... FROM 1.Tabelle, 2.Tabelle WHERE PK=FK
571
572
573
574############# ITF16b, auch in unterschiedlichen Reihenfolgen
575# Name usw, Rechnungsdatum, alle Artikel
576
577SELECT
578tblKunde.vorname AS Vorname,
579tblKunde.name AS Name,
580tblRechnung.rid AS Rechnungsnummer,
581tblRechnung.datum AS Datum,
582tblArtikel.name AS Artikel
583FROM tblKunde
584INNER JOIN tblRechnung
585ON tblKunde.kid = tblRechnung.kid
586INNER JOIN tblRechnung_has_tblArtikel
587ON tblRechnung.rid = tblRechnung_has_tblArtikel.rid
588INNER JOIN tblArtikel
589ON tblRechnung_has_tblArtikel.aid = tblArtikel.aid;
590
591SELECT
592k.vorname AS Vorname,
593k.name AS Name,
594r.rid AS Rechnungsnummer,
595r.datum AS Datum,
596a.name AS Artikel
597FROM tblKunde k
598INNER JOIN tblRechnung r
599USING(kid)
600INNER JOIN tblRechnung_has_tblArtikel r2a
601USING(rid)
602INNER JOIN tblArtikel a
603USING(aid);
604
605SELECT
606 tblKunde.kid,
607 tblKunde.name,
608 tblKunde.vorname,
609 tblRechnung.rid,
610 tblRechnung.kid,
611 tblRechnung.datum
612FROM tblKunde
613LEFT JOIN tblRechnung
614ON tblRechnung.kid = tblKunde.kid;
615
616
617
618
619
620#### ITF16b
621
622
623
624
625
626SELECT
627 tblKunde.kid,
628 tblKunde.name,
629 tblKunde.vorname,
630 tblRechnung.rid,
631 tblRechnung.kid,
632 tblRechnung.datum
633FROM tblKunde
634RIGHT JOIN tblRechnung
635ON tblRechnung.kid = tblKunde.kid;
636
637
638
639
640
641
642
643
644# Wiederholung:
645# Neuen Kunden anlegen
646INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg2', 'Nikita');
647# neue Rechnung anlegen
648SELECT kid FROM tblKunde WHERE name = 'Zilberberg2'; # --> 11
649INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, 11);
650SELECT rid FROM tblRechnung WHERE kid = 11 AND datum = '2018-06-12'; # ---> rid = 2
651# tblArtikel2Rechnung rid, aid = 17 bzw. rid, aid = 18
652INSERT INTO tblRechnung_has_tblArtikel (rid, aid) VALUES (2,17), (2,17);
653
654INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg3', 'Nikita');
655INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, LAST_INSERT_ID());
656
657INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg3', 'Nikita');
658INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, (SELECT kid FROM tblKunde WHERE name = 'Zilberberg3'));
659
660
661
662
663
664
665SELECT
666 tblKunde.kid,
667 tblKunde.name,
668 tblKunde.vorname,
669 tblRechnung.rid,
670 tblRechnung.kid,
671 tblRechnung.datum
672FROM tblRechnung
673LEFT JOIN tblKunde
674ON tblKunde.kid = tblRechnung.kid;
675
676
677# Spalte hinzufügen
678ALTER TABLE tblArtikel
679ADD preis INT NOT NULL;
680
681# Spalte löschen
682ALTER TABLE tblArtikel
683DROP preis;
684
685# Spalte hinzufügen
686ALTER TABLE tblArtikel
687ADD preis INT NOT NULL DEFAULT 100;
688
689# Oder Spalte bearbeiten
690UPDATE tblArtikel
691SET preis = 50;
692
693# einzelne Werte setzen
694UPDATE tblArtikel
695SET preis = 50000
696WHERE aid = 5;
697
698UPDATE tblArtikel
699SET preis = tblArtikel.aid*100
700WHERE aid = 5;
701
702UPDATE tblArtikel
703SET preis = tblArtikel.preis*1.1
704WHERE name LIKE '%HP%';
705
706
707SELECT RAND()*(10-5)+5;
708
709
710# alle Rechnungen mit Artikel, Kunde und Einzelpreisen
711SELECT
712k.vorname AS Vorname,
713k.name AS Name,
714r.rid AS Rechnungsnummer,
715r.datum AS Datum,
716a.name AS Artikel,
717a.preis/100 AS Euro
718FROM tblKunde k
719INNER JOIN tblRechnung r
720USING(kid)
721INNER JOIN tblRechnung_has_tblArtikel r2a
722USING(rid)
723INNER JOIN tblArtikel a
724USING(aid);
725
726# Aggregatfunktionen in mysql
727# COUNT()
728# AVG() = SUM()/COUNT()
729# SUM()
730# MIN()
731# MAX()
732
733
734
735
736
737
738
739
740
741
742
743
744
745# Gesamtsumme aller Rechnungen (Umsatz)
746
747SELECT
748SUM(a.preis/100) AS Gesamtsumme
749FROM tblRechnung r
750INNER JOIN tblRechnung_has_tblArtikel r2a
751USING(rid)
752INNER JOIN tblArtikel a
753USING(aid);