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.

V Microsoft Office Access 2007 je jednoduché vytváranie a úprava tabuliek, obmedzenia a indexy v návrhovom zobrazení, a vytvoriť vzťahy pomocou okno Vzťahy. Prípadne môžete vytvoriť a upraviť tieto rovnaké entity písaním definujúceho údaje dotazov v zobrazení SQL.

Tento článok popisuje definujúceho údaje dotazov a ukazuje, ako používať tieto dotazy na vytvorenie tabuliek, indexov, obmedzení a vzťahy. V tomto článku môžete tiež pomôže rozhodnúť sa, kedy sa má použiť dotaz definujúci údaje.

Čo vás zaujíma?

Zistite, kedy sa má použiť dotaz definujúci údaje

Vytvorenie alebo úprava tabuľky

Vytvorenie registra

Vytvorenie obmedzenia alebo vzťahu

Zistite, kedy sa má použiť dotaz definujúci údaje

Na rozdiel od iných dotazov dotazu definujúceho údaje načítať údaje. Väčšina dotazov použite údaje manipulácia Language (DML), ktorý zahŕňa jazyk SQL (Structured Query) príkazy, ktoré určiť ako údaje z existujúcich databázových objektov je skombinované a manipulovať údajov výsledky, ktoré chcete. Dotazy údajov použiť údaje definíciu jazyka (DDL), ktorá sa skladá z SQL príkazy, ktoré určujú definíciu databázových objektov, ktoré obsahujú alebo indexovať údaje a SQL príkazy, ktoré riadenie prístupu používateľov k databázovým objektom. Dotaz definujúci údaje v Office Access 2007 definuje alebo zmení definíciu databázového objektu.

Vo všeobecnosti by ste mali používať grafický návrh rozhrania danej Office Access 2007 poskytuje (napríklad Návrhové zobrazenie a okno vzťahy) na vytvorenie tabuliek, obmedzenia, indexy a vzťahy. Však, ak máte tabuľky, ktoré sa pravidelne odstrániť a znova vytvoriť, pomocou týchto rozhraní môže stať časovo. Pomocou dotazu definujúceho údaje, môžete napísať dotaz raz, a potom ho znova spustite podľa potreby. Zvážte použitie dotazu definujúceho údaje, iba v prípade, že máte skúsenosti s SQL príkazy a ak chcete odstrániť a znova vytvoriť konkrétny tabuliek, obmedzenia a indexy pravidelne.

Dôležité : Používanie dotazov definujúceho údaje na úpravu databázových objektov môže byť riskantné, pretože akcie nie je priložené potvrdenia dialógové okná. Ak sa pomýlite, môže dôjsť k strate údajov alebo náhodne zmeniť návrh tabuľky. Dávajte pozor pri používaní dotazu definujúceho údaje na úpravu objektov v databáze. Ak si nie ste zodpovedný za udržiavanie databázy, ktorú používate, mali by ste konzultovať so správcom databázy pred spustením dotazu definujúceho údaje. Okrem toho je vhodné vytvoriť záložnú kópiu balíka všetky tabuľky, v ktorom sa chystáte spustiť takýto dotaz.

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 [, ...]])

Iba požadované prvky príkaz CREATE TABLE sú príkaz CREATE TABLE samotnú, názov tabuľky, aspoň jedno pole a typ údajov každého poľa. Pozrime sa na 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 musíte zapnúť obsah databázy, aby dotaz definujúci údaje na spustenie.

  1. Na Paneli hlásení kliknite na položku Možnosti a potom kliknite na položku Povoliť tento obsah.

  2. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

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

  4. 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.

  5. Zadajte nasledujúci príkaz SQL:

    CREATE TABLE Automobily (Názov TEXT(30), Rok TEXT(4), Cena CURRENCY)

  6. 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átu 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. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku 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á ADD COLUMN Stav 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. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku 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:

    CREATE INDEX RokIndex ON Automobily (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 typ obmedzenia, ktoré odkazuje na hodnoty poľa alebo kombináciu polí v inej tabuľke na určenie, či možno vložiť hodnotu do poľa obmedzené alebo kombináciu polí.

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. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku 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 Automobily ALTER COLUMN Stav TEXT CONSTRAINT PožadovanýStav NOT NULL

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

Teraz predpokladajme, že po nejakom čase zistíte, že existuje mnoho podobné hodnoty v poli podmienky, ktoré by mali byť rovnaké. Napríklad, niektoré vozidlá majú hodnotu podmienku nízkej a iní používatelia majú hodnotu poškodené. Keď sa vymazali hodnoty tak, aby viac konzistentné, môžete vytvoriť tabuľku s názvom CarCondition, jedno pole s názvom stav, ktorý obsahuje všetky hodnoty, ktoré chcete použiť pre podmienku áut:

  1. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku 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:

    CREATE TABLE StavAutomobilu (Stav TEXT(10))

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

  6. 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:

    INSERT INTO StavAutomobilu SELECT DISTINCT Stav FROM Automobily;

    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.

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

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. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku 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 Automobily ALTER COLUMN Stav TEXT CONSTRAINT FKeyCondition REFERENCES StavAutomobilu (Stav)

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

Obmedzenia viacerých polí

Klauzula CONSTRAINT viacpoľové možno použiť len mimo klauzule definície poľa a á takúto syntax:

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}]}

Pozrime sa na ďalší príklad pomocou automobilov tabuľky. Predpokladajme, že chcete zabezpečiť, aby dva záznamy v tabuľke autá mali rovnakú množinu hodnôt pre názov, rok, stav a cenu. Môžete vytvoriť jedinečné obmedzenie, ktorá sa týka týchto polí pomocou nasledujúceho postupu:

  1. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku 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 Automobily ADD CONSTRAINT NoDupes UNIQUE (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.

×