10. gyakorlat SQL SELECT.

Slides:



Advertisements
Hasonló előadás
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Advertisements

2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 4. Előadás Az SQL adatbázisnyelv Sorváltozók Alkérdések Ismétlődő sorok Összesítések 1.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Analitikus függvények
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Microsoft Access Lekérdezések.
2012. tavaszi félév Vitéz Gergely. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Delphi programozás alapjai
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
Adatbázis gyakorlat – SUBSELECT – Tarcsi Ádám március.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Többtáblás lekérdezések, allekérdezések Rózsa Győző
SQL – DQL (Data Query Language ) adat lekérdezések
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis rendszerek II.
Adatbázis-kezelés.
Adatbáziskezelés Horváth Ernő.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
SQL 1 SEQUEL, Structured English Query Language: SQL ANSI, ISO: SQL86, SQL89, SQL92. Alap (entry), közbenső (intermediate), teljes (full) szint. A DDL.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Részletező csoportosítások Rózsa Győző
ADATBÁZIS HASZNÁLAT I. 2. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
Algebrai műveleti gráf optimalizálása ● Mennyi könyvet készített az idén legtöbbet kinyomtató Budapesti könyvkiadó? ● kiado(kod,nev,cim) ● konyv ( kiado,cim,ar,ev.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
2012. tavaszi félév Véső Tamás. Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevét és a részlegében dolgozók legkisebb és legnagyobb jövedelmét,
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 29.
Részletező csoportosítások Rózsa Győző
Adatbázis használat I. 2. gyakorlat.
ADATBÁZIS HASZNÁLAT I. 3. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
Adatbázis-kezelés SQL-lel
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 10. gyakorlat SQL SELECT, Összekapcsolás, Nézettáblák.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
1 Informatikai Szakképzési Portál Adatbázis kezelés DQL – Adatlekérdező nyelv.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
2. AB gyakorlat Egytáblás csoportosító lekérdezések.
SQL történelem 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Adatbázis-kezelés. Középszint: –1-2 tábla –SQL-nyelv és lekérdező-rács használata –Űrlap és jelentés készítés Emelt szint: –több tábla (kapcsolatok) –több.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Lekérdezések Adott tulajdonságú adatok listázásának módja a lekérdezés. A lekérdezések segítségével az adatbázisból megjeleníthetjük, módosíthatjuk, törölhetjük.
Adatbázisok SQL.
Előadás másolata:

10. gyakorlat SQL SELECT

Az SQL matematikai alapjai Relációs algebra: relációs adatbázistáblákon végzett műveletek Fő műveletek: Direkt szorzat Szelekció  sorok közt válogat бf(T) – „T” tábla, „f” logikai kifejezés Projekció  oszlopok közt válogat πJ(T) – „T” tábla, „J” attribútumlista

Lekérdezés általános alakja Mely táblákból legyen direkt szorzat Mely oszlopok jelennek meg SELECT FROM Logikai kifejezés (mely sorok) WHERE Mi szerint rendezünk ORDER BY GROUP BY Mi szerint csoportosítunk HAVING Csoportok szűrése

Egyszerű SQL lekérdezés SELECT * FROM dolgozo, fizetes;  direkt szorzat Dolgozók neveinek és fizetéseinek lekérdezése: SELECT dNev, osszeg FROM dolgozo, fizetes WHERE dolgozo.fizID = fizetes.fizID ORDER BY dNev ASC; dolgozo fizetes dolgozoID dNev fizID 1 Péter 2 Anna 3 Ádám fizID osszeg 1 20000 2 25000

1. Feladat Honlapom: gyak10_sql_sablon.php Előző órán használt adatbázis: áruk, forgalom táblák Kérdezd le az adatbázisban található árukat: csak a nevük jelenjen meg ABC szerint csökkenő sorrendben rendezve! Az előbbi lekérdezést hajtsd végre úgy, hogy ha több ugyanolyan nevű áru van, akkor ugyanaz a név már ne jelenjen meg még egyszer a listában!

Összesítő függvények használata Használatukkor csoportosítást kell alkalmazni minden olyan megjelenő oszlopra, mely nem szerepel az összesítő függvényben Csoportra vonatkozó feltétel a HAVING után adható meg Pl.: SELECT SUM(osszeg) FROM fizetes;

Összesítő függvények AVG() – átlag COUNT() – sorok száma MIN() – legkisebb érték MAX() – legnagyobb érték SUM() – összeg Pl.: SELECT dNev, MIN(osszeg) FROM dolgozo, fizetes WHERE dolgozo.fizID = fizetes.fizID GROUP BY dNev;

2. Feladat Kérdezd le az áruk adatbázisból és jelenítsd meg egy listában az egyes árukat és a belőlük összesen eladott mennyiséget! Csak azokat az árukat kérdezd le az előbbi módon, amikből több mint 20-at eladtak már!

Speciális logikai kifejezések x IS NULL: akkor igaz, ha x értéke NULL x BETWEEN a AND b: akkor igaz, ha a<=x<=b x IN halmaz: akkor igaz, ha x a halmaz egy elemével megegyezik Halmaz explicit megadása: pl. város IN (‘Szeged’, ‘Budapest’, ‘Pécs’) Halmaz megadása allekérdezéssel X = NULL

Speciális logikai kifejezések (folyt.) x relációjel ALL halmaz: igaz, ha x a halmaz minden elemével a megadott relációban van x relációjel ANY halmaz: igaz, ha x a halmaz valamely elemével a megadott relációban van Pl. fizetés < ANY (10000, 20000, 30000) EXISTS halmaz: igaz, ha a halmaz nem üres EXISTS(allekérdezés): igaz, ha az allekérdezés legalább 1 elemet visszaad

Speciális logikai kifejezések (folyt.) x LIKE minta: igaz, ha x illeszkedik az adott mintára %: tetszőleges karaktersorozat (%Vár u.%) _: tetszőleges karakter (_él) NOT x IS NOT NULL x NOT IN halmaz …

Példák speciális logikai kifejezés használatára Mennyi 10000 és 20000 közötti összegű fizetés van: SELECT COUNT(fizID) FROM fizetes WHERE osszeg BETWEEN 10000 AND 20000; Azon dolgozók nevei, amikben a név ‘Anna’-val kezdődik00000: SELECT dNev FROM dolgozo WHERE dNev LIKE ‘Anna%’;

Allekérdezés: mennyi az adott dolgozó eddigi összes kifizetése? dolgtorzs(dkod, dnev, atlagfiz) kifiz(dkod, osszeg, honap) Írassuk ki azon dolgozók neveit, akiknél az összes kifizetett pénz nagyobb, mint 5000! SELECT dnev FROM dolgtorzs WHERE _________ > 5000; Allekérdezés: mennyi az adott dolgozó eddigi összes kifizetése?

Dolgozó kódja, akiről éppen szó van Allekérdezés (folyt.) Adott dolgozó eddigi kifizetésének lekérdezése: SELECT SUM(osszeg) FROM kifiz WHERE kifiz.dkod = _________ A végső megoldás tehát: SELECT dnev FROM dolgtorzs WHERE (SELECT SUM(osszeg) FROM kifiz WHERE kifiz.dkod = dolgtorzs.dkod) > 5000; Dolgozó kódja, akiről éppen szó van

További allekérdezéses feladatok Írassuk ki azon dolgozók neveit, ahol volt 50000-nél nagyobb kifizetés valamelyik hónapban! SELECT dnev FROM dolgtorzs WHERE dolgtorzs.dkod IN ( SELECT kifiz.dkod FROM kifiz WHERE osszeg>50000 ); Megoldható allekérdezés nélkül? Ez az allekérdezés halmazt ad eredményül.

További allekérdezéses feladatok Töröljük ahhoz a dolgozóhoz tartozó rekordot a dolgtorzs táblából, akihez nem tartozik kifizetés a kifiz táblában! DELETE FROM dolgtorzs WHERE NOT EXISTS ( SELECT kifiz.dkod FROM kifiz WHERE kifiz.dkod = dolgtorzs.dkod );

Köszönöm a figyelmet!