2. 10.12.2012
TABULKY A DATABÁZE
Volné tabulky
Jsou samostatné tabulky u nichž můžeme vytvořit dočasné vazby.
Databáze
Je uložena v kontejneru databáze (.dbc,.dcx,.dct)
Obsahuje informace o tabulkách, atributech, indexech, trvalých vazbách (relacích), spojeních,
kurzorech – pohledech, umístění tabulky, ověřovacích pravidlech a chybách.
Výhoda
přístup k tabulce – jedině prostřednictvím databáze
můžete definovat dlouhá jména pro tabulky a pole tabulky (až 128 znaků)
komentáře k tabulkám a polím
definice výchozí hodnoty pole tabulky, ověření na úrovni pole, záznamu
trvalé vazby
zpracování transakcí funguje pouze nad tabulkami, které jsou v databázi
pravidla RI – na jednom místě – uložené procedury
Nevýhoda
tabulka může náležet jen jedné databázi – při přesunutí tabulky je třeba zajistit vazbu
VOŠ pro praxi 2
reg. č.: CZ.1.07/2.1.00/32.0044
3. 10.12.2012
STRUKTURA TABULKY
Pro definici struktury tabulky je třeba navrhnout:
Jméno položky (Name) – libovolné jméno (ve jméně
nelze použít znak mezera)
Typ položky(Type) – typy znaků, které do položky
mohou být zapsány (čísla, speciální znaky atd.)
Délka položky (Width) – maximální počet znaků (u
číselných typů včetně znaku pro desetinnou čárku)
Počet desetinných míst (Decimal)
VOŠ pro praxi 3
reg. č.: CZ.1.07/2.1.00/32.0044
4. 10.12.2012
TYPY POLÍ
TypPole nŠířkaPole Počet desetin.
C n - Character (řetězec) o šířce n
D 8 - Date (datum)
T 8 - DateTime (datum a čas)
N n d Numeric (číslo) o šířce n mající d
desetinných míst
F n d Numeric Floating o šířce n mající d
desetinných míst
I 4 - Integer (celé číslo)
B 8 d Double
Y 8 - Currency
L 1 - Logical
M 4 - Memo
G - - General
VOŠ pro praxi 4
reg. č.: CZ.1.07/2.1.00/32.0044
5. 10.12.2012
ZÁKLADNÍ PŘÍKAZY PRO PRÁCI S TABULKAMI
Vytvoření databáze
CREATE DATABASE [NázevDatabáze]
Vytvoření tabulky
CREATE TABLE NázevTabulky (NázevPole1
TypPole [(nŠířkaPole [, nPřesnost])][, NázevPole2
TypPole [(nŠířkaPole [, nPřesnost])]…....])
Uzavření databází a tabulek
CLOSE DATABASES [ALL]
VOŠ pro praxi 5
reg. č.: CZ.1.07/2.1.00/32.0044
6. 10.12.2012
Otevření databáze
OPEN DATABASE [NázevSouboru]
Otevření tabulky
USE [NázevTabulky] [IN nPracovníOblast]
[[TAG] NázevSložky][ALIAS cAliasTabulky]
IN nPracovníOblast - určuje pracovní
oblast, ve které je tabulka otevřena.
Výběr pracovní oblasti
SELECT nPracovníOblast | cAliasTabulky
VOŠ pro praxi
reg. č.: CZ.1.07/2.1.00/32.0044 6
7. 10.12.2012
Pohyb mezi záznamy v databázové tabulce
GO nČísloZáznamu
- nebo -
GO TOP | BOTTOM
TOP - Umístí ukazatel záznamu na první záznam v
tabulce
BOTTOM - Umístí ukazatel záznamu na poslední
záznam v tabulce.
RECNO() - vrátí číslo aktuálního záznamu z aktuální
tabulky
SKIP [nZáznamy]
nZáznamy - určuje počet záznamů, o něž se má
posunout ukazatel záznamu.
VOŠ pro praxi
reg. č.: CZ.1.07/2.1.00/32.0044 7
8. 10.12.2012
Vkládání záznamů
APPEND BLANK - přidá jeden prázdný záznam na konec
aktuální tabulky.
INSERT INTO název_tabulky [(název_pole1 [,
název_pole2, ...])] VALUES (eVýraz1 [, eVýraz2, ...])
[(název_pole1 [, název_pole2 [, ...]])] - určuje názvy polí
v novém záznamu,. do nichž budou vloženy hodnoty.
VALUES (eVýraz1 [, eVýraz2 [, ...]]) - určuje hodnoty,
které budou vloženy do polí v novém záznamu
SCATTER MEMVAR [MEMO] - zkopíruje data z aktuálního
záznamu do sady paměťových proměnných.
GATHER MEMVAR [MEMO] - zamění data v aktuálním
záznamu aktuální otevřené tabulky daty ze sady
paměťových proměnných
VOŠ pro praxi
reg. č.: CZ.1.07/2.1.00/32.0044 8
9. 10.12.2012
Mazání záznamů
Mazání záznamů probíhá ve dvou krocích.
Označení záznamů ke smazání
záznamy v tabulce stále existují a lze u nich dodatečně příznak
smazání odstranit
DELETE [Obor] [FOR lVýraz1] [WHILE lVýraz2]
označí záznam k odstranění.
Obor - určuje obor záznamů, které budou označeny k
odstranění.
FOR lVýraz1 - Určuje, že k odstranění budou označeny
pouze ty záznamy, které splňují logickou podmínku zadanou
argumentem lVýraz1.
WHILE lVýraz2 - Zadává podmínku, která určuje, že záznamy
budou označovány k odstranění, dokud bude mít výraz
zadaný argumentem lVýraz2 hodnotu true (.T.).
VOŠ pro praxi
reg. č.: CZ.1.07/2.1.00/32.0044 9
10. 10.12.2012
Obor
RECALL [Obor] [FOR lVýraz1] [WHILE lVýraz2]
zruší označení záznamu k odstranění.
Fyzické odstranění záznamů – záznamy již nelze žádným
způsobem obnovit
PACK - trvale odebere všechny záznamy označené v aktuální
tabulce pro odstranění a zmenší velikost souboru
ZAP - odstraní z tabulky všechny záznamy a ponechá pouze
strukturu tabulky
VOŠ pro praxi
reg. č.: CZ.1.07/2.1.00/32.0044 10
11. 10.12.2012
Oprava dat
REPLACE NázevPole1 WITH eVýraz1[, NázevPole2 WITH
eVýraz2] ... [Obor] [FOR lVýraz1] [WHILE lVýraz2]
zaktualizuje záznamy tabulky.
NázevPole1 WITH eVýraz1 [, NázevPole2 WITH eVýraz2 ... ] -
určuje, že data v poli určeném v argumentu NázevPole1 budou
zaměněna hodnotou výrazu určeného v argumentu eVýraz1
Obor - Určuje rozsah záznamů, které budou zaměněny. Použití
popsáno u příkazu DELETE
FOR lVýraz1 - Určuje, že označená pole budou zaměněna
pouze v záznamech, pro které je argument lVýraz1 vyhodnocen
na logickou hodnotu true (.T.).
WHILE lVýraz2 - Určuje podmínku, podle které jsou pole
zaměňována do okamžiku, když je logický výraz uvedený v
argumentu lVýraz2 vyhodnocen na logickou hodnotu true (.F.).
VOŠ pro praxi
reg. č.: CZ.1.07/2.1.00/32.0044 11