Elemi alkalmazások fejlesztése IV.



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

Elemi alkalmazások fejlesztése IV.

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

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

BEVEZETÉS Az objektum fogalma

Adatbázisok* tulajdonságai

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

Adatbázis-kezelés. 7. SQL Táblák összekapcsolása

Adatbázis használat I. 5. gyakorlat

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

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

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

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

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

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ázis-kezelés, információs-rendszerek

Adatbázisok I A relációs algebra

A könyv tartalomjegyzéke

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK SQL ALAPOK,

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

Adatbázis rendszerek SQL nyomkövetés

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

Java és web programozás

Adatbázisok I. Az SQL nyelv

Adatbázis-kezelés ODBC driverrel

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

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ázis Rendszerek II. 8. Gyakorló környezet

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

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

INFORMATIKAI ALAPISMERETEK

Adatok szűrése, rendezése

SQL parancsok feldolgozása

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

ADATBÁZIS-KEZELÉS. Funkcionális függés, normál formák

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

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

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

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

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


Programozás I gyakorlat

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Bevezetés: az SQL-be

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

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

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

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

Java és web programozás

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

A táblázatkezelő felépítése

2. Az adatbázis-kezelés alapjai

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

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

Adatbázis használat I. 2. gyakorlat

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

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

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

DLookup függvény 1. (5)

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Adatbázisok biztonsága

Belépési útmutató a MIAG weboldalra

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

II. év. Adatbázisok és számítógépek programozása

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

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Párhuzamos programozás

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

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

2012. tavaszi félév Vésı Tamás

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

AWP TELEPÍTÉSE- WINDOWS7 64 OPERÁCIÓS RENDSZEREN

ADATBÁZIS ALAPÚ RENDSZEREK

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

E-ADÓ RENSZER HASZNÁLATI ÚTMUTATÓ

Relációsémák létrehozása SQL nyelvben

ÁFA felhasználói dokumentum Lezárva:

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

Webfejlesztés 4. alkalom

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

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

INFORMATIKAI ALAPISMERETEK

Vizuális programozás gyakorlat

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

ADATBÁZIS RENDSZEREK I BEADANDÓ

ADATBÁZISKEZELÉS ADATBÁZIS

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

ADATBÁZIS HASZNÁLAT I. 4. gyakorlat

2011. március 9. Dr. Vincze Szilvia

Átírás:

SQL STRUKTÚRÁLT (ADATBÁZIS) LEKÉRDEZ NYELV... 2 ADATBÁZIS TÁBLÁZATOK... 2 AZ ISKOLA ADATBÁZIS FELÉPÍTÉSE... 2 DIÁKOK... 2 REGISZTRÁCIÓ... 2 ÓRÁK... 2 A MYSQL ADATBÁZISKEZEL... 3 A MySQL installálása... 3 A MySQL adatbáziskezel használata... 3 MySQL parancsok... 4 ADATBÁZIS LÉTREHOZÁSA: CREATE DATABASE... 5 ADATBÁZIS HASZNÁLATBAVÉTELE: USE... 5 TÁBLÁZAT STRUKTÚRA LÉTREHOZÁSA: CREATE TABLE... 5 TÁBLÁZAT STRUKTÚRA MEGTEKINTÉSE: DESCRIBE... 6 TÁBLÁZAT STRUKTÚRA MÓDOSÍTÁSA: ALTER TABLE... 6 ÚJ ADATSOR BESZÚRÁSA: INSERT... 7 GYAKORLÁS: TANDÍJAK TÁBLA LÉTREHOZÁSA... 7 ADATOK MÓDOSÍTÁSA: UPDATE... 7 ADATSOROK TÖRLÉSE: DELETE... 8 TÁBLÁZAT STRUKTÚRA TÖRLÉSE: DROP TABLE... 8 EGYSZER LEKÉRDEZÉSEK SELECT... 9 SELECT * from diakok;... 9 STATISZTIKAI FÜGGVÉNYEK: MIN, MAX, SUM, AVG, COUNT... 10 MATEMATIKAI M VELETEK ÉS MATEMATIKAI FÜGGVÉNYEK... 10 ÖSSZETETT LEKÉRDEZÉSEK SELECT... 11 Példa...11 Példa:...11 ÖSSZESÍTÉS KÉSZÍTÉSE: GROUP BY... 12 Példa...12 FELTÉTELES ÖSSZESÍTÉS KÉSZÍTÉSE: HAVING... 12 Példa...12 RENDEZETT LISTA KÉSZÍTÉSE: ORDER BY... 13 TARTALMAZÁS FELTÉTEL: IN ÉS BETWEEN... 13 TÖBB TÁBLÁZAT ÖSSZEKAPCSOLÁSA: JOIN... 14 Szabóné Nacsa Rozália: nacsa@inf.elte.hu 1. oldal

