Adatbázisok I. Az SQL nyelv



Hasonló dokumentumok
Adatbázisok I A relációs algebra

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

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

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ázisok* tulajdonságai

Adatok szűrése, rendezése

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

ADATBÁZISKEZELÉS ADATBÁZIS

BEVEZETÉS Az objektum fogalma

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

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

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

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

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

Adatbázis használat I. 2. gyakorlat


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

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

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

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

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

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

SQL parancsok feldolgozása

Adatbázis rendszerek SQL nyomkövetés

Adatbázisok I A relációs algebra

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

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

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.

Adatbázis, adatbázis-kezelő

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

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

GEIAL Kovács László. GEIAL Kovács László

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

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

2. Az adatbázis-kezelés alapjai

SQL feladatok megoldasa

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

NYILVÁNOS KÖNYVTÁRI KATALÓGUSOK

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

A térinformatika t. Az informáci. ciós s rendszerek funkciói. Az adatok vizsgálata

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

Adatbázis használat I. 2. gyakorlat

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

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

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

A könyv tartalomjegyzéke

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

Térinformatika. j informáci. ciós s rendszerek funkciói. Kereső nyelvek (Query Languages) Az adatok feldolgozását (leválogat

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

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

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

évi nyári olimpiai játékok

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

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.

INFORMATIKAI ALAPISMERETEK

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

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

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

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

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

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

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

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

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

Adatbázisok, térképek, információs rendszerek. Elek István

Programozás és adatbázis kezelés PHP ben

Informatikus informatikus Térinformatikus Informatikus T 1/9

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

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

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

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

Felvételi vizsga Mesterképzés, gazdaságinformatikus szak BME Villamosmérnöki és Informatikai Kar június 2.

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

5. modul - Adatbázis-kezelés

INFORMATIKA. PRÓBAÉRETTSÉGI május KÖZÉPSZINT. Pontozási és javítási útmutató

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

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

ADATBÁZISOK I. ELŐADÁS ÉS GYAKORLAT JEGYZET

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

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

Adatbáziskezelés - SQL. Forrás: dr. Kovács László: Adatbázisok tervezésének és kezelésének módszertana Computerbooks

1. fejezet Microsoft Excel 2010 Tartománynevek... 3

Tankönyv példák kidolgozása

INFORMATIKAI ALAPISMERETEK

Statisztikai szoftverek Molnár Gábor József

MS Access Feladatgyűjtemény

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

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázis Rendszerek

Átírás:

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 English Query Language) Codd., 1971 Strukturált, Angolnyelvre épülő Lekérdező nyelv 2

SQL nyelv Relációs adatmodellen alapuló Szabványosított nyelv 1986 SQL86 1989 SQL89 1992 SQL92 SQL:1999 SQL:2003 SQL:2006 SQL:2008 Kiterjed az adatkezelő tevékenységekre: Adatdefiniáló(DDL) Adatkezelő(DML) Lekérdező(DQL) Vezérlő(DCL) 3 SQL nyelv Descriptív, leíró, a műveleti lépéseket kell megadni Magasszintű parancsok Nem tartalmaz vezérlési, IO elemeket Halmazorientált Bővülő nyelv Van interaktív és beépülő változata NEM adatbázis kezelő rendszer, az adatbázis kezelő integráns része Nem tartalmaz algoritmikus elemeket 4

