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

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

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

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

Забележка : Тези процедури не може да се използват в уеб база данни.

В тази статия

Общ преглед

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

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

Създаване на ограничението или връзка

Общ преглед

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

Забележка : Езикът за дефиниране на данни (DDL) е част на езика за структурирани заявки (SQL).

Заявките за дефиниране на данни могат да бъдат много удобни. Можете регулярно да изтривате и отново да създавате части от схемата на вашата база данни просто чрез изпълнение на някои заявки. Помислете за използване на заявка за дефиниране на данни, ако сте запознати с SQL командите и планирате да изтриете и да създадете отново конкретни таблици, ограничения, индекси или релации.

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

Важно : Преди да изпълните заявка за дефиниране на данни, направете архивно копие на всяка включена таблица.

Ключови думи на DDL

Ключова дума

Използване

CREATE

Създаване на индекс или таблица, които още не съществуват.

ALTER

Модифициране на съществуваща таблица или колона.

DROP

Изтриване на съществуваща таблица, колона или ограничение.

ADD

Добавяне на колона или ограничение към таблица.

COLUMN

Използва се с ADD, ALTER или DROP

CONSTRAINT

Използва се с ADD, ALTER или DROP

INDEX

Използва се с CREATE

TABLE

Използва се с ALTER, CREATE или DROP

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

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

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

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

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

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

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

  • В лентата за съобщения щракнете върху Разрешаване на съдържание.

Създаване на таблица

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

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

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

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

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

    СЪЗДАВАНЕ на ТАБЛИЦА коли (име TEXT(30), година TEXT(4), Цена ВАЛУТА)

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

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

За да модифицирате таблица, използвайте командата 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 ТАБЛИЦА коли добави КОЛОНА условие 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 команда:

    СЪЗДАВАНЕ на ИНДЕКС YearIndex на коли (година)

  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 ТАБЛИЦА коли ALTER КОЛОНА условие ТЕКСТ ОГРАНИЧЕНИЕ ConditionRequired НЕ е NULL

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

Да предположим сега, че след известно време сте забелязали, че в полето "Състояние" има множество сходни стойности, които би трябвало да са еднакви. Например за някои от автомобилите стойността е Лошо, а за други е Незадоволително.

Забележка : Ако искате да проследите останалите процедури, добавете някои измислени данни към таблицата "Коли", създадена в предишните стъпки.

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

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

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

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

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

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

    СЪЗДАВАНЕ на ТАБЛИЦА CarCondition (условие TEXT(10))

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

  6. Създайте първичен ключ за таблицата с помощта на командата ALTER TABLE:

    ПРОМЕНЯ ТАБЛИЦА CarCondition ALTER КОЛОНА условие ТЕКСТ ОГРАНИЧЕНИЕТО CarConditionPK ПЪРВИЧЕН КЛЮЧ

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

    ВМЪКВАНЕ в CarCondition ИЗБЕРЕТЕ ОТДЕЛНО условие ОТ Коли;

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

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

Създаване на релация с помощта на ограничение

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

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

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

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

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

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

    ALTER ТАБЛИЦА коли ALTER КОЛОНА условие ТЕКСТ ОГРАНИЧЕНИЕ FKeyCondition ПРЕПРАТКИ CarCondition (условие)

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

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

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

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

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

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

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

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

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

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

    ПРОМЕНЯ ТАБЛИЦА коли Добавяне на ОГРАНИЧЕНИЕ NoDupes УНИКАЛНИ (име, година, състояние, цена)

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

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

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

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

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

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

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

×