Pojmy popisující tabulku
- Skalární typ
- pojmenovaná nejvýše spočetná množina hodnot
- Např:
- Pro každé přirozené číslo je
varchar(i)typem, který pojmenovává množinu všech řetězců délky nejvýše integerje typem, který dává jméno množině celých čísel od do .- Typ
textpojmenovává množinu všech řetězců - A další…
- Pro každé přirozené číslo je
- Konkrétně:
- “The Avengers” je typu
varchar(12), ale už není typuvarchar(11). - Hodnoty a jsou typu
integer.
- “The Avengers” je typu
- Typ řádku
- -tice skalárních typů
- např.
<text, integer>
- Null
- speciální hodnota označující prázdnotu
- Řádek
- Neprázdná -tice se nazývá řádek. Například
<¨The Avengers¨, 2012>je řádek.
- Neprázdná -tice se nazývá řádek. Například
- Záhlaví sloupce
- Skládá se z názvu a skalárního typu.
- Např.
title textje záhlaví jménemtitletyputext. - Pokud je typ záhlaví určený kontextem, můžeme typ vynechat.
- Typ tabulky
- Je neprázdná -tice skládající se ze záhlaví sloupců
- Např.
<title text, year integer>.
Tabulky
-
Tabulka je hodnota, která se skládá z typu tabulky je -tice a -tice řádků, kde každý řádek je typu .
-
Typ tabulky se nazývá záhlaví tabulky a -tice řádků tabulky jejím tělem.
-
Například uvažujme tabulku se záhlavím
<title text, year integer>a tělem<<¨The Avengers¨, 1998>, <¨The Avengers¨, 2012>, <¨The Matrix¨, 1999>>. -
Tuto tabulku můžeme přirozeně zapsat následující tabulkou:
| title text | year integer |
|---|---|
| The Avengers | 1998 |
| The Avengers | 2012 |
| The Matrix | 1999 |
- Pokud tabulka nemá v těle žádný řádek, říkáme, že je prázdná:
| title | year |
|---|
Vztah k relacím
- Tabulka nemusí mít unikátní jména sloupců. Například:
| title | num | num |
|---|---|---|
| The Avengers | 1998 | 89 |
| The Avengers | 2012 | 143 |
| The Matrix | 1999 | 136 |
- Ale tabulka, která má jedinečné názvy sloupců, neobsahuje
nullhodnoty a duplicitní řádky, nazýváme relací. - Tabulka, která je relací:
| title | year | length |
|---|---|---|
| The Avengers | 1998 | 89 |
| The Avengers | 2012 | 143 |
| The Matrix | 1999 | 136 |
- Pokud je tabulka relací, můžeme k ní uvažovat klasickou relaci známou z diskrétní matematiky. Předchozí tabulka určuje relaci
{⟨‘The Avengers’,1998,89⟩,⟨‘The Avengers’,2012,143⟩,⟨‘The Matrix’,1999,136⟩} - Pokud chápeme tabulku jako relaci, nespoléháme se na pořadí řádků v tabulce. Tělo tabulky, která je relací, může být podobně jako klasická množina určeno charakteristickou vlastností.
- Pokud má být hodnota tabulky relace, měli bychom zformulovat její charakteristickou vlastnost. V případě základní tabulky v posledním obrázku by to byla vlastnost: “Vlastním film
title, vytvořený rokuyear, který má délkulengthminut”.
Příkazy
Vytvoření prázdné tabulky:
CREATE TABLE movies (
title text,
year integer,
length integer
);Zobrazení hodnoty základní tabulky
SELECT * FROM movies;
title | year | length
-------+------+--------
(0 rows)Přidání řádků do tabulky
INSERT INTO movies VALUES
( 'The Matrix', 1999, 136 ),
( 'The Avengers', 2012, 143 ),
( 'The Avengers', 1998, 89 );
-- Vypsání tabulky:
SELECT * FROM movies;
title | year | length
--------------+------+--------
The Matrix | 1999 | 136
The Avengers | 2012 | 143
The Avengers | 1998 | 89
(3 rows)Přídání jednoho řádku:
INSERT INTO movies VALUES ('A Space Odyssey', 1968, 149);Vymazání tabulky
DROP TABLE movies;Navigace
Předchozí: Správa diskového prostoru - oddíly, souborové systémy, zajištění konzistence dat Následující: Výraz SELECT v SQL Celý okruh: 2. Informační technologie