Vytváření a úpravy tabulek

Содержание

Слайд 2

Cíl lekce

Po skončení této lekce byste měli umět:
Popsat hlavní databázové objekty
Vytvářet tabulky
Popsat

Cíl lekce Po skončení této lekce byste měli umět: Popsat hlavní databázové
datové typy, které mohou být použity při specifikování sloupců
Měnit definici tabulek
Rušit, přejmenovávat a vyprazdňovat tabulky

STRANA

Слайд 3

Databázové objekty

STRANA

Databázové objekty STRANA

Слайд 4

Pravidla pro názvy

Názvy tabulek a sloupců musí
Začínat písmenem
Smějí být dlouhé 1 –

Pravidla pro názvy Názvy tabulek a sloupců musí Začínat písmenem Smějí být
30 znaků
Smějí obsahovat pouze A-Z, a-z, 0-9, _, $ a #
Nesmějí opakovat názvy jiných objektů vlastněných týmž uživatelem
Nesmějí to být vyhrazená slova serveru

STRANA

Слайд 5

Příkaz CREATE TABLE

Musíte mít
Privilegium CREATE TABLE
Prostor pro uložení
Specifikujete:
Název tabulky
Název sloupce, jeho datový

Příkaz CREATE TABLE Musíte mít Privilegium CREATE TABLE Prostor pro uložení Specifikujete:
typ a velikost

CREATE TABLE [schema.]tabulka
(sloupec dat_typ [DEFAULT výraz][, ...]);

STRANA

Слайд 6

Odkazy na tabulky jiného uživatele

Tabulky vlastněné jiným uživatelem nejsou součástí uživatelova schématu
Můžete

Odkazy na tabulky jiného uživatele Tabulky vlastněné jiným uživatelem nejsou součástí uživatelova
použít uživatelovo jméno jako prefix k názvu tabulky

STRANA

Слайд 7

Volba DEFAULT

Specifikujte defaultní hodnotu pro sloupec během vkládání
Platnými hodnotami jsou literál, výraz

Volba DEFAULT Specifikujte defaultní hodnotu pro sloupec během vkládání Platnými hodnotami jsou
nebo SQL funkce
Název jiného sloupce nebo pseudosloupce jsou nepřípustné
Datový typ defaultní hodnoty musí souhlasit s datovým typem sloupce

STRANA

Слайд 8

Vytváření tabulky

Vytvořte tabulku
Ověřte vytvoření tabulky


DESCRIBE dept

STRANA

Vytváření tabulky Vytvořte tabulku Ověřte vytvoření tabulky DESCRIBE dept STRANA

Слайд 9

Tabulky v databázi

Uživatelské tabulky:
Je to kolekce tabulek vytvořených a vlastněných uživatelem
Obsahují uživatelovy

Tabulky v databázi Uživatelské tabulky: Je to kolekce tabulek vytvořených a vlastněných
informace
Datový slovník:
Je to kolekce tabulek vytvořených a vlastněných databázovým serverem
Obsahují data o struktuře a stavu databáze

STRANA

Слайд 10

Dotazy do datového slovníku

SELECT DISTINCT object_type
FROM user_objects ;

Vyber názvy tabulek uživatelem

Dotazy do datového slovníku SELECT DISTINCT object_type FROM user_objects ; Vyber názvy
vlastněných

Vyber různé typy objektů uživatelem vlastněných

Vyber tabulky, pohledy, synonyma a sekvence vlastněné uživatelem

Слайд 11

Datové typy

Datové typy

Слайд 12

Datové typy pro datum a čas

Oracle 9i přinesl nové datové typy pro

Datové typy pro datum a čas Oracle 9i přinesl nové datové typy
čas a datum
Jsou k dispozici nové způsoby ukládání dat
Byla rozšířena vazba na časové zóny a jejich lokalizaci

STRANA

Слайд 13

Datové typy pro datum a čas

Základním typem je typ DATE
Datový typ TIMESTAMP

Datové typy pro datum a čas Základním typem je typ DATE Datový
je rozšířením datového typu DATE
Ukládá roky, měsíce a dny obdobně jako typ DATE, plus hodiny, minuty a sekundy a stejně zlomky sekund
Datový typ TIMESTAMP je definován:

TIMESTAMP[(přesnost_vteřinového_zlomku)]

STRANA

Слайд 14

Vytváření tabulky s užitím poddotazu

