Fórum (2025. október)

Kategória: sql - emelt szint

Feladat leírása

Fórum (2025. október) illusztráció

Egy internetes fórum adatbázisának egy részlete áll rendelkezésre. A fórum regisztrált
felhasználóinak és egy tavalyi nap hírfolyamokba rendezett üzeneteinek adatait kell elemeznie
a feladat megoldása során.
Az adatbázis a fórummal kapcsolatos következő táblákat tartalmazza: 

Táblák:

felhasznalo (id, veznev, utonev, email, utolso)

id A regisztrált felhasználó azonosítója (szám), ez az elsődleges kulcs 
veznev A felhasználó vezetékneve (szöveg), névrokonok előfordulnak az adatbázisban 
utonev A felhasználó utóneve (szöveg) 
email A felhasználó e-mail-címe (szöveg) 
utolso A vizsgált nap előtti utolsó hozzászólás dátuma (dátum) 

uzenet (id, tartalom, f_id, h_id, kuldido)

id Az üzenet azonosítója (szám), ez az elsődleges kulcs 
tartalom Az üzenet szövegének bevezető, rövid részlete (szöveg) 
f_id Az üzenet küldőjének azonosítója (szám), idegen kulcs 
h_id Az üzenet hírfolyamának azonosítója (szám), idegen kulcs 
kuldido A vizsgált napon az üzenet küldésének időpontja (idő) 

hirfolyam (id, megnevezes, moderator)

id A hírfolyam azonosítója (szám), ez az elsődleges kulcs 
megnevezes A hírfolyam címe, témája (szöveg), például: kerékpáros KRESZ, túrakerékpár 
moderator Annak a felhasználónak az azonosítója, aki az adott hírfolyam moderátora (szám), idegen kulcs 

 

A következő feladatokat megoldó SQL-parancsokat rögzítse a feladatok végén zárójelben
megadott nevű és .sql kiterjesztésű szöveges állományba! Például a 3. feladat megoldása
a 3csakegy.sql nevű állományba kerüljön! A javítás során csak ezeknek az állományoknak
a tartalmát értékelik. Ügyeljen arra, hogy a lekérdezésekben pontosan a kívánt mezők
szerepeljenek, felesleges mezőt ne jelenítsen meg! 

Az adatbázist és a táblákat létrehozó, valamint az adatokat a táblába beszúró SQL-parancsokat
a forum.sql állomány tartalmazza. 


Részfeladatok

  1. 1. Futtassa az SQL-szerveren a forum.sql parancsfájlt, és a továbbiakban a forum adatbázisban dolgozzon! (A „Nincs kiválasztott adatbázis” üzenet nem befolyásolja az adatimportálás sikerességét.) 

  2. 2. Lekérdezés segítségével írassa ki a hírfolyamok megnevezését, valamint a moderátoruk vezeték- és utónevét az e-mail-címükkel együtt! (2felelos

  3. 3. Az adatbázis a kerékpáros közlekedéssel kapcsolatos fórum adatait tartalmazza. Lekérdezés segítségével írassa ki azoknak az üzeneteknek a tartalmát, amelyekben szerepel a „bike” vagy a „bicikli” szó vagy szórészlet! (3hajtas)

  4. 4. Adja meg lekérdezéssel a névrokon felhasználók vezeték- és utónevét! A névrokonok vezeték- és utóneve is azonos, de ők különböző személyek. A listában minden név ábécésorrendben jelenjen meg, de csak egyszer! (4nevrokon)

  5. 5. Készítsen lekérdezést, amely meghatározza, hogy hírfolyamonként hány üzenet érkezett a fórumba! A hírfolyamok neve és az üzenetek száma jelenjen meg, utóbbi szerint csökkenő sorrendben! (5forgalom)  

  6. 6. SQL-ben szövegeket a Concat függvénnyel lehet összefűzni. Az alábbi példa mutatja a használatát: 

    • a) Concat('abc', 'de', 'f') eredménye 'abcdef' 

    • b) A következő feladat megoldásánál használhatja ezt a függvényt. 

  7. 7. Vannak olyan hozzászólások, amelyek bevezető szövege valamelyik hírfolyam címét (nem feltétlenül azt, amelyikben megjelent) is tartalmazza. Adja meg lekérdezés segítségével az ilyen üzenetet küldők vezeték- és utónevét, a hozzászólásuk bevezető szövegét és küldési idejét! (6cimtartalom

  8. 8. Lekérdezés segítségével írassa ki, hogy a vizsgált napon hány felhasználó szólt hozzá a fórumhoz! A többször is hozzászólókat csak egyszer vegye figyelembe! (7napiszam

  9. 9. A fórumnak vannak olyan tagjai, akik már nem aktívak, azaz régóta nem szóltak hozzá. Készítsen lekérdezést, amely meghatározza azoknak a vezeték- és utónevét, akik utoljára 2010 előtt szóltak hozzá, és a vizsgált napon sem küldtek üzenetet! (8inaktivak

  10. 10. Adja meg lekérdezéssel azoknak a felhasználóknak a vezeték- és utónevét, valamint üzeneteik számát, akik az „e-bike” hírfolyamban írtak ezen a napon 12:00 és 16:00 óra között, a határokat is beleszámolva! (9elektromos

  11. 11. Lekérdezés segítségével írassa ki, hogy a vizsgált napi első üzenet írója aznap milyen időpontban küldte be az utolsó üzenetét! Feltételezhetjük azt, hogy az elsőként érkezett üzenettel egyidőben másik üzenet nem érkezett. (10kezdo