vissza a kezdőlapra

Fogadó feladat

A vidéki turizmus által nyújtott szálláslehetőségek között egyre népszerűbbek a családi fogadók. Évről évre növekszik az ilyen szálláshelyeken a vendégéjszakák száma. A következő feladatban egy családi fogadó szállásfoglalásait tartozó adatbázissal kell dolgoznia. Az adatbázis a következő táblákat tartalmazza:

Fogadó feladat

Az elsődleges kulcsokat PK-val, az idegenkulcsokat FK-val jelöltük.

A feladatok megoldására elkészített SQL parancsokat a megoldasok.sql állományba illessze be a feladatok végén zárójelben jelölt sor alá! A javítás során csak ennek az állománynak a tartalmát értékelik. Ügyeljen arra, hogy a lekérdezésben pontosan a kívánt mezők szerepeljenek, felesleges mezőt ne jelenítsen meg!

1. Hozzon létre a lokális SQL szerveren fogado néven adatbázist! Az adatbázis alapértelmezett rendezési sorrendje a magyar szabályok szerinti legyen! Ha az Ön által választott SQL szervernél nem alapértelmezés az UTF-8 kódolás, akkor azt is állítsa be alapértelmezettnek az adatbázis létrehozásánál! (1. feladat:)

CREATE DATABASE fogado DEFAULT CHARSET=utf8 COLLATE utf8_hungarian_ci;

2. A tablak.sql és az adatok.sql állományok tartalmazzák a táblákat létrehozó és az adatokat a táblába beszúró SQL parancsokat! Futassa elsőként a tablak.sql, majd az adatok.sql parancsfájlt a fogado adatbázisban!

a tablak.sql és az adatok.sql letöltése

3. Indexelje a vendegek tábla vnev mezőjét! (3. feladat:)

ALTER TABLE `vendegek` ADD INDEX( `vnev`);

4. Állítsa be a következő ábra szerint az idegenkulcsokat a foglalasok táblában! (4. feladat:)

ALTER TABLE `foglalasok` ADD INDEX( `vendeg`, `szoba`);

Fogadó kapcsolatok

5. Rögzítsen a foglalasok táblába egy új rekordot 281-es sorszámmal! A 100-as azonosítóval rendelkező vendégnek és családjának (összesen 5 fő részére) rögzítsen a 2-es szobába egy foglalást. A család 2016. 06. 28-án érkezik és 2016. 06. 30-án távozik. (5. feladat:)

INSERT INTO `foglalasok` (`fsorsz`, `vendeg`, `szoba`, `erk`, `tav`, `fo`) VALUES ('281', '100', '2', '2016-06-28', '2016-06-30', '5');

6. Időközben a „Vidor” szobát bővítették még egy fix ággyal. Javítsa a szobak táblában a vonatkozó rekordban az agy mező értékét „3”-ra ! (6. feladat:)

UPDATE `szobak` SET `agy` = '3' WHERE `szobak`.`szazon` = 6;

7. Készítsen lekérdezést, amely megválaszolja azt a kérdést, hogy hány vendég érkezett „Borsod-Abaúj-Zemplén” megyéből! A megjelenített mező címkéje „vendegszam” legyen! (Borsod-Abaúj-Zemplén megye településeinek az irányítószáma 3400 és 3999 közé esik, beleértve a két határértéket is.) (7. feladat:)

Fogadó feladat 7
Fogadó feladat 7

SELECT COUNT(vendegek.vsorsz) AS vendégszám FROM vendegek WHERE vendegek.irsz BETWEEN 3400 AND 3999

8. Listázza ki szobánként, hogy hány vendég szállt meg, és hány vendégéjszakát töltött a fogadóban! A számított mezők címkéje „vendegek” és „vendegejszakak” legyen! A listát rendezze a vendegejszakak mező szerint, azon belül vendegek mező szerint növekvő sorrendbe! (8. feladat:)

Fogadó feladat 8
Fogadó feladat 8

SELECT szobak.sznev,SUM(foglalasok.fo) AS vendégek,SUM((foglalasok.tav-foglalasok.erk)*foglalasok.fo) AS vendégéjszakák FROM foglalasok INNER JOIN szobak ON szobak.szazon=foglalasok.szoba GROUP BY szobak.sznev ORDER BY vendégéjszakák,vendégek

Fogadó feladat 9
Fogadó feladat 9

SELECT vendegek.vnev,COUNT(foglalasok.fsorsz) AS alkalmak FROM vendegek INNER JOIN foglalasok ON vendegek.vsorsz=foglalasok.vendeg GROUP BY vendegek.vnev HAVING alkalmak>=2 ORDER BY vendegek.vnev