Lekérdezések az SQL-ben 4.rész

Hasonló dokumentumok
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

WHERE 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

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Az SQL adatbázisnyelv: DML

Lekérdezések az SQL-ben 1.rész

Lekérdezések az SQL-ben 2.rész

Lekérdezések az SQL-ben 1.rész

Csoportosított adatok megjelenítése összesítı függvények használatával. Copyright 2004, Oracle. All rights reserved.

SQL DDL-2 (aktív elemek) triggerek

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

4. Előadás Az SQL adatbázisnyelv

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Adatbázis tartalmának módosítása

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

Relációs algebra 2.rész példák

Tankönyv példák kidolgozása

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

SQL DDL-1: táblák és megszorítások

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

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Bevezetés: az SQL-be

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

Adatbázis tartalmának módosítása. SQL DML utasítások

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázisok* tulajdonságai

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Adatbázisok elmélete 9. előadás

Adatbázisok I A relációs algebra

Az SQL lekérdeznyelv

Adatbázis használat I. 2. gyakorlat

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

A SELECT működése. Ttanar tábla: Tdiak tábla:

Adabáziskezelés gyakorlat SQL

Információs rendszerek Adatbázis-kezelés

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Marosvásárhely. ABR ( Adatbázisrendszerek) 12. Előadás:

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Adatbázis Rendszerek

Adatbázisok tavaszi félév Vizsgatételsor

Lekérdezések az SQL SELECT utasítással. Copyright 2004, Oracle. All rights reserved.

Adatbázisok I. Az SQL nyelv

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

Bódy Bence Az SQL egy újabb példán keresztül

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Bevezetés: Relációs adatmodell

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Csoportosított adatok megjelenítése sorhalmaz függvények használatával

Adatbázis rendszerek SQL nyomkövetés

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Relációs algebra 1.rész alapok

Tranzakciók, nézettáblák, indexek. Párhuzamos folyamatok irányítása Virtuális és materializált nézettáblák Az adathozzáférés felgyorsítása

7. Gyakorlat A relációs adatmodell műveleti része

Analitikus adatfeldolgozás. Adattárház Adatkocka Adatbányászat

Lekérdezések az SQL SELECT utasítással

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázisok 1. Az egyed-kapcsolat modell (E/K)

példa: Legyen egy zenés CD-ket tartalmazó objektum-orientált adatbázis. Feltételezzük: egy zenés CD típusa audio, vagy mp3-as, vagy videoklippeket

Adatbázisok elmélete 8. előadás

Adatbázis használat I. 2. gyakorlat

Gyakorlá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ázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Alkalmazói rendszerek ACCESS ZH - javítókulcs Informatika tanár MSC, levelező tagozat, január 06.

(Cikksorozat a portálról. Átszerkesztette és kiegészítette: Szentendrey Péter) TARTALOM

Adatbázis rendszerek tervezése

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Adatbáziskezelés. SQL parancsok. Függvények

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

B I T M A N B I v: T M A N

Tervezés: Egyed-kapcsolat modell és az SQL DDL: táblák, nézetek

A könyv tartalomjegyzéke

Paraméteres-, összesítı- és módosító lekérdezések

Bevezetés: Relációs adatmodell

SQL parancsok feldolgozása

Átírás:

Lekérdezések az SQL-ben 4.rész Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.4. Relációkra vonatkozó mőveletek (csoportosítás) 1

Összesítések (aggregáció) SELECT listán: <Aggregátor mővelet>(kifejezés) [[AS] onév], SUM, COUNT, MIN, MAX aggregáló mőveleteket, AVG (bevezették ezt is, mivel gyakran kell AVG) a SELECT záradékban alkalmazhatjuk egy oszlopra. COUNT(*) az eredmény sorainak számát adja meg. Itt is fontos a halmaz, multihalmaz megkülönböztetés. pl. SUM(DISTINCT R.A) csak a különbözı értékőeket veszi figyelembe. NULL értékek használata, pl. SUM nem veszi figyelembe (implementáció függı, ellenırizzük le a COUNT-ra - gyak.) 2

