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

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

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

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

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

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

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

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

BEVEZETÉS Az objektum fogalma

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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.

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

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

Adatbázisok I A relációs algebra

Adatbázisok* tulajdonságai

Adatbázis-kezelés. Harmadik előadás

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

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

Adatbázis használat I. 2. gyakorlat

Adatbázis rendszerek SQL nyomkövetés

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

Keskeny Zoltán 2007/08 SQL. Structured Query Language. (gyakorlat az SQL2 szabvány alapján) Keskeny Zoltán tanév

Adatbázis-kezelés, információs-rendszerek

Adatok szűrése, rendezése

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázisok I. Az SQL nyelv

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

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

SQL parancsok feldolgozása

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

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

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

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

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:

Adatbázis használat I. 2. gyakorlat

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

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

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

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Több tábla összekapcsolásán alapuló lekérdezések

Adatbázis rendszerek tervezése

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

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Java és web programozás

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

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

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

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

INFORMATIKAI ALAPISMERETEK

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

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

Adatbázis kezelés Delphiben. SQL lekérdezések

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

Több tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.

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

Az SQL adatbázisnyelv: DML

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

Többtáblás lekérdezések megjelenítése

Készítette: Szabóné Nacsa Rozália

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

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

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

Adatbázis Rendszerek II. 8. Gyakorló környezet

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ KÖZÉPSZINT% GYAKORLATI ÉRETTSÉGI VIZSGA. É R E T T S É G I V I Z S G A május 15.

Tankönyv példák kidolgozása

Adatbázisok II. rész

Elemi alkalmazások fejlesztése IV.

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

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

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

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.

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

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

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni:

ÉRETTSÉGI VIZSGA EMELT SZINT% GYAKORLATI. ÉRETTSÉGI VIZSGA május 14. Összesen: 45 pont. Egy adott távhoz tartozó díjazás meghatározása 4 pont

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

Az SQL lekérdeznyelv

SQL feladatok megoldasa

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

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

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

JAVÍTÁSI-ÉRTÉKELÉSI INFORMATIKA ÚTMUTATÓ. ÉRETTSÉGI VIZSGA október 19. ÉRETTSÉGI VIZSGA EMELT SZINT% GYAKORLATI MINISZTÉRIUMA EMBERI ERFORRÁSOK

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

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

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázis rendszerek Ea: Esqúel. Structured Query Language

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

2. Az adatbázis-kezelés alapjai

Access gyakorlati feladatok lépésről lépésre

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Java és web programozás

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázis, adatbázis-kezelő

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

Átírás:

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 Szintaxis: SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel]; Ha a SELECT utáni oszloplista helyére *-ot írunk, akkor az összes oszlop értéke lesz lekérdezhet A FROM utáni táblanév listában több tábla is szerepelhet, ilyenkor ezek Descartes-szorzata képz dik WHERE feltétellel a számunkra relevánsak kiválasztása 2015. október 26. Adatbázisok 2 / 14

SQL SELECT Kib vített szintaxis: SELECT [DISTINCT] oszlop 1,..., oszlop n FROM tábla 1,..., tábla n [WHERE feltétel] [GROUP BY oszlop 1,..., oszlop n ] [HAVING feltétel] [ORDER BY oszlop 1,..., oszlop n ] 2015. október 26. Adatbázisok 3 / 14

El z órai példa módosítása CREATE TABLE Osztaly( osztalykod INT(3) PRIMARY KEY, osztalynev CHAR(20), vezadoszam DECIMAL(10) ); CREATE TABLE Dolgozo( adoszam DECIMAL(10) PRIMARY KEY, nev CHAR(30), lakcim CHAR(40) DEFAULT 'ismeretlen', zetes INT(6), osztalykod INT(3) REFERENCES Osztaly(osztalykod) ); 2015. október 26. Adatbázisok 4 / 14

Példák Legegyszer bb SELECT utasítás egy tábla teljes tartalmának lekérdezése: SELECT * FROM Dolgozo; Ha csak bizonyos adatokra vagyunk kíváncsiak (adószám, név, zetés): SELECT adoszam, nev, zetes FROM Dolgozo; A WHERE feltétel megadásával a sorokra adhatunk meg sz rési feltételeket Pl.: az összes 50000 forintnál nagyobb zetés dolgozók nevének kilistázása SELECT DISTINCT nev FROM Dolgozo WHERE zetes > 50000; DISTINCT - az azonos sorok közül csak egyet jelenít meg 2015. október 26. Adatbázisok 5 / 14

Függvények Összesít függvények COUNT (oszlop): sorok számát adja vissza (oszlop helyett * is szerepelhet, ilyenkor nem lehet DISTINCT) SUM (oszlop): adott oszlopban szerepl értékek összegét adja vissza MIN (oszlop): adott oszlopban szerepl értékek minimumát adja vissza MAX (oszlop): adott oszlopban szerepl értékek maximumát adja vissza AVG (oszlop): adott oszlopban szerepl értékek átlagát adja vissza Az oszlopnév el tt szerepelhet a DISTINCT kulcsszó 2015. október 26. Adatbázisok 6 / 14