SQL Struktúrált (adatbázis) lekérdez nyelv Az SQL (Structured Query Language - Struktúrált lekérdez nyelv) relációs adatbázisok kezelésére kifejlesztett szabvány, amely alkalmazható relációs adatbázisok létrehozására, módosítására, valamint arra, hogy az így létrehozott adatbázisból különféle adatokat nyerjünk ki és jelenítsünk meg. Néhány relációs adatbáziskezel rendszer: Oracle, Sybase, Microsoft SQL Server, Access, Ingres, MySQL. Valamennyi relációs adatbáziskezel rendszer értelmezi a legalapvet bb SQL parancsokat, az összetettebb parancsok azonban az egyes rendszereknél eltér ek lehetnek. Adatbázis táblázatok Egy relációs adatbázis egy vagy több táblázatból áll. Az adatokat és az adatbázisra vonatkozó információkat ezen táblázatok (relációk) tartalmazzák. A táblázatoknak egyedi nevük van. Az adatbázis tárolja az oszlop egyedi nevét, adata típusát és egyéb tulajdonságait. Az Iskola adatbázis felépítése DIÁKOK dkód vnév knév 1001 Kiss János 1002 Nagy János 1003 Nagy Katalin 1004 Szabó Kinga 1005 Kiss Hajnalka 1006 Nagy Benedek 2001 Szabó Péter 2002 Kiss Katalin 2003 Nagy János 2004 Szabó Benedek REGISZTRÁCIÓ dkód okód dátum 1001 nem01 2002-05-07 1002 ang03 2002-05-14 1003 ang01 2002-05-14 1004 nem01 2002-05-07 1005 ang01 2002-05-09 1006 ang03 2002-05-14 2001 ang03 2002-05-09 2002 ang01 2002-05-07 2003 nem01 2002-05-14 2004 ang03 2002-05-09 2004 nem01 2002-05-09 ÓRÁK okód tárgy szint nap kezdete vége ang01 angol 1 Hétfö 08:00:00 10:00:00 ang02 angol 1 Hétfö 10:00:00 12:00:00 ang03 angol 2 Kedd 08:00:00 10:00:00 nem01 német 2 Kedd 10:00:00 12:00:00 nem02 német 1 Hétfö 10:00:00 12:00:00 Megjegyzés: A táblázatokban szürkével jelölt oszlopok a táblázat kulcsmez i. Ezeknek az adatoknak egyedieknek kell lennie. (Primary key) 2. oldal

A MySQL adatbáziskezel Ebben a fejezetben az SQL (Structured Query Language - Struktúrált lekérdez nyelv) relációs adatbázisok kezel nyelv használatával szeretnénk megismerkedni. Ahhoz, hogy a nyelv parancsait kipróbálhassuk, szükségünk van egy él adatbáziskezel re. Mi erre a célra a MySQLAB által kifejlesztett, szabadon forgalmazott MySQL adatbáziskezel rendszert választottuk. (www.mysql.com), amely több platformra is létezik. A MySQL installálása Ha Ön olyan gépnél dolgozik, amelyre még nem installálták fel a mysql-t, akkor hajtsa végre az 1-4 lépéseket: 1. A mysql.com weboldalról töltse le a mysql-3.23.52-win.zip, és a mysql++-1.7.1-1- win32-vc++.zip fájlokat. 2. A mysql-3.23.51-win.zip kicsomagolása után indítsa el a setup.exe programot. Legyen a célkönyvtár neve mysql. 3. Csomagolja ki a mysql++-1.7.1-1-win32-vc++.zip fájlt. Legyen a célkönyvtár neve szintén mysql. 4. A mysql\bin\winmysqladmin.exe program segítségével elindíthatja, bezárhatja, módosíthatja a My szervert. Megjegyzés: Ha parancsablakból elindítja a mysql\bin\mysql.exe programot, akkor itt közvetlenül adhat ki parancsokat a MySQL adatbáziskezel nek. A MySQL futtatásához számítógépünknek rendelkeznie kell TCP/IP kapcsolattal. Hasznos információkat találhat a mysql/doc alkönyvtárban. A MySQL adatbáziskezel használata Ha parancsablakból elindítjuk a mysql\bin\mysql.exe programot, akkor itt közvetlenül adhatunk ki parancsokat a My databáziskezel nek. (el tte a winmysqladmin.exe programmal el kell indítani egy adatbáziskezel szervert) 3. oldal

