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 integer
je typem, který dává jméno množině celých čísel od do .- Typ
text
pojmenová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 text
je záhlaví jménemtitle
typutext
. - 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
null
hodnoty 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élkulength
minut”.
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