Példák Dolgozók számának lekérdezése SELECT COUNT(*) FROM Dolgozo; Hány osztályon vannak dolgozók? SELECT COUNT(DISTINCT osztkod) FROM Dolgozo; A dolgozók átlagzetése SELECT AVG(zetes) FROM Dolgozo; A dolgozók zetésének összege SELECT SUM(zetes) FROM Dolgozo; 2015. október 26. Adatbázisok 7 / 14

Függvények Logikai függvények: AND - és kapcsolat OR - vagy kapcsolat NOT - negáció, tagadás Speciális logikai függvények: 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 halmaz egy elemével x LIKE minta - igaz, ha az x karaktersorozat megfelel a megadott mintának _ : egy tetsz leges karakter % : tetsz leges szám tetsz leges karakter 2015. október 26. Adatbázisok 8 / 14

Példák Az 50000 és 70000 forint között keres k dolgozók neve SELECT DISTINCT nev FROM Dolgozo WHERE zetes BETWEEN 50000 AND 70000; Az 1-es, 2-es vagy 5-ös osztályon dolgozók nevei SELECT DISTINCT nev FROM Dolgozo WHERE osztkod IN(1, 2, 5); Az összes "M" bet vel kezd d dolgozó kilistázása, akinek a nevében a harmadik bet "r" bet SELECT DISTINCT nev FROM Dolgozo WHERE nev LIKE 'M_r%'; 2015. október 26. Adatbázisok 9 / 14

Összesítés, csoportosítás A tábla sorainak oszloponkénti összesítésére a GROUP BY oszloplista parancs szolgál Egy csoportba azon sorok tartaóoznak, melyeknél az oszloplista értéke azonos Pl.: Dolgozó táblában osztályonkénti átlagzetés SELECT osztkod, AVG(zetes) FROM Dolgozo GROUP BY osztkod; A SELECT után az összesít függvényen kívül csak olyan oszlopnév feltüntetésének van értelme, amely a GROUP BY-ban is szerepel A GROUP BY által leképezett csoportok között a HAVING feltétel alparancs segítségével válogathatunk 2015. október 26. Adatbázisok 10 / 14

Példa Kérdezzük le, hogy hány dolgozó van az egyes osztályokon, listázzuk ki az osztály kódját és mellé az osztályon dolgozók számát! Csak azon osztályokat jelenítsük meg, amelyeken legalább 2 ember dolgozik! SELECT osztkod, COUNT(adoszam) AS dolgozok_szama FROM Dolgozo GROUP BY osztkod HAVING dolgozok_szama 2; 2015. október 26. Adatbázisok 11 / 14

Rendezés Az eredménytábla sorait rendezhetjük az ORDER BY segítségével Alapértelmezés szerint a rendezés növekv sorrendben történik (ASC), ha fordítva szerenénk, akkor a DESC kulcsszó írandó a megfelel oszlopnév után Pl.: Dolgozók és zetéseik listája az osztálykódok növekv, ezen belül a zetések csökken sorrendjében: SELECT osztkod, nev, zetes FROM Dolgozo ORDER BY osztkod, zetes DESC; 2015. október 26. Adatbázisok 12 / 14

Két tábla összekapcsolása Tfh. a dolgozók listáját úgy szeretnénk kiíratni, hogy ne az osztálykód szerepeljen a dolgozó adatai mellett, hanem az osztály neve SELECT adoszam, nev, lakcim, zetes, osztalynev FROM Dolgozo, Osztaly WHERE Dolgozo.osztkod = Osztaly.osztalykod; A táblák Descartes szorzatából csak azok a sorok maradnak meg, amelyek kapcsolódnak Ezt természetes összekapcsolásnak/bels összekapcsolásnak (natural join/inner join) nevezzük SELECT adoszam, nev, lakcim, zetes, osztalynev FROM Osztaly INNER JOIN Dolgozo ON Dolgozo.osztkod = Osztaly.osztalykod; 2015. október 26. Adatbázisok 13 / 14

Továbbfejlesztett példa Kérdezzük le, hogy hány dolgozó van az egyes osztályokon, listázzuk ki az osztály nevét és mellé az adott osztályon dolgozók számát! Csak azokat az osztályokat jelenítsük meg, amelyeken legalább 2 ember dolgozik! SELECT osztalynev, COUNT(adoszam) AS dolgozok_szama FROM Dolgozo, Osztaly WHERE Dolgozo.osztkod = Osztaly.osztalykod GROUP BY osztkod HAVING dolgozok_szama 2; 2015. október 26. Adatbázisok 14 / 14