Vytvořte tabulku a vložte do ní řádky kombinací

Vytváření tabulky s užitím poddotazu Vytvořte tabulku a vložte do ní řádky
příkazu CREATE TABLE a volby AS poddotaz
Počet specifikovaných sloupců musí souhlasit s počtem sloupců v poddotazu
Definujte sloupce s názvy sloupců a defaultními hodnotami

STRANA

Слайд 15

Vytváření tabulky s užitím poddotazu

DESCRIBE oddel80

CREATE TABLE oddel80
AS SELECT zamestnanec_id, prijmeni,

Vytváření tabulky s užitím poddotazu DESCRIBE oddel80 CREATE TABLE oddel80 AS SELECT

plat*12 ROK_PLAT,
den_nastupu FROM zamestnanci WHERE oddeleni_id = 80;
Table created.

Слайд 16

Příkaz ALTER TABLE

Příkaz ALTER TABLE umožňuje
Přidat nový sloupec
Modifikovat stávající sloupec
Definovat defaultní hodnotu

Příkaz ALTER TABLE Příkaz ALTER TABLE umožňuje Přidat nový sloupec Modifikovat stávající
pro sloupec
Zrušit sloupec

STRANA

Слайд 17

Příkaz ALTER TABLE

Užijte příkaz ALTER TABLE pro přidání, změnu a zrušení sloupce

ALTER

Příkaz ALTER TABLE Užijte příkaz ALTER TABLE pro přidání, změnu a zrušení
TABLE tabulka
ADD (sloupec datový_typ [DEFAULT výraz]
[, sloupec datový_typ]...);

ALTER TABLE tabulka
MODIFY (sloupec datový_typ [DEFAULT výraz]
[, sloupec datový_typ]...);

ALTER TABLE tabulka
DROP (sloupec);

STRANA

Слайд 18

Přidání sloupce

ODDEL80

ODDEL80

Přidej nový sloupec do tabulky ODDEL80

Přidání sloupce ODDEL80 ODDEL80 Přidej nový sloupec do tabulky ODDEL80

Слайд 19

Přidání sloupce

Přidejte nový sloupec PRÁCE_ID
Nový sloupec se objeví jako poslední

ALTER TABLE

Přidání sloupce Přidejte nový sloupec PRÁCE_ID Nový sloupec se objeví jako poslední
oddel80
ADD (prace_id VARCHAR2(9));
Table altered.

STRANA

Слайд 20

Změna sloupce

U sloupce můžete změnit datový typ, velikost a defaultní hodnotu
Změna defaultní

Změna sloupce U sloupce můžete změnit datový typ, velikost a defaultní hodnotu
hodnoty má vliv pouze při pozdějším vkládání dat

STRANA

Слайд 21

Zrušení sloupce

Použijte klauzuli DROP COLUMN pro odstranění nepotřebného sloupce

STRANA

Zrušení sloupce Použijte klauzuli DROP COLUMN pro odstranění nepotřebného sloupce STRANA

Слайд 22

Odstranění tabulky

Všechna data a struktura tabulky jsou zrušena
Všechny probíhající transakce jsou ukončeny

Odstranění tabulky Všechna data a struktura tabulky jsou zrušena Všechny probíhající transakce
s potvrzením
Všechny indexy jsou zrušeny
Tento příkaz nemůže být zrušen (vrácen)

STRANA

Слайд 23

Změna názvu objektu

Ke změně názvu tabulky, pohledu, sekvence nebo synonyma použijte příkaz

Změna názvu objektu Ke změně názvu tabulky, pohledu, sekvence nebo synonyma použijte
RENAME
Musíte být vlastníkem objektu

STRANA

Слайд 24

Vyprázdnění tabulky

Příkaz TRUNCATE TABLE
Odstraní všechny řádky z tabulky
Uvolní skladový prostor obsazený tabulkou
Jestliže

Vyprázdnění tabulky Příkaz TRUNCATE TABLE Odstraní všechny řádky z tabulky Uvolní skladový
použijete TRUNCATE, nelze obsah tabulky vrátit
Alternativně můžete vyprázdnit tabulku příkazem DELETE

STRANA

Слайд 25

Co je omezení?

Omezení (constraints) vynucují pravidla na úrovni tabulek
Omezení zabraňují vymazání dat,

