[]----------------------------------[] | MySQL feladatsor IDEGEN-KULCS A | []----------------------------------[] Indítsa el a MySQL szervert, majd a kliens programot is! A kliens programot rendszergazdai jogokkal használja... a) Készítsen egy adatbázist "prog" néven, majd tegye azt aktuálissá! b) Készítsen egy új táblát "iskola" néven id és nev mezőkkel! (Az id legyen automatikusan növekvő és elsődleges kulcs) c) Töltse fel az "iskola" táblát a következő iskolanevekkel: 'Jó Iskola', 'Közepes Iskola', 'Kicsi Iskola', 'Nagy Iskola' d) Állítson elő egy "tanulo" táblát id, nev és suli mezőkkel: Az id legyen automatikusan növekvő elsődleges kulcs, a suli mezőre pedig állítson be idegenkulcs kényszert, amely az iskola tábla id mezőjére hivatkozik! e) Vigye fel egy tanuló nevét (Gipsz Jakab) a "tanulo" táblába 22-es iskolakóddal... f) Vigyük fel az előbbi tanulót, de 2-es iskolakóddal... (Így már jó lesz...) g) Törölje ki az "iskola" táblából az id=2-es rekordot... h) Törölje ki az "iskola" táblát... i) Készítsen egy tantárgyakat tartalmazó táblát "tantargy" néven: Az id legyen automatikusan növekvő elsődleges kulcs, a nev mező pedig legyen varchar(50) kötelezően kitöltendő adat! j) Vigyünk fel a "tantargy" táblába a következő tantárgyakat: 'Matematika','Fizika','Informatika','Programozás' k) Készítsen egy "osztalyzat" nevű táblát: +----------+----------+------+-----+-------------------+ | Field | Type | Null | Key | Default | +----------+----------+------+-----+-------------------+ | mikor | datetime | NO | PRI | CURRENT_TIMESTAMP | | tanulo | int(11) | NO | MUL | NULL | | tantargy | int(11) | NO | MUL | NULL | | jegy | int(11) | NO | | NULL | +----------+----------+------+-----+-------------------+ A tanulo és tantargy mezőkhöz állítson be idegen kulcs kényszert! l) Vigyen fel egy rekordot az osztalyzat táblába, ahol: tanulo = 1, tantargy = 2, jegy = 3 m) Vigyen fel egy rekordot az osztalyzat táblába, ahol: tanulo = 2, tantargy = 5, jegy = 3 n) Vigyen fel további 3 tanulót a "tanulo" táblába, majd vigyen fel osztályzatokat az "osztályzat" táblába úgy, hogy minden tanulónak legalább 2 osztályzata legyen! o) Készítsen egy lekérdezést, melynek eredményéből látható, hogy melyik tanuló, mely tantárgyból mikor és milyen jegyet kapott! p) Törölje ki a prog adatbázis tábláit egyesével... q) Törölje ki a prog adatbázist! ------------------------------------------------------------------- a) Készítsen egy adatbázist "prog" néven, majd tegye azt aktuálissá! create database prog; use prog; ------------------------------------------------------------------- b) Készítsen egy új táblát "iskola" néven id és nev mezőkkel! (Az id legyen automatikusan növekvő és elsődleges kulcs) create table iskola ( id int not null auto_increment, nev varchar(50), primary key (id) ); ------------------------------------------------------------------- c) Töltse fel az "iskola" táblát a következő iskolanevekkel: 'Jó Iskola', 'Közepes Iskola', 'Kicsi Iskola', 'Nagy Iskola' insert into iskola (nev) values ('Jó Iskola'), ('Közepes Iskola'), ('Kicsi Iskola'), ('Nagy Iskola'); ------------------------------------------------------------------- d) Állítson elő egy "tanulo" táblát id, nev és suli mezőkkel: Az id legyen automatikusan növekvő elsődleges kulcs, a suli mezőre pedig állítson be idegenkulcs kényszert, amely az iskola tábla id mezőjére hivatkozik! create table tanulo ( id int not null auto_increment, nev varchar(50), suli int not null, primary key (id), foreign key (suli) references iskola(id) ); ------------------------------------------------------------------- e) Vigyük fel egy tanuló nevét a "tanulo" táblába 22-es iskolakóddal... insert into tanulo (nev,suli) values ('Gipsz Jakab',22); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails... --Mivel 22-es kódú iskola még nem létezik... --Az idegen kulcs kényszer nem engedi meg --a rekord felvitelét... ------------------------------------------------------------------- f) Vigyük fel a tanulót 2-es iskolakóddal... (Így OK.) insert into tanulo (nev,suli) values ('Gipsz Jakab',2); ------------------------------------------------------------------- g) Töröljük ki az "iskola" táblából az id=2-es rekordot... delete from iskola where id = 2; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails... --Mivel a 2-es kódú iskolára hivatkozás van... --az idegen kulcs kényszer nem engedi meg --a rekord törlését... ------------------------------------------------------------------- h) Töröljük ki az "iskola" táblát... drop table iskola --az idegen kulcs kényszer nem engedi meg --a tábla törlését... ------------------------------------------------------------------- i) Készítsünk egy tantárgyakat tartalmazó táblát "tantargy" néven! (Az id legyen automatikusan növekvő elsődleges kulcs, a nev mező pedig varchar(50) kötelezően töltendő legyen!) create table tantargy ( id int not null auto_increment, nev varchar(50) not null, primary key (id) ); ------------------------------------------------------------------- j) Vigyünk fel a táblába a következő tantárgyakat: 'Matematika','Fizika','Informatika','Programozás' insert into tantargy (nev) values ('Matematika'), ('Fizika'), ('Informatika'), ('Programozás'); ------------------------------------------------------------------- k) Készítsen egy "osztalyzat" nevű táblát: +----------+----------+------+-----+-------------------+ | Field | Type | Null | Key | Default | +----------+----------+------+-----+-------------------+ | mikor | datetime | NO | PRI | CURRENT_TIMESTAMP | | tanulo | int(11) | NO | MUL | NULL | | tantargy | int(11) | NO | MUL | NULL | | jegy | int(11) | NO | | NULL | +----------+----------+------+-----+-------------------+ A tanulo és tantargy mezőkhöz állítson be idegen kulcs kényszert! create table osztalyzat ( mikor datetime not null default now(), tanulo int not null, tantargy int not null, jegy int not null, primary key (mikor), foreign key (tanulo) references tanulo(id), foreign key (tantargy) references tantargy(id) ); ------------------------------------------------------------------- l) Vigyen fel egy rekordot az osztalyzat táblába: tanulo = 1, tantargy = 2, jegy = 3 insert into osztalyzat (tanulo,tantargy,jegy) values (1,2,3); --az idegen kulcs kényszer nem engedi meg a felvitelt, --mert nincs tanulo.id = 1 értékű rekordunk... ------------------------------------------------------------------- m) Vigyen fel egy rekordot az osztalyzat táblába: tanulo = 2, tantargy = 5, jegy = 3 insert into osztalyzat (tanulo,tantargy,jegy) values (2,5,3); --az idegen kulcs kényszer nem engedi meg a felvitelt, --mert nincs tantargy.id = 5 értékű rekordunk... ....