Vytvorenie alebo úprava tabuliek alebo indexov pomocou dotazu definujúceho údaje

Dôležité: Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako referenciu.

Zadaním dotazov definujúcich údaje v zobrazení SQL môžete vytvárať a upravovať tabuľky, obmedzenia, indexy a vzťahy.

Tento článok obsahuje informácie o dotazoch definujúcich údaje a o spôsobe ich používania na vytvorenie tabuliek, obmedzení, indexov a vzťahov. Tento článok taktiež obsahuje informácie, ktoré slúžia ako pomôcka pri rozhodovaní sa o tom, kedy použiť dotaz definujúci údaje.

Poznámka: Uvedené postupy nie je možné použiť vo webovej databáze.

Obsah tohto článku

Prehľad

Vytvorenie alebo úprava tabuľky

Vytvorenie registra

Vytvorenie obmedzenia alebo vzťahu

Prehľad

Na rozdiel od iných typov dotazov sa dotaz definujúci údaje nepoužíva na načítanie údajov. Dotaz definujúci údaje používa jazyk definície údajov na vytvorenie, úpravu alebo odstraňovanie databázových objektov.

Poznámka: Jazyk definície údajov (DDL) je súčasťou jazyka štruktúrovaného dotazu (SQL).

Dotazy definujúce údaje môžu byť veľmi praktické. Spustením niektorých dotazov môžete pravidelne odstraňovať a znova vytvárať časti databázovej schémy. Zvážte možnosť použitia dotazu definujúceho údaje, ak poznáte príkazy SQL a plánujete odstraňovať a znova vytvárať konkrétne tabuľky, obmedzenia, indexy alebo vzťahy.

Upozornenie: Používanie dotazov definujúcich údaje na úpravu databázových objektov môže byť riskantné, pretože akcie nie sú sprevádzané potvrdzovacími dialógovými oknami. Ak urobíte chybu, môžete stratiť údaje alebo nevratne zmeniť návrh tabuľky. Postupujte opatrne, keď používate dotaz definujúci údaje na úpravu objektov v databáze. Ak nie ste zodpovední za údržbu databázy, ktorú používate, skôr než spustíte dotaz definujúci údaje, sa obráťte na správcu databázy.

Dôležité: Vytvorte si záložnú kópiu všetkých príslušných tabuliek pred tým, než spustíte dotaz definujúci údaje.

Kľúčové slová DDL

Kľúčové slovo

Zadajte

CREATE

Vytvorenie indexu alebo tabuľky, ktorá ešte neexistuje.

ALTER

Úprava existujúcej tabuľky alebo stĺpca.

DROP

Odstránenie existujúcej tabuľky, stĺpca alebo obmedzenia.

ADD

Pridanie stĺpca alebo obmedzenia do tabuľky.

COLUMN

Používa sa so slovami ADD, ALTER alebo DROP.

CONSTRAINT

Používa sa so slovami ADD, ALTER alebo DROP.

INDEX

Používa sa so slovom CREATE.

TABLE

Používa sa so slovami ALTER, CREATE alebo DROP.

Na začiatok stránky

Vytvorenie alebo úprava tabuľky

Ak chcete vytvoriť tabuľku, použite príkaz CREATE TABLE. Príkaz CREATE TABLE má nasledujúcu syntax:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

Jediným požadovaným prvkom príkazu CREATE TABLE je samotný príkaz CREATE TABLE a názov tabuľky, spravidla však budete chcieť definovať niektoré polia alebo iné aspekty tabuľky. Prečítajte si nasledujúci jednoduchý príklad.

Predpokladajme, že chcete vytvoriť tabuľku na uloženie názvu, roka a ceny jazdených vozidiel, o ktorých kúpe uvažujete. Chcete používať maximálne 30 znakov pre názov a 4 znaky pre rok. Ak chcete použiť dotaz definujúci údaje na vytvorenie tabuľky, postupujte takto:

