Cvičení 1
Opakování z přednášky
- Pojmy z přednášky:
- atribut,
- doména atributu,
- relační schéma,
- komponenta,
- n-tice,
- relace,
- charakteristická vlastnost,
- identifikátor,
- relační proměnná,
- typ relační proměnné,
- základní relace,
- SQL tabulka,
- skalární typ.
- Příklady k pojmům
- Vztahy mezi pojmy
PostgreSQL
Open-source databázový systém. Pokrývá většinu klíčových vlastností SQL. Zkušenosti přenositelné i na jiné databázové systémy (Microsoft SQL Server, Oracle database, …). Více na jejich webu, zejména se podívejte na dokumentaci.
Na cvičení (i mimo něj) k dispozici na serveru database.inf.upol.cz. Přístup přes SSH - loginy a hesla rozdány na tomto cvičení. Jako první si po přihlášení změňte heslo - každý zodpovídá za zabezpečení svého účtu!
Připojení na server
Server database.inf.upol.cz
.
Připojte se přes SSH nebo putty. Login jako do portálu, heslo jste obdrželi na cvičení. Heslo si ihned po přihlášení změňte!
K dispozici je standardní sada nástrojů. Pokud něco chybí, ozvěte se.
Pro správu databáze používejte psql
. Login do databáze je stejný jako do systému, výchozí heslo taktéž. I toto heslo si ihned změňte!
Každý má k dispozici svou databázi (jméno stejné jako login). Do vaší databáze můžete jen vy.
PSQL
Klient k databázi PostgreSQL s konzolovým rozhraním.
Spustíme jej příkazem psql
v příkazové řádce. Login je stejný jako do systému, heslo je stejné jako původní heslo do systému.
Důležité příkazy PSQL
Klávesové zkratky:
TAB
– doplnění klíčového slova nebo identifikátoru- 2x
TAB
– seznam možností, které lze doplnit - šipky nahoru/dolů – procházení historie příkazů
Ctrl+R
– prohledávání historieCtrl+C
– zrušení aktuálně zadávaného příkazu
Interní příkazy:
\?
– zobrazení nápovědy\password
- změna hesla\e
– spustí externí editor (vhodné pro psaní delších SQL dotazů)\i
soubor – načte SQL příkazy ze souboru a provede je\d
– vypíše všechny tabulky, pohledy, indexy (viz nápověda)\d
objekt – vypíše podrobnosti o daném objektu (např. tabulce)\c
databaze – přihlášení do jiné databáze\q
– ukončení klienta
Dostanete-li se do interaktivního módu, kdy místo promptu můžete procházet nějaký soubor/text (např. po použití \?
), tak jej můžete opustit stiskem q
.
Budete-li používat externí editor a neznáte žádnou z možností, tak vyberte nano. Je nejjednodušší na ovládání.
VS code s doplňky (či jiný editor)
Chcete-li se vyhnout pravidelnému používání psql, lze se na server připojit i z různých editorů a pracovat vzdáleně. Nejsnazší je asi VS code s doplňkem PostgreSQL (Chris Kolkman).
Práce s PostgreSQL
Datové typy
- smallint – 2 bytové celé číslo se znaménkem (-32768 až +32767)
- integer nebo int – 4 bytové celé číslo se znaménkem (-2147483648 až +2147483647)
- bigint – 8 bytové celé číslo se znaménkem (-9223372036854775808 až 9223372036854775807)
- NUMERIC(cifry,desetinne-cifry) – čísla s přesně definovanou přesností. cifry = celkový počet cifer v daném čísle (před i za desetinnou čárkou), desetinne-cifry = počet cifer za desetinnou čárkou.
- real, double precision – float a double známý z jazyka C
- varchar(n) – řetězec proměnlivé velikosti mající maximálně n znaků
- char(n) – řetězec pevné velikosti mající právě n znaků (chybějící znaky jsou doplněny mezerami)
- text – text libovolné velikosti (specifikum PostgreSQL)
- boolean – dvouhodnotový datový typ
- date, time, timestamp – datové typy pro reprezentaci data, času a data+času
Pokud není uvedeno jinak, tak každý sloupec může obsahovat ještě hodnotu NULL reprezentující neexistující hodnotu. Více se dozvíte na přednáškách.
Více k typům v PostgreSQL zde.
Příkazy CREATE TABLE, INSERT INTO, DROP TABLE
Dokumentace ke CREATE TABLE.
Dokumentace k INSERT INTO.
Dokumentace k DROP TABLE.
Seznam všech příkazů PostgreSQL.
Problémy na které možná narazíte:
- Kolem řetězců patří apostrofy ’ ne uvozovky “.
- Po změně hesla se z psql odhlaste a znovu přihlaste, jinak se nepůjde připojit k jiné databázi.
- Formáty data v typu date zde.
- Základní příkazy v příkazové řádce:
ls
- vypíše obsah adresářecd arg
- změní adresář na argnano soubor
- otevře textový soubor v editoru nanorm soubor
- smaže soubormv soubor kam
- přesune/přejmenuje souborcp soubor kam
- zkopíruje souborlogout
- odhlásí se z relaceless soubor
- zobrazí textový soubor pro čtenípasswd
- změnit heslo
Všechny příkazy mají přepínač --help
(tj. např ls --help
), který ukáže nápovědu k danému příkazu.
Pokud je výstup nějakého příkazu moc dlouhý a nevleze se na obrazovku, můžete přidat | less
na konec příkazů (např ls --help | less
). Poté se lze
výstupem interaktivně pohybovat. Interaktivní mód opustíte stiskem q
.
Něco chybí? Ozvěte se!
Úkoly
Vždy si všechny příkazy pište do skriptu (souboru), ne pouze do psql, abyste se k nim mohli vracet.
- Zprovozněte si preferovaný přístup ke své databázi na database.inf.upol.cz.
- Vytvořte si tabulku
human
pro jednoduchý seznam zaměstnanců obsahující následující informace:- jméno
- příjmení
- datum narození
- datum nástupu do zaměstnání
- číslo kanceláře
- web
- počet dětí
- pohlaví
Atributům zvolte vhodné názvy i typy.
- Předchozí tabulku naplňte alespoň pěti záznamy.
- Zkuste se připojit k databázi některého kolegy.
- Smažte svou tabulku
human
. - Nainstalujte, nastavte a zkuste si PostgreSQL lokálně (třeba v dockeru).