Adatbázis rendszerek Gy: DQL Lekérdezések
|
|
- Zsófia Veres
- 6 évvel ezelőtt
- Látták:
Átírás
1 Adatbázis rendszerek Gy: DQL Lekérdezések. 70/1 B IT v: MAN
2 DQL utasítások 70/2 Projekció Szelekció Feltételek megfogalmazása Rendezés a lekérdezésben Aggregáció a lekérdezésben Csoportképzés a lekérdezésben Join Halmazműveletek Al-select Értéktől függő kiírt adat
3 DQL Adat lekérdező utasítás Az SQL nyelvben egyetlen parancs, a SELECT parancs szolgál az adatok lekérdezésére Alkalmas a relációs algebra minden műveletének a leképzésére Feladata: Egy vagy több adattáblából egy eredménytábla előállítása, amely a képernyőn listázásra kerül, vagy más módon használható fel. A parancs általános alakja: SELECT [distinct] mezőlista FROM táblalista [WHERE szelekciós_feltétel] [GROUP BY csoportosító_kifejezés] [HAVING csoportokra_vonatkozó_feltétel] [ORDER BY rendező_mezőlista]; 70/3
4 Projekció (vetítés) Projekció: csak a kijelölt mezők jelennek meg az eredmény relációban. Jele: mezőlista (r) Megvalósítása: select [distinct] mező_lista from tábla_lista; select Rendszám, Típus from autó; select * from autó; select Típus, Ár/280 As EuroÁr from autó; As: Alias név select distinct szín from autó; *: Minden mező Autó Rendszám Típus Szín GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Fehér Típus Opel Nissan Trabant DISTINCT (különböző): csak az egymástól különböző sorok jelennek meg 70/4az eredménytáblában, így nem lesz két egyforma rekord benne. Ár EuroÁr Szín Fehér Ezüst
5 Szelekció (kiválasztás) Szelekció: a megadott feltételnek eleget tévő rekordok kerülnek át az eredmény relációba. Jele: felt (r) Megvalósítása: select mezőlista from táblalista WHERE szelekciós_feltétel; select * from autó WHERE Kor < 10; Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 Ár /5
6 Feltételek megfogalmazása Használható operátorok: Relációs operátorok (=,!=, <, >,!<,!>, <>, <=, >=) Algebrai operátorok (+,-,*,/) Logikai operátorok (AND, OR, NOT) Speciális logikai kifejezések: x IS NULL: igaz, ha az x mező értéke NULL. x BETWEEN a AND b: igaz, ha a x b. x IN halmaz: igaz, ha x megegyezik a megadott halmaz egy elemével. Megfelel több vagy kapcsolatban lévő feltételnek. x LIKE minta: igaz, ha az x karaktersorozat megfelel a megadott mintának. Helyettesítő karakterek: 70/6 _ - egy kötelező karakter, % - tetszőleges számú karakter
7 NULL érték kezelése Az SQL-ben az egyes mezőkben szerepelhet null érték, ha nincs megadva a mezőre a Not Null megszorítás! A null nem azonos a mezőbe beírt 0 vagy ' ' értékkel! Jelentése: Nem megadott érték (nem tudom az adott telefonszámot) Nem értelmezhető érték (valakinek nincs nyelvismerete) Törölt érték Feltételekben null érték vizsgálatára csak az IS NULL és az IS NOT NULL kifejezések használhatók Egy null értéket bármivel hasonlítunk össze, az eredmény UNKNOWN (ismeretlen) Ha egy üres mezőre a mező=null feltételt adjuk meg, az unknown eredményt ad, vagyis nem lesz igaz! Aggregált értékek kiszámításakor a null értékek kimaradnak Ha egy mezőben null érték van, és a mezőt tartalmazza egy 70/7 számított kifejezés, akkor annak értéke is null érték
8 Háromértékű logika Az SQL-ben a null érték létéből következő unknown logikai érték miatt ún. háromértékű logika van, az értékek True, False és Unknown lehetnek. Hogyan működnek ilyen esetben a logikai operátorok? Az alábbi módon: x y x AND y x OR y NOT(x) T T T T F T U U T F T F F T F U T U T U U U U U U U F F U U F T F T T 70/8 F U F U T F F F F T
9 Null-érték függvények NVL(data, expr1) A null értékű adatot a megadott értékkel helyettesíti. Az adat és az érték típusának meg kell egyeznie! Az adattípus lehet karakter, szám, dátum select nvl(osztály, 'Nincs megadva osztály') Osztály from dolgozó; NVL2(data, expr1, expr2) Ha a data nem null, akkor expr1, ha null, akkor expr2 lesz az eredmény select nvl2(to_char(jutalom), 'IGEN', 'NEM') Jutalom from dolgozó; A to_char() karakterré konvertálja a numerikus jutalom értéket, így szöveges helyettesítő értékek adhatók meg 70/9
10 Példák szelekciós feltételekre Ember Név Cím Szül_Év Kis Géza Eger 1983 Autó Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 Ár SELECT * FROM Ember WHERE Szül_Év BETWEEN 1975 AND 1980; SELECT * FROM Ember WHERE Cím IS NULL; SELECT * FROM Ember WHERE Név LIKE 'B%'; SELECT * FROM Ember WHERE Név LIKE % Géza%'; SELECT Rendszám FROM Autó WHERE Szín IN ('piros', 'kék', 'fehér'); SELECT Rendszám,Típus FROM Autó WHERE Ár < AND Szín NOT LIKE '%lila%'; SELECT Rendszám FROM Autó WHERE Rendszám LIKE '_ER-6%'; SELECT Rendszám FROM Autó WHERE Rendszám LIKE '%0' OR Rendszám LIKE '%2' OR Rendszám LIKE '%4' OR Rendszám LIKE '%6' OR Rendszám LIKE '%8'; select Rendszám from Autó 70/10 where substr(rendszám, -1, 1) in ('0','2','4','6','8');
11 Szelekciós függvények Sorfüggvények, melyek minden egyes rekord adataira elvégzik a kért módosítást. ABS(n): abszolút é'rték Példa: ABS(-15) = 15 LOWER(char): konverzió kisbetűsre. Példa: LOWER('Kovács') = 'kovács' UPPER(char): konverzió nagybetűsre. Példa: UPPER('Kovács') = 'KOVÁCS' INITCAP(char): konverzió nagy kezdőbetűsre. Példa: INITCAP('kovács') = 'Kovács' LTRIM(char): balról szóközök eltávolítása. Példa: LTRIM(' alma ') = 'alma ' RTRIM(char): jobbról szóközök eltávolítása. Példa: RTRIM(' alma ') = ' alma' 70/11
12 Szelekciós függvények 2. SUBSTR(char, m[, n]): a char string m-edik karakterétől n hosszú részstringet ad vissza. (Ha n nem szerepel, akkor a végéig.) Az első karakter 1-es sorszámú. Példa: SUBSTR('ABCDEFG',2,3) = 'BCD' TO_CHAR(n): konverzió numerikusról vagy dátumról karakteresre. Példa: TO_CHAR(123) = '123' TO_DATE(char): konverzió karakteresről dátumra. Példa: TO_DATE('15-JAN-06') TO_NUMBER(char): konverzió karakteresről numerikusra. Példa: TO_NUMBER('123') = 123 SQRT(kifejezés): Négyzetgyök, numerikus kifejezésre vonatkozik. Példa: SQRT(16) = 4 70/12
13 A függvények kipróbálása select kifejezés from tábla_lista [where ] select upper('kiskutya') from dual KISKUTYA select substr('kiskutya',3,2) from dual sk select to_date(' ', 'YYYY.MM.DD') from dual 12/31/2016 select sqrt(17) from dual select power(2, 4) from dual select power(2.6, 2.4) from dual 70/
14 Aggregáció a lekérdezésben Aggregáció: oszlopfüggvények, melyek egy oszlop adataiból egy konkrét statisztikai értéket számítanak ki. Csak mezőlistában, vagy a Having feltételben szerepelhetnek! Aggregációs függvények: SUM(x) - összeg x: numerikus mező vagy kifejezés értéke AVG(x) - átlagérték MAX(x) legnagyobb érték MIN(x) legkisebb érték COUNT(x) elemek száma Ha x=*: minden rekordot érint select avg(ár) from Autó; select count(*) from Autó; select count(kor) from Autó Where Kor > 10; select 70/14 Sum(Ár), Avg(Kor) from Autó;
15 Csoportképzés a lekérdezésben select mezőlista from táblalista [where...] GROUP BY csoportosító_kifejezés; Az egyes csoportba azok a rekordok kerülnek, melyeknél a csoportosító kifejezés értéke azonos. Az eredménytáblában egy csoportból egy rekord jelenik meg Az összesítő függvények csoportonként hajtódnak végre. Általában a csoportosító kifejezés szerepel a mezőlistában. select Típus, avg(ár) from Autó GROUP BY Típus; select Típus, count(*) from Autó WHERE Szín='Piros' GROUP BY Típus order by Típus; select Szín, min(ár), max(ár) from Autó GROUP BY Szín; select substr(rendszám,1,1) KB, count(*) DB from autó GROUP BY substr(rendszám,1,1); 70/15 KB C H DB 5 2 B IT JMAN 4
16 Csoportok szűrése select mezőlista from táblalista [where...] GROUP BY oszloplista HAVING csoportokra_vonatkozó_feltétel; A HAVING a csoportképzés után a csoportokra vonatkozó, aggregációs függvényeket tartalmazó feltétel megadására használható, csak a GROUP BY kifejezéssel együtt! select Típus, avg(ár) from Autó GROUP BY Típus HAVING avg(ár) > ; select Típus, count(*) from Autó WHERE Szín='Piros' GROUP BY Típus HAVING count(*) > 3 order by Típus; 70/16
17 Rendezés a lekérdezésben A mezőlistában szereplő mezők szerint rendezhetjük a rekordokat növekvő (ASC) vagy csökkenő (DESC) sorrendben Mezőnevek helyett használható a mezők száma is, a számozás 1-ről indul! Több mező is megadható Alapértelmezés a növekvő rendezés, ezt nem kell megadni select mezőlista from... [where...] ORDER BY mezőnév [ASC DESC], mezőnév [ASC DESC],...; Autó Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 Ár select * from autó ORDER BY Típus, Ár DESC; select * from autó ORDER BY 2, 5 desc; 70/17
18 A select utasítás általános alakja A parancs egyes elemeinek a sorrendje kötött A mezőlista és a from táblalista kötelező elem A mezőlistában és a táblalistában alias nevek használhatók A parancsból a [ ] zárójelben lévő részek kimaradhatnak A having csak a group by kifejezéssel együtt használható SELECT [distinct] mezőlista FROM táblalista [WHERE szelekciós_feltétel] [GROUP BY csoportosító_kifejezés] [HAVING csoportokra_vonatkozó_feltétel] [ORDER BY rendező_mezőlista]; 70/18
19 70/19
20 Join (szorzat, illesztés) Ha az eredménytábla két (vagy több) táblából akarjuk az adatokat megjeleníteni, akkor a táblák összekapcsolására a JOIN parancsot kell használni. SQL-ben a következő típusokat alkalmazhatjuk: Cross join (Descartes szorzat, teljes illesztés) Theta join Feltételes illesztés Equi join Egyenlőségen alapuló illesztés Natural join Természetes illesztés Outer join Külső illesztés, Self join (tábla összekapcsolása önmagával), Félig összekapcsolások (Semi join, Anti semi join). 70/20
21 Cross join (Descartes szorzat, teljes illesztés) A legegyszerűbb összekapcsolás a keresztszorzat (szorzat) Ebben az összekapcsolásban nem adunk meg feltételt az összekapcsolás módjára, ezért az egyik tábla minden rekordja párosításra kerül a másik tábla minden rekordjával. Kétféle módon is megadható: A from után a táblák felsorolásával (vesszővel elválasztva), A cross join kulcsszóval. Nagy rekordszámok esetén hatalmas eredménytábla keletkezik, ezért használatát lehetőleg kerülni kell! Jele a relációs algebrában: r 1 x r 2 SELECT mezőlista FROM tábla_1, tábla_2; SELECT mezőlista FROM tábla_1 CROSS JOIN tábla_2; 70/21
22 Cross join m1 cross join m2 A B C = m1 m2 A A A B B B C C C 70/22
23 Cross join (Descartes szorzat, teljes illesztés) Autó Rendszám Típus Szín Ár Tulaj Ember Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst Kis Géza Eger 178 Jó Éva Miskolc select Név, Típus, Ár from Autó, Ember; select Név, Típus, Ár from Autó cross join Ember; Név Kis Géza Típus Opel Ár Jó Éva Opel Kis Géza Nissan Jó Éva Nissan /23
24 Feltételes illesztés A keresztszorzat összekapcsolás kiegészíthető a WHERE záradékkal, melyben megadhatjuk az összekapcsolásra vonatkozó, és a rekordok adataira vonatkozó feltételt is. Tetszőleges feltétel megfogalmazható Ha az összekapcsolási feltétel alapja a két táblában lévő adatok egyenlősége, akkor az illesztést Equi joinnak nevezzük. Ha az összekapcsolási feltétel nem az adatok egyenlőségén alapszik, akkor az illesztést Theta joinnak nevezzük. Jele a relációs algebrában: r 1 felt r 2 SELECT mezőlista FROM tábla1, tábla2 WHERE feltétel; 70/24
25 Theta join m1 m join = m1 m where m1<m2 Equi join m1 m join = m1 m where m1=m2 70/25
26 Theta join Feltételes illesztés Autó Rendszám Típus Szín GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Fehér Ár Ember Ekód Név Összeg 114 Kis Géza Jó Éva Telefon A fehér autókat kik tudják megvásárolni? select rendszám, ár, név, összeg from Autó, Ember where összeg > ár and szín='fehér'; select rendszám, ár, név, összeg from Autó cross join Ember where összeg > ár and szín='fehér'; Join feltétel 70/26 Szelekciós feltétel Rendszám GBC-765 Ár Név Kis Géza Összeg AKT Kis Géza AKT Jó Éva
27 Equi join Egyenlőség alapú illesztés Jele a relációs algebrában: r 1 =felt r 2 Kinek van pontosan annyi pénze, amennyibe egy autó kerül? Autó Rendszám Típus Szín GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Fehér Ár Ember Ekód Név Összeg 114 Kis Géza Jó Éva Telefon select rendszám, ár, név, összeg from Autó cross join Ember where összeg = ár; Join feltétel Rendszám GBC-765 Ár Név Kis Géza Összeg /27
28 Equi join típusok A legkényelmesebb megoldás, ha a két táblában van egy-egy ugyanolyan nevű (és típusú) oszlop, ez esetben használhatjuk a Natural join-t, mely automatikusan összekapcsolja az azonos nevű oszlopokat: Ha több oszlop neve is megegyezik a táblákban, olyan belső összekapcsolást alkalmazhatunk, ahol egy kulcsszóval megadható a join feltétele: Ha különbözőek az összekapcsolandó mezők nevei, használjuk az on kulcsszót: 70/28 SELECT mezőlista FROM tábla1 NATURAL JOIN tábla2 WHERE szelekciós feltétel; SELECT mezőlista FROM tábla1 INNER JOIN tábla2 USING (mező) WHERE szelekciós feltétel; SELECT mezőlista FROM tábla1 INNER JOIN tábla2 ON join_feltétel WHERE szelekciós feltétel;
29 Natural join m1 m2 A B C join = 1 2 m1 m2 A C 70/29
30 Natural join Természetes illesztés Jele a relációs algebrában: r 1 r 2 vagy r 1 * r 2 SELECT mezőlista FROM tábla1 NATURAL JOIN tábla2 WHERE szelekciós feltétel; A táblákban meg kell egyezniük a kapcsolattartó mezők nevének! Irányíthatatlan a kapcsolat, minden azonos nevű mező kapcsolódik! Rendszám Típus Szín Kor Tulaj Tulaj Név Kor Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Jó Éva Kék Béla Bő Jenő select rendszám, név from autó natural join ember; 70/30 Rendszám GBC-765 Név Kis Géza
31 Equi join m1 join using m2 A B C = 1 2 m1 m2 A C m1 join on m2 A B C = 1 2 m1 m2 A C 70/31
32 Equi join Egyenlőség alapú illesztés SELECT mezőlista FROM tábla1 INNER JOIN tábla2 USING (mező) WHERE szelekciós feltétel; A táblákban meg kell egyezniük a kapcsolattartó mezők nevének! Irányítható a kapcsolat a megfelelő mezőnevek megadásával! Rendszám Típus Szín Kor Tulaj Tulaj Név Kor Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Jó Éva Kék Béla Bő Jenő select rendszám,név from autó inner join ember using (tulaj); 70/32 Rendszám GBC-765 JED-123 AKT-392 Név Kis Géza Jó Éva Kék Béla
33 A USING kulcsszó használata select * from autó inner join ember using (tulaj); Autó Rendszám Típus Szín Kor Tulaj Ember Tulaj Név Kor Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Jó Éva Kék Béla Bő Jenő Tulaj Rendszám GBC-765 JED-123 AKT-392 Típus Opel Nissan Trabant Szín Fehér Ezüst Kék Kor Név Kis Géza Jó Éva Kék Béla Kor Telefon A using kulcsszó használatakor, ha *-al minden mezőt kiíratunk, akkor a közös kapcsolómező az eredménytábla első oszlopaként jelenik meg! 70/33
34 Equi join Egyenlőség alapú illesztés SELECT mezőlista FROM tábla1 INNER JOIN tábla2 ON t1.mező1=t2.mező2 WHERE szelekciós feltétel; Különválik az összekapcsolási- és a szelekciós feltétel Az on után tetszőleges összekapcsolási feltétel megadható, nemcsak egyenlőség! Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd select rendszám,név from autó inner join ember on tulaj=ekód where ár > ; 70/34 Rendszám GBC-765 JED-123 Név Kis Géza Jó Éva
35 Az ON kulcsszó használata select * from autó inner join ember on autó.tulaj=ember.tulaj Autó Rendszám Típus Szín Kor Tulaj Ember Tulaj Név Kor Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Jó Éva Kék Béla Bő Jenő Rendszám GBC-765 JED-123 AKT-392 Típus Opel Nissan Trabant Szín Fehér Ezüst Kék Kor Tulaj Tulaj Név Kis Géza Jó Éva Kék Béla Kor Telefon Az on kulcsszó használatakor, ha a *-al minden mezőt kiíratunk, az azonos nevű kapcsolómező többször is megjelenik a listában. 70/35
36 Belső és külső összekapcsolás Belső összekapcsolásnak (Inner join) nevezzük azokat az illesztéseket, amelyek a két tábla megegyező soraival térnek vissza. Ha valamelyik táblából a pár nélküli rekordokat is hozzávesszük az eredményhez (üres mezőkkel kiegészítve), akkor külső összekapcsolást (Outer join) kapunk. A külső összekapcsolás lehet: bal oldali (Left outer join), jobb oldali (Right outer join), vagy teljes (Full outer join). 70/36
37 70/37 Outer join m1 m A C null A B C m1 m2 left join = m1 m2 1 null 2 A B C A B C m1 m2 right join = m1 m2 1 A A B C m1 m2 full join = 2 3 C null null B
38 Outer join (külső illesztés) SELECT FROM tábla1 [LEFT RIGHT FULL] OUTER JOIN tábla2 ON join_feltétel [WHERE szelekciós feltétel] ; Autó Ember Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd Minden ózdi ember, és autójuk rendszáma: select Név, Rendszám from Autó RIGHT OUTER JOIN Ember ON Tulaj=Ekód where Cím='Ózd'; 70/38 Név Kék Béla Bő Jenő Rendszám AKT-392 RIGHT: A jobb oldali táblából jönnek a pár nélküli rekordok is, üres értékkel kiegészítve.
39 Outer join (külső illesztés) SELECT FROM t1, t2 WHERE t1.m1 (+)= t2.m2 A (+)-al azt a mezőt jelöljük meg, ahonnan a null kiegészítést kérjük! Autó Rendszám Típus Szín Ár Tulaj Ember Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd Minden ózdi ember, és autójuk rendszáma: select Név, Rendszám from Autó, Ember where tulaj (+)= ekód and Cím='Ózd'; select Név, Rendszám from Autó join Ember ON tulaj (+)= ekód where Cím='Ózd'; 70/39 Név Kék Béla Bő Jenő Rendszám AKT-392
40 Outer join (külső illesztés) Példa Autó Ember Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék LOG-416 Volvo Piros Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd Hány darab autója van az egyes embereknek? select Név, count(tulaj) As Darab from Autó RIGHT OUTER JOIN Ember ON Tulaj=Ekód Group By Név; Név Kis Géza Jó Éva Kék Béla Bő Jenő Darab /40
41 Self join Olyan speciális összekapcsolás, ahol egy táblát kapcsolunk össze önmagával azért, hogy a tábla egyik oszlopában lévő értékeket hasonlítsuk össze a szintén ugyanebben az oszlopban lévő többi értékkel. A táblát két különböző alias név használatával tudjuk önmagával összekapcsolni. A két különböző alias név miatt a rendszer a táblát két egymástól független táblaként kezeli, megszüntetve ezzel az adatok egyezőségéből adódó mindennemű kapcsolatot, ezért összekapcsoláskor a mezők értékegyezőségére vonatkozó kapcsolatukat is be kell állítani! Az összekapcsolás megvalósítható keresztszorzat (cross join) vagy on kulcsszóval felépített equi join alkalmazásával 70/41
42 Self join m1 A B A a1 m self join m1 A B A a2 m = m1 A m2 3 where a1.m1=a2.m1 and a1.m2>a2.m2 70/42
43 Self join önillesztés :-) select t1.m1, from tábla t1, tábla t2 [where szelekciós feltétel] ; select t1.m1, from tábla t1 join tábla t2 on t1.m=t2.m [where szelekciós feltétel] ; Autó Rendszám Típus Kor GBC-765 Opel 5 JED-123 Nissan 8 HGZ-392 Nissan 7 Ár Tulaj LOG-416 Opel Azon autók rendszáma, melyek idősebbek, mégis drágábbak saját típustársuknál: select a1.rendszám from autó a1, autó a2 where a1.típus=a2.típus and a1.kor>a2.kor and a1.ár>a2.ár); 70/43 Rendszám JED-123 LOG-416
44 Félig összekapcsolások A belső és a külső illesztések valódi összekapcsolások, amelyeknél általában minden táblából lesznek adatok a lekérdezésben. Ha a lekérdezés adatai csak az egyik táblából származnak, a másik tábla pedig csak azért szükséges, hogy meg tudjuk fogalmazni a lekérdezés feltételét, akkor olyan látszólagos összekapcsolásról beszélünk, melyet félig összekapcsolásnak nevezünk. Ha a feltétel az, hogy az egyik táblában lévő adatnak létezik párja a másik táblában, akkor az összekapcsolást Semijoin-nak nevezzük. Ha a feltétel az, hogy az egyik táblában lévő adatnak nem létezik párja a másik táblában, akkor az összekapcsolást Anti semi join-nak nevezzük. 70/44
45 Semi join m1 semi join m2 A B C = 1 2 m1 70/45
46 Semijoin select from tábla1 where EXIST (select 1 from tábla2 where tábla1.m1=tábla2.m2) Az EXIST kulcsszó azt vizsgálja, hogy a keletkezett reláció nem üres. Autó Ember Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst LOG-416 Volvo Piros Kis Géza Eger 178 Jó Éva Miskolc Bő Jenő Ózd Azok neve, akiknek van autója: select Név from Ember WHERE EXISTS (select 1 from Autó where Tulaj=EKód); 70/46 Név Kis Géza Jó Éva
47 Anti semi join m1 anti semi join m2 A B C = 3 m1 70/47
48 Anti semi join select from tábla1 where NOT EXIST (select 1 from tábla2 where tábla1.m1=tábla2.m2) A NOT EXIST kulcsszó azt vizsgálja, hogy a keletkezett reláció üres. Autó Ember Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst LOG-416 Volvo Piros Kis Géza Eger 178 Jó Éva Miskolc Bő Jenő Ózd Azok neve, akiknek nincs autója: select Név from Ember WHERE NOT EXISTS (select 1 from Autó where Tulaj=EKód); 70/48 Név Bő Jenő
49 70/49
50 Halmazműveletek Unió: Metszet: Különbség: SELECT UNION [ALL] SELECT ; SELECT INTERSECT SELECT ; SELECT MINUS SELECT ; Csak azonos szerkezetű táblák esetén alkalmazhatók! Futók Ekód Név Város Síelők Ekód Név Város F S 114 Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Miskolc 114 Kis Géza Eger 113 Kő Zoli Eger 102 Kék Béla Miskolc Az összes sportoló neve: select Név from Futók UNION select Név from Síelők 70/50 Név Kis Géza Jó Éva Kék Béla Kő Zoli F S
51 Halmazműveletek Futók Ekód Név Város Síelők Ekód Név Város F S 114 Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Miskolc 114 Kis Géza Eger 113 Kő Zoli Eger 102 Kék Béla Miskolc Azok neve, akiknek mindkét sportot űzik: select Név from Futók INTERSECT select Név from Síelők Név Kis Géza Kék Béla F S Azok a futók, akik nem síelnek: select Név from Futók MINUS select Név from Síelők 70/51 Név Jó Éva A \ B
52 70/52
53 AL-SELECT Az SQL támogatja azt a lehetőséget, hogy a szelekciós feltételben nemcsak létező, letárolt adatelemekre hivatkozzunk, hanem számított kifejezéseket is alkalmazhassunk. A számítást egy másik SELECT utasítással tudjuk megadni. Tehát az egyik lekérdezés szelekciós feltételében hivatkozunk egy másik lekérdezés eredményére. Az al-lekérdezést mindig zárójelben kell megadni, hogy elemei elkülönüljenek. Formailag megegyezik a normál SELECT utasítással (kivétel:al-select-ben nem lehet rendezni) 70/53
54 Az AL-SELECT operátorai Az al-lekérdezés eredményétől függően különböző operátorokat kapcsolhatunk az AL-SELECT-hez: Ha az eredmény egy rekord: skalár operátorok (relációs operátorok) használhatók. Ha az eredmény több rekord: halmazoperátorok (IN, ANY, ALL, EXISTS) használhatók. SELECT FROM WHERE mező IN (al-select); SELECT FROM WHERE mező θ ANY (al-select); SELECT FROM WHERE mező θ ALL (al-select); SELECT FROM WHERE EXISTS (al-select); θ: tetszőleges relációs operátor (<, >, =,!= ) 70/54
55 Az AL-SELECT operátorai 2. IN: a mező értéke a halmaz bármely elemével megegyezhet (vagylagos multi egyenlőség) ANY: a halmaz minden eleméhez hasonlít, ha egyet talál, akkor igazzal tér vissza ALL: a halmaz minden eleméhez hasonlít, ha akár egyre nem teljesül, akkor hamisat ad vissza EXISTS: az eredményhalmaz üres, vagy sem (ha üres, akkor hamissal tér vissza) 70/55
56 Példák AL-SELECT-re Autó: Ember: Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Piros JED-123 Nissan Ezüst AKT-392 Trabant Kék LOG-416 Volvo Piros Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd Az egri tulajdonosok autóinak árát növeljük meg 20%-al: UPDATE Autó SET Ár=Ár*1.2 WHERE Tulaj IN (SELECT Ekód FROM Ember WHERE Cím='Eger'); Töröljük azokat az embereket, akiknek több mint 2 autójuk van: DELETE FROM Ember WHERE Ekód IN (SELECT Ekód, count(*) FROM Ember, Autó WHERE Ekód=Tulaj GROUP BY Ekód HAVING count(*) > 2); 70/56
57 Példák AL-SELECT-re Autó: Ember: Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék LOG-416 Volvo Piros Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd Bármely piros autó áránál olcsóbb autók rendszámai: SELECT Rendszám FROM Autó WHERE Ár < ANY (SELECT Ár FROM Autó WHERE Szin='piros'); Minden piros autó áránál olcsóbb autók rendszámai: SELECT rsz FROM autó WHERE ár < ALL (SELECT ár FROM autó WHERE szin= piros ); Rendszám GBC-765 JED-123 AKT-392 Rendszám AKT /57
58 Példák AL-SELECT-re Autó: Ember: Rendszám Típus Szín Ár Tulaj Ekód Név Cím Telefon GBC-765 Opel Fehér JED-123 Nissan Ezüst AKT-392 Trabant Kék LOG-416 Volvo Piros Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Bő Jenő Ózd Azok az emberek, akiknek nincs autójuk (1. változat): SELECT Név FROM Ember WHERE Ekód NOT IN (SELECT Tulaj FROM Autó); Azok az emberek, akiknek nincs autójuk (2. változat): SELECT E.Név FROM Ember E WHERE NOT EXISTS (SELECT * FROM Autó A WHERE A.Tulaj=E.Ekód); 70/58
59 Értéktől függő kiírt adat A select utasításban használható az alábbi szerkezet, melynek segítségével a cellák tartalmától (vagy azokból számított értéktől) függően lehet valamit kiírni: SELECT CASE [kifejezés] WHEN feltétel_1 THEN érték_1 WHEN feltétel_2 THEN érték _2... WHEN feltétel_n THEN érték _n ELSE érték END from 70/59 Darabszám kiírása magyarul select case count(*) when 0 then 'Nulla' when 1 then 'Egy' when 2 then 'Kettő' when 3 then 'Három' else 'Magyarul nem megy' end as "Tervezők száma" from dolgozó where beosztás='tervező'
60 Értéktől függő kiírt adat Ember: Ekód Név Cím 114 Kis Géza Eger 178 Jó Éva Miskolc 102 Kék Béla Ózd Telefon Bő Jenő Ózd Van miskolci tulajdonos? select (case when count(*)=0 then 'Nincs' else 'Van' end) as "miskolci tulajdonos" miskolci tulajdonos from Ember Van where Cím='Miskolc' 70/60
61 70/61
62 Hierarchia kialakítása ID=11 Nagy V ID=23 Balga L Pék P ID=25 Kiss G Esti P Nagy K Joó É Kő B ID=34 Muri L /62
63 Hierarchia kialakítása Dolgozo Dkod Dnev Fonoke Foglalkozas 11 Nagy V Elnök 23 Balga L 11 Menedzser 25 Kiss G 23 Elemző 28 Esti P 23 Eladó 34 Muri L 25 Eladó SZINT Dolgozó Főnök /
64 Hierarchia kialakítása Dkód Dolgozo Dnév Dolgozo Dkod Dnev Fonoke Fonoke 1 : N kapcsolat create table Dolgozo( dkod int primary key not null, dnev varchar2(20), fonoke int constraint dsk references Dolgozo (dkod), Megfelelő kialakítás mellett Oracle-ben lekérdezhető a hierarchia 70/64
65 Hierarchia lekérdezése Dolgozo Dkod Dnev Fonoke select [LEVEL] mezőnevek from táblanév CONNECT BY PRIOR szülő=gyermek START WITH induló csomópont LEVEL Pszeudóváltozó, a szint mélységét (sorszámát) jelzi CONNECT BY A szülő-gyerek kapcsolatot biztosító mezők. A PRIOR kulcsszó mindig a szülő felüli oldalra kerül! Ha a főnök felől indulunk lefelé: prior dkod=fonoke, ha a beosztott felől fölfelé: dkod= prior fonoke START WITH A kiinduló pont megadása Ha hurok van a gráfban, nem működik a lekérdezés! 70/65
66 Dolgozo [dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek] Kinek ki a beosztottja (a főnöktől indulva a beosztott felé) select level, dnev név, foglalkozas, dkod, fonoke from dolgozo connect by prior dkod = fonoke start with dnev = 'Nagy V' order by level level A szint mélysége connect by prior Szülő = Gyerek start with A kiindulópont 70/66
67 Dolgozo [dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek] Kinek ki a főnöke? Beosztottól 'Laza B'-től indulva, a főnök felé select level, dnev név, foglalkozas, dkod, fonoke from dolgozo connect by dkod = prior fonoke start with dnev = 'Laza B' level A szint mélysége connect by prior Szülő = Gyerek start with A kiindulópont 70/67
68 Dolgozo [dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek] Mennyi az elnök alatt 2 szinttel az átlagfizetés? select avg(fizetes) Átlagfizetés from dolgozo where level=3 connect by prior dkod = fonoke start with dnev = 'Nagy V' group by level Melyik szinten hányan dolgoznak? select level, count(*) létszám from dolgozo connect by prior dkod = fonoke start with dnev = 'Nagy V' group by level order by level 70/68
69 70/69
70 VÉGE VÉGE 70/70
Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály. Adatbázis-kezelés alapjai SQL 2: DQL. v: B IT MAN 169/1
Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály Adatbázis-kezelés alapjai SQL 2: DQL v: 2018.11.25 169/1 DQL utasítások 169/2 Projekció Szelekció Feltételek megfogalmazása Rendezés a lekérdezésben
RészletesebbenB I T M A N B I v: T 2015.03.09 M A N
Adatbázis Rendszerek MSc 3. Gy: MySQL Lekérdezések B I v: T 2015.03.09 M A N 1/61 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/61 DQL Adat lekérdező utasítás Az SQL
RészletesebbenAdatbázis-kezelés, információs-rendszerek
Adatbázis-kezelés, információs-rendszerek 3. Ea: Eskúel (2011) Structured Query Language v: 2011.09.05 Szűcs Miklós - ME, ÁIT. 1.o Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítás DCL utasítások
RészletesebbenAdatbázis rendszerek Ea: Esqúel. Structured Query Language
Adatbázis rendszerek 1. 4. Ea: Esqúel Structured Query Language 64/1 B ITv: MAN 2015.09.17 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítás DCL utasítások Gyakorló feladatok Ellenőrző kérdések
RészletesebbenAdatbázis rendszerek Ea: Eskúel. Structured Query Language
Adatbázis rendszerek 1. 4. Ea: Eskúel Structured Query Language 1/83 B ITv: MAN 2017.10.24 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítás DCL utasítások Gyakorló feladatok Ellenőrző kérdések
RészletesebbenADATBÁZISOK gyakorlat: SQL 2. rész SELECT
ADATBÁZISOK 9-10. gyakorlat: SQL 2. rész SELECT SELECT utasítás általános alakja SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel] [GROUP BY oszloplista [HAVING feltétel] ] [ORDER BY oszloplista];
Részletesebben8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:
8. Gyakorlat SQL SQL: Structured Query Language; a relációs adatbáziskezelők szabványos, strukturált lekérdező nyelve SQL szabványok: SQL86, SQL89, SQL92, SQL99, SQL3 Az SQL utasításokat mindig pontosvessző
RészletesebbenAdatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14
Adatbázisok 9. gyakorlat SQL: SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 14 SQL SELECT Lekérdezésre a SELECT utasítás szolgál, mely egy vagy több adattáblából egy eredménytáblát állít el
RészletesebbenAdatbázisok I. Az SQL nyelv
Adatbázisok I Az SQL nyelv SQL (Structured Query Language) Deklaratív nyelv, 1974-ben publikálták Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM)(Structured
RészletesebbenAdatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: 2015.02.15 Szűcs Miklós - ME, ÁIT. 1.
Adatbázis-kezelés 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: 2015.02.15 Szűcs Miklós - ME, ÁIT. 1.o Témakörök Relációs algebra Ellenőrző kérdések 2.o Relációs
Részletesebben2012.05.11. Adatbázisok I A relációs algebra
Adatbázisok I A relációs algebra 2 3 4 1 Feladatok Tantárgy tkód cím kredit oktató Oktató oktkód név tanszék fizetés Feladatok 1. Az átlagos kreditpontszám: Γ avg(kredit) (Tantárgy) 2. A Matematika tanszéken
RészletesebbenAdatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)
Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) 23/1 B IT v: 2018.10.31 MAN DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők
RészletesebbenAdatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok
Adatbázis rendszerek 1. 2. Ea: Viszonyított betűszámtan Relációs algebra alapok 1/81 B ITv: MAN 2017.10.24 Témakörök Relációs algebra Ellenőrző kérdések 2/81 Relációs algebra Műveletek Gyakorlás 3/81 Relációs
RészletesebbenAdatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER
Adatbázisok I 1 SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Módosítás: DML: - rekord felvitel INSERT - rekord törlés
RészletesebbenAdattípusok. Max. 2GByte
Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY
RészletesebbenAB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis
AB1 ZH mintafeladatok 1. Töltse ki, és egészítse ki! Matematikai formalizmus arra, hogy hogyan építhetünk új relációkat a régi relációkból. Az adatoknak egy jól strukturált halmaza, amelyből információ
RészletesebbenAdatbázis-kezelés. Harmadik előadás
Adatbázis-kezelés Harmadik előadás 39 Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord
RészletesebbenKeskeny Zoltán 2007/08 SQL. Structured Query Language. (gyakorlat az SQL2 szabvány alapján) Keskeny Zoltán tanév
SQL Structured Query Language (gyakorlat az SQL2 szabvány alapján) Keskeny Zoltán 2007-2008 tanév Az SQL nyelv SQL = Structured Query Language (struktúrált lekérdező nyelv). A relációs adatbázis-kezelés
RészletesebbenSQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák A SELECT UTASÍTÁS ÁLTALÁNOS ALAKJA (ISM.) SELECT [DISTINCT] megjelenítendő oszlopok FROM táblá(k direkt szorzata) [WHERE feltétel]
RészletesebbenAdatbázis-lekérdezés. Az SQL nyelv. Makány György
Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési
RészletesebbenAdattípusok. Max. 2GByte
Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8
RészletesebbenSQL parancsok feldolgozása
Az SQL nyelv SQL nyelv szerepe Sequental Query Language, deklaratív nyelv Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM) Algoritmus szerkezeteket
RészletesebbenLekérdezések az SQL-ben 1.rész
Lekérdezések az SQL-ben 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.1. Egyszerű (egy-relációs) lekérdezések az SQL-ben - Select-From-Where utasítás
RészletesebbenAdatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17
Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez
RészletesebbenTartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2
Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3
RészletesebbenLekérdezések az SQL-ben 1.rész
Lekérdezések az SQL-ben 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.1. Egyszerű (egy-relációs) lekérdezések az SQL-ben - Select-From-Where utasítás
RészletesebbenAdatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)
Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány) 41/1 B IT v: 2017.10.30 MAN DDL Adatstruktúra definiáló utasítások DDL Data Definition Language Adatszerkezetek (elsősorban táblák) létrehozása,
RészletesebbenAdatbázisok elmélete 9. előadás
Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
Részletesebben5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ SQL gyakorlatban: SELECT záradékai és a kiterjesztett relációs algebra Tankönyv: 5.1.- 5.2. Kiterjesztett relációs algebra
RészletesebbenSQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások
SQL haladó Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások 1 Külső összekapcsolás Összekapcsoljuk R és S relációkat: R C S. R azon sorait,
RészletesebbenAdatbázis rendszerek SQL nyomkövetés
Adatbázis rendszerek 1. 12. SQL nyomkövetés 1/32 B ITv: MAN 2017.10.26 Nyomkövetési feladat 2/32 Gyakorló feladatok Termék-Vásárlás-Vásárló Oktató-Tantárgy-Hallgató 3/32 Gyakorló feladat: Termék-Vásárlás-Vásárló
RészletesebbenAdatbázisok* tulajdonságai
Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az
RészletesebbenAdatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14
Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) 2014. október 22. 2014. október 22. Adatbázisok 1 / 14 SQL nyelv Structured Query Language Struktúrált lekérdez nyelv A
RészletesebbenAdatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31
Adatbázisok 2. gyakorlat SQL 2016. november 12. 2016. november 12. Adatbázisok 1 / 31 SQL nyelv Structured Query Language Struktúrált lekérdez nyelv A relációs adatbáziskezelés szabványos nyelve Két f
RészletesebbenAdatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok
Adatbázis rendszerek 1. 2. Ea: Viszonyított betűszámtan Relációs algebra alapok 52/1 B ITv: MAN 2015.09.08 Témakörök Relációs algebra Ellenőrző kérdések 52/2 Relációs algebra Műveletek Gyakorlás 52/3 Relációs
RészletesebbenGyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.
Adatbázis létrehozása Adatleíró műveletek CREATE DATABASE "tan1" WITH ENCODING= LATIN2 ; vagy parancssorból a terminál alatt $ createdb tan1 E=latin2 Kapcsolódás az adatbázishoz $ psql tan1 Adattábla létrehozása
RészletesebbenAdatbázisok elmélete 9. előadás
Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
RészletesebbenAz SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)
Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL a relációs adatbázis-kezelő rendszerek ma legelterjedtebb szabványosított adatbáziskezelő nyelve. Az IBM dolgozta ki 1983-ban,
RészletesebbenAdatbázis Rendszerek II. 3. SQL alapok
Adatbázis Rendszerek II. 3. SQL alapok 22/1 B IT v: 2016.10.20 MAN Oracle adattípusok Szöveges adattípusok CHAR (1-2000) VARCHAR (1-4000) VARCHAR2 (1-4000, nemzeti karakterekhez) CLOB (max. 8 TB) NCLOB
RészletesebbenSQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére
SQL PÉLDATÁR készült a PTE TTK Iskolai informatika III. kurzus teljesítésére PTE TTK Czimmermann Gergely MA matematika informatika tanár szakos hallgató 2017 Tartalomjegyzék 1. Adatleíró műveletek... 3
RészletesebbenB I T M A N B I v: T 2015.03.01 M A N
Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41 Az SQL jellemzése Az SQL a relációs
RészletesebbenSELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)
Lekérdezések Tartalom Lekérdezések feldolgozási sorrendje Összekapcsolások Operátorok Szűrések Aggregátumok és csoportosítások Csoportos szűrések Rendezések Halmazműveletek Ranking függvények Pivotálás
RészletesebbenSQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik
RészletesebbenRelációs algebra áttekintés és egy táblára vonatkozó lekérdezések
Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.4. Relációs algebra (áttekintés) 5.1.
RészletesebbenSTRUCTURED QUERY LANGUAGE(SQL) - ALAPOK
STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK Az adatbázis-kezelők elvárásai közé tartozik az, hogy legyen egy olyan adatbázis-kezelőktől független nyelv, amely az adatdefiníciós, az adatmanipulációs és a lekérdező
RészletesebbenBEVEZETÉS Az objektum fogalma
BEVEZETÉS Az objektum fogalma Program (1) Adat (2) Objektum Kiadványszerkesztés Word Táblázatkezelés Excel CAD AutoCad Adatbáziskezelés Access 1 Program (1) Adat (2) Objektum Adatmodell (2) A valós világ
RészletesebbenLEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek
LEKÉRDEZÉSEK SQL-BEN A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek RELÁCIÓS ALGEBRA A relációs adatbázisokon végzett műveletek matematikai alapjai Halmazműveletek:
RészletesebbenAdatbázis Rendszerek II. 8. Gyakorló környezet
Adatbázis Rendszerek II. 8. Gyakorló környezet 1/24 B IT v: 2017.10.26 MAN Gyakorló környezet Géptermek 193.6.5.58:8080/apex H16_neptunkód ADMIN neptunkód 2/24 Jelszó váltás 1 2 3 4 3/24 Gyakorló környezet
RészletesebbenADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2013. március 20.
ADATBÁZISOK I. Szerkesztette: Bókay Csongor Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2013. március 20. Ez a Mű a Creative Commons Nevezd meg! - Ne add el!
RészletesebbenTöbb tábla összekapcsolásán alapuló lekérdezések
Több tábla összekapcsolásán alapuló lekérdezések Több táblás lekérdezés EMPLOYEES DEPARTMENTS Az összekapcsolások fajtái Direktszorzat (kereszt-összekapcsolás) Természetes összekapcsolás USING utasítással
RészletesebbenTankönyv példák kidolgozása
Tankönyv példák kidolgozása Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Áttekintés: Rel.algebra és SQL Példák: Tk.2.4.14.Feladatok Tk.54-57.o. 2.4.1.feladat
RészletesebbenTöbb tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.
Több tábla összekapcsolásán alapuló lekérdezések Copyright 2004, Oracle. All rights reserved. Célkitűzés Egynél több táblának egyenlőségen vagy nem-egyenlőségen alapuló összekapcsolást végző SELECT utasítások
RészletesebbenWHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték
WHERE záradék (további lehetıségek) SQL specialitások, amelyek könnyen átírhatóak relációs algebrai kifejezésre (összetett kiválasztási feltételre) BETWEEN.. AND.. intervallumba tartozás IN (értékhalmaz)
RészletesebbenAdatbázisok 1 2013-14 tavaszi félév Vizsgatételsor
Adatbázisok 1 2013-14 tavaszi félév Vizsgatételsor 1. Relációs adatmodell alapjai Adatmodell: Az adatmodell egy jelölésmód egy adatbázis adatszerkezetének a leírására, beleértve az adatra vonatkozó megszorításokat
RészletesebbenAdatbázis, adatbázis-kezelő
Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,
RészletesebbenAz SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).
Az SQL nyelv SQL (Structured Query Language = Strukturált Lekérdező Nyelv). A lekérdezési funkciók mellett a nyelv több olyan elemmel is rendelkezik, amelyek más adatkezelési funkciók végrehajtására is
RészletesebbenADATBÁZIS-KEZELÉS. Relációalgebra, 5NF
ADATBÁZIS-KEZELÉS Relációalgebra, 5NF ABSZTRAKT LEKÉRDEZŐ NYELVEK relációalgebra relációkalkulus rekord alapú tartomány alapú Relációalgebra a matematikai halmazelméleten alapuló lekérdező nyelv a lekérdezés
RészletesebbenTöbbtáblás lekérdezések megjelenítése
Többtáblás lekérdezések megjelenítése Célkitűzés Egynél több táblának egyenlőségen vagy nem-egyenlőségen alapuló összekapcsolást végző SELECT utasítások írása. Egy táblának önmagával történő összekapcsolása.
RészletesebbenSQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések
SQL bevezetés Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések 1 Miért az SQL? Az SQL magas szintű programozási nyelv. A hogyan helyett azt mondjuk meg, hogy mit szeretnénk.
RészletesebbenAdatbázisok-1 előadás Előadó: dr. Hajas Csilla
Adatbázisok-1 előadás Előadó: dr. Hajas Csilla Áttekintés az I.zh-ig Áttekintés az 1ZH-ig // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 Hol tartunk? Mit tanultunk
Részletesebben7. Gyakorlat A relációs adatmodell műveleti része
7. Gyakorlat A relációs adatmodell műveleti része Relációs algebra: az operandusok és az eredmények relációk; azaz a relációs algebra műveletei zártak a relációk halmazára Műveletei: Egy operandusú Két
RészletesebbenAdatbázisok elmélete 10. előadás
Adatbázisok elmélete 10. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004 ADATBÁZISOK ELMÉLETE
RészletesebbenAdatbázis kezelés Delphiben. SQL lekérdezések
Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja
RészletesebbenA relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai
8. gyakorlat Structured Query Language Struktúrált lekérdező nyelv A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai DDL (Data Definition Language) adatstruktúra definiáló
RészletesebbenAdatbázis Rendszerek
Adatbázis Rendszerek Budapesti Műszaki és Gazdaságtudományi Egyetem Fotogrammetria és Térinformatika Tanszék 2010 Dr. Alhusain Othman oalhusain@gmail.com 1 7.1. Bevezetés 7.2. Klasszikus- és relációs-
RészletesebbenRelációs algebrai lekérdezések átírása SQL SELECT-re (példák)
Relációs algebrai lekérdezések átírása SQL SELECT-re (példák) Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Áttekintés: Rel.algebra és SQL Példák: Tk.Termékek
RészletesebbenAdatbázis rendszerek 7. Matematikai rendszer amely foglal magában:
Adatbázis Rendszerek Budapesti Műszaki és Gazdaságtudományi Egyetem Fotogrammetria és Térinformatika Tanszék 2011 Dr. Alhusain Othman oalhusain@gmail.com 7.1. Bevezetés 7.2. Klasszikus- és relációs- algebra
Részletesebben4. Előadás Az SQL adatbázisnyelv
4. Előadás Az SQL adatbázisnyelv Sorváltozók Alkérdések Ismétlődő sorok Összesítések 1 Sorváltozók Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Olyan lekérdezéseknél, amelyik UGYANAZON reláció két
RészletesebbenAdatok szűrése, rendezése
Adatok szűrése, rendezése Célkitűzések Szűrést kifejező lekérdezések végrehajtása A lekérdezés eredményének rendezése &változó használata isql*plus-ban futási időben megadható feltételek céljából A lista
RészletesebbenAdatbázisok elmélete 9. előadás
Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004 ADATBÁZISOK ELMÉLETE
RészletesebbenAccess alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.
Access alapok Megnevezés Művelet Minta Új adatbázis Új / Üres adatbázis.. A tábla mezőinek beállítása tervező nézetben Mezőnév = az adott oszlop neve, Adattípus = az oszlopban szereplő adatok mintája (szöveg,
RészletesebbenSELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP
SELECT * FROM emp; SELECT ename FROM emp; (projekció) SELECT ename FROM emp WHERE ename='jones'; (szelekció) ------------------------------------------ SELECT DISTINCT deptno FROM emp; (distinct) --------------------------------
RészletesebbenHallgató i Ú tmutató. Beadandó anyag követelményei
Hallgató i Ú tmutató Beadandó anyag követelményei A labor során egy SQL szkriptet kell készíteni, amely a kiadott sablonnak felel meg. Ebben egyértelműen látszik, hogy melyik utasítás melyik feladat megoldása.
RészletesebbenBGF. 4. Mi tartozik az adatmodellek szerkezeti elemei
1. Mi az elsődleges következménye a gyenge logikai redundanciának? inkonzisztencia veszélye felesleges tárfoglalás feltételes függés 2. Az olyan tulajdonság az egyeden belül, amelynek bármely előfordulása
RészletesebbenSQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.
SQL gyakorló feladatok 6. Adatbázis gyakorlat 2011. április 5. SQL alapparancsai DDL: - create: táblák létrehozása - alter: táblák (séma) módosítása - drop: táblák törlése DML: - select: adatok lekérdezése
RészletesebbenLekérdezések az SQL SELECT utasítással
Lekérdezések az SQL SELECT utasítással Az SQL SELECT utasítás lehetőségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla Elemi SELECT utasítások SELECT * {[DISTINCT] column expression
RészletesebbenAdatbázis Rendszerek II. 2. Ea: Gyakorló környezet
Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet 26/1 B IT v: 2018.02.21 MAN Gyakorló környezet apex.oracle.com/en/ 26/2 A regisztrációs folyamat 26/3 26/4 26/5 26/6 26/7 26/8 26/9 26/10 26/11 Feladatok
RészletesebbenA RELÁCIÓS ADATMODELL MŰVELETI RÉSZE (RELÁCIÓS ALGEBRA ÉS KALKULUS)
REÁIÓS DMODE MŰVEEI RÉSZE (REÁIÓS ER ÉS KKS) Relációs algebra: reláció struktúrájának felépítése után következhet az adatk felvitele, módsítása és lekérdezése. z adatmdell műveleti része definiálja a rendelkezésre
Részletesebben3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ SQL SELECT - FROM WHERE Alkérdések - Összekapcsolások Tankönyv: 6.3. Alkérdések WHERE záradékban Alkérdések FROM záradékban
RészletesebbenA gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:
1 Adatbázis kezelés 3. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Tábla kapcsolatok létrehozása,
RészletesebbenAdatbázis használat I. 2. gyakorlat
Adatbázis használat I. 2. gyakorlat Tudnivalók Oracle 10g a weben: http://www.oracle.com/technetwork/databa se/database10g/downloads/index.html FF kiírásokat legkésőbb a jövő hétre hozni! 2011. 02. 15.
RészletesebbenAdatbázis rendszerek I Relációs adatmodell műveleti rész (relációs algebra) ME- GEIAL Dr. Kovács László Relációs adatmodell strukturális rész tárolási struktúra séma R(m1,m2, ) adatmodell integritási rész
RészletesebbenAdatbázis Rendszerek II. 2. Gyakorló környezet
Adatbázis Rendszerek II. 2. Gyakorló környezet 37/1 B IT v: 2017.02.11 MAN Gyakorló környezet Géptermek 37/2 Jelszó váltás 1 2 3 4 37/3 Gyakorló környezet II. apex.oracle.com/en/ 37/4 A regisztrációs folyamat
RészletesebbenADATBÁZIS-KEZELÉS FÉLÉVES FELADAT
ÓBUDAI EGYETEM Neumann János Informatikai Kar Nappali Tagozat ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT NÉV: MÁK VIRÁG NEPTUN KÓD: A DOLGOZAT CÍME: Jani bácsi székadatbázisa Beadási határidő: 14. oktatási hét
RészletesebbenAdatbázis használat I. 2. gyakorlat
Adatbázis használat I. 2. gyakorlat Tudnivalók Oracle 10g a weben: http://www.oracle.com/technetwork/database/ database10g/downloads/index.html Egyéb letöltési lehetőség: http://jerry.gorextar.hu/ab1/oracle/
RészletesebbenAdatbázis rendszerek 2. előadás. Relációs algebra
Adatbázis rendszerek. előadás Relációs algebra Molnár Bence Szerkesztette: Koppányi Zoltán Bevezetés Relációs algebra általában A relációs algebra néhány tulajdonsága: Matematikailag jól definiált Halmazelméletből
RészletesebbenBevezetés: az SQL-be
Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak
RészletesebbenMveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.
Mveletek a relációs modellben A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére. Megfogalmaz egy kérést, amelyben leírja, milyen adatokra van szüksége,
RészletesebbenGEIAL Kovács László. GEIAL Kovács László
Adatbázis rendszerek I ciós adatmodell műveleti rész ( ) ME- GEIAL Dr. Kovács LászlL szló ciós adatmodell strukturális részr tárol rolási struktúra ra séma R(m1,m2, ) adatmodell integritási részr ért rték
RészletesebbenSQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER
Adatbázisok I SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Módosítás: DML: - rekord felvitel INSERT - rekord törlés
RészletesebbenAdatbázisok I A relációs algebra
Adatbázisok I A relációs algebra Relációs algebra Az adatmodell műveleti része definiálja a rendelkezésre álló operátorokat. Műveletek típusai: -adat definiáló(ddl) Data DefinitionLanguage -adatkezelő(dml)
RészletesebbenKészítette: Szabóné Nacsa Rozália
Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu 1 Structured Query Language (Struktúrált lekérdező nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány 2 DIAKOK dkód vnév knév 1001 Kiss János
RészletesebbenINTEGER egész típusú érték megadása, hozzá hasonló, de számábrázolási tartományában eltérő típus még a SMALLINT, szinonimája a DECIMAL
5. Az SQL lekérdező nyelv Az SQL a strukturált lekérdező nyelv (Structured Query Language) rövidítése, melyet az IBM dolgozott ki a DB2 relációs adatbáziskezelőjéhez. Ma már a relációs adatbáziskezelők
RészletesebbenADATBÁZISKEZELÉS ADATBÁZIS
ADATBÁZISKEZELÉS 1 ADATBÁZIS Az adatbázis adott (meghatározott) témakörre vagy célra vonatkozó adatok gyűjteménye. - Pl. A megrendelések nyomon követése kereskedelemben. Könyvek nyilvántartása egy könyvtárban.
RészletesebbenADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:
Adatbázisok elmélete 5. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
RészletesebbenA SELECT működése. Ttanar tábla: Tdiak tábla:
A SELECT működése A SELECT utasítás általános formája: SELECT [ALL/DISTINCT] {*/,, } FROM [],, [] [WHERE
RészletesebbenLOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ
LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ Lénárt Balázs tanársegéd TANTERV Hét Dátum Előadó Előadások Időpont: szerda 8:30-10:00, helye: LFSZÁMG Dátum Gyakvezető 1. 9. 11. Tokodi Adatbázis kezelés
RészletesebbenLekérdezések I. Egyszerű választó lekérdezések
Lekérdezés létrehozása: A Varázslóval: Lekérdezések I. Egyszerű választó lekérdezések 1. Lekérdezés sáv Lekérdezés varázsló 2. Tábla (vagy lekérdezés) kiválasztása. 3. Szükséges mezők átvitele a kijelölt
RészletesebbenAdatbáziskezelés. SQL parancsok. Függvények
SQL parancsok Függvények Az SQL függvények csoportosítása Két csoportra oszthatjuk a függvényeket, attól függően, hogy milyen környezetben alkalmazzuk azokat. Amelyek CSAK egy adott adatelemen végrehajthatóak.
RészletesebbenMS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1
SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása
Részletesebben