Vytváření nebo změny tabulek nebo indexů pomocí definičního dotazu

Důležité informace:  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

V Microsoft Office Access 2007 je snadno vytvářet a upravovat tabulky, omezení a indexy v návrhovém zobrazení a vytvoření relace pomocí Okno Relace. Případně můžete vytvořit a změnit tyto stejných entit sestavením definiční dotazy v zobrazení SQL.

Tento článek popisuje definiční dotazy a ukazuje, jak používat tyto dotazy k vytváření tabulek, indexů, omezení a relace. Tento článek taky můžete se rozhodnout, kdy použít definičního dotazu.

V tomto článku

Zjistěte, zda použít definiční dotaz

Vytvoření nebo úprava tabulky

Vytvoření indexu

Vytvoření omezení nebo relace

Zjistěte, zda použít definiční dotaz

Na rozdíl od jiných dotazů definičního dotazu nenačte data. Většina dotazů pomocí jazyka pro manipulaci s dat (DML), který zahrnuje příkazy jazyka SQL (Structured Query), které určují způsob kombinovat a pracovat na výsledky dat, které chcete data z existující databázové objekty. Definiční dotazů se používá jazyk DDL (Data Definition), který zahrnuje příkazy SQL, které určují definici databázových objektů, které obsahují nebo indexovat data a příkazy SQL, které řízení přístupu uživatelů na databázové objekty. Definiční dotaz v Office Access 2007 definuje nebo změní definice databázového objektu.

Obvykle byste měli použít grafický vzor rozhraní, které Office Access 2007 poskytuje (příklad, návrhové zobrazení a okno relace) k vytváření tabulek, omezení, indexy a relace. Ale pokud máte tabulek, které pravidelně odstraňte a znovu vytvořte pomocí těchto rozhraní může být časově náročný. Pomocí definičního dotazu můžete psát dotazu jednou, a potom ji znovu spusťte potřeby. Zvažte použití definičního dotazu pouze v případě, že máte zkušenosti s příkazy SQL a pokud chcete odstranit a znovu vytvořit určitý tabulek, omezení nebo indexů pravidelně.

Důležité informace: Pomocí definičního dotazů při úpravě databázových objektů může být riskantní, protože akce nejsou doprovázeny potvrzení dialogových oknech. Pokud uděláte chybu, může dojít ke ztrátě dat nebo neúmyslně změnit designu tabulku. Dávejte při použití definičního dotazu k úpravám objektů v databázi. Pokud nejste zodpovědný za údržbu databáze, kterou používáte, můžete obraťte se na správce databáze před spuštěním definičního dotazu. Kromě toho je vhodné vytvořit záložní kopii všech tabulek, na které se chystáte spuštění takové dotazu.

Začátek stránky

Vytvoření nebo změna tabulky

Pokud chcete vytvořit tabulku, použijte příkaz CREATE TABLE. Příkaz CREATE TABLE má tuto syntaxi:

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

Pouze povinných elementů příkaz CREATE TABLE jsou samotný příkaz CREATE TABLE, název tabulky, alespoň jedno pole a datový typ atributu každého pole. Dejte nám podívejte jednoduchý příklad.

Předpokládejme, že chcete vytvořit tabulku pro uložení název, rok a cena automobilů, které jsou zvažovat koupit. Chcete povolit až 30 znaků pro název a 4 znaky v roce. Vytvoření tabulky pomocí definičního dotazu, postupujte takto:

Poznámka: Je třeba nejprve povolit obsah databáze, aby data definičního dotazu.

  1. Na Panelu zpráv klikněte na Možnosti a potom klikněte na Povolit tento obsah.

  2. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  3. Zavřete dialogové okno Zobrazit tabulku.

  4. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  5. Zadejte následující příkaz SQL:

    Vytvoření tabulky automobilů (jméno TEXT(30), rok TEXT(4), cena MĚNA)

  6. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Upravit tabulku

Chcete-li upravit tabulku, použijte příkaz ALTER TABLE. Příkaz ALTER TABLE slouží k přidání, úprava nebo přetáhnout (odebrat) sloupce nebo omezení. Příkaz ALTER TABLE má tuto syntaxi:

ALTER TABLE table_name predicate

Pokud predikátu může být v kterémkoliv z následujících akcí:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Předpokládejme, že chcete přidat 10 znacích textové pole pro uložení informací o stavu každý auta. Můžete udělat toto:

  1. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  2. Zavřete dialogové okno Zobrazit tabulku.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  4. Zadejte následující příkaz SQL:

    Příkaz ALTER tabulku automobilů přidat sloupec podmínka TEXT(10)

  5. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Začátek stránky

Vytvářecí (index)

Vytvoření indexu založeného na existující tabulky, použijte příkaz CREATE INDEX. Příkaz CREATE INDEX má tuto syntaxi:

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

Pouze povinných elementů jsou CREATE INDEX příkaz název index, argument zapnuto, název tabulky obsahující pole, která chcete rejstřík a seznam polí mají být součástí indexu.

  • Příčiny DESC argument index byly vytvořeny v sestupném pořadí, které mohou být užitečné, pokud je často spouštění dotazů, vyhledejte nejvyšší nebo nejnižší hodnoty indexovaném poli nebo který indexovaném poli v sestupném pořadí řazení Ve výchozím nastavení se vytvoří rejstřík ve vzestupném pořadí.

  • Argument s primární zavádí indexované jedno nebo více polí jako Primární klíč tabulky.

  • Argument s DISALLOW NULL způsobí indexu vyžadovat zadání hodnoty pro indexovaném poli – to znamená, nejsou povolené hodnoty null.

