Geodatabáze.jecool.net

Lecture 7

Z3104 GEODATABÁZE

Obsah

  • Opakování
  • Trocha nové teorie
  • DIY - Do It Yourself

Opakování

LIMIT / OFFSET

Omezí počet vypisovaných řádků.


SELECT * FROM student LIMIT 20 OFFSET 20;
            

DISTINCT

odlišný

Každá hodnota je ve výsledné tabulce zobrazena pouze jenou.


SELECT DISTINCT vek FROM student;
            

Agregace

seskupování

Agregační funkce slouží k získávání agregovaných údajů z tabulky.

http://www.postgresql.org/docs/9.1/static/functions-aggregate.html

AVG


SELECT AVG(vek) FROM student;
            

MAX


SELECT MAX(vek) FROM student;
            

SELECT vek FROM student ORDER BY vek DESC LIMIT 1;
            

MIN


SELECT MIN(vek) FROM student;
            

SELECT vek FROM student ORDER BY vek ASC LIMIT 1;
            

SUM


SELECT SUM(vek) FROM student;
            

COUNT


SELECT COUNT(vek) FROM student;
            

Kombinace agregačních funkcí


SELECT COUNT(vek), AVG(vek), MIN(vek), MAX(vek), SUM(vek)
  FROM student;
            

GROUP BY


SELECT vek, COUNT(vek) FROM student GROUP BY vek;
            

SELECT DISTINCT id_autora, COUNT(id_autora)
  FROM kniha GROUP BY id_autora;
            

SELECT autor.id, autor.jmeno, autor.prijmeni,
  COUNT(kniha.id_autora) FROM kniha
  FULL JOIN autor ON (kniha.id_autora = autor.id)
  GROUP BY autor.id, autor.jmeno, autor.prijmeni;
            

Trocha nové teorie

AS - pojmenování sloupce ve výběru


SELECT AVG(vek) AS prumer FROM student;
            

SELECT jmeno AS firstname, prijmeni AS lastname FROM student;
            

Views - Pohledy


SELECT autor.jmeno, autor.prijmeni, kniha.nazev FROM autor
    FULL JOIN kniha ON (kniha.id_autora = autor.id);
            

CREATE VIEW


CREATE VIEW autori_a_knihy AS
SELECT autor.jmeno, autor.prijmeni, kniha.nazev FROM autor
  FULL JOIN kniha ON (kniha.id_autora = autor.id);
            

SELECT * FROM autori_a_knihy;
            

DROP VIEW

ALTER VIEW

DIY - Do It Yourself

Iniciální data

ke stažení
  • Pravým na databázi
  • Obnovit (restore)
  • Vybrat soubor
  • OK

Originál viz http://pgfoundry.org/frs/?group_id=1000150&release_id=366#world-world-1.0-title-content

Jedná se o databázi měst a států ve světě.

Obsahuje tabulky: Město, Zěmě, Jazyk.

city, country, countrylanguage.

ÚKOL 1

Spojte všechny záznamy z tabulek "města" a "státy". Výsledek uložte jako nový VIEW. (JOIN, VIEW)

Vyberte město, počet jeho obyvatel a stát ve kterém se nachází. Výsledek uložte jako pohled. (JOIN, VIEW)

Zobrazte všechny kontinenty, které jsou v databázi. (DISTINCT)

Zobrazte všechny neoficiální jazyky a jim příslušné země a seřaďte je podle procenta použití od největšího. (JOIN)

ÚKOL 2

Zobrazte kontinenty, jejich populaci a počet států, které v nich leží. (SUM)

Jaké státy mají 3 a více oficiálních jazyků? (Je jich 8)

Kolik měst v databáze je z Evropy?

Zobrazte populaci evropy a sumu populace jednotlivých měst v Evropě. Liší se nějak?

Děkuji za pozornost