Poznámka: Najskôr budete pravdepodobne musieť povoliť obsah databázy, aby bolo možné spustiť dotaz definujúci údaje:

  • Na paneli hlásení kliknite na položku Povoliť obsah.

Vytvorenie tabuľky

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    VYTVORENIE TABUĽKY automobilov (meno TEXT(30), rok TEXT(4), cena MENY)

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Úprava tabuľky

Ak chcete upraviť tabuľku, použite príkaz ALTER TABLE. Príkaz ALTER TABLE môžete použiť na pridávanie, úpravu alebo odstránenie stĺpcov alebo obmedzení. Príkaz ALTER TABLE má nasledujúcu syntax:

ALTER TABLE table_name predicate

kde predikát môže byť niektorý z týchto krokov:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Predpokladajme, že chcete pridať 10-znakové textové pole na uloženie informácií o stave každého auta. Môžete vykonať niektorú z nasledujúcich akcií:

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    Príkaz ALTER TABUĽKY stav auta pridať STĹPEC TEXT(10)

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Na začiatok stránky

Vytvorenie indexu

Ak chcete vytvoriť index existujúcej tabuľky, použite príkaz CREATE INDEX. Príkaz CREATE INDEX má nasledujúcu syntax:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Jedinými požadovanými prvkami sú príkaz CREATE INDEX, názov indexu, argument ON, názov tabuľky obsahujúcej polia, ktoré chcete indexovať, a zoznam polí, ktoré sa zahrnú do indexu.

  • Argument DESC spôsobí vytvorenie indexu v zostupnom poradí, čo môže byť užitočné vtedy, keď často spúšťate dotazy, ktoré vyhľadávajú najvyššie zaradené hodnoty v indexovanom poli alebo ktoré zoraďujú indexované pole v zostupnom poradí. Index sa predvolene vytvára vo vzostupnom poradí.

  • S HLAVNÝM argumentom stanovuje indexované pole alebo polia, ako primárny kľúč tabuľky.

  • Argument WITH DISALLOW NULL spôsobí to, že index bude vyžadovať zadanie hodnoty pre indexované pole, t. j. hodnoty null nie sú povolené.

Predpokladajme, že máte tabuľku s názvom Automobily s poľami, v ktorých je zadaný názov, rok, cena a stav jazdených vozidiel, o ktorých kúpe premýšľate. Predpokladajme tiež, že sa tabuľka zväčšila, a že v dotazoch často používate pole Rok. Môžete vytvoriť index poľa Rok ako pomôcku na to, aby dotazy vrátili výsledky rýchlejším spôsobom. Postupujte takto:

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    VYTVORENIE REGISTRA YearIndex zapnuté automobilov (rok)

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Na začiatok stránky

Vytvorenie obmedzenia alebo vzťahu

Obmedzenie vytvorí logickú podmienku, ktorú musí pole alebo kombinácia polí splniť po vložení hodnôt. Napríklad obmedzenie UNIQUE zabraňuje poľu s obmedzením akceptovať hodnotu, ktorá by duplikovala existujúcu hodnotu pre dané pole.

Vzťah je typom obmedzenia, ktorý odkazuje na hodnoty poľa alebo kombinácie polí v inej tabuľke s cieľom určiť, či hodnotu možno vložiť do poľa alebo kombinácie polí s obmedzením. Na označenie toho, že obmedzenie je vzťahom, sa nepoužívajú žiadne špeciálne kľúčové slová.

Na vytvorenie obmedzenia sa používa klauzula CONSTRAINT v príkaze CREATE TABLE alebo ALTER TABLE. Existujú dva druhy klauzúl CONSTRAINT: jedna na vytvorenie obmedzenia jedného poľa a ďalšia na vytvorenie obmedzenia viacerých polí.

Obmedzenia jedného poľa

