Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu 1
Structured Query Language (Struktúrált lekérdező nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány 2
DIAKOK dkód vnév knév 1001 Kiss János 1002 Nagy János... 2004 Szabó Benedek Relációs adatbázis REGISZTRACIO dkód okód dátum 1001 nem01 2002-05-07 1002 ang03 2002-05-14... 2004 nem01 2002-05-09 Reláció ORAK 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 3
DIAKOK 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 ORAK ISKOLA okód tárgy szint nap kezdete vége REGISZTRACIO 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 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 4
DIAKOK ISKOLA REGISZTRACIO dkód vnév knév dkód okód dátum 1001 Kiss János 1001 nem01 2002-05-07 1002 Nagy János 1002 ang03 2002-05-14 1003 Nagy Katalin 1003 ang01 2002-05-14 1004 Szabó Kinga 1004 nem01 2002-05-07 1005 Kiss Hajnalka 1005 ang01 2002-05-09 1006 Nagy Benedek 1006 ang03 2002-05-14 2001 Szabó Péter 2001 ang03 2002-05-09 2002 Kiss Katalin 2002 ang01 2002-05-07 2003 Nagy János 2003 nem01 2002-05-14 2004 Szabó Benedek 2004 ang03 2002-05-09 ORAK 2004 nem01 2002-05-09 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 5
Kulcs DIAKOK 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 ORAK ISKOLA Kulcs REGISZTRACIO 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 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 6
MySQL: parancssor ablak Microsoft Windows XP [verziószám: 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\User>cd \mysql\bin C:\mysql\bin>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 3.23.51-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Ha parancssor ablakból indítjuk a mysql.exe programot, akkor közvetlenül adhatunk ki parancsokat a MySQL adatbáziskezelőnek. 7
MySQL parancsok: Help mysql> \h MySQL commands: Note that all text commands must be first on line and end with ';' 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. Connection id: 5 (Can be used with mysqladmin kill) 8
Adatbázis létrehozása: CREATE DATABASE Szintaxis: CREATE DATABASE adatbázis neve ; Példa: mysql> create database iskola; Query OK, 1 row affected (0.00 sec) mysql> 9
Adatbázis használatbavétele: USE Szintaxis: USE adatbázis neve ; Példa: mysql> use iskola; Database changed mysql> 10
Egyszerűbb adattípusok CHAR(méret): VARCHAR(méret): INT(méret): DATE: TIME: fix (maximum 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) VARCHAR Kiss Péter DATE 2002-09-23 TIME 08:30:00 11
CREATE TABLE - Diakok; dkód vnév knév CREATE TABLE diakok (dkod int(4) PRIMARY KEY NOT NULL, vnev VARCHAR(10), knev VARCHAR(10)); mysql> CREATE TABLE diakok -> (dkod int(4) PRIMARY KEY NOT NULL, -> vnev VARCHAR(10), -> knev VARCHAR(10)); Query OK, 0 rows affected (0.05 sec) 12
dkód okód dátum CREATE TABLE - Regisztracio; CREATE TABLE regisztracio ( dkod INT(4) NOT NULL, okod CHAR(4) NOT NULL, datum DATE, PRIMARY KEY(dkod,okod) ); mysql> CREATE TABLE regisztracio -> ( dkod INT(4) NOT NULL, -> okod CHAR(4) not null, -> datum DATE, -> PRIMARY KEY(dkod,okod) ); Query OK, 0 rows affected (0.01 sec) 13
CREATE TABLE - Orak; okód tárgy szint nap kezdete vége 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); mysql> 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); Query OK, 0 rows affected (0.01 sec) 14
DESCRIBE diakok; Field Type Null Key Default Extra dkod int(4) PRI 0 vnev varchar(10) YES NULL knev varchar(10) YES NULL CREATE TABLE diakok (dkod int(4) PRIMARY KEY NOT NULL, vnev VARCHAR(10), knev VARCHAR(10)); 15
DESCRIBE regisztracio; Field Type Null Key Default Extra dkod int(4) PRI 0 okod char(4) PRI datum date YES NULL CREATE TABLE regisztracio ( dkod INT(4) NOT NULL, okod CHAR(4) NOT NULL, datum DATE, PRIMARY KEY(dkod,okod) ); 16
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 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); 17
Táblázat struktúra módosítása: ALTER ALTER [IGNORE] TABLE táblanév alter_spec [,oszlopnév...] alter_spec: or or or or or or or ADD [COLUMN] oszlop_def [FIRST AFTER oszlopnév ] ADD [COLUMN] (oszlop_def, oszlop_def,...) CHANGE [COLUMN] régi_oszlopnév oszlop_def MODIFY [COLUMN] oszlop_def DROP [COLUMN] oszlopnév DROP PRIMARY KEY RENAME [TO] új_tablanév ORDER BY oszlop oszlop def: oszlopnév típus [megszorítás] 18
Field Type Null Key Default Extra dkod int(4) PRI 0 vnev varchar(10) YES NULL knev varchar(10) YES NULL ALTER TABLE diakok CHANGE vnev vnev VARCHAR(15) NOT NULL; Field Type Null Key Default Extra dkod int(4) PRI 0 vnev varchar(15) YES NULL knev varchar(10) YES NULL mysql> alter table diakok change vnev vnev varchar(15) not null; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 19
Új adatsor beszúrása: INSERT dkód vnév knév 1001 Kiss János INSERT INTO diakok VALUES (1001, Kiss, János ); mysql> INSERT INTO diakok -> VALUES (1001,'Kiss','János'); Query OK, 1 row affected (0.02 sec) 20
Új adatsor beszúrása: INSERT dkód vnév knév 1001 Kiss János 1002 Nagy János INSERT INTO diakok VALUES (1001, Kiss, János ); INSERT INTO diakok VALUES (1002, Nagy, János ); mysql> INSERT INTO diakok -> VALUES (1002,'Nagy','János'); Query OK, 1 row affected (0.01 sec) 21
INSERT - Orak; okód tárgy szint nap kezdete vége ang01 angol 1 Hétfö 08:00:00 10:00:00 INSERT INTO orak VALUES ( ang01, angol, 1, Hétfő, 08:00:00, 10:00:00 ); mysql> insert into orak VALUES('nem01','angol',1,'Hétfö','08:00:00','10:00:00'); Query OK, 1 row affected (0.00 sec) 22
INSERT - Regisztracio; dkód okód dátum 1001 nem01 2002-05-07 INSERT INTO regisztracio VALUES (1001, nem01, 2002-05-07 ); mysql> INSERT INTO regisztracio VALUES (1001,'nem01','2002-05-07'); Query OK, 1 row affected (0.00 sec) 23
Update - példa 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 UPDATE orak SET kezdete= 08:00:00, vege= 10:00:00, nap= Szerda WHERE nap= Hétfö AND kezdete= 10:00:00 ; okód tárgy szint nap kezdete vége ang01 angol 1 Hétfö 08:00:00 10:00:00 ang02 angol 1 Szerda 08:00:00 10: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 Szerda 08:00:00 10:00:00 24
Delete - példa 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 DELETE FROM orak WHERE targy= német AND szint=1; 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 25
Delete - példa 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 Ha nem adunk where kiegészítést, akkor a táblázat összes sorát törli. NEM KÉRDEZ!!! DELETE FROM orak; okód tárgy szint nap kezdete vége 26
1 2 3 4 5 6 7 8 9 DIAKOK 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 SELECT * FROM diakok; 27
1 2 3 4 DIAKOK 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 SELECT dkod,knev FROM diakok WHERE vnev="nagy"; 28
REGISZTRACIO SELECT dkod,datum FROM regisztracio WHERE okod LIKE '%01'; 1 2 3 4 5 6 7 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 29
Összetett lekérdezések - példa REGISZTRACIO SELECT okod FROM regisztracio; 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 30
Összetett lekérdezések - példa REGISZTRACIO SELECT DISTINCT okod FROM regisztracio; 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 31
Összetett lekérdezések - példa DIAKOK 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 SELECT COUNT(*) FROM diakok; 32
Összetett lekérdezések - példa TANDIJAK SELECT AVG (tandij) FROM tandijak; okod tandij ang01 5000 ang02 10000 ang03 4000 nem01 6000 nem02 7000 33
Statisztikai függvények MIN MAX SUM AVG COUNT COUNT(*) Az adott oszlop legkisebb értéke Az adott oszlop legnagyobb értéke Az adott oszlop adatainak összege Az adott oszlop adatainak átlaga Az adott oszlopban szereplő sorok száma A táblázatban szereplő sorok száma 34
Matematikai műveletek Matematikai függvények abs(x) sign(x) mod(x,y) floor(x) ceiling(x) or ceil(x) 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 pozitiv) Ugyanaz, mint az x%y Az x-nél kisebb vagy egyenlő legnagyobb egész érték Az x-hez legközelebb álló, x-nél nagyobb vagy egyenlő érték x y Egészre kerekített érték d db tizedesre kerekített érték x négyzetgyöke 35
GROUP BY - Példa REGISZTRACIO SELECT okod, COUNT (dkod) FROM regisztracio GROUP BY okod; 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 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 elvégezzük el a megadott műveletet. 36
Having - Példa REGISZTRACIO SELECT okod, COUNT (dkod) FROM regisztracio GROUP BY okod HAVING COUNT (dkod) > 3; 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 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. 37
Group by - Having REGISZTRACIO 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 SELECT okod, COUNT (dkod) FROM regisztracio GROUP BY okod; okod count(dkod) ang01 3 ang03 4 nem01 4 SELECT okod, COUNT (dkod) FROM regisztracio GROUP BY okod HAVING COUNT (dkod) > 3; okod count(dkod) ang03 4 nem01 4 38
4 6 1 3 7 2 5 Order by - Példa DIAKOK 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 SELECT vnev, knev, dkod FROM diakok WHERE knev<>"jános" ORDER BY vnev, knev; 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. 39
In - Példa DIAKOK dkód vnév knév SELECT vnev, knev FROM diakok WHERE knev IN ("Katalin","Kinga"); 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 Az IN feltételes operátor egy igazi halmazelméleti eleme operator. Az eredmény listába csak azok a tételek kerülnek be, amelyek eleget tesznek az eleme feltételnek. 40
Between - példa DIAKOK 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 SELECT dkod, vnev, knev FROM diakok WHERE dkod BETWEEN 1003 AND 2002 ORDER BY dkod; A BETWEEN feltételes operátorral eldönthetjük, hogy a megjelölt oszlop adatai benne vannak-e a megadott intervallumban. 41
Több táblázat összekapcsolása: JOIN SELECT regisztracio.okod,tandij FROM tandijak, regisztracio; TANDIJAK okod tandij ang01 5000 ang02 10000 ang03 4000 nem01 6000 nem02 7000 REGISZTRACIO 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 42
SELECT * FROM regisztracio, tandijak; ang01 5000 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 43
SELECT * FROM regisztracio, tandijak; ang01 5000 ang02 10000 dkód okód dátum 1001 nem01 2002-05-07 1002 dkód okód dátum ang03 2002-05-14 1003 1001 ang01 nem01 2002-05-07 2002-05-14 1004 1002 ang03 2002-05-14 nem01 2002-05-07 1005 1003 ang01 ang01 2002-05-14 2002-05-09 1006 1004 ang03 nem01 2002-05-07 2002-05-14 2001 1005 ang03 ang01 2002-05-09 2002-05-09 2002 1006 ang01 ang03 2002-05-14 2002-05-07 2003 2001 ang03 2002-05-09 nem01 2002-05-14 2004 2002 ang03 ang01 2002-05-07 2002-05-09 2004 2003 nem01 nem01 2002-05-14 2002-05-09 2004 ang03 2002-05-09 2004 nem01 2002-05-09 44
SELECT * FROM regisztracio, tandijak; ang01 5000 ang02 10000 ang03 4000 nem01 6000 nem02 7000 dkód okód dátum 1001 nem01 2002-05-07 1002 dkód okód dátum ang03 2002-05-14 1001 nem01 2002-05-07 1003 ang01 2002-05-14 1002 dkód ang03 okód2002-05-14 dátum 1004 nem01 2002-05-07 1003 1001 ang01 nem01 2002-05-14 2002-05-07 1005 ang01 2002-05-09 1004 1002 nem01 ang03 2002-05-07 2002-05-14 1006 ang03 dkód 2002-05-14 okód dátum 1005 1003 ang01 ang01 2002-05-09 2002-05-14 2001 ang03 1001 2002-05-09 nem01 2002-05-07 1006 1004 ang03 nem01 2002-05-14 2002-05-07 2002 ang01 1002002-05-07 2001 1005 ang03 ang01 dkódang03 2002-05-09 2002-05-09 okód2002-05-14 dátum 2003 nem01 1003 2002-05-14 2002 1006 ang01 ang03 1001 ang01 2002-05-07 2002-05-14 nem01 2002-05-14 2002-05-07 2004 ang03 1004 2002-05-09 2003 2001 nem01 ang03 1002 nem01 2002-05-14 2002-05-09 ang03 2002-05-07 2002-05-14 2004 nem01 1005 2002-05-09 2004 2002 ang03 ang01 1003 ang01 2002-05-09 2002-05-07 ang01 2002-05-09 2002-05-14 1006 2004 2003 nem01 nem01 1004 ang03 2002-05-14 2002-05-09 2002-05-14 nem01 2002-05-07 2001 ang03 2002-05-09 2004 ang03 1005 2002-05-09 ang01 2002-05-09 2004 2002 ang01 2002-05-07 nem01 1006 2002-05-09 ang03 2002-05-14 2003 2001 nem01 ang03 2002-05-14 2002-05-09 2004 2002 ang03 ang01 2002-05-09 2002-05-07 2004 2003 nem01 nem01 2002-05-09 2002-05-14 2004 ang03 2002-05-09 2004 nem01 2002-05-09 45
SELECT * FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod; ang01 5000 ang02 10000 ang03 4000 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 nem02 7000 nem01 6000 46
SELECT * FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod; dkód okód dátum ang01 5000 ang02 10000 ang03 4000 nem02 7000 1001 nem01 2002-05-07 1002 ang03 dkód 2002-05-14 okód dátum 1003 ang01 1001 2002-05-14 nem01 2002-05-07 1004 nem01 1002 2002-05-07 ang03 2002-05-14 1005 ang01 1003 2002-05-09 ang01 2002-05-14 1006 ang03 1004 2002-05-14 nem01 2002-05-07 2001 ang03 1005 2002-05-09 ang01 2002-05-09 2002 ang01 1006 2002-05-07 ang03 2002-05-14 2003 nem01 2001 2002-05-14 ang03 2002-05-09 2004 ang03 2002 2002-05-09 ang01 2002-05-07 2004 nem01 2003 2002-05-09 nem01 2002-05-14 2004 ang03 2002-05-09 2004 nem01 2002-05-09 nem01 6000 47
SELECT * FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod; ang01 5000 ang02 10000 ang03 4000 nem02 7000 nem01 6000 dkód okód dátum 1001 nem01 2002-05-07 1002 ang03 dkód 2002-05-14 okód dátum 1003 ang01 1001 2002-05-14 nem01 2002-05-07 1004 nem01 1002 2002-05-07 ang03 dkód okód 2002-05-14 dátum 1005 ang01 1003 2002-05-09 ang01 1001 2002-05-14 nem01 2002-05-07 1006 ang03 1004 2002-05-14 nem01 1002 2002-05-07 ang03 2002-05-14 dkód okód dátum 2001 ang03 1005 2002-05-09 ang01 1003 2002-05-09 ang01 2002-05-14 1001 nem01 2002-05-07 2002 ang01 1006 2002-05-07 ang03 1004 2002-05-14 nem01 2002-05-07 1002 ang03 2002-05-14 dkód okód dátum 2003 nem01 2001 2002-05-14 ang03 1005 2002-05-09 ang01 2002-05-09 1003 ang01 2002-05-14 1001 nem01 2002-05-07 2004 ang03 2002 2002-05-09 ang01 1006 2002-05-07 ang03 2002-05-14 1004 nem01 2002-05-07 1002 ang03 2002-05-14 2004 nem01 2003 2002-05-09 nem01 2001 2002-05-14 ang03 2002-05-09 1005 ang01 2002-05-09 1003 ang01 2002-05-14 2004 ang03 2002 2002-05-09 ang01 2002-05-07 1006 ang03 2002-05-14 1004 nem01 2002-05-07 2004 nem01 2003 2002-05-09 nem01 2002-05-14 2001 ang03 2002-05-09 1005 ang01 2002-05-09 2004 ang03 2002-05-09 ang01 2002-05-07 1006 ang03 2002-05-14 2004 nem01 2002-05-09 2003 nem01 2002-05-14 2001 ang03 2002-05-09 2004 ang03 2002-05-09 ang01 2002-05-07 2004 nem01 2002-05-09 2003 nem01 2002-05-14 2004 ang03 2002-05-09 48 2004 nem01 2002-05-09
SELECT * FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod; dkod okod datum okod tandij 1003 ang01 2002-05-14 ang01 5000 1005 ang01 2002-05-09 ang01 5000 2002 ang01 2002-05-07 ang01 5000 1001 nem01 2002-05-07 nem01 6000 1004 nem01 2002-05-07 nem01 6000 2003 nem01 2002-05-14 nem01 6000 2004 nem01 2002-05-09 nem01 6000 1002 ang03 2002-05-14 ang03 4000 1006 ang03 2002-05-14 ang03 4000 2001 ang03 2002-05-09 ang03 4000 2004 ang03 2002-05-09 ang03 4000 49
REGISZTRACIO 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 TANDIJAK okod tandij ang01 5000 ang02 10000 ang03 4000 nem01 6000 nem02 7000 SELECT regisztracio.okod, tandij FROM regisztracio, tandijak WHERE regisztracio.okod=tandijak.okod; okod tandij ang01 5000 ang01 5000 ang01 5000 nem01 6000 nem01 6000 nem01 6000 nem01 6000 ang03 4000 ang03 4000 ang03 4000 ang03 4000 50
REGISZTRACIO 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 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 TANDIJAK okod tandij ang01 5000 ang02 10000 ang03 4000 nem01 6000 nem02 7000 51
52