Co je omezení? Omezení (constraints) vynucují pravidla na úrovni tabulek Omezení zabraňují
na které jsou vazby z jiných tabulek
Následující typy omezení jsou platná:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK

STRANA

Слайд 26

Pravidla pro omezení

Constraint může být pojmenován nebo je jeho jméno vytvářeno serverem
Vytvořit

Pravidla pro omezení Constraint může být pojmenován nebo je jeho jméno vytvářeno
omezení lze:
Při vytváření tabulky
Dodatečně, po vytvoření tabulky
Omezení lze definovat na úrovni sloupce nebo tabulky
Omezení lze prohlížet v datovém slovníku

STRANA

Слайд 27

Vytváření omezení

CREATE TABLE zamestanci (
zamestnanec_id NUMBER(6),
jmeno VARCHAR2(20),
...
funkce_id

Vytváření omezení CREATE TABLE zamestanci ( zamestnanec_id NUMBER(6), jmeno VARCHAR2(20), ... funkce_id
VARCHAR2(10) NOT NULL,
CONSTRAINT ZAM_ID_PK
PRIMARY KEY ( ZAMESTNANEC_ID ) );

Слайд 28

Vytváření omezení

Omezení na úrovni sloupců
Omezení na úrovni tabulky

sloupec [CONSTRAINT název_omezení] typ_omezení,

sloupec,...
[CONSTRAINT

Vytváření omezení Omezení na úrovni sloupců Omezení na úrovni tabulky sloupec [CONSTRAINT
název_omezení] typ_omezení
(sloupec, ...),

Слайд 29

Omezení NOT NULL

Zajišťuje, že do sloupce nemůže být vložena hodnota NULL

NOT NULL

Omezení NOT NULL Zajišťuje, že do sloupce nemůže být vložena hodnota NULL
constraint (žádný řádek nesmí být nulový)

NOT NULL constraint

Není NOT NULL constraint

STRANA

Слайд 30

Omezení NOT NULL

Definuje se na úrovni sloupce

CREATE TABLE zamestnanci(
zamestnanec_id NUMBER(6),
prijmeni

Omezení NOT NULL Definuje se na úrovni sloupce CREATE TABLE zamestnanci( zamestnanec_id
VARCHAR2(25) NOT NULL,
plat NUMBER(8,2),
premie_pct NUMBER(2,2),
den_nastupu DATE
CONSTRAINT zam_nast_dat_nn
NOT NULL,
...

STRANA

Слайд 31

Omezení UNIQUE

Zabezpečuje, že v určitém sloupci budou pouze jedinečné hodnoty (bez opakování)

LZE

NELZE

UNIQUE

STRANA

Omezení UNIQUE Zabezpečuje, že v určitém sloupci budou pouze jedinečné hodnoty (bez

Слайд 32

Omezení UNIQUE

Lze jej definovat na úrovni řádku i tabulky

CREATE TABLE zamestnanci(
zamestnanec_id

Omezení UNIQUE Lze jej definovat na úrovni řádku i tabulky CREATE TABLE
NUMBER(6),
prijmeni VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
palt NUMBER(8,2),
premie_pct NUMBER(2,2),
den_nastupu DATE NOT NULL,
...
CONSTRAINT zam_email_uk UNIQUE(email));

STRANA

Слайд 33

Omezení PRIMARY KEY

Omezení PRIMARY KEY je sloupec, který jednojednoznačně identifikuje určitý řádek

Omezení PRIMARY KEY Omezení PRIMARY KEY je sloupec, který jednojednoznačně identifikuje určitý
v tabulce

PRIMARY
KEY

Nulová hodnota

Již existuje

NELZE

STRANA

Слайд 34

Omezení PRIMARY KEY

Lze definovat jak na úrovni tabulky, tak řádku

STRANA

Omezení PRIMARY KEY Lze definovat jak na úrovni tabulky, tak řádku STRANA

Слайд 35

Omezení FOREIGN KEY

Cizí klíč

INSERT

Přípustné

Nelze – klíč neexistuje

STRANA

Omezení FOREIGN KEY Cizí klíč INSERT Přípustné Nelze – klíč neexistuje STRANA

Слайд 36

FOREIGN KEY constraint

Lze definovat na úrovni tabulky i sloupce

CREATE TABLE zamestnanci(
zamestnanec_id

FOREIGN KEY constraint Lze definovat na úrovni tabulky i sloupce CREATE TABLE
NUMBER(6),
prijmeni VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
plat NUMBER(8,2),
premie_pct NUMBER(2,2),
den_nastupu DATE NOT NULL,
...
oddeleni_id NUMBER(4),
CONSTRAINT zam_odd_fk FOREIGN KEY (oddeleni_id)
REFERENCES oddeleni(oddeleni_id),
CONSTRAINT zam_email_uk UNIQUE(email));

STRANA

Слайд 37

FOREIGN KEY constraint Klíčová slova

FOREIGN KEY: identifikuje sloupec v dceřiné tabulce, který odpovídá

FOREIGN KEY constraint Klíčová slova FOREIGN KEY: identifikuje sloupec v dceřiné tabulce,
vzoru
REFERENCES: identifikuje otcovskou tabulku a sloupec
ON DELETE CASCADE: při zrušení řádku v otcovské tabulce zruší závislé řádky v dceřiné tabulce
ON DELETE SET NULL: při zrušení řádku v otcovské tabulce nastaví závislé cizí klíče na NULL

STRANA

Слайд 38

Omezení CHECK

Definuje podmínky, které musí každý řádek splňovat
Následující výrazy jsou nepřípustné
Odkazy na

Omezení CHECK Definuje podmínky, které musí každý řádek splňovat Následující výrazy jsou
pseudosloupce CURRVAL, NEXTVAL, LEVEL a ROWNUM
Užití funkcí SYSDATE, UID, USER a USERENV
Dotazy, které používají hodnoty v jiných řádcích

STRANA

Слайд 39

Přidávání omezení

Použijte příkaz ALTER TABLE
Přidat nebo odstranit omezení beze změny struktury
Povolit nebo

Přidávání omezení Použijte příkaz ALTER TABLE Přidat nebo odstranit omezení beze změny
zakázat omezení
Přidat NOT NULL omezení pomocí MODIFY klauzule

ALTER TABLE tabulka
ADD [CONSTRAINT omezení] type (sloupec);

STRANA

Слайд 40

Přidání omezení

Přidejte omezení FOREIGN KEY, který zajistí, že manažer zaměstnance již musí

Přidání omezení Přidejte omezení FOREIGN KEY, který zajistí, že manažer zaměstnance již
existovat jako platný zaměstnanec v tabulce ZAMESTNANCI

STRANA

Слайд 41

Odstranění omezení

Odstraňte manažerské omezení z tabulky ZAMESTANCI
Odstraňte PRIMARY KEY na tabulce ODDELENI

Odstranění omezení Odstraňte manažerské omezení z tabulky ZAMESTANCI Odstraňte PRIMARY KEY na
a odstraňte související omezení FOREIGN KEY na sloupci ZAMESTNANCI.ODDELENI_ID

ALTER TABLE zamestnanci
DROP CONSTRAINT zam_manager_fk;
Table altered.

ALTER TABLE departments
DROP PRIMARY KEY CASCADE;
Table altered.

STRANA

Слайд 42

Deaktivace omezení

Použijte DISABLE klauzuli příkazu ALTER TABLE k deaktivaci integritního omezení
Aplikujte volbu

Deaktivace omezení Použijte DISABLE klauzuli příkazu ALTER TABLE k deaktivaci integritního omezení
CASCADE k deaktivaci souvisejících integritních omezení

ALTER TABLE zamestnanci
DISABLE CONSTRAINT zam_zam_id_pk CASCADE;
Table altered.

STRANA

Слайд 43

Aktivace omezení

Aktivujte integritní omezení v tabulce deaktivované užitím klauzule ENABLE
UNIQUE nebo PRIMARY

Aktivace omezení Aktivujte integritní omezení v tabulce deaktivované užitím klauzule ENABLE UNIQUE
KEY indexy se automaticky vytvoří při aktivaci omezení UNIQUE nebo PRIMARY KEY

ALTER TABLE employees
ENABLE CONSTRAINT emp_emp_id_pk;
Table altered.

STRANA

Слайд 44

Prohlížení omezení

Dotaz do tabulky USER_CONSTRAINTS ukáže všechny definice a jména omezení

STRANA

Prohlížení omezení Dotaz do tabulky USER_CONSTRAINTS ukáže všechny definice a jména omezení STRANA
Имя файла: Vytváření-a-úpravy-tabulek.pptx
Количество просмотров: 38
Количество скачиваний: 0