SQL felhasználási lehetőségei Fejlesztőeszközökbe beépítve (űrlap, jelentés) CASE eszközök Alkalmazásgenerátorokban pl. unipaas Interaktív felhasználás (SQL konzol) Ad hoc lekérdezések adatbázis karbantartás Más programnyelvekbe beépítve procedurális nyelvekben (pl. C, C#, C++, Java, Php, stb.) adatbázis-kezelők saját procedurális kiegészítőibe (PL/SQL) SQL szkriptek 5 SQL szintakszisa 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 SELECT projekciós rész FROM alaptáblák WHERE szelekciós rész GROUP BY csoportképzőkif. HAVING csoportszűrő feltétel ORDER BY mezőlista [ASC DESC] ; 6

Szelekciós feltétel A feltétel megfogalmazásánál használható operátorok: relációs operátorok (=,!=, <, >,!<,!>, <>, <=, >=) algebrai operátorok (+,-,*,/) logikai operátorok (AND, OR, NOT) o1 [NOT] BETWEEN o2 AND o3:az o1 érték az o2 és az o3 közéesik o1 [NOT] IN (o2 [,o3,...,oi]): az o1 érték a megadott értékhalmazba esik o1 [NOT] LIKE 'ss' [ESCAPE 'x']: az o1 sztringhasonlítása a mintához, ahol %: tetszőleges karaktersorozatot helyettesít _: egyetlen egy karaktert helyettesít o1 IS [NOT] NULL: annak vizsgálata, hogy az o1 üres-e 7 AUTO Példa relációk TUL RSZ TIP SZIN EVJ AR 1 BKX-720 Opel Bordó 1991 1000000 1 CMT-111 Golf Piros 1981 350000 2 AAA-156 Trabant Fehér 1985 100000 3 LUI-999 Opel Kék 1991 450000 1 KJS-234 Lada Kék 1989 275000 EMBER ID NEV SZULEV CIM 1 Béla 1975 Budapest 2 Géza 1979 Miskolc 3 Feri 1974 Pécs 8

Példák Autók rendszámai: Emberek neve és címe: SELECT rsz FROM auto; SELECT nev, cím Eredmény: FROM ember; Eredmény: RSZ BKX-720 CMT-111 AAA-156 LUI-999 KJS-234 NEV CIM Béla Budapest Géza Miskolc Feri Pécs 9 Példa Az emberek minden adatát listázzuk ki: SELECT * FROM ember; Eredmény: ID NEV SZULEV CIM 1 Béla 1975 Budapest 2 Géza 1979 Miskolc 3 Feri 1974 Pécs A * karakter jelöli, hogy minden mezőre kíváncsiak vagyunk 10

Példa Az autó típusok listája: SELECT tip FROM auto; TIP Opel Golf Trabant Opel Lada Lista ismétlés nélkül: SELECT DISTINCT tip FROM auto; TIP Opel Golf Trabant Lada 11 Al lekérdezések (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éstmindig 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) 12

Az Al-SELECT operátorai Az al-lekérdezéseredmé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 m IN (al-select); SELECT FROM WHERE m (relop) ANY (al-select); SELECT FROM WHERE m (relop)all (al-select); SELECT FROM WHERE EXISTS (al-select); (relop): tetszőleges relációs operátor ANY : a halmaz bármely eleméhez hasonlít, ha egyet talál igazzal tér vissza ALL : a halmaz minden eleméhez hasonlít, ha akár egyre nem teljesül hamisat ad vissza EXISTS : az eredményhalmaz üres-e (ha üres, akkor hamissal tér vissza) 13 Példák al-select-re Annak az autónak a rendszáma, amelynek ára kisebb mint valamely piros autó ára: SELECT rszfrom autówhere ár < ANY (SELECT ár FROM autó WHERE szin= piros ); A piros autók áránál kisebb áru autók rendszáma: SELECT rszfrom autówhere ár < ALL (SELECT ár FROM autó WHERE szin= piros ); Azok az emberek, akiknek nincs autójuk: SELECT e.név, e.cím FROM ember e WHERE NOT EXISTS (SELECT * FROM autó a WHERE a.tulaj=e.id); SELECT név FROM ember WHERE ID NOT IN (SELECT tulfrom autó); 14

Példák al-select-re Írassuk ki a kék színűautótulajdonosainak nevét: SELECT név, cím FROM ember WHERE idin(select tul FROM auto WHERE szin= kék ); NEV Béla Feri CIM Budapest Pécs 15 Összesített, aggregált értékek Csoportokra képeznek egyértékű mezőt. Min(k) Max(k) AVG(k) SUM(k) COUNT(k) 16

SQL Feladatok Tantárgy Oktató tkód cím kredit oktató okód Név tanszék fizetés N:M 17 SQL Feladatok 1. Adjuk meg az oktatók nevét névsorba rendezve: SELECT név FROM oktató ORDER BY név; 2. Az Oktatók összes adata, fizetésük csökkenő sorrendjében: SELECT * FROM oktató ORDER BY fizetés DESC; 3. A Matematika tanszéken oktatók neve: SELECT név FROM oktató WHERE tanszék='matematika'; 18

Feladatok 4. Az 5 kreditnél többet érőtantárgyak kódja és címe: SELECT tkód, cím FROM tantárgy WHERE kredit>5; 5. Azoknak az oktatóknak a neve, akiknek nincs tantárgya: SELECT névfrom oktatówhere okódnot IN (SELECT oktató FROM tantárgy); 6. Azoknak az oktatóknak a neve, akiknek nincs 5 kreditnél többet érő tantárgya: SELECT névfrom oktatówhere okódnot IN (SELECT oktató FROM tantárgy WHERE kredit>5); 19 Feladatok 7. Az átlagos kreditpontszám: SELECT avg(kredit) FROM tantárgy; 8. A Matematika tanszéken oktatók létszáma: SELECT count(*) FROM oktató WHERE tanszék= Matematika ; 9. A legnagyobb kreditpontszámútantárgyak címe: SELECT cím FROM tantárgy WHERE kredit = (SELECT max(kredit) FROM tantárgy); 20

Feladatok 10. Tanszékenként az oktatók létszáma: SELECT tanszék, count(*) FROM oktató GROUP BY tanszék; (+létszám szerint csökkenőbe rendezve: ORDER BY count(*) DESC;) 11. Saját tanszékükre jellemző átlagnál kevesebbet kereső oktatók neve: SELECT o1.név FROM oktató o1 WHERE o1.fizetés < (SELECT avg(o2.fizetés) FROM oktató o2 WHERE o1.tanszék=o2.tanszék); 12. Tanszékek listája ismétlődés nélkül: SELECT DISTINCT tanszék FROM oktató; 21 SQL Feladatok 13. A 150 és 220 eftközött keresőoktatók: SELECT * FROM oktató WHERE fizetés BETWEEN 150000 AND 220000; VAGY: SELECT * FROM oktató WHERE fizetés >= 150000 AND fizetés <= 220000; 22

Ellenőrző feladatok 1. Írassuk ki azokat az autókat, amelyek ára az átlagár alatt van. 2. Írassuk ki a legidősebb autórendszámát, típusát és évjáratát 3. Írassuk ki az autók összértékét! 23