Jméno studenta: | David Šafránek |
Studijní skupina: | 442 |
Semestr, školní rok: | zimní 2004/2005 |
Katedra: | počítačů (K 13136) |
Předmět: | Databázové systémy (36DBS) |
Seminář: | úterý 14:30 |
Cvičící: | Ing. Martin Molhanec, CSc. |
Přednášející: | Ing. Ivan Halaška |
Datum: | 24.10.2004 |
Projekt je zaměřen na zprostředkování debaty mezi uživately, pomocí textových příspěvků. Příspěvek může obsahovat také přiložený soubor, či mít v hlavičce identifikační ikonu. Uživatel může být nepřihlášený (neregistrovaný), nebo se může zaregistrovat, zadáním několika osobních údajů, jako jméno, heslo, automaticky se vytvoří datum zřízení konta a identifikační číslo. Jeho role pak bude administrátor, moderátor daného fóra, nebo běžný uživatel. V diskusi jsou různá fóra. Přidávat a upravovat je může administrátor, ten také může modifikovat uživatele, přidělovat práva pro moderování daného fóra, měnit fóra, modifikovat zprávy ve fórech, a nebo cokoliv vyhledat.
Komunikace s databází může pro všechny probíhat přes http protokol.
Česky formulovaný dotaz | SQL dotaz | Sejmutá odezva na dotaz |
Kolik je v dané diskusi (Novinky) příspěvků? |
SELECT Y.Nazev,COUNT(Id) FROM Prispevek X, Forum Y WHERE X.ForumId = Y.ForumId GROUP BY X.ForumId HAVING Nazev='Novinky' |
Nazev COUNT(Id) Novinky 3 |
Vypiš seznam uživatelů, a počet jejich přízpěvků ve všech fórech seřazeno od nejvíce přispívajících |
SELECT Y.Jmeno, COUNT( X.Id ) AS cnt FROM Prispevek X, Uzivatel Y WHERE X.UzivatelId = Y.Id GROUP BY X.UzivatelId ORDER BY cnt DESC, Jmeno ASC |
Jmeno cnt guest 18 David 6 Lucka 2 ID=9 1 New 1 NOVY 1 |
Vypiš 10 příspěvků v pořadí od nejnovějšího, a k nim autora, datum vložení a název fóra, ke kterému patří |
SELECT X.Text, X.Datum, Y.Jmeno, Z.Nazev FROM Prispevek X, Uzivatel Y, Forum Z WHERE X.UzivatelId=Y.Id AND X.ForumId=Z.ForumId ORDER BY Datum DESC LIMIT 0, 10 |
Text Datum Jmeno Nazev bla 2005-01-09 19:16:19 guest Novinky :-) 2005-01-09 01:01:58 guest Novinky fdf 2005-01-09 01:01:33 guest Novinky & 2005-01-09 01:01:07 guest Novinky ½ 2005-01-09 01:01:02 guest Novinky ½ 2005-01-09 01:00:47 guest Novinky fd 2005-01-09 00:50:34 guest Novinky Mimi je ale sikovne!!!! 2005-01-09 00:49:33 David Novinky gfdh 2005-01-09 00:48:28 Lucka Novinky hgfh 2005-01-09 00:48:04 New Novinky |
Vypiš všechny uživatele a datumy jejich založení |
SELECT Jmeno, Registrovan FROM Uzivatele |
Jmeno Registrovan David 2004-10-20 Petr 2004-10-21 Lucka 2004-10-28 Martin 2004-11-22 |
Vypiš všecny přílohy vyskytující se alespoň 2x |
SELECT Y.*,COUNT(X.SouborId) AS cnt FROM PrispevekSoubor X, Soubor Y WHERE X.SouborId = Y.Id GROUP BY X.SouborId HAVING cnt >= 2 |
Id Data Datum Velikost cnt 1 Foto.jpg 2004-11-20 50248 2 2 Bigdata 2004-10-15 1584425 3 |
Vypiš z jaké IP adresy je nejčastěji přístup |
SELECT X.*, COUNT(*) AS cnt FROM Prispevek X GROUP BY X.IP ORDER BY cnt DESC LIMIT 0, 1 |
Id Text Datum UzivatelId ForumId IP cnt 27 fdsfsdfdg 2005-01-08 17:38:17 0 0 147.32.124.213 21 |
Přidej nového uživatele |
INSERT INTO Uzivatel (Jmeno, Heslo, EMail, Registrovan) VALUES ('Novy3', '5578d3582d6ef81e4171ae4fa7770889', 'x@y.cz', '2003-12-24') |
Inserted rows: 1 Inserted row id: 23 (Query took 0.0007 sec) |
Kolik příspěveků je průměrně ve fóru? |
SELECT AVG(cnt) AS avg FROM ( SELECT Y.Nazev, COUNT(*) AS cnt FROM Prispevek X, Forum Y WHERE X.ForumId = Y.ForumId GROUP BY X.ForumId ) |
cnt 7.33 |
Jaká je průměrná velikost všech příloh? |
SELECT AVG(X.Velikost) AS avg FROM Soubor X, PrispevekSoubor Y WHERE X.Id = Y.SouborId |
avg 970754.2000 |
Jaká je průměrná velikost použité přílohy? |
SELECT AVG(X.Velikost) AS avg FROM Soubor X |
avg 326969.0000 |
Vypiš jména uživatelů začínající na R |
SELECT Jmeno FROM Uzivatel WHERE Jmeno LIKE 'R%' |
Jmeno RE RER |