Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Подчинённые запросы




Это инструкции Select, вложенные в инструкции Select, Insert, Delete, Update или другой подчинённый запрос. Они создаются 3 способами. С помощью ключевых слов: ANY/ALL/SOME с использованием любого из видов отношений (>, <, =, <>).

ANY, SOME – синонимы, используются для отбора записей в главном запросе, которые удовлетворяют сравнению с любой из записей, отобранных в подчинённом запросе.

Select Товары, Наименование

From Товары

Where Товары.Цена >= ANY (Select Цена From …)

 

ALL используется для отбора записей, которые удовлетворяют сравнению со всеми записями подчинённого запроса.

Кроме того используется оператор IN, который позволяет сравнивать данное значение со значениями массива. Следующий пример возвращает данные по товарам, скидка по которым больше 25%.

Select *

From Товары

Where Товары.Код in (Select КодТовара From Заказано Where Скидка >= 25)

Для проверки пустых полей используются функции Exist и Not Exist.

Подчинённые запросы можно вставлять как в блок Where, как условие для отбора, так и в блок Select, но при этом подчинённый запрос должен возвращать одно значение.

Создание таблиц

Создание таблиц при помощи SQL запросов особенно актуально в системах типа Клиент – Сервер, для того чтобы управлять БД на сервере через компьютер клиента.

Ядро базы данных Microsoft Jet не поддерживает использование инструкции CREATE TABLE или любой другой инструкции языка определения данных (DDL) с базами данных, несовместимыми со стандартом Microsoft Jet. Вместо них применяются методы Create объектов доступа к данным (DAO).

Синтаксис

CREATE TABLE таблица (поле_1 тип [(размер)]

[NOT NULL] [индекс_1] [, поле_2 тип [(размер)]

[NOT NULL] [индекс_2] [,...]] [, CONSTRAINT составнойИндекс [,...]])

 

Таблица – имя создаваемой таблицы.

поле_1, поле_2 – имена одного или нескольких полей, создаваемых в новой таблице. Таблица должна содержать хотя бы одно поле.

Тип – тип данных поля в новой таблице.

Размер – размер поля в символах (только для текстовых и двоичных полей).

индекс_1, индекс_2 – предложение CONSTRAINT, предназначенное для создания простого индекса. Для получения более подробных сведений смотрите описание предложения CONSTRAINT.

составнойИндекс – предложение CONSTRAINT, предназначенное для создания составного индекса. Для получения более подробных сведений смотрите описание предложения CONSTRAINT.

Инструкция CREATE TABLE используется для описания новой таблицы, ее полей и индексов. Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать допустимые данные. Предложение CONSTRAINT устанавливает различные ограничения на поле и может быть использовано для определения ключа. Кроме того, для создания ключа или дополнительного индекса для существующей таблицы можно использовать инструкцию CREATE INDEX.

Допускается использование ограничения NOT NULL для одиночного поля, а также внутри именованного предложения CONSTRAINT, применяемого к одиночному полю или к именованному предложению CONSTRAINT. Ограничение NOT NULL можно наложить на поле только один раз, в противном случае возникает ошибка выполнения.

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

CREATE TABLE ПерваяТаблица (Имя TEXT, Фамилия TEXT);

В следующем примере создается новая таблица с двумя текстовыми полями и одним полем даты/времени. Из этих трех полей создается уникальный индекс:

CREATE TABLE ВтораяТаблица (Имя TEXT,

Фамилия TEXT, ДатаРождения DATETIME,

CONSTRAINT МойИндекс UNIQUE (Имя, Фамилия, ДатаРождения));

 

В следующем примере создается новая таблица с двумя текстовыми полями и числовым полем. Поле SSN делается ключевым полем.

CREATE TABLE ТретьяТаблица (Имя TEXT, Фамилия TEXT, SSN INTEGER

CONSTRAINT МойИндекс PRIMARY KEY);

 

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

Предложение CONSTRAINT используется в инструкциях ALTER TABLE и CREATE TABLE для создания или удаления индексов. Существуют два типа предложений CONSTRAINT: одно для создания простого индекса (по одному полю), а второе для создания составного индекса (по нескольким полям). Ядро базы данных Microsoft Jet не поддерживает использование инструкции CONSTRAINT и всех инструкций языка определения данных (DDL) с базами данных, несовместимыми со стандартом Microsoft Jet. Используйте вместо них методы Create объектов доступа к данным (DAO).

Синтаксис

Простой индекс:

CONSTRAINT имя {PRIMARY KEY | UNIQUE | NOT NULL |

REFERENCES внешняяТаблица [(внешнееПоле_1, внешнееПоле_2)]}

 

Составной индекс:

CONSTRAINT имя

{PRIMARY KEY (ключевое_1[, ключевое_2 [,...]]) |

UNIQUE (уникальное_1[, уникальное_2 [,...]]) |

NOT NULL (непустое_1[, непустое_2 [,...]]) |

FOREIGN KEY (ссылка_1[, ссылка_2 [,...]])

REFERENCES внешняяТаблица [(внешнееПоле_1 [, внешнееПоле_2 [,...]])]}

 

Имя – имя индекса, который следует создать.

ключевое_1, ключевое_2 – имена одного или нескольких полей, которые следует назначить ключевыми.

уникальное_1, уникальное_2 – имена одного или нескольких полей, которые следует включить в уникальный индекс.

непустое_1, непустое_2 – имена одного или нескольких полей, в которых запрещаются значения Null.

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

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

внешнееПоле_1, внешнееПоле_2 – имена одного или нескольких полей во внешнейТаблице, на которые ссылаются поля, указанные с помощью аргумента ссылка_1, ссылка_2. Это предложение можно опустить, если данное поле является ключом внешнейТаблицы.

Предложение CONSTRAINT, предназначенное для создания простого индекса, располагается сразу после описания типа поля в предложении, определяющем поля в инструкции ALTER TABLE или CREATE TABLE.

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

Предложение CONSTRAINT позволяет создать для поля индекс одного из двух описанных ниже типов:

 

· Для создания уникального индекса используйте зарезервированное слово UNIQUE. Это означает, что в таблице не может быть двух записей, имеющих одно и то же значение в этом поле. Уникальный индекс создается для любого поля или любой группы полей. Если в таблице определен составной уникальный индекс, то комбинация значений включенных в него полей должна быть уникальной для каждой записи таблицы, хотя отдельные поля и могут иметь совпадающие значения.

· Для создания ключа таблицы, состоящего из одного или нескольких полей, используйте зарезервированные слова PRIMARY KEY. Все значения ключа таблицы должны быть уникальными и не значениями Null. Кроме того, в таблице может быть только один ключ

 

Нельзя использовать зарезервированные слова PRIMARY KEY при создании индекса в таблице, в которой уже определен ключ; в противном случае возникнет ошибка.

 

· Для создания внешнего ключа можно использовать зарезервированные слова FOREIGN KEY. Если ключ внешней таблицы состоит из нескольких полей, необходимо использовать предложение CONSTRAINT, предназначенное для создания составного индекса. При этом следует перечислить все поля, содержащие ссылки на поля во внешней таблице, а также указать имя внешней таблицы и имена полей внешней таблицы, на которые ссылаются поля, перечисленные выше, причем в том же порядке. Если последние поля являются ключом внешней таблицы, то указывать их необязательно, поскольку ядро базы данных считает, что в качестве этих полей следует использовать поля, составляющие ключ внешней таблицы.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 443; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.