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

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

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

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

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) október október 22. Adatbázisok 1 / 14

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázis használat I. 2. gyakorlat

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

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

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

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

Adatbázisok I. Az SQL nyelv

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

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.

BEVEZETÉS Az objektum fogalma

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

Adatbázis használat I. 2. gyakorlat

Adatbázisok* tulajdonságai

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

Adatok szűrése, rendezése

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

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

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

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

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

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

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

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

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

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

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

Adatbázisok I A relációs algebra

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

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

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

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.

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

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

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

SQL parancsok feldolgozása

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

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

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

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

Adatbázisok II. rész

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

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

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

ADATBÁZISKEZELÉS ADATBÁZIS

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

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

Adatbázis rendszerek SQL nyomkövetés

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

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

INFORMATIKAI ALAPISMERETEK

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

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

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

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ázisrendszerek Tervezése Közgazdászoknak Munkapéldány

Tankönyv példák kidolgozása

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

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

2015/10/14 14:45 1/32 Emelet szint

Adatbázis, adatbázis-kezelő

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

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

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.

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

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

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

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

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

Adabáziskezelés gyakorlat SQL

SQL feladatok megoldasa

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

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

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

Óravázlat. az ECDL oktatócsomaghoz. 5. modul. Adatbáziskezelés. Krea Kft Budapest, Szőlő u 21. Tel/fax: / krea@krea.

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

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

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

Adatbázis rendszerek Gy: DQL Lekérdezések

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

SQL DDL-2 (aktív elemek) triggerek

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

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

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

É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

LBRA6i integrált rendszer

Az SQL lekérdeznyelv

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

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

Átírás:

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]; projekció Descartes-szorzat szelekció csoportonként összevonás csoport-szelekció rendezés DISTINCT: azonos sorokból csak egyet tart meg x DESC: x oszlop szerint csökkenő sorrendbe rendez

SELECT FROM SELECT

SELECT A SELECT utáni oszloplista tetszőleges kifejezéseket is tartalmazhat Az eredménytábla oszlopainak elnevezésére alias nevek is megadhatók Alias név megadása: név AS másodnév (MySQL-ben elhagyható az AS ) Összesítő függvények is használhatók, amelyek egy oszlop értékeiből egyetlen értéket hoznak létre

Összesítő függvények AVG() átlag COUNT() sorok száma MIN() legkisebb érték MAX() legnagyobb érték SUM() összeg

SELECT FROM SELECT WHERE

SELECT FROM SELECT WHERE ORDER BY

WHERE szűrőben használható Relációjelek: <, >, <=, >=, =,!=, <> Logikai műveletek: AND, OR, NOT Speciális logikai kifejezések (lásd következő dia)

Speciális logikai kifejezések x is NULL: x értéke NULL (nem = jellel!) x BETWEEN a AND b: a x b EXISTS lekérdezés: lekérdezés nem üres halmazt ad vissza x IN halmaz: x megegyezik a halmaz egy elemével x LIKE minta: karaktersorozat illeszkedik a mintára % : tetszőleges karaktersorozat _ : tetszőleges karakter NOT NULL, NOT EXISTS, NOT IN,

Példa: zenei adatbázis ELŐADÓ(előadó_kód, név, együttes, együttes_kód, szüldátum) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) SZÁM(lemez_kód, cím, hossz) együttes: 0 szóló előadó, 1 együttes együttes_kód: ha együttes tagja ELŐADÓ egyed előadó_kódja különben NULL (szóló előadó esetén)

Példa (projekció + rendezés) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) Lemezek címe és ára cím szerinti ABC-sorrendben: SELECT cím, ár FROM Lemez ORDER BY cím;

Példa (szelekció) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) 2013-ban kiadott lemezek: SELECT * FROM Lemez WHERE kiadás_éve = 2013;

Példa (természetes összekapcsolás) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) SZÁM(lemez_kód, cím, hossz) Milyen számok vannak a Best Of ABBA albumon? SELECT Szám.cím FROM Szám, Lemez WHERE Lemez.lemez_kód = Szám.lemez_kód AND Lemez.cím = 'Best Of ABBA'

Példa (természetes összekapcsolás) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) SZÁM(lemez_kód, cím, hossz) Milyen számok vannak a Best Of ABBA albumon? SELECT Szám.cím FROM Szám INNER JOIN Lemez ON Szám.lemez_kód = Lemez.lemez_kód WHERE Lemez.cím = 'Best Of ABBA'

Példa (alias nevek) ELŐADÓ(előadó_kód, név, együttes, együttes_kód, szüldátum) Kik a 30Y együttes aktuális tagjai? SELECT Tag.név FROM Előadó AS Tag, Előadó AS Együttes WHERE Tag.együttes_kód = Együttes.előadó_kód AND Együttes.név = '30Y'

