Applies ToAccess pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

V Accesse môžete vytvárať a upravovať tabuľky, obmedzenia, indexy a vzťahy písaním dotazov definujúci údaje v zobrazení SQL. Tento článok vysvetľuje dotazy na definíciu údajov a spôsob ich používania na vytváranie tabuliek, obmedzení, indexov a vzťahov. Tento článok vám tiež pomôže rozhodnúť sa, kedy použiť dotaz definujúci údaje.

Obsah tohto článku

Prehľad

Na rozdiel od iných dotazov Accessu dotaz definujúci údaje nenačítáva údaje. Namiesto toho dotaz definujúci údaje používa jazyk definície údajov na vytvorenie, úpravu alebo odstránenie databázových objektov.

Poznámka: Jazyk DDL (Data Definition Language) je súčasťou jazyka SQL (Structured Query Language).

Dotazy na definíciu údajov môžu byť veľmi pohodlné. Časti schémy databázy môžete pravidelne odstraňovať a opätovne vytvárať iba spustením niektorých dotazov. Ak poznáte príkazy SQL a plánujete odstrániť a znova vytvoriť konkrétne tabuľky, obmedzenia, indexy alebo vzťahy, zvážte použitie dotazu na definíciu údajov.

Upozornenie: Použitie dotazov na definovanie údajov na úpravu databázových objektov môže byť riskantné, pretože akcie nie sú sprevádzané potvrdzovacími dialógovými oknami. Ak sa pomýlite, môžete prísť o údaje alebo neúmyselne zmeniť návrh tabuľky. Pri používaní dotazu na definovanie údajov na úpravu objektov v databáze buďte opatrní. Ak nenesiete zodpovednosť za údržbu používanej databázy, pred spustením dotazu na definíciu údajov by ste sa mali poradiť so správcom databázy.

Dôležité: Pred spustením dotazu na definíciu údajov vytvorte záložnú kópiu všetkých príslušných tabuliek.

Kľúčové slová DDL

Kľúčové slovo

Použitie

CREATE

Vytvorte index alebo tabuľku, ktorá ešte neexistuje.

ALTER

Upravte existujúcu tabuľku alebo stĺpec.

DROP

Odstráňte existujúcu tabuľku, stĺpec alebo obmedzenie.

ADD

Pridanie stĺpca alebo obmedzenia do tabuľky.

COLUMN

Použitie s funkciou ADD, ALTER alebo DROP

CONSTRAINT

Použitie s funkciou ADD, ALTER alebo DROP

INDEX

Použitie s funkciou CREATE

TABLE

Použitie s funkciou 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ými požadovanými prvkami príkazu CREATE TABLE sú samotný príkaz CREATE TABLE a názov tabuľky, ale zvyčajne budete chcieť definovať niektoré polia alebo iné aspekty tabuľky. Zoberme si tento jednoduchý príklad.

Predpokladajme, že chcete vytvoriť tabuľku na uloženie názvu, roka a ceny ojazdených áut, ktoré zvažujete na kúpu. Chcete povoliť maximálne 30 znakov pre názov a 4 znaky pre daný rok. Ak chcete na vytvorenie tabuľky použiť dotaz definujúci údaje, postupujte takto:

Poznámka: Na spustenie dotazu na definíciu údajov môže byť najskôr potrebné povoliť obsah databázy:

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

Vytvorenie tabuľky

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  4. 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. Pomocou príkazu ALTER TABLE môžete pridávať, upravovať alebo odstraňovať (odstraňovať) stĺpce alebo obmedzenia. Príkaz ALTER TABLE má nasledujúcu syntax:

ALTER TABLE table_name predicate

pričom predikát môže byť niektorá z týchto možností:

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ť textové pole s veľkosťou 10 znakov na uloženie informácií o stave každého auta. Môžete vykonávať nasledovné:

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

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

Na začiatok stránky

Vytvorenie registra

Ak chcete vytvoriť index v existujúcej tabuľke, 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 povinný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 majú zahrnúť do indexu.

  • Argument DESC spôsobuje, že index sa vytvorí v zostupnom poradí, čo môže byť užitočné, ak často spúšťate dotazy, ktoré vyhľadávajú najvyššie hodnoty indexovaného poľa, alebo ktoré zoraďujú indexované pole v zostupnom poradí. Index sa predvolene vytvára vo vzostupnom poradí.

  • Argument WITH PRIMARY vytvára indexované pole alebo polia ako primárny kľúč tabuľky.

  • Argument WITH DISALLOW NULL spôsobuje, že index vyžaduje zadávanie hodnoty pre indexované pole, čo znamená, že hodnoty null nie sú povolené.