Předpokládejme, že máte v tabulce s názvem automobilů s poli, s uloženým název, rok, cena a podmínky, které jsou zvažovat koupit automobilů. Předpokládejme také, že v tabulce stal velkých a často obsahovat pole rok v dotazech. Vytvoření indexu na základě roku pole pro váš dotazů vracel výsledky pro rychleji pomocí následujícího postupu:

  1. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  2. Zavřete dialogové okno Zobrazit tabulku.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  4. Zadejte následující příkaz SQL:

    Vytvoření indexu YearIndex dál automobilů (rok)

  5. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Začátek stránky

Vytvoření omezení nebo relace

Omezení zavádí logické podmínku, která pole nebo kombinaci polí musí být splněné po vložení hodnoty. Například jedinečnosti zabrání omezené pole přijetí hodnota, která by duplicitní existující hodnotu pro pole.

Relace je typ omezení, které odkazuje na hodnoty pole nebo kombinaci polí v jiné tabulce a zjistit, jestli můžete vložit hodnotu v poli s omezením nebo kombinaci polí.

Pokud chcete vytvořit omezení, použili jste klauzule CONSTRAINT v příkaz CREATE TABLE nebo ALTER TABLE. Existují dva typy klauzule CONSTRAINT: jeden pro vytváření omezení na jedno pole a jiné pro vytváření omezení na základě více polí.

Omezení jednom poli

Klauzule CONSTRAINT jednom poli následuje definici pole it omezuje a má tuto syntaxi:

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

Předpokládejme, že máte v tabulce s názvem automobilů s poli, s uloženým název, rok, cena a podmínky, které jsou zvažovat koupit automobilů. Předpokládejme také, že často nezapomeňte zadat hodnotu auta podmínku a vždy chcete zaznamenat tyto informace. Můžete vytvořit omezení na základě podmínky pole, které brání nechte pole prázdné, pomocí následujícího postupu:

  1. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  2. Zavřete dialogové okno Zobrazit tabulku.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  4. Zadejte následující příkaz SQL:

    Příkaz ALTER tabulky automobilů ALTER sloupec podmínka TEXT omezení ConditionRequired není NULL

  5. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Předpokládejme, že po chvíli zjistíte, aby byly v poli podmínky, které by měl být stejný počet podobné hodnoty. Například některé z automobilů mají podmínce hodnotu špatnou a ostatní mají hodnota Chybná. Po vyčištění hodnot, aby byly jednotnější, můžete vytvořit tabulku s názvem CarCondition, jedno pole s názvem podmínky, která obsahuje všechny hodnoty, které chcete použít pro podmínku automobilů:

  1. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  2. Zavřete dialogové okno Zobrazit tabulku.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  4. Zadejte následující příkaz SQL:

    Vytvoření tabulky CarCondition (podmínka TEXT(10))

  5. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

  6. Vložit hodnoty z pole Podmínka automobilů tabulky do nové tabulky CarCondition, do kartu objektu zobrazení SQL zadejte následující příkaz SQL:

    Vložit tabulku do vyberte DISTINCT CarCondition podmínka z automobilů;

    Poznámka: Příkaz SQL v tomto kroku je Přidávací dotaz. Na rozdíl od definičního dotazu přidávací dotaz má na konci středníkem.

  7. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Vyžadovat, aby všechny nové hodnota zahrnuli podmínku pole tabulky automobilů odpovídá podmínku pole v tabulce CarCondition, můžete pak vytvoření relace mezi CarCondition a automobilů na pole s názvem podmínky, pomocí následujícího postupu:

  1. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  2. Zavřete dialogové okno Zobrazit tabulku.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  4. Zadejte následující příkaz SQL:

    Příkaz ALTER tabulky automobilů ALTER sloupec podmínka TEXT omezení FKeyCondition odkazy CarCondition (stav)

  5. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Omezení více polích

Klauzule CONSTRAINT více polích lze použít pouze mimo klauzuli definice pole a má tuto syntaxi:

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

Dejte nám podívejte se na jiný příklad použití tabulky automobilů. Předpokládejme, že chcete zajistit, aby dva záznamy v tabulce automobilů měli stejnou sadu hodnot pro název, rok, podmínky a cena. Můžete například vytvořit JEDINEČNÝ omezení, která se týká těchto polí pomocí následujícího postupu:

  1. Na kartě Vložení klepněte ve skupině Jiné na položku Návrh dotazu.

  2. Zavřete dialogové okno Zobrazit tabulku.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na Definice dat.

    Skryté návrhové mřížky a zobrazí kartu objektu zobrazení SQL.

  4. Zadejte následující příkaz SQL:

    ZMĚNIT tabulky automobilů přidat omezení NoDupes jedinečné (jméno, rok, stavu, cena)

  5. Na kartě Návrh klepněte ve skupině Výsledky na tlačítko Spustit.

Začátek stránky

Poznámka: Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×