Klauzula CONSTRAINT vzťahujúca sa na jedno pole sa okamžite riadi definíciou poľa, na ktoré sa vzťahuje, a jej syntax je táto:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Predpokladajme, že máte tabuľku s názvom Automobily s poľami, v ktorých je zadaný názov, rok, cena a stav jazdených vozidiel, o ktorých kúpe uvažujete. Predpokladajme tiež, že často zabúdate zadať hodnotu do poľa stavu vozidla, a že je vaším zámerom vždy tieto údaje zaznamenať. Môžete vytvoriť obmedzenie v poli Stav, ktoré zabráni tomu, aby ste toto pole ponechali prázdne. Postupujte takto:

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    Príkaz ALTER TABUĽKY automobilov ALTER STĹPEC podmienka TEXT OBMEDZENIA ConditionRequired NEMÁ hodnotu NULL

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Teraz predpokladajme, že po čase zistíte, že v poli Stav sa nachádza mnoho podobných hodnôt, ktoré by mali byť rovnaké. Napríklad pole Stav obsahuje u niektorých vozidiel hodnotu slabý a u iných vozidiel hodnotu zlý.

Poznámka: Ak chcete prejsť na zostávajúce kroky postupu, pridajte fiktívne údaje do tabuľky Automobily, ktorú ste vytvorili v predchádzajúcich krokoch.

Po vyčistení hodnôt a získaní požadovanej konzistencie môžete vytvoriť tabuľku s názvom StavAutomobilu s jedným poľom s názvom Stav, ktoré obsahuje všetky hodnoty, ktoré chcete použiť pre stav vozidiel:

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    VYTVORENIE TABUĽKY CarCondition (podmienka TEXT(10))

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

  6. Vytvorte hlavný kľúč pre tabuľku pomocou príkazu ALTER TABLE:

    Príkaz ALTER TABUĽKY CarCondition ALTER STĹPEC stav TEXT OBMEDZENIA CarConditionPK HLAVNÝ KĽÚČ

  7. Ak chcete vložiť hodnoty z poľa Stav tabuľky Automobily do novej tabuľky StavAutomobilu, zadajte nasledujúci výraz SQL na kartu zobrazenia objektu SQL:

    VLOŽTE DO CarCondition VYBERTE ODLIŠNÉ podmienky z automobilov;

    Poznámka: Príkaz SQL v tomto kroku je pripájací dotaz. Na rozdiel od dotazu definujúceho údaje, pripájací dotaz končí bodkočiarkou.

  8. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Vytvorenie vzťahu pomocou obmedzenia

Ak požadujete, aby sa každá nová hodnota vložená do poľa Stav v tabuľke Automobily zhodovala s hodnotou v poli Stav v tabuľke StavAutomobilu, môžete vytvoriť vzťah medzi tabuľkami StavAutomobilu a Automobily v poli Stav takto:

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    Príkaz ALTER TABUĽKY automobilov ALTER STĹPEC podmienka TEXT OBMEDZENIA FKeyCondition ODKAZY CarCondition (stav)

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Obmedzenia viacerých polí

Klauzula CONSTRAINT vzťahujúca sa na viacero polí sa môže používať iba mimo klauzuly definície poľa a jej syntax je takáto:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Použime ďalší príklad, ktorý používa tabuľku Automobily. Predpokladajme, že chcete zaistiť, aby žiadne dva záznamy v tabuľke Automobily nemali rovnakú množinu údajov pre polia Názov, Rok, Stav a Cena. Môžete vytvoriť obmedzenie UNIQUE, ktoré sa vzťahuje na tieto polia. Postupujte takto:

  1. Na karte Vytvoriť kliknite v skupine Makrá a kód na tlačidlo Návrh dotazu.

  2. Zavrite dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh v skupine Typ dotazu kliknite na položku Definovanie údajov.

    Mriežka návrhu sa skryje a zobrazí sa karta zobrazenia objektu SQL.

  4. Zadajte nasledujúci príkaz SQL:

    ALTER TABLE autá pridať OBMEDZENIE NoDupes JEDINEČNÉ (názov, rok, stav, cena)

  5. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Na začiatok stránky

Poznámka: Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×