Predpokladajme, že máte tabuľku s názvom Autá s poľami, ktoré obsahujú názov, rok, cenu a stav ojazdených áut, ktoré zvažujete na kúpu. Predpokladajme tiež, že tabuľka sa stala veľkou a pole roka často zahrniete do dotazov. V poli Year (Rok) môžete vytvoriť index, ktorý dotazom pomôže rýchlejšie vrátiť výsledky pomocou nasledujúceho postupu:

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    CREATE INDEX YearIndex ON Cars (Rok)

  4. 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 vytvára logickú podmienku, ktorú musí pole alebo kombinácia polí spĺňať pri vkladaní hodnôt. Obmedzenie UNIQUE napríklad bráni obmedzenému poľu prijať hodnotu, ktorá by duplikovala existujúcu hodnotu poľa.

Vzťah je typ obmedzenia, ktorý odkazuje na hodnoty poľa alebo kombináciu polí v inej tabuľke, aby sa určilo, či je možné vložiť hodnotu do obmedzeného poľa alebo kombináciu polí. Na označenie, že obmedzenie je vzťah, nepoužívate špeciálne kľúčové slovo.

Ak chcete vytvoriť obmedzenie, použite klauzulu CONSTRAINT v príkazoch CREATE TABLE alebo ALTER TABLE. Existujú dva druhy klauzúl CONSTRAINT: jeden na vytvorenie obmedzenia pre jedno pole a druhý na vytvorenie obmedzenia pre viacero polí.

Obmedzenia s jedným poľom

Jednopoľová klauzula CONSTRAINT bezprostredne nasleduje za definíciou poľa, ktoré obmedzuje, a má nasledujúcu syntax:

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 Autá s poľami, ktoré obsahujú názov, rok, cenu a stav ojazdených áut, ktoré zvažujete na kúpu. Predpokladajme tiež, že často zabudnete zadať hodnotu stavu auta a že tieto informácie chcete vždy zaznamenať. V poli Podmienka môžete vytvoriť obmedzenie, ktoré zabráni ponechaniu poľa prázdneho pomocou nasledujúceho postupu:

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    ALTER TABLE Autá Alter COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

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

Predpokladajme, že po určitom čase si všimnete, že v poli Podmienka existuje veľa podobných hodnôt, ktoré by mali byť rovnaké. Napríklad niektoré autá majú hodnotu podmienky nízkej a iné majú zlú hodnotu.

Poznámka: Ak chcete postupovať podľa zvyšných postupov, pridajte falošné údaje do tabuľky Autá, ktorú ste vytvorili v predchádzajúcich krokoch.

Po vyčistení hodnôt tak, aby boli konzistentnejšie, môžete vytvoriť tabuľku s názvom CarCondition s jedným poľom s názvom Podmienka, ktorá obsahuje všetky hodnoty, ktoré chcete použiť pre stav automobilov:

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    CREATE TABLE CarCondition (Podmienka TEXT(10))

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

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

    ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

  6. Ak chcete do novej tabuľky CarCondition vložiť hodnoty z poľa Podmienka tabuľky Cars (Autá), na kartu objektu zobrazenia SQL zadajte nasledujúci príkaz SQL:

    Vložiť do carcondition SELECT ODLIŠNÉ podmienky z automobilov;

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

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

Vytvorenie vzťahu pomocou obmedzenia

Ak chcete požadovať, aby každá nová hodnota vložená do poľa Podmienka v tabuľke Autá zodpovedá hodnote poľa Podmienka v tabuľke CarCondition, potom môžete vytvoriť vzťah medzi položkami CarCondition a Cars v poli s názvom Podmienka pomocou nasledujúceho postupu:

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    ALTER TABLE Autá ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Podmienka)

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

Viacpoľové obmedzenia

Klauzulu CONSTRAINT s viacerými poľami možno použiť iba mimo klauzuly definície poľa a má nasledujúcu 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}]}

Zoberme si ďalší príklad, ktorý používa tabuľku Autá. Predpokladajme, že chcete mať istotu, že žiadne dva záznamy v tabuľke Autá nemajú rovnakú množinu hodnôt pre názvy, rok, podmienku a cenu. Pomocou nasledujúceho postupu môžete vytvoriť obmedzenie UNIQUE, ktoré sa vzťahuje na tieto polia:

  1. Na karte Vytvoriť kliknite v skupine Makrá & Kód na položku Návrh dotazu.

  2. Na karte Návrh kliknite v skupine Typ dotazu na položku Definícia údajov.

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

  3. Zadajte nasledujúci príkaz SQL:

    ALTER TABLE Autá ADD CONSTRAINT NoDupes UNIQUE (názov, rok, podmienka, cena)

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

Na začiatok stránky

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.