MySQL parancsok Help (\h) Display this help.? (\?) Synonym for `help'. Clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. Ego (\G) Send command to mysql server, display result vertically. Exit (\q) Exit mysql. Same as quit. Go (\g) Send command to mysql server. Note (\t) Don't write into outfile. Print (\p) Print current command. Quit (\q) Quit mysql. Rehash (\#) Rebuild completion hash. Source (\.) Execute a SQL script file. Takes a file name as an argument. Status (\s) Get status information from the server. Tee (\T) Set outfile [to_outfile]. Append everything into given outfile. Use (\u) Use another database. Takes database name as argument. Saját jegyzeteim 4. oldal

Adatbázis létrehozása: CREATE DATABASE CREATE DATABASE adatbázis neve; A MySQL a c:\mysql\data alkönyvtárban létrehoz egy adatbázis neve nev alkönyvtárat. Az SQL parancsokat MINDIG le kell zárni egy PONTOSVESSZ VEL. Adatbázis használatbavétele: USE USE adatbázis neve; Az adatbázist minden felhasználásnál használatba kell venni. Táblázat struktúra létrehozása: CREATE TABLE Az SQL-ben a CREATE TABLE utasítás segítségével hozunk létre táblázatot (alaprelációt). Egyszer create parancs: CREATE TABLE táblanév (oszlop1 típus, oszlop2 típus, oszlop3 típus,...); Create parancs megszorítással: CREATE TABLE táblanév (oszlop1 típus [megszorítás], oszlop2 típus [megszorítás],...) CREATE TABLE diakok (dkod INT(4) PRIMARY KEY NOT NULL, vnev VARCHAr(10), knev VARCHAR(10)); CREATE TABLE REGISZTRACIO (dkod INT(4) NOT NULL, okod CHAR(4) NOT NULL, datum DATE, PRIMARY KEY(dkod,okod)); CREATE TABLE orak (okod CHAR(5) PRIMARY KEY NOT NULL, targy CHAR(10) NOT NULL, szint INT(1), nap VARCHAR(9), kezdete TIME, vege TIME); A tábla neve bet vel kezd dhet, belsejében bet ket, aláhúzás jeleket és számokat lehet használni. A név ne legyen 30 jelnél hosszabb, és ne használjuk az SQL foglalt szavait (min pl. select, create, describe, where, stb.) A típusban definiálhatjuk, milyen adatot tárolunk az adott oszlopban. A PRIMARY KEY jelzi, hogy az oszlopban minden értéknek egyedinek kell lennie. Figyeljük meg, hogy a regisztracio táblában két oszlop közösen alkotja az els dleges kulcsot. Leggyakoribb típusok: CHAR(méret): VARCHAR(méret): INT(méret): DATE: TIME: Fix, méret hosszúságú karakterlánc. max: 255 hosszú. változó (maximum méret) hosszúságú karakterlánc. egész szám dátum ( éé-hh-nn alakban); id ( oo:pp:mm alakban) 5. oldal

Táblázat struktúra megtekintése: DESCRIBE DESCRIBE táblanév; DESCRIBE DIAKOK; Field Type Null Key Default Extra dkod int(4) PRI 0 vnev varchar(10) YES NULL knev varchar(10) YES NULL DESCRIBE REGISZTRACIO; Field Type Null Key Default Extra dkod int(4) PRI 0 okod char(4) PRI datum date YES NULL DESCRIBE ORAK; Field Type Null Key Default Extra okod varchar(5) PRI targy varchar(10) YES NULL szint int(1) 0 nap varchar(9) YES NULL kezdete time YES NULL vege time YES NULL Táblázat struktúra módosítása: ALTER TABLE Létez tábla struktúrájának módosítása: új oszlop beszúrása, oszlopnév/tulajdonságok módosítása. ALTER [IGNORE] TABLE táblanév alter_spec néhány alter_specifikáció: ADD [COLUMN] oszlop_def [FIRST AFTER oszlopnév ] or ADD [COLUMN] (oszlop_def, oszlop_def,...) or CHANGE [COLUMN] régi_oszlopnév oszlop_def or MODIFY [COLUMN] oszlop_def or DROP [COLUMN] oszlopnév or DROP PRIMARY KEY or RENAME [TO] új_tablanév or ORDER BY oszlop oszlop_def: oszlopnév típus [megszorítás] Példa: ALTER TABLE diakok CHANGE vnev vnev VARCHAR(15) not null; 6. oldal

Új adatsor beszúrása: INSERT Egy új sort az insert paranccsal szúrhatunk be a táblázatunkba. INSERT into táblanév (els _oszlop_neve,...,utolsó_oszlop_neve) VALUES (els _érték,...utolsó_érték); Ha ki szeretné listázni a táblázatot, akkor adja ki a select * from táblanév; parancsot! INSERT INTO diakok VALUES ((1001, Kiss, János ); INSERT INTO orak VALUES ( ang01, angol,1, Hétf, 08:00:00, 10:00:00); INSERT INTO regisztracio VALUES (1001, nem01, 2002-05-07 ); Gyakorlás: Tandíjak tábla létrehozása Hozzunk létre egy új táblázatot az alábbiak szerint! TANDIJAK okod tandij ang01 5000 ang02 10000 ang03 4000 nem01 6000 nem02 7000 CREATE TABLE tandijak (okod CHAR(5) PRIMARY KEY NOT NULL, tandij INT(5)); INSERt INTO tandijak VALUES("ang01",5000); INSERT INTO tandijak VALUES("ang02",10000); INSERT INTO tandijak VALUES("nem01",6000); INSERT INTO tandijak VALUES("nem02",7000); INSERT INTO tandijak VALUES("ang03",4000); Adatok módosítása: UPDATE Az Update parancsot használjuk egy adott feltételnek eleget tév rekordkészlet módosítására. UPDATE táblanév" SET oszlopnév új_érték1[,köv_oszlopnév = új_érték2...] WHERE oszlop1 OPERATOR érték [ AND OR oszlop2 OPERATOR érték ]; Az alábbi paranccsal áttehetjük az ORAK táblázat valamennyi hétf i 10-12-ig tartott óráját szerda: 8-10-ig-re. UPDATE orak SET kezdete= 08:00:00, vege= 10:00:00, nap= Szerda WHERE nap= Hétfö AND kezdete= 10:00:00 ; 7. oldal

Adatsorok törlése: DELETE DELETE FROM táblanév WHERE oszlop1 OPERATOR érték [ AND OR oszlop2 OPERATOR érték ]; Figyelem: Ha nem adunk WHERE kiegészítést, akkor a táblázat összes sorát törli. NEM KÉRDEZ!!! Az alábbi parancs törli az ORAK táblázatunkból a 1 szint (alapfokú) német órákat. DELETE FROM orak WHERE targy= német AND szint=1; Táblázat struktúra törlése: DROP TABLE DROP TABLE táblanév; A fenti parancs végrehajtása után nem lesz többé az adatbázisunkban táblanév nev táblázat. NEM KÉRDEZ!!! Saját jegyzeteim 8. oldal

Egyszer lekérdezések Select A SELECT paranccsal gy jthetjük ki az adatbázisunkból az általunk megfogalmazott feltételeknek eleget tév adatokat. A SELECT parancs egyszer sített formája: SELECT oszlop1 [oszlop2, oszlop3, stb.] FROM táblanév [WHERE feltétel] A SELECT kulcsszót követ oszlopnevekkel adjuk meg, mely oszlopokat szeretnénk az eredménylistában megjeleníteni. A FROM szócskát követ táblanév jelöli ki azt a táblázatot, amelyb l az eredménylistát fel szeretnénk építeni. A WHERE kiegészítésben megfogalmazhatjuk, hogy milyen feltételeknek eleget tév adatok/rekordok kerüljenek be az eredménybe. Feltételes operátorok a WHERE kiegészítésben: =, >, <, >=, <=, <> or!=, LIKE, ahol a LIKE mintailleszt operátorral a % jelet helyettesít ként használva adhatunk meg feltételt. SELECT * from diakok; SELECT dkod,knev FROM diakok WHERE vnev="nagy"; SELECT dkod,datum FROM regisztracio WHERE okod LIKE '%01'; dkod vnev knev 1001 Kiss János 1002 Nagy János 1003 Nagy Katalin 2001 Szabó Péter 2002 Kiss Katalin 2003 Nagy János 1004 Szabó Kinga 1005 Kiss Hajnalka 2004 Szabó Benedek 1006 Nagy Benedek dkod knev 1002 János 1003 Katalin 2003 János 1006 Benedek Nagyék listája dkod dátum 1001 2002-05-07 1003 2002-05-14 1004 2002-05-07 1005 2002-05-09 2002 2002-05-07 2003 2002-05-14 2004 2002-05-09 Az ang01és nemö1 csoport listája 9. oldal

Statisztikai függvények: min, max, sum, avg, count MIN Az adott oszlop legkisebb értéke MAX Az adott oszlop legnagyobb értéke SUM Az adott oszlop adatainak összege AVG Az adott oszlop adatainak átlaga COUNT Az adott oszlopban szerepl sorok száma COUNT(*) A táblázatban szerepl sorok száma SELECT COUNT(*) FROM diakok; SELECT AVG(tandij) FROM tandijak; Count(*) 10 Avg(tandij) 6400 Matematikai m veletek és matematikai függvények Matematikai m veletek: +, -, *, /, % (moduló) Matematikai függvények: ABS(x) SIGN(X) MOD(X,Y) POWER(X,Y) ROUND(X) ROUND(X,D) SQRT(X) x abszolút értéke x el jelét l függ en értéke -1, 0, vagy 1 (negatív, zéró, vagy pozitív) Ugyanaz, mint az x%y x y Egészre kerekített érték D db tizedesre kerekített érték x négyzetgyöke SELECT okod,round(tandij/15) FROM tandijak; okod round(tandij/15) ang01 333 ang02 667 nem01 400 nem02 467 ang03 267 Saját jegyzeteim 10. oldal

Összetett lekérdezések SELECT SELECT [ALL DISTINCT] oszlop1[,oszlop2] FROM table1[,table2] [WHERE feltétel] [GROUP BY oszloplista] [HAVING feltételek] [ORDER BY oszloplista [ASC DESC] ] A SELECT parancs öt b vítményt tartalmaz, bár csak a FROM b vítmény használata kötelez. Példa SELECT neve, kora, fizetése FROM alkalmazottak WHERE kora > 40; A DISTINCT kulcsszót akkor használjuk, ha az eredményben az ismétl d sorokat csak egyszer szeretnénk megjeleníteni. Példa: SELECT okod FROM regisztracio; okod nem01 ang03 ang01 nem01 ang01 ang03 ang03 ang01 nem01 ang03 nem01 SELECT DISTINCT okod FROM regisztracio; okod nem01 ang03 ang01 Azon órák listája, amelyekre már jelentkezett valaki. Saját jegyzeteim 11. oldal

Összesítés készítése: GROUP BY SELECT oszlop1, [SUM(oszlop2)] FROM táblák listája [GROUP BY oszlopok listája;] A GROUP BY kikötéssel összegy jtjük azokat a sorokat, amelyek értéke a jelölt oszlopban megegyezik, és ezekre a sorokra együttesen végzi el a megadott m veletet. Példa Szeretném megtudni, hogy melyik órára hányan diák regisztrált. Saját jegyzeteim SELECT okod, COUNt(dkod) FROM regisztracio GROUP BY okod; okod count(dkod) ang01 3 ang03 4 nem01 4 Feltételes összesítés készítése: HAVING SELECT oszlop1, [SUM(oszlop2)] FROM táblák listája [GROUP BY táblák listája] [HAVING feltételek;] A GROUP BY b vítménnyel kialakított csoportokból csak azok kerülnek be a listába, amelyek a HAVING feltételnek is eleget tesznek. Példa Keresem azokat az órákat, ahol 3-nál többen regisztráltak. Saját jegyzeteim SELECT okod, COUNT(dkod) FROM regisztracio GROUP BY okod HAVING COUNT(dkod) > 3; okod count(dkod) ang03 4 nem01 4 12. oldal

Rendezett lista készítése: ORDER BY SELECT oszlop1, [SUM(oszlop2)] FROM táblák listája [ORDER BY oszlopok listája [ASC DESC] ]; Az ORDER BY egy olyan tetsz legesen választható kiegészítés, amellyel az ORDER BY után megadott oszlopok szerint rendezett listát készíthetünk. Kászítsünk névsorszerint rendezett listát a nem János diákokról! Saját jegyzeteim SELECT vnev, knev, dkod FROM diakok WHERE knev<>"jános" ORDER BY vnev, knev; vnev knev dkod Kiss Hajnalka 1005 Kiss Katalin 2002 Nagy Benedek 1006 Nagy Katalin 1003 Szabó Benedek 2004 Szabó Kinga 1004 Szabó Péter 2001 Tartalmazás feltétel: IN és BETWEEN SELECT oszlop1, SUM(oszlop2) FROM táblázatok listája [WHERE oszlop3 IN (értékek listája)]; SELECT oszlop1, SUM(oszlop2) FROM táblázatok listája [WHERE oszlop3 BETWEEN érték1 AND érték2] ; Az IN feltételes operátor egy igazi halmazelméleti eleme operator. Segítségével eldönthetjük, hogy az eredményadatok adott oszlopának értéke benne van-e az IN után megadott listában. Az eredmény listába csak azok a tételek kerülnek be, amelyek eleget tesznek az eleme feltételnek. A BETWEEN feltételes operátorral eldönthetjük, hogy a megjelölt oszlop adatai benne vannak-e a megadott intervallumban. Példa: Az alábbi paranccsal Katalin és Kinga keresztnev diákjainkat listázhatjuk ki. SELECT vnev, knev FROM diakok WHERE knev IN ("Katalin","Kinga"); 13. oldal

Több táblázat összekapcsolása: JOIN Lehet ség van olyan lekérdezések készítésére, ahol egyszerre több táblázatot is összekapcsolunk. Az összekapcsolás a táblázatok vessz vel elválasztott felsorolásával történik. Ha kiadjuk a SELECT regisztracio.okod,tandij FROM regisztracio, tandijak; parancsot, akkor kapunk egy nagyon hosszú listát és abban a meglepetésben lesz részünk, hogy mindenki mindenkivel össze van kapcsolva ( ez a két halmaz direkt szorzata ). Értelmesebb végeredményt kapunk, ha a fenti, nagyon hosszú listából kisz rjük azokat a sorokat, amelyekben az okod megegyezik (a két táblázatot az okod oszlop mentén kötjük össze). Ehhez az alábbi parancsot kell kiadni: SELECT regisztracio.okod,tandij FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod; okod tandíj ang01 5000 ang01 5000 ang01 5000 nem01 6000 nem01 6000 nem01 6000 nem01 6000 ang03 4000 ang03 4000 ang03 4000 ang03 4000 Ha csoportonkénti bontásban szeretnénk megkapni a tandíjbevételeket, akkor a fenti parancsot tovább kell finomítani: SELECT regisztracio.okod,sum(tandij) FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod GROUP BY okod; okod sum(tandij) ang01 15000 ang03 16000 nem01 24000 14. oldal

Ha csak azokat a csoportokat szeretnénk kilistázni, amelyeknél a tandíjbevétel 15000 Ft felett van, akkor az alábbiak szerint kell módosítani a parancsot: SELECT regisztracio.okod, SUM(tandij) FROM regisztracio, tandijak WHERE regisztracio.okod = tandijak.okod GROUP BY okod HAVING SUM(TANDIJ) > 15000; okod sum(tandij) ang03 16000 nem01 24000 Módosítsuk a fenti listát oly módon, hogy a tantárgy nevét is megjelentetjük az eredmény listában. SELECT regisztracio.okod, orak.targy, SUM(tandij) FROM regisztracio, tandijak,orak WHERE regisztracio.okod=tandijak.okod AND regisztracio.okod=orak.okod GROUP BY okod; okod targy sum(tandij) ang01 angol 15000 ang03 angol 16000 nem01 német 24000 15. oldal