Példa (összesítő függvény) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) ELŐADÓ(előadó_kód, név, együttes, együttes_kód, szüldátum) Összesen mennyibe kerülnek a 2008 után kiadott Republiclemezek? Mennyi a legolcsóbb és a legdrágább? SELECT SUM(ár),MIN(ár),MAX(ár) FROM Lemez,Előadó WHERE Lemez.előadó_kód = Előadó.előadó_kód AND előadó.név = 'Republic'

Példa (speciális logikai függvények) ELŐADÓ(előadó_kód, név, együttes, együttes_kód, szüldátum) Listázzuk ki azon szóló előadók születési dátumát, akik 1970. jan. 1. és 1980. jan. 1. között születtek, és legalább három szóból áll a nevük! SELECT név, szüldátum FROM Előadó WHERE együttes = 0 AND együttes_kód IS NULL AND szüldátum BETWEEN '1970-01-01' AND '1980-01-01' AND név LIKE '% % %'

Példa (speciális logikai függvények) ELŐADÓ(előadó_kód, név, együttes, együttes_kód, szüldátum) Cher és Madonna születési dátuma: SELECT szüldátum FROM Előadó WHERE név IN ('Cher', 'Madonna')

GROUP BY + HAVING A tábla sorainak csoportonkénti összesítésére szolgál Egy csoportba azok a sorok tartoznak, amelyekre a GROUP BY záradékban megadott oszloplista értéke azonos A SELECT utáni oszloplistában az összesítő függvényen kívül csak olyan oszlop adható meg, ami a GROUP BY-ban is szerepel Az összesítendő csoportok szűrhetők a HAVING záradékban megadott feltétellel

Szemléltetés a MIN függvényre SELECT B, MIN(A) FROM T GROUP BY B x 4 y 6 z 2 T tábla: A B C D E 5 x 6 x 4 x 7 x 8 x 6 y 7 y 2 z 5 z 2 z

Szemléltetés a MIN függvényre SELECT B, MIN(A) FROM T GROUP BY B HAVING MIN(A)<5 x 4 y 6 z 2 T tábla: A B C D E 5 x 6 x 4 x 7 x 8 x 6 y 7 y 2 z 5 z 2 z

Szemléltetés a MIN függvényre SELECT B, MIN(A) FROM T GROUP BY B SELECT B, MIN(A) FROM T GROUP BY B HAVING MIN(A)<5 B MIN(A) x 4 y 6 z 2 B MIN(A) x 4 z 2

Példa (GROUP BY) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) Listázzuk ki csökkenő sorrendben, hogy melyik kiadó hányféle lemezt adott ki! SELECT kiadó, COUNT(*) FROM Lemez GROUP BY kiadó ORDER BY COUNT(*) DESC

Példa (HAVING) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) Csak azon kiadókra listázzuk az előbbi darabszámot, amelyeknek legalább 50 fajta lemezük van! SELECT kiadó, COUNT(*) FROM Lemez GROUP BY kiadó HAVING COUNT(*) >= 50 ORDER BY COUNT(*) DESC

Példa (HAVING vs WHERE) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) Azon kiadókra listázzuk a 2000-nél korábban kiadott lemezek számát, amelyeknek ilyenből legalább 50 van! SELECT kiadó, COUNT(*) FROM Lemez WHERE kiadás_éve < 2000 GROUP BY kiadó HAVING COUNT(*) >= 50 ORDER BY COUNT(*) DESC

Alkérdés Valamely SQL utasítás belsejében szereplő SELECT művelet Például egy SELECT utásítás WHERE feltételében előfordulhat SELECT utasítást tartalmazó logikai kifejezés Ügyelni kell a típuskompatibilitásra Például egy A = x összehasonlításnál ha az A attribútum egy szám, akkor x helyén csak olyan SELECT utasítás lehet, ami egyetlen számot ad vissza

Példa (Alkérdés) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) Írassuk ki a legolcsóbb lemez(ek) címét! SELECT cím FROM Lemez WHERE ár = (SELECT MIN(ár) FROM Lemez)

Példa (Alkérdés) LEMEZ(lemez_kód, kiadó, kiadás_éve, előadó_kód, cím, ár) SZÁM(lemez_kód, cím, hossz) Írassuk ki azon lemezek címét, amelyeken mindegyik szám legfeljebb 4 perces! (A hosszt másodpercekben számítva tároljuk.) SELECT cím FROM Lemez WHERE NOT EXISTS (SELECT * FROM Szám WHERE Szám.lemez_kód = Lemez.lemez_kód AND hossz > 240 )

Nézettáblák Virtuális tábla származtatott adatokkal Automatikusan követi az alapadatok változását. Létrehozása: CREATE VIEW táblanév [(oszloplista)] AS alkérdés;

Nézettáblák (példa) CREATE VIEW Előadó_Cím_Ár AS SELECT név, cím, ár FROM Lemez, Előadó WHERE Lemez.előadó_kód = Előadó.előadó_kód