Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2575.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
1.86 Mб
Скачать

7.3. Создание и изменение таблиц средствами языка SQL

7.3.1. Управляющие запросы и запросы на изменение таблиц

Все инструкция создания и изменения таблиц с помощью языка SQL рассматриваются в Access как специальные запросы: управляющие запросы на создание таблиц, запросы на создание таблиц из существующих таблиц, запросы на обновление, добавление и добавление.

Для формирования запроса на языке SQL следует войти в режим Конструктора запросов (выбрать окно База данных,

вкладку Запросы, кнопку Создать и в окне Новый запрос выбрать способ создания запроса — Конструктор). В режиме Конструктора следует закрыть окно Добавление таблицы и с помощью кнопки Вид панели инструментов или пункта Режим SQL меню Вид выбрать режим SQL. После этого Конструктор выводит в Окно запроса слово S E L E C T , заканчивающееся точкой с запятой. В Окне запроса следует набрать запрос. Запрос представляет одно предложение. Конструктор автоматически разбивает запрос на строки по размерам Окна запросов. Удобнее самостоятельно разбивать запрос на строки, используя комбинацию клавиш Ctrl+Enter. Запрос должен заканчиваться точкой с запятой. Имена, состоящие из нескольких слов, разделенных пробелами, следует заключать в квадратные скобки. На исполнение запрос запускается как и любой запрос, созданный в Конструкторе запросов, с помощью кнопок Запуск (на ней изображен !) или Вид/Таблица панели инструментов (или меню Вид), а также с помощью кнопки

Открыть вкладки Запросы Окна базы данных.

29

Обратите внимание, что переключаясь между режимами Конструктор/SQL, можно посмотреть, как выглядит на SQL запрос, сформированный Конструктором, и наоборот (вид

запроса определяется в пункте меню Запрос). Исключение составляет управляющий запрос на создание таблицы, который относится к так называемым специфическим запросам SQL и создается только средствами SQL. Некоторое неудобство состоит в том, что Конструктор формально добавляет в запрос на SQL "лишние" скобки.

На вкладке Запрос окна База данных запросы на создание и изменение таблиц обозначаются специальными значками, отличающимися от значков запросов на выборку.

7.3.2. Управляющий запрос на создание таблицы

Инструкция создания новой таблицы называется в Access

управляющим запросом и имеет формат

CREATE TABLE <таблица>

(<поле1>

<тип> [(<размер>)] [NOT

 

NULL][<ограничения на поле1>] [, <поле2> <тип> [(<размер>)]

[NOT NULL] [<ограничения на поле2>]

[,...]]

[, CONSTRAINT <ограничения на таблицу>

[, ...]]);

Здесь и далее при описании синтаксиса приняты следующие обозначения. Вместо слов в угловых скобках необходимо указать имена реальных таблиц, столбцов и т. п. Аргументы, указанные в прямых скобках, не являются обязательными. Если указано несколько аргументов, разделенных символом '|', то можно использовать только один аргумент. Фигурные скобки обозначают список элементов, записанных через запятую.

30

В инструкции C R E A T E TAB LE приняты следующие обозначения: < таблица! — это имя создаваемой таблицы, <поле1>, <поле2> — имена полей, создаваемых в новой таблице (таблица должна содержать хотя

бы одно поле), <тип>

— тип данных поля. Чаще всего

используются следующие

типы

данных: TEXT (П)

-

текстовый тип длиной П

символов,

INTEGER

-

длинное

целое, REAL

- числовой с плавающей точкой длиной 4 байта,

FLOAT — числовой с плавающей

точкой длиной

8 байт,

DATETIME

— Дата/Время. Опция

<размер>

это

размер поля в символах (текстовых полей).

 

 

 

Ограничения целостности

определяют

допустимые

значения полей и задают ключ таблицы. Ограничение NOT

NULL запрещает занесение в столбец пустых, т. е.

неопределенных значений. Опции [<ограничения

на

поле1>],

[<ограничения

на поле2>

— это

предложения ограничений CONSTRAINT, накладываемых на конкретное поле. Ограничение на поле предназначено для создания простого индекса (по одному полю) и имеет синтаксис:

 

CONSTRAINT <индекс>

{PRIMARY KEY

|

UNIQUE

|

NOT NULL| REFERENCES

<родительскаяТаблица>

 

(<родительскийКлюч>)]}

 

 

Здесь <индекс>

— имя индекса, который следует

создать, опция UNIQUE

означает, что поле должно быть

уникальным, опция

PRIMARY KEY

указывает, что поле

является первичным ключом. Следует учитывать, что ограничение NOT NULL можно наложить на поле только один раз (с учетом ограничений на таблицу), в противном случае

31

возникает ошибка выполнения. Опция REFERENCES служит для поддержания ссылочной целостности. Это означает, что описываемое поле является внешним ключом

<родительскойТаблицы> и его значение должно совпадать с одним из значений потенциального (возможного)

ключа <родительскойТаблицы>. Типы и размеры родительского и внешнего ключей должны быть одинаковыми. Если родительский ключ является первичным, то его можно не описывать в ограничениях.

Предложение CONSTRAINT ограничений на таблицу используется при создании составного индекса и описывает поля, образующие внешний и родительский ключи, а также все уникальные и ненулевые поля таблицы.

CONSTRAINT <индекс>

 

{PRIMARY KEY

(ключевоеПоле1[,

 

ключевоеПоле2 [,...]])! UNIQUE

 

(уникальноеПоле1[, уникальноеПоле2

[, ...]]) | NOT NULL

 

(непустоеПоле1[, непустоеПоле2

[,

...]]) | FOREIGN KEY (поле1[,

поле2

[, ...]])

 

 

REFERENCES

<родительскаяТаблица>

[(Поле1 [,

Поле_2 [, ...]])]}

 

Ограничения целостности устанавливают режимы

каскадного обновления и каскадного удаления связанных полей. Каскадное обновление означает, то при изменении ключевого поля главной таблицы те же значения получают внешние ключи связанных записей дочерней таблицы. Каскадное удаление связанных полей означает, то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.

32

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]