Advertisement
Guest User

Untitled

a guest
Oct 30th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.23 KB | None | 0 0
  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.  
  6. DROP DATABASE IF EXISTS nbb;
  7. -- DROP DATABASE NBB;
  8. -- DROP DATABASE NBB;
  9. /* DROP DATABASE NBB; */
  10.  
  11. CREATE DATABASE nbb;
  12.  
  13. USE nbb;
  14.  
  15. SET utf8 ;
  16.  
  17. -----------------------------------------------------
  18. -- Table tblKunde
  19. -- -----------------------------------------------------
  20. CREATE 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. -- -----------------------------------------------------
  36. CREATE TABLE tblArtikel (
  37. aid INT NOT NULL AUTO_INCREMENT,
  38. name VARCHAR(45),
  39. beschreibung VARCHAR(45),
  40. PRIMARY KEY (aid))
  41. ENGINE = InnoDB;
  42.  
  43.  
  44. -- -----------------------------------------------------
  45. -- Table tblVersand
  46. -- -----------------------------------------------------
  47. CREATE 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))
  53. ENGINE = InnoDB;
  54.  
  55.  
  56. -- -----------------------------------------------------
  57. -- Table tblZahlungsart
  58. -- -----------------------------------------------------
  59. CREATE TABLE tblZahlungsart (
  60. zid INT NOT NULL AUTO_INCREMENT,
  61. name VARCHAR(45),
  62. PRIMARY KEY (zid))
  63. ENGINE = InnoDB;
  64.  
  65.  
  66. -- -----------------------------------------------------
  67. -- Table tblRechnung
  68. -- -----------------------------------------------------
  69. CREATE 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)
  94. ENGINE = InnoDB;
  95.  
  96.  
  97. -- -----------------------------------------------------
  98. -- Table tblRechnung_has_tblArtikel
  99. -- -----------------------------------------------------
  100. CREATE 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)
  117. ENGINE = InnoDB;
  118.  
  119.  
  120. --- SQL Datei: https://pastebin.com/YrXSLpCd
  121. --- mwb-Datei:
  122.  
  123. Einfügen von Daten:
  124. 1. INSERT INTO
  125. 2. Per csv-Datei und LOAD DATA LOCAL INFILE
  126. - csv-Datei erstellen
  127. - einlesen mit LLI
  128.  
  129.  
  130. -- Zilberberg
  131. INSERT 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
  149. INSERT 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
  164. INSERT INTO tblArtikel (name) VALUES (‘Acer Laptop’);
  165. INSERT INTO tblArtikel (name) VALUES (‘Lenovo Laptop’);
  166. INSERT INTO tblArtikel (name) VALUES (‘Dell Laptop’);
  167. INSERT INTO tblArtikel (name) VALUES (‘HP Laptop’);
  168. INSERT INTO tblArtikel (name) VALUES (‘Macbook’);
  169. INSERT INTO tblArtikel (name) VALUES (‘Logitech Maus’);
  170. INSERT INTO tblArtikel (name) VALUES (‘Logitech Tastatur’);
  171. INSERT INTO tblArtikel (name) VALUES (‘Logitech Maus Tastatur Set’);
  172. INSERT INTO tblArtikel (name) VALUES (‘Logitech Headset’);
  173. INSERT INTO tblArtikel (name) VALUES (‘24” Monitor’);
  174. INSERT INTO tblArtikel (name) VALUES (‘27” Monitor’);
  175.  
  176. -- Gallistl
  177. INSERT INTO tblZahlungsart (name) VALUES ('Kreditkarte');
  178. INSERT INTO tblZahlungsart (name) VALUES ('Vorkasse');
  179. INSERT INTO tblZahlungsart (name) VALUES ('Visa');
  180. INSERT INTO tblZahlungsart (name) VALUES ('Mastercard');
  181. INSERT INTO tblZahlungsart (name) VALUES ('EC-Karte');
  182. INSERT INTO tblZahlungsart (name) VALUES ('Leasing');
  183. INSERT INTO tblZahlungsart (name) VALUES ('Bar');
  184. INSERT INTO tblZahlungsart (name) VALUES ('Girocard');
  185.  
  186. -- Zistler
  187. INSERT INTO tblversand (name, beschreibung, kosten)
  188. VALUES
  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
  200. INSERT INTO tblVersand(name)
  201. VALUES
  202. (‘DHL’),
  203. (‘Hermes’),
  204. (‘GLS’),
  205. (‘UPS’),
  206. (‘DPD’);
  207.  
  208. -- Schülzky
  209. INSERT 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
  227. insert 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.  
  240. LOAD DATA LOCAL INFILE '***'
  241. #REPLACE
  242. INTO TABLE ***
  243. CHARACTER SET utf8
  244. FIELDS TERMINATED BY ';'
  245. OPTIONALLY ENCLOSED BY '"'
  246. LINES TERMINATED BY '\r\n'
  247. # Linux:
  248. # IGNORE 1 LINES
  249. (<spalten>);
  250.  
  251. INSERT INTO table_name
  252. VALUES
  253. (value1, value2, value3, ...),
  254. (value1, value2, value3, ...),
  255. (value1, value2, value3, ...),
  256. (value1, value2, value3, ...)
  257. ;
  258.  
  259. ----- Bertram et al
  260. INSERT 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.  
  271. LOAD DATA LOCAL INFILE 'Artikel.csv'
  272. INTO TABLE tblartikel
  273. FIELDS TERMINATED BY '\,'
  274. OPTIONALLY ENCLOSED BY '"'
  275. LINES TERMINATED BY '\r\n'
  276. (name,beschreibung);
  277.  
  278.  
  279.  
  280. --- Galinski, Waide et al
  281. INSERT INTO tblzahlungsart (name) VALUES ('VISA');
  282. INSERT INTO tblzahlungsart (name) VALUES ('Bargeld lacht');
  283. INSERT INTO tblzahlungsart (name) VALUES ('Muscheln');
  284. INSERT INTO tblzahlungsart (name) VALUES ('Überweisung');
  285. INSERT INTO tblzahlungsart (name) VALUES ('Paypal');
  286.  
  287. #Pfad Anpassen!!!
  288. LOAD DATA LOCAL INFILE 'zahlungsart.csv' INTO TABLE tblzahlungsart COLUMNS TERMINATED BY ';' LINES TERMINATED BY '\r\n' (name);
  289.  
  290. SELECT * FROM tblzahlungsart;
  291.  
  292.  
  293.  
  294. --- Schöckel et al
  295. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Fahhrad', 'Platten reifen', '213');
  296. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Auto', 'Platten reifen', '1');
  297. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Fuß', 'dauert ewig', '453');
  298. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('DPD', 'Fast', '453');
  299. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Post', '3 Tage', '2');
  300. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('Gar nicht', 'kommt nie an', '312');
  301. INSERT INTO tblVersand (`name`, `beschreibung`, `kosten`) VALUES ('UPS', 'World shipping', '213');
  302.  
  303.  
  304. --- Schäfer et al
  305. INSERT 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.  
  313. LOAD DATA LOCAL INFILE 'loadfile.csv'
  314. INTO TABLE tblKunde
  315. CHARACTER SET utf8
  316. FIELDS TERMINATED BY ';'
  317. LINES TERMINATED BY '\r\n'
  318. (`name`, `vorname`, `strasse`, `plz`, `stadt`, `email`);
  319.  
  320. --- Brünenkamp, Carstensen et al
  321. SELECT * FROM mydb.tblartikel;
  322.  
  323. LOAD DATA LOCAL INFILE 'test.csv'
  324. INTO TABLE tblartikel
  325. FIELDS TERMINATED BY ';'
  326. OPTIONALLY ENCLOSED BY '"'
  327. LINES TERMINATED BY '\r\n'
  328. (`name`, `beschreibung`);
  329.  
  330. INSERT INTO tblArtikel (name, beschreibung)
  331. VALUES
  332. ('Maus','Maus'),
  333. ('Notebook','Notebook'),
  334. ('SSD','SSD 512GB'),
  335. ('Schreibtisch','groß'),
  336. ('Stift','Kugelschreiber'),
  337. ('Monitor','NEC 3D')
  338. ;
  339.  
  340.  
  341. SHOW DATABASES;
  342. SHOW TABLES;
  343. SHOW COLUMNS FROM tblArtikel;
  344. SHOW EXTENDED COLUMNS FROM tblArtikel;
  345. DESCRIBE tblArtikel;
  346. EXPLAIN tblArtikel;
  347.  
  348. SELECT * FROM tblArtikel;
  349. SELECT name, beschreibung FROM tblArtikel;
  350.  
  351. #Kevin Heise
  352. #09.05.2018
  353. #über Muschelgeld
  354. #zu Fuß
  355.  
  356. INSERT INTO tblRechnung(datum, vid, zid, kid)
  357. VALUES('2018-05-09',3,3,3);
  358. INSERT INTO tblRechnung(datum, vid, zid, kid)
  359. VALUES('2018-05-10',3,3,3);
  360. INSERT INTO tblRechnung(datum, vid, zid, kid)
  361. VALUES('2018-05-11',3,3,3);
  362. INSERT INTO tblRechnung(datum, vid, zid, kid)
  363. VALUES('2018-05-13',3,3,2);
  364. INSERT INTO tblRechnung(datum, vid, zid, kid)
  365. VALUES('2018-05-14',3,3,2);
  366.  
  367. INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
  368. VALUES
  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.  
  383. INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
  384. VALUES
  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.  
  399. INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
  400. VALUES
  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.  
  415. INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
  416. VALUES
  417. (4,3),
  418. (4,4),
  419. (4,6),
  420. (4,5),
  421. (4,5)
  422. ;
  423. INSERT INTO tblRechnung_has_tblArtikel(rid, aid)
  424. VALUES
  425. (5,5),
  426. (5,5),
  427. (5,5),
  428. (5,5),
  429. (5,5),
  430. (5,5)
  431. ;
  432.  
  433.  
  434. SELECT * FROM tblKunde;
  435. SELECT name, vorname FROM tblKunde;
  436. SELECT name AS Name, vorname as Vorname FROM tblKunde;
  437. SELECT name, vorname, strasse, stadt, email FROM tblKunde WHERE name = 'soundso';
  438. SELECT 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.  
  461. Neuer Kunde -> kid
  462. Neue Rechnung -> mit kid und neue rid
  463. Positionen mit bestehenden Artikeln in die Positionstabelle einfügen.
  464.  
  465. # Neuen Kunden anlegen
  466. INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg2', 'Nikita');
  467. # neue Rechnung anlegen
  468. SELECT kid FROM tblKunde WHERE name = 'Zilberberg2'; # --> 11
  469. INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, 11);
  470. SELECT rid FROM tblRechnung WHERE kid = 11 AND datum = '2018-06-12'; # ---> rid = 2
  471. # tblArtikel2Rechnung rid, aid = 17 bzw. rid, aid = 18
  472. INSERT INTO tblRechnung_has_tblArtikel (rid, aid) VALUES (3,17);
  473. INSERT INTO tblRechnung_has_tblArtikel (rid, aid) VALUES (3,18);
  474.  
  475.  
  476.  
  477. # Nun möchte ich die Rechnung ausdrucken (mit allen Informationen)
  478. Kunde, Rechnung
  479. JOINS
  480.  
  481. SELECT * FROM tblRechnung;
  482. SELECT * FROM tblKunde;
  483. Verknüpfung zwischen Rechnung und Kunde über die Schlüssel fehlt
  484. --- > JOIN
  485.  
  486. # 1. Versuch
  487. SELECT
  488. name,
  489. vorname,
  490. datum
  491. FROM tblKunde
  492. INNER JOIN tblRechnung;
  493.  
  494. # 2. Versuch
  495. SELECT
  496. tblKunde.kid,
  497. tblKunde.name,
  498. tblKunde.vorname,
  499. tblRechnung.rid,
  500. tblRechnung.kid,
  501. tblRechnung.datum
  502. FROM tblKunde
  503. INNER JOIN tblRechnung
  504. ON tblRechnung.kid = tblKunde.kid;
  505. # ON FK = PK
  506. --------------------------------------------> ITF16b
  507. # 3. Versuch alternativ , funktioniert auch nur bei gleichen Bezeichnern PK und FK
  508. SELECT
  509. tblKunde.kid,
  510. tblKunde.name,
  511. tblKunde.vorname,
  512. tblRechnung.rid,
  513. tblRechnung.kid,
  514. tblRechnung.datum
  515. FROM tblKunde
  516. INNER JOIN tblRechnung
  517. USING (kid);
  518.  
  519. # 3. Versuch beliebter Fehler
  520. SELECT
  521. tblKunde.kid,
  522. tblKunde.name,
  523. tblKunde.vorname,
  524. tblRechnung.rid,
  525. tblRechnung.kid,
  526. tblRechnung.datum
  527. FROM tblKunde
  528. INNER JOIN tblRechnung
  529. ON tblRechnung._r_id = tblKunde.kid;
  530.  
  531. SELECT
  532. tblKunde.kid,
  533. tblKunde.name,
  534. tblKunde.vorname,
  535. tblRechnung.rid,
  536. tblRechnung.kid,
  537. tblRechnung.datum
  538. FROM tblKunde
  539. INNER JOIN tblRechnung
  540. ON 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.  
  546. SELECT COUNT(kid) FROM tblKunde;
  547.  
  548. # 2 Tabellen miteinander verbunden über einen INNER JOIN
  549. SELECT
  550. tabelle1.spalte1,
  551. tabelle2.spalte3,
  552. tabelle1.spalte5,
  553. tabelle2.spalte1
  554. FROM tabelle1
  555. INNER JOIN tabelle2
  556. ON tabelle1.PK = tabelle2.___FK___;
  557.  
  558. # 2 Tabellen miteinander verbunden über einen INNER JOIN bei gleicher Bezeichnung von PK und FK
  559. SELECT
  560. tabelle1.spalte1,
  561. tabelle2.spalte3,
  562. tabelle1.spalte5,
  563. tabelle2.spalte1
  564. FROM tabelle1
  565. INNER JOIN tabelle2
  566. USING(PK/FK);
  567.  
  568.  
  569. # IHK, aber unschön
  570. SELECT ... FROM 1.Tabelle, 2.Tabelle WHERE PK=FK
  571.  
  572.  
  573.  
  574. ############# ITF16b, auch in unterschiedlichen Reihenfolgen
  575. # Name usw, Rechnungsdatum, alle Artikel
  576.  
  577. SELECT
  578. tblKunde.vorname AS Vorname,
  579. tblKunde.name AS Name,
  580. tblRechnung.rid AS Rechnungsnummer,
  581. tblRechnung.datum AS Datum,
  582. tblArtikel.name AS Artikel
  583. FROM tblKunde
  584. INNER JOIN tblRechnung
  585. ON tblKunde.kid = tblRechnung.kid
  586. INNER JOIN tblRechnung_has_tblArtikel
  587. ON tblRechnung.rid = tblRechnung_has_tblArtikel.rid
  588. INNER JOIN tblArtikel
  589. ON tblRechnung_has_tblArtikel.aid = tblArtikel.aid;
  590.  
  591. SELECT
  592. k.vorname AS Vorname,
  593. k.name AS Name,
  594. r.rid AS Rechnungsnummer,
  595. r.datum AS Datum,
  596. a.name AS Artikel
  597. FROM tblKunde k
  598. INNER JOIN tblRechnung r
  599. USING(kid)
  600. INNER JOIN tblRechnung_has_tblArtikel r2a
  601. USING(rid)
  602. INNER JOIN tblArtikel a
  603. USING(aid);
  604.  
  605. SELECT
  606. tblKunde.kid,
  607. tblKunde.name,
  608. tblKunde.vorname,
  609. tblRechnung.rid,
  610. tblRechnung.kid,
  611. tblRechnung.datum
  612. FROM tblKunde
  613. LEFT JOIN tblRechnung
  614. ON tblRechnung.kid = tblKunde.kid;
  615.  
  616.  
  617.  
  618.  
  619.  
  620. #### ITF16b
  621.  
  622.  
  623.  
  624.  
  625.  
  626. SELECT
  627. tblKunde.kid,
  628. tblKunde.name,
  629. tblKunde.vorname,
  630. tblRechnung.rid,
  631. tblRechnung.kid,
  632. tblRechnung.datum
  633. FROM tblKunde
  634. RIGHT JOIN tblRechnung
  635. ON tblRechnung.kid = tblKunde.kid;
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644. # Wiederholung:
  645. # Neuen Kunden anlegen
  646. INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg2', 'Nikita');
  647. # neue Rechnung anlegen
  648. SELECT kid FROM tblKunde WHERE name = 'Zilberberg2'; # --> 11
  649. INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, 11);
  650. SELECT rid FROM tblRechnung WHERE kid = 11 AND datum = '2018-06-12'; # ---> rid = 2
  651. # tblArtikel2Rechnung rid, aid = 17 bzw. rid, aid = 18
  652. INSERT INTO tblRechnung_has_tblArtikel (rid, aid) VALUES (2,17), (2,17);
  653.  
  654. INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg3', 'Nikita');
  655. INSERT INTO tblRechnung (datum, vid, zid, kid) VALUES ('2018-06-12', 1, 1, LAST_INSERT_ID());
  656.  
  657. INSERT INTO tblKunde (name, vorname) VALUES ('Zilberberg3', 'Nikita');
  658. INSERT 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.  
  665. SELECT
  666. tblKunde.kid,
  667. tblKunde.name,
  668. tblKunde.vorname,
  669. tblRechnung.rid,
  670. tblRechnung.kid,
  671. tblRechnung.datum
  672. FROM tblRechnung
  673. LEFT JOIN tblKunde
  674. ON tblKunde.kid = tblRechnung.kid;
  675.  
  676.  
  677. # Spalte hinzufügen
  678. ALTER TABLE tblArtikel
  679. ADD preis INT NOT NULL;
  680.  
  681. # Spalte löschen
  682. ALTER TABLE tblArtikel
  683. DROP preis;
  684.  
  685. # Spalte hinzufügen
  686. ALTER TABLE tblArtikel
  687. ADD preis INT NOT NULL DEFAULT 100;
  688.  
  689. # Oder Spalte bearbeiten
  690. UPDATE tblArtikel
  691. SET preis = 50;
  692.  
  693. # einzelne Werte setzen
  694. UPDATE tblArtikel
  695. SET preis = 50000
  696. WHERE aid = 5;
  697.  
  698. UPDATE tblArtikel
  699. SET preis = tblArtikel.aid*100
  700. WHERE aid = 5;
  701.  
  702. UPDATE tblArtikel
  703. SET preis = tblArtikel.preis*1.1
  704. WHERE name LIKE '%HP%';
  705.  
  706.  
  707. SELECT RAND()*(10-5)+5;
  708.  
  709.  
  710. # alle Rechnungen mit Artikel, Kunde und Einzelpreisen
  711. SELECT
  712. k.vorname AS Vorname,
  713. k.name AS Name,
  714. r.rid AS Rechnungsnummer,
  715. r.datum AS Datum,
  716. a.name AS Artikel,
  717. a.preis/100 AS Euro
  718. FROM tblKunde k
  719. INNER JOIN tblRechnung r
  720. USING(kid)
  721. INNER JOIN tblRechnung_has_tblArtikel r2a
  722. USING(rid)
  723. INNER JOIN tblArtikel a
  724. USING(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.  
  747. SELECT
  748. SUM(a.preis/100) AS Gesamtsumme
  749. FROM tblRechnung r
  750. INNER JOIN tblRechnung_has_tblArtikel r2a
  751. USING(rid)
  752. INNER JOIN tblArtikel a
  753. USING(aid);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement