Fórum

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

alt text

Ügyeljen arra, hogy a lekérdezésekben pontosan a kívánt mezők szerepeljenek, felesleges mezőt ne jelenítsen meg!

Feladatok:

  1. A forum.sql állomány tartalmazza az adatokat. (A táblákat és a táblába beszúró SQL-paracsokat.) Futtassa le a forum.sql-t.
    A továbbiakban a forum adatbázisban dolgozzon!

  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!

    Eredmény

    megoldas2

  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!

    Eredmény

    megoldas3

  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!

    Eredmény

    megoldas4

  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!

    Eredmény

    megoldas5

    SQL-ben szövegeket a Concat függvénnyel lehet összefűzni. Az alábbi példa mutatja a használatát:
          Concat('abc', 'de', 'f') eredménye 'abcdef'

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

  6. 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!

    Eredmény

    megoldas6

  7. 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!

    Eredmény

    megoldas7

  8. 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!

    Eredmény

    megoldas8 63 sor

  9. 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!

    Eredmény

    megoldas9

  10. 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.

    Eredmény

    megoldas10



Forrás: oktatási hivatal