Hodina: 10.11.2015      Databáze:  http://is.muni.cz/el/1421/podzim2015/VIKMB44/um/59926154/books_02.sqlite    1. Vypiš počet všech knih.  2. Vypiš všechny knihy. Vypiš název knihy a jejich vydavatele.  3. Vypiš všechny knihy. Vypiš jejich vydavatele a jazyk v němž jsou napsány.  (název knihy, jméno jazyka, jméno vydavatele)  4. Vypiš jazyk knihy a počet knih napsaných v tomto jazyce.   5. Vypiš vydavatele knihy a počet knih vydaných tímto vydavatelstvím. Vydaných  knih od tohoto vydavatelství musí být mezi 100 ­ 300.  6.   Databáze:  http://is.muni.cz/el/1421/podzim2015/VIKMB44/um/60055188/books_complex.sqlite    7.  Vypiš knihu a autory knihy.  8. Vypiš knihy, autory knihy a počet autorů knihy. Seřaď podle počtu autorů  sestupně.  9. Vypiš počet autorů v databázi pomocí tabulky books_authors.  10.Vypiš autory s nejvíce napsanými knihami a počet jejich knih. Seřaď podle počtu  knih sestupně.  11.Vypiš knihy autora s id 3563.  12.Jako 9. Zkusme DISTINCT podle názvu knihy.  13.Vypiš knihy autora se jménem “Jiří Sedlák”.             1. SELECT COUNT(*) FROM books;  2. SELECT b.title, p.publisher FROM books b INNER JOIN publishers p ON  b.publisher_id = p.id;    Tímto dotazem S INNER JOIN se připravíme o knihy bez vydavatele!  Správně:  SELECT b.title, p.publisher FROM books b LEFT JOIN publishers p ON  b.publisher_id = p.id;  3. SELECT b.title, p.publisher FROM books b LEFT JOIN publishers p ON  b.publisher_id = p.id LEFT JOIN languages l ON (b.language_id = l.id)  4. Všechny knihy a potencionální jazyky.  SELECT l.language, COUNT(b.id) AS pocet_knih FROM books b LEFT JOIN  languages l ON (b.language_id = l.id) GROUP BY l.id  Všechny knihy a povinně i jazyk.  SELECT l.language, COUNT(b.id) AS pocet_knih FROM books b INNER JOIN  languages l ON (b.language_id = l.id) GROUP BY l.id  Protože máme na LEVÉ STRANĚ languages, chceme všechny jazyky a k  nim potencionální knihu.  SELECT l.language, COUNT(b.id) AS pocet_knih FROM languages l LEFT JOIN  books b ON (b.language_id = l.id) GROUP BY l.id  5. SELECT p.publisher, COUNT(b.id) AS pocet_knih FROM books b INNER JOIN  publishers p ON (b.publisher_id = p.id) GROUP BY p.id HAVING pocet_knih  BETWEEN 100 AND 300;  6. SELECT b.title, a.name FROM books b INNER JOIN books_authors b_a ON  (b.id = b_a.book_id) INNER JOIN authors a ON (a.id = b_a.author_id)    Spojení záznamů z vazební tabulky do jednoho sloupce.    SELECT b.title, GROUP_CONCAT(a.name) FROM books b INNER JOIN  books_authors b_a ON (b.id = b_a.book_id) INNER JOIN authors a ON (a.id =  b_a.author_id) GROUP BY b.id;  7. SELECT b.id, b.title, GROUP_CONCAT(a.name), COUNT(a.id) AS pocet_autoru  FROM books b INNER JOIN books_authors b_a ON (b.id = b_a.book_id) INNER  JOIN authors a ON (a.id = b_a.author_id) GROUP BY b.id ORDER BY  pocet_autoru DESC;  8. DISTINCT  SELECT COUNT(DISTINCT author_id) FROM books_authors;  9. SELECT a.id AS author_id, a.name, COUNT(book_id) AS pocet_knih FROM  books_authors ba INNER JOIN authors a ON (a.id = ba.author_id) GROUP BY  a.id ORDER BY pocet_knih DESC;  10.Jednotlivé svazky v knihovně  SELECT b.title FROM books b INNER JOIN books_authors ba ON (b.id =  ba.book_id) WHERE author_id = 3563;  Odstranění duplicit  SELECT DISTINCT b.title FROM books b INNER JOIN books_authors ba ON  (b.id = ba.book_id) WHERE author_id = 3563;  11.SELECT a.id AS author_id, a.name, COUNT(DISTINCT b.title) AS pocet_knih  FROM books_authors ba INNER JOIN authors a ON (a.id = ba.author_id) INNER  JOIN books b ON (b.id = ba.book_id) GROUP BY a.id ORDER BY pocet_knih  DESC;  12.SELECT DISTINCT b.title FROM books b INNER JOIN books_authors ba ON  (b.id = ba.book_id) INNER JOIN authors a  ON (a.id = ba.author_id) WHERE  a.name LIKE 'Jiří Sedlák';