Cvičení 1
Opakování z přednášky
Pojmy z přednášky: atribut, doména, schéma, n-tice, relace, skalární typ, typ řádku, řádek, null, záhlaví sloupce, typ tabulky, tabulka, tabulka reprezentující relaci, tabulková proměnná a relační proměnná.
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) a k tomu je společná databáze shared. V databázi shared můžete dělat cokoliv, co chcete. Stejně jako všichni ostatní, tedy ji nepoužívejte pro důležité věci, ale na experimentování. 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ů)\isoubor – načte SQL příkazy ze souboru a provede je\d– vypíše všechny tabulky, pohledy, indexy (viz nápověda)\dobjekt – vypíše podrobnosti o daném objektu (např. tabulce)\cdatabaze – 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
- Vytvořte si tabulku 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í
- Předchozí tabulku naplňte alespoň pěti záznamy.
- Zkuste se připojit k databázi některého kolegy.
- Vytvořte nějakou tabulku v databázi shared.
- Vypište si seznam všech tabulek databáze shared.
- Přidejte nějaké záznamy do nějaké tabulky v databázi shared.