LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK Lénárt Balázs tanársegéd
Anyagmozgatási és Logisztikai Rendszerek Tanszék
TANTERV
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Előadások Időpont: szerda 8:30-10:00 , helye: LFSZÁMG
Dátum
Gyakorlatok Időpont: páratlan kedd 8:30-10:00 , helye: LFSZÁMG Bevezetés, a relációs adatbázisok és az SQL Lénárt nyelv
Gyakvezető
Hét
Dátum
Előadó
1.
9. 11.
Tokodi Adatbázis kezelés
9. 10.
2.
9. 18.
Tokodi Adatbázis kezelés - alapfogalmak
9. 17.
3.
9. 25.
Tokodi Adatmodellezés, relációs adatmodell
9. 24.
4.
10. 2.
Tokodi Normalizálás
10. 1.
-----
5.
10. 9.
Tokodi Adatbázis modellek
10. 8.
Lénárt
6.
10. 16.
Tokodi Műveletek relációs adatbázisokban
10. 15.
-----
7.
10. 23.
-----
8.
10. 30.
Tokodi
9.
11. 6.
Tokodi
10.
11. 13.
Tokodi Az informatikai rendszerek kialakítása
11.
11. 20.
Tokodi
12.
11. 27.
Tokodi
13.
12. 4.
Tokodi Zárthelyi (számítógépes)
12. 3.
14.
12. 11.
Tokodi A logisztikai információs rendszer
12. 10.
-----
10. 22.
A logisztikai folyamat operatív irányításának adatbázisai
10. 29.
A logisztikai fejlesztések adatbázisai
11. 5.
-----
-----
Lénárt SQL alapok: adat lekérdezés, adat rögzítés ----SQL: többtáblás lekérdezések, adat aggregáció -----
Lénárt Adatfeldolgozás Excelben 1., Feladat kiadása -----
-----
Lénárt Adatfeldolgozás Excelben 2.
11. 12.
-----
Rendszermodellezés. Rendszerszervezés alapfogalmak
11. 19.
Lénárt
Az informatikai rendszerek szabályozási modellje, felépítése
11. 26.
-----
----SQL haladó -----
Lénárt Konzultáció -----
----Anyagmozgatási és Logisztikai Rendszerek Tanszék
A gyakorlaton használt adatbázis felépítése
Anyagmozgatási és Logisztikai Rendszerek Tanszék
UNIÓ
Anyagmozgatási és Logisztikai Rendszerek Tanszék
A UNION (unió) utasítás lehetővé teszi, hogy két vagy több hasonló eredményhalmazból kiválasztott sorokat egyetlen eredményhalmazzá egyesítsünk.
Példa: SELECT kont_id, leiras FROM kontener WHERE tipus <> 1 OR tulajdonos <> 1;
SELECT kont_id, leiras FROM kontener WHERE tipus <> 1 UNION SELECT kont_id, leiras FROM kontener WHERE tulajdonos <> 1;
Anyagmozgatási és Logisztikai Rendszerek Tanszék
UNION szintaxis: SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] UNION SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] Figyelem, UNIÓ esetén nem jelennek meg duplikáltan a bejegyzések! Egyezés esetén csak egyszer. Ha szeretnénk mindet: SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] UNION ALL SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] Anyagmozgatási és Logisztikai Rendszerek Tanszék
SELECT cegnev FROM ugyfel UNION SELECT leiras FROM kontener;
Mi lesz ennek az eredménye?
Kombinált lista!
Ceva Logisztika Horváth Rudolf Hungaropedi Kft. Konténer HuSpedi Konténer MÁV Konténer MÁV bérelt MÁV Cargo Sufnituning Bt. Sunitunig Bt. Teszt Cég Kft. Waberer's zRt Anyagmozgatási és Logisztikai Rendszerek Tanszék
INTERSECT Operator Két SELECT lekérdezés eredményét adja vissza, de csak azokat a sorokat, amik benne vannak mindkét táblában. Szintaxis: SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] INTERSECT SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ]
Mikor jó ez? Anyagmozgatási és Logisztikai Rendszerek Tanszék
Példa: Keressük meg azokat az ügyfeleket, akikhez van hozzárendelve konténer! SELECT ugyfel_id FROM ugyfel INTERSECT SELECT tulajdonos FROM kontener; Eredmény: 1 2 3 4 5
Rendben, de hogy kérdezzük le a cégnevet?
Később! Anyagmozgatási és Logisztikai Rendszerek Tanszék
EXCEPT Operator Azokat a sorokat adja vissza az első SELECT lekérdezésből, amik nincsenek benne a másodikban. Szintaxis: SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] EXCEPT SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ]
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Példa: Ügyfelek, akikhez nincs hozzárendelve konténer. SELECT ugyfel_id FROM ugyfel EXCEPT SELECT tulajdonos FROM kontener; Eredmény: 6 7 8
Ezt vártuk!
Anyagmozgatási és Logisztikai Rendszerek Tanszék
GROUP BY, AGGREGÁLÁS SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] [ GROUP BY ] [ HAVING ] OPERATOR {UNION | EXCEPT | INTERSECT | UNION ALL} SELECT COLUMN1 [, COLUMN2 ] FROM TABLE1 [, TABLE2 ] [ WHERE ] [ GROUP BY ] [ HAVING ] [ ORDER BY ]
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Példa: Vasúti és közúti járművek száma. SELECT 'VASÚT', COUNT(*) FROM vjarmu UNION SELECT 'KÖZÚT', COUNT(*) FROM kjarmu Eredmény: VASÚT 69 KÖZÚT 4 Önálló feladat: + konténer szám + növekvő sorrendben
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Önálló feladatok: • Vasúti jármű és közúti járművek összes teherbírása • Minimális teherbírás (1db) • Konténer típusok, amik nem voltak még a terminálban • Konténer típusok, amik voltak a terminálban • Tároló terület, amin még nem volt konténer
Anyagmozgatási és Logisztikai Rendszerek Tanszék
ALLEKÉRDEZÉSEK
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Az allekérdezés egy olyan SELECT kifejezés, amelyet egy SELECT utasítás valamelyik részébe ágyazunk be, így kapva meg a teljes lekérdezést. Szintaxis: SELECT COLUMN_NAME FROM TABLE WHERE COLUMN_NAME = ( SELECT COLUMN_NAME FROM TABLE WHERE CONDITIONS);
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Egy sor az eredmény halmazban: Példa: Az az ügyfél, akiknek a legtöbb konténere van. SELECT * FROM ugyfel WHERE ugyfel_id = (SELECT TOP 1 tulajdonos FROM kontener GROUP BY tulajdonos ORDER BY count(tulajdonos) DESC);
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Több sor az eredmény halmazban: Példa: Azok az ügyfelek, akiknek nincs konténere. SELECT * FROM ugyfel WHERE ugyfel_id IN (SELECT ugyfel_id FROM ugyfel INTERSECT SELECT tulajdonos FROM kontener);
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Önálló feladat: • 2013-09-09 08:01:30-kor érkezett konténer tulajdonosa • KBC923 rendszámú járművel érkezett konténerek tulajdonosának cégneve • 2013-09-10 09:39:23 és 2013-09-10 15:55:18 között érkezett járművek sofőrök nevei
Próbáljuk meg két módon is megoldani! • Allekérdezés • LEFT JOIN
Anyagmozgatási és Logisztikai Rendszerek Tanszék
SQL ADATOK LEKÉRÉSE EXCELBE
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Tulajdonos 60 50 40 30
Összeg
20 10 0
1
2
3
4
5
Típus 30 25
20 15
Összeg
10 5 0 Konténer HuSpedi
Konténer MÁV
Konténer MÁV bérelt
Anyagmozgatási és Logisztikai Rendszerek Tanszék
KÖSZÖNÖM A FIGYELMET!
Anyagmozgatási és Logisztikai Rendszerek Tanszék