LOGISZTIKAI ADATBÁZIS RENDSZEREK SQL ALAPOK, 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
AZ SQL NYELV
Anyagmozgatási és Logisztikai Rendszerek Tanszék
A Structured Query Language (SQL) egy szabványos nyelv, amely a relációs adatbázissal való kommunikációért felel. A prototípust az IBM fejlesztette ki Dr. E.F. Codd „A Relational Model of Data for Large Shared Data Banks” publikációja alapján. Nem sokkal az IBM prototípusa után 1979-ben az ORACLE piacra dobta az első igazi SQL terméket, amely most az egyik vezető adatbázis szállítóvá vált a világon.
Az amerikai szabványügyi hivatal (American National Standards Institute (ANSI)) az IBM megvalósítása alapján szabványosította a nyelvet. Az első szabvány 1986-ban jelent meg. 1987-ben az ANSI SQL szabványt is elfogadták, amelyet a nemzetköti szabványügyi hivatal is átvett (International Standards Organization (ISO)). A szabványt 1992-ben (SQL-92) és 1999-ben (SQL-99) is frissítették. A legújabb szabvány jelenleg a 2008-ban elfogadott SQL-2008.
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Adatbázis parancsok fajtái: • • • • • •
Data Definition Language (DDL) Data Manipulation Language (DML) Data Query Language (DQL) Data Control Language (DCL) Data administration commands Transactional control commands
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Adat lekérdezés
Annak ellenére, hogy a Data Query Language (DQL) csak egy parancsból áll, mégis a legtöbbet használt és az egyik legösszetettebb része az SQL nyelvnek! Az alap parancsszava a
SELECT A parancs rengeteg záradékkal rendelkezik és a legkülönfélébb lekérdezéseket (szűréseket) lehet vele lefuttatni az adatbázisszerveren. A lekérdezés (query) valójában egy kérés a szerver felé. A lekérdezést általában egy kliens szoftverből indítjuk, ez lehet egy alkalmazás, vagy parancssor is. A parancsok szabványosak és akár egy szöveges szerkesztőben elkészíthetőek.
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Angol mondat -> SQL parancs Select the first name and the last name from the registrants table! Select the first name and the last name from the registrants table! SELECT firstname, lastname FROM registrants; SELECT vezeteknev, keresztnev FROM regisztralok;
Select the first name from the registrants table and order it by first name! Select the first name from the registrants table and order it by first name! SELECT keresztnev FROM regisztralok ORDER BY keresztnev;
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Az adattáblák felépítése • Mezők (fields) • Rekordok, vagy sorok (Records, Rows) • Oszlopok (Columns) • Elsődleges kulcs (Primary key) • NULL érték
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Anyagmozgatási és Logisztikai Rendszerek Tanszék
A gyakorlaton használt adatbázis felépítése
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Szintaxis áttekintés (kulcsszavak) SELECT ……. FROM ……. WHERE ……. ORDER BY SELECT [ * | ALL | DISTINCT COLUMN1, COLUMN2 ] FROM TABLE1 [ , TABLE2 ]; Példák: SELECT * FROM kontener; SELECT leiras FROM kontener; SELECT DISTINCT leiras FROM kontener; Anyagmozgatási és Logisztikai Rendszerek Tanszék
Önálló feladat: Hány sort adnak vissza az alábbi lekérdezések: • Ügyfelek száma • Ügyfél városok száma • Közúti jármű gyártók (típus) száma
Anyagmozgatási és Logisztikai Rendszerek Tanszék
WHERE ZÁRADÉK SELECT [ ALL | * | DISTINCT COLUMN1, COLUMN2 ] FROM TABLE1 [ , TABLE2 ] WHERE [ CONDITION1 | EXPRESSION1 ] [ AND | OR CONDITION2 | EXPRESSION2 ] Operator
Leírás
=
Egyenlő
<>
Nem egyenlő (!=)
>
Nagyobb
<
Kisebb
>=
Nagyobb vagy egyenlő
<=
Kisebb vagy egyenlő
BETWEEN
Közötte van
LIKE
Minta hasonlítás
IN
Benne van egy listában Anyagmozgatási és Logisztikai Rendszerek Tanszék
PÉLDA Válasszuk ki az 1C típusú konténereket! SELECT * FROM kontener_tipus; SELECT * FROM kontener_tipus WHERE konter_tipus = '1C'; SELECT kont_id, leiras, tipus FROM kontener WHERE tipus = 5; Válasszuk ki az 1C típusnál kisebb konténereket! SELECT kont_id, leiras, tipus FROM kontener WHERE tipus < 5;
Anyagmozgatási és Logisztikai Rendszerek Tanszék
PÉLDA Válasszuk ki azokat a konténereket, amik béreltek! SELECT * FROM kontener WHERE leiras LIKE '%bérelt%'; Válasszuk ki azokat a konténereket, amik béreltek ÉS 1C típusúak! SELECT * FROM kontener WHERE leiras LIKE '%bérelt%' AND tipus = 5; Önálló feladat: Hány sort adnak vissza az alábbi lekérdezések: • 09. kerületi ügyfelek listája • Ottó nevű sofőr tehergépkocsijának rendszáma és teherbírása • MÁV konténerek listája, amik nem béreltek • MÁV kocsik száma 104307460473 és 204307460474 között Anyagmozgatási és Logisztikai Rendszerek Tanszék
ORDER BY ZÁRADÉK SELECT [ ALL | * | DISTINCT COLUMN1, COLUMN2 ] FROM TABLE1 [ , TABLE2 ] WHERE [ CONDITION1 | EXPRESSION1 ] [ AND | OR CONDITION2 | EXPRESSION2 ] ORDER BY COLUMN1 | INTEGER [ ASC | DESC ] Operator
Leírás
ASC
ASCENDING -> Növekvő [A-Z]
DESC
DESCENDING -> Csökkenő [Z-A]
Anyagmozgatási és Logisztikai Rendszerek Tanszék
NEGÁCIÓ Operator
Leírás
<>, != (NOT EQUAL) NOT BETWEEN
NOT IN NOT LIKE IS NOT NULL NOT EXISTS
NOT UNIQUE
ARITMETIKAI OPERÁTOROK
Példa: SELECT teherbiras, (1 +1) * 5 * teherbiras FROM kontener_tipus;
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Önálló feladat: Feladat: • Tegyük növekvő sorrendbe a konténereket konténer szám alapján! • Tegyük sorrendbe a közúti járműveket rendszám alapján! • MÁV konténerek listája, amik nem béreltek, növekvő sorrendben • 1C típusú konténerek, akinek a tulajdonosa a MÁV Cargo, csökkenő sorrendben • Konténer átmozgatások 2013-09-10 8 óra és 18 óra között. • Melyik az a konténer típus, ahol nincs megadva magasság? (NULL)
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Adatmódosító utasítások
Data Manipulation Language (DML) az SQL nyelvben az adatok manipulációjáért felel. Három klasszikus parancs van, amelyet az összes SQL adatbázis kezelő támogat: • INSERT • UPDATE • DELETE
Anyagmozgatási és Logisztikai Rendszerek Tanszék
INSERT INTO TABLE_NAME VALUES (‘value1’, ‘value2’, [ NULL ] ); Példa: INSERT INTO ugyfel VALUES ('6','Sufnituning Bt.','1023244-1-1', 'Nagy Elemér','
[email protected]','1111','','','') vagy INSERT INTO ugyfel (ugyfel_id,cegnev,adoszam,kapcsolat_tarto,email,irszam) VALUES ('6','Sufnituning Bt.','1023244-1-1', 'Nagy Elemér','
[email protected]','1111') Elsődleges kulcs! (primary key)
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Módosítás UPDATE TABLE_NAME SET COLUMN_NAME = ‘VALUE’ [WHERE CONDITION];
Soha se felejtsük el a WHERE záradékot! Ebben az esetben adatot vesztünk!
Példa: UPDATE ugyfel SET varos = ’Budapest’ WHERE ugyfel_id = ’6’; Törlés DELETE FROM TABLE_NAME [WHERE CONDITION];
DELETE FROM ugyfel WHERE ugyfel_id = 6;
Anyagmozgatási és Logisztikai Rendszerek Tanszék
Önálló feladat: • Vigyünk fel új ügyfeleket! • Vigyük fel a meglévő ügyfelek címét! (internetes keresés) • Vigyünk fel közúti járműveket! • Kis Béla helyett Mildenberger Árpád lett a KBC-921-es rendszámú jármű sofőrje. • MAVU6441836 konténert megvette a Hungarospedi Kft.
Anyagmozgatási és Logisztikai Rendszerek Tanszék
KÖSZÖNÖM A FIGYELMET!
Anyagmozgatási és Logisztikai Rendszerek Tanszék