Példa: Összesítés A Felszolgál(bár, sör, ár) tábla segítségével adjuk meg a Bud átlagos árát: SELECT AVG(ár) FROM Felszolgál WHERE sör = Bud ; 3

Ismétlıdések kiküszöbölése összesítésben Az összesítı függvényen belül DISTINCT. Példa: hány különféle áron árulják a Bud sört? SELECT COUNT(DISTINCT ár) FROM Felszolgál WHERE sör = Bud ; 4

NULL értékek nem számítanak az összesítésben NULL soha nem számít a SUM, AVG, COUNT, MIN, MAX függvények kiértékelésekor. De ha nincs NULL értéktıl különbözı érték az oszlopban, akkor az összesítés eredménye NULL. Kivétel: COUNT az üres halmazon 0-t ad vissza. 5

Példa: NULL értékek összesítésben SELECT count(*) FROM Felszolgál WHERE sör = Bud ; SELECT count(ár) FROM Felszolgál WHERE sör = Bud ; A Bud sört árusító kocsmák száma. A Bud sört ismert áron árusító kocsmák száma. 6

Csoportosítás SELECT FROM [WHERE ] [GROUP BY kif 1, kif k ] Egy SELECT-FROM-WHERE kifejezést GROUP BY záradékkal folytathatunk, melyet attribútumok listája követ. A SELECT-FROM-WHERE eredménye a megadott attribútumok értékei szerint csoportosítódik, az összesítéseket ekkor minden csoportra külön alkalmazzuk. 7

Példa: Csoportosítás A Felszolgál(bár, sör, ár) tábla segítségével adjuk meg a sörök átlagos árát. SELECT sör, AVG(ár) FROM Felszolgál GROUP BY sör; sör AVG(ár) Bud 2.33 Miller 2.45 8

Példa: Csoportosítás SELECT név, AVG(ár) FROM Látogat L, Felszolgál F WHERE sör = Bud AND L.bár = F.bár GROUP BY név; Sörivó- -kocsma- -ár hármasok a Bud sörre. A sörivók szerinti csoportosítás. 9

A SELECT lista és az összesítések Ha összesítés is szerepel a lekérdezésben, a SELECT-ben felsorolt attribútumok 1. vagy egy összesítı függvény paramétereként szerepelnek, 2. vagy a GROUP BY attribútumlistájában is megjelennek. 10

Helytelen lekérdezés Elsıre sokan gondolhatnák, hogy az alábbi lekérdezés a Bud sört legolcsóbban árusító bárt adja vissza: SELECT kocsma, MIN(ár ár) FROM Felszolgál WHERE sör= Bud ; Valójában ez egy helytelen SQL lekérdezés. 11

Csoportok szőrése: HAVING záradék A GROUP BY záradékot egy HAVING <feltétel> záradék követheti. Ebben az esetben a feltétel az egyes csoportokra vonatkozik, ha egy csoport nem teljesíti a feltételt, nem lesz benne az eredményben. 12

Példa: HAVING A Felszolgál(bár, sör, ár) és Sörök(név, gyártó) táblák felhasználásával adjuk meg az átlagos árát azon söröknek, melyeket legalább három bárban felszolgálnak, vagy Pete a gyártójuk. 13

Megoldás SELECT sör, AVG(ár) FROM Felszolgál GROUP BY sör HAVING COUNT(bár) >= 3 OR sör IN (SELECT név FROM Sörök WHERE gyártó = Pete ); (HAVING ) Sör csoportok, Melyeket legalább három nem-null bárban árulnak, Vagy Pete a gyártójuk. (SELECT ) Sörök, melyeket Pete gyárt. 14

A HAVING feltételére vonatkozó megszorítások Az alkérdésre nincs megszorítás. Az alkérdésen kívül csak olyan attribútumok szerepelhetnek, amelyek: 1. vagy csoportosító attribútumok, 2. vagy összesített attribútomok. (Azaz ugyanazok a szabályok érvényesek, mint a SELECT záradéknál). 15