Създаване или модифициране на таблици или индекси с помощта на заявка за дефиниране на данни

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

В Microsoft Office Access 2007е лесно да създавате и променяте таблици, ограничения и индекси в изглед за проектиране и да създадете релации с помощта на Прозорец за релации. Като алтернатива можете да създавате и променяте тези същия обекти като писане заявки за дефиниране на данни в SQL изглед.

В тази статия описва заявки за дефиниране на данни и показва как да използвате тези заявки за създаване на таблици, индекси, ограничения и зависимости. В тази статия може да ви помогне да решите кога да използвате заявка за дефиниране на данни.

Какво искате да направите?

Научете кога да използвате заявка за дефиниране на данни

Създаване или модифициране на таблица

Създаване на индекс

Създаване на ограничение или релация

Научете кога да използвате заявка за дефиниране на данни

За разлика от други заявки на заявка за дефиниране на данни не се извлече данни. Повечето заявки използвайте данни манипулиране език (DML), който включва Structured Query Language (SQL) команди, които указват как данните от съществуващи обекти на база данни е комбинирано и обработва за създаването на резултатите от данни, които искате. Заявки за дефиниране на данни използвайте данни дефиниция език (DDL), който включва SQL команди, които съдържат определянето на обекти на бази данни, които съхранявате или индекс на данни и SQL команди, които контролират потребителския достъп до обекти на бази данни. В Office Access 2007на заявка за дефиниране на данни определя или променя дефиницията на обект от база данни.

Като цяло, трябва да използвате графичния дизайн интерфейси този Office Access 2007 предвижда (например изглед за проектиране и прозореца за релации) за да създадете таблици, ограничения, индекси и релации. Въпреки това ако имате таблици, които редовно изтриете и да създадете отново, с помощта на тези връзки, може да стане отнема много време. С помощта на заявка за дефиниране на данни, можете да напишете заявка веднъж, и след това да го стартирате отново, когато е необходимо. Помислете за използване на заявка за дефиниране на данни само ако сте запознати с SQL отчети и ако имате намерение да изтриете и да създадете отново конкретна таблици, ограничения или индекси редовно.

Важно : Използване на заявки за дефиниране на данни за промяна на обекти на бази данни може да бъде опасно, защото действията, които не се придружават от потвърждение диалогови прозорци. Ако допуснете грешка, можете да загубите данни или по невнимание промяна на структурата на таблица. Бъдете внимателни, когато използвате заявка за дефиниране на данни за промяна на обекти във вашата база данни. Ако не сте отговорни за поддържане на базата данни, която използвате, да се консултирате с администратора на базата данни, преди да изпълните заявка за дефиниране на данни. Освен това е добра практика да направите архивно копие на всички таблици, на които сте предстои да изпълните заявка за такъв.

Най-горе на страницата

Създаване или модифициране на таблица

За да създадете таблица, използвайте команда CREATE TABLE. Командата CREATE TABLE има следния синтаксис:

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

Единственият задължителни елементи на командата "създаване на таблица" са самата команда за създаване на таблица, името на таблицата, поне едно поле и типа данни на всяко поле. Нека разгледаме един прост пример.

Да предположим, че искате да създадете таблица, за да съхранявате името, годината и цената на използвани автомобили, които разглеждате за покупка. Искате да разрешите до 30 знака за името и 4 знака за годината. За да използвате заявка за дефиниране на данни за създаване на таблицата, направете следното:

Забележка : Трябва първо да разрешите съдържанието на базата данни, за да заявка за дефиниране на данни за изпълнение.

  1. В Лентата за съобщениящракнете върху Опциии след това щракнете върху разреши това съдържание.

  2. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  3. Затворете диалоговия прозорец Показване на таблица.

  4. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  5. Въведете следната SQL команда:

    CREATE TABLE Коли (Име TEXT(30), Година TEXT(4), Цена CURRENCY)

  6. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

Модифициране на таблица

За да модифицирате таблица, използвайте командата ALTER TABLE. Можете да използвате командата ALTER TABLE, за да добавите, модифицирате или премахнете колони или ограничения. Командата ALTER TABLE има следния синтаксис:

ALTER TABLE table_name predicate

Когато първоначални може да бъде някое от следните неща:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Да предположим, че искате да добавите 10-знаково текстово поле, за да съхранявате информация за състоянието на всяка кола. Можете да направите следното:

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  2. Затворете диалоговия прозорец Показване на таблица.

  3. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  4. Въведете следната SQL команда:

    ALTER TABLE Коли ADD COLUMN Състояние TEXT(10)

  5. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

Най-горе на страницата

Създаване на индекс

За да създадете индекс в съществуваща таблица, използвайте командата CREATE INDEX. Командата CREATE INDEX има следния синтаксис:

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

Единствените задължителни елементи са командата CREATE INDEX, името на индекса, аргументът ON, името на таблицата, съдържаща полета, които искате да индексирате, и списъкът с полета, които да бъдат включени в индекса.

  • Аргументът DESC определя индексът да бъде създаден в низходящ ред, което може да е полезно, ако често изпълнявате заявки, които търсят най-високите стойности на индексираното поле или сортират индексираното поле в низходящ ред. По подразбиране индексът се създава във възходящ ред.

  • Аргументът с ПЪРВИЧЕН създава индексирани полето или полетата, като първичен ключ на таблицата.

  • Аргумент WITH DISALLOW NULL задава индексът да изисква да се въвежда стойност за индексираното поле – т. е. стойностите NULL не са разрешени.

Да предположим, че имате таблица с име "Коли" с полета, които съхраняват име, година, цена и състояние на използвани автомобили, които разглеждате за покупка. Да предположим също, че таблицата е станала голяма и че често включвате в заявките полето "Година". Можете да създадете индекс в полето "Година", за да помогнете на вашите заявки да връщат резултатите по-бързо, като използвате следната процедура:

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  2. Затворете диалоговия прозорец Показване на таблица.

  3. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  4. Въведете следната SQL команда:

    CREATE INDEX ИндексГодина ON Коли (Година)

  5. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

Най-горе на страницата

Създаване на ограничение или релация

Ограничението задава логическо условие, на което трябва да отговаря едно поле или комбинация от полета, когато се въвеждат стойности. Например ограничението UNIQUE не позволява полето с ограничение да приема стойност, която би дублирала съществуваща стойност за полето.

Една връзка е тип ограничение, което препраща към стойности на поле или комбинация от полета в друга таблица, за да определите дали дадена стойност може да бъде вмъкната в ограничени полето или комбинация от полета.

За да създадете ограничение, използвайте клаузата CONSTRAINT в команда CREATE TABLE или ALTER TABLE. Има два вида клаузи CONSTRAINT: единият е за създаване на ограничение в единично поле, а другият – за създаване на ограничение в множество полета.

Ограничения на единично поле:

Клаузата CONSTRAINT за единично поле следва непосредствено след дефиницията на полето, което ограничава, и има следния синтаксис:

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

Да предположим, че имате таблица с име "Коли" с полета, които съхраняват име, година, цена и състояние на използвани автомобили, които разглеждате за покупка. Да предположим също, че често забравяте да въведете стойност за състоянието на колата и че винаги искате да записвате тази информация. С помощта на следната процедура можете да създадете ограничение в полето "Състояние", което не ви позволява да оставяте полето празно:

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  2. Затворете диалоговия прозорец Показване на таблица.

  3. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  4. Въведете следната SQL команда:

    ALTER TABLE Коли ALTER COLUMN Състояние TEXT CONSTRAINT ЗадължителноСъстояние NOT NULL

  5. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

Сега да предположим, че след известно време, забележите, че има много подобни стойности в полето условие, което трябва да са същите. Например някои от коли имат условие стойност на лошото и други хора имат стойност на лоши. След като почистите стойностите така че да са по-последователни, може да създадете таблица, наречена CarCondition, с едно поле, наречена условие, която съдържа всички стойности, които искате да използвате за състоянието на коли:

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  2. Затворете диалоговия прозорец Показване на таблица.

  3. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  4. Въведете следната SQL команда:

    CREATE TABLE СъстояниеНаКоли (Състояние TEXT(10))

  5. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

  6. За да въведете стойностите от полето "Състояние" на таблицата "Коли" в новата таблица СъстояниеНаКоли, въведете следната SQL команда в раздела за обекти в SQL изглед:

    INSERT INTO СъстояниеНаКоли SELECT DISTINCT Състояние FROM Коли;

    Забележка : SQL командата в тази стъпка е заявка за добавяне. За разлика от заявка за дефиниране на данни заявка за добавяне завършва с точка и запетая.

  7. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

За да зададете, че всяка нова стойност, въведена в полето "Състояние" на таблицата "Коли", трябва да съвпада с някоя стойност на полето "Състояние" на таблицата "СъстояниеНаКоли", можете да създадете релация между "СъстояниеНаКоли" и "Коли" в полето с име "Състояние" с помощта на следната процедура:

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  2. Затворете диалоговия прозорец Показване на таблица.

  3. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  4. Въведете следната SQL команда:

    ALTER TABLE Коли ALTER COLUMN Състояние TEXT CONSTRAINT ВъншенКлючОграничение REFERENCES СъстояниеНаКоли (Състояние)

  5. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

Ограничения на няколко полета:

Клауза за ограничение за няколко полета може да се използва само извън клауза дефиниция на полето и има следния синтаксис:

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

Нека разгледаме друг пример за използване на коли таблицата. Да предположим, че искате да се уверите, че няма два записа в таблицата по-коли имат един и същ набор от стойности за име, година, състояние и цена. Може да създадете уникален ограничение, което се отнася за тези полета, с помощта на следната процедура:

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявка.

  2. Затворете диалоговия прозорец Показване на таблица.

  3. В раздела Структура, в групата Тип на заявката щракнете върху Дефиниране на данни.

    Мрежата за проектиране се скрива и се показва разделът за обекти в SQL изглед.

  4. Въведете следната SQL команда:

    ALTER TABLE Коли ADD CONSTRAINT БезДублиране UNIQUE (Име, Година, Състояние, Цена)

  5. В раздела Проектиране, в групата Резултати, щракнете върху Изпълни.

Най-горе на страницата

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×