Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора базы данных.doc
Скачиваний:
13
Добавлен:
23.09.2019
Размер:
171.52 Кб
Скачать

12.Sql, подзапросы, назначение и примеры использования инструкций: exist, singular, all, any

Подзапрос - это оператор выбора, который содержится внутри другого оператора выбора, вставки, обновления или удаления, внутри условного оператора или внутри другого подзапроса.

Подзапросы обычно содержатся в предложениях where или having SQL оператора или в списке выбора этого оператора. С помощью подзапросов можно проводить дальнейший отбор данных из результатов других запросов. Оператор, содержащий подзапрос, может обрабатывать строки некоторой таблицы, основываясь на результатах вычисления списка выбора подзапроса, который в свою очередь может ссылаться на эту же таблицу как внешний запрос, или обращаться к другой таблице.

Операторы выбора, содержащие один или несколько подзапросов, называются также составными запросами или составными операторами выбора. Возможность включения одного оператора выбора внутрь другого является одной из причин, по которой язык SQL называется “структурированным” (StructuredQueryLanguage).

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

EXISTS - это оператор, который производит верное или неверное значение,

ПримерEXISTS

SELECT cnum, cname, city

FROM User1

WHERE EXISTS

( SELECT *

FROM User2

WHERE OC = “Unix” );

Оператор EXISTS

проверяет, если был какой-то результат, то генерирует True, а значит выполниться

условие EXISTS. После этого выполнится внешний запрос:

SELECT cnum, cname, city

FROM User1

Так как EXISTS Булев оператор, его можно использовать с другими Булями. Воттебе

примерс NOT:

SELECT cnum, cname, city

FROM User1

WHERE EXISTS

( SELECT *

FROM User2

WHEREOC = “Unix” );

ANY, SOME, абсолютно одинаковы. Оба они дают один и тот же результат,

SELECT cnum, cname, city

FROM User1

16 WHERE ОC=ANY

( SELECT OC

FROM User2 );

Здесь сначала выполняется внутренний запрос, выбирая все OC из базы User2. Затем выполняется внешний запрос, который выберет все строки где встретилась любая (ANY)

из ОС внутреннего запроса. То есть, результатом будут все строки из User1, в которых встречаются ОС такие же как и в User2.

ALL примсер

SELECT cnum, cname, city

FROM User1

WHERE NumberLesens>ALL

( SELECTNumberLesens

FROM User2 );

13. Sql, добавление, изменение, удаление данных.

INSERT (вставить), UPDATE

(модифицировать), DELETE (удалить). Рассмотрим вставку строки, для этого

используется простейшая конструкция:

INSERT INTO Имя Таблицы

VALUES (Значение 1, Значение 2, и т.д.);

17Это общий вид. После оператора VALUES идёт перечисление всех полей строки. Теперь

взглянём на конкретный пример:

INSERT INTO User1

VALUES ('Иванов', 'Сергей', 34);

Этой командой мы вставили строку и присвоили значения полям. Вмоей таблицы три

поля: первые два поля строковые (Фамилия и Имя), последнее поле - целое число

(возраст). Типы данных обязаны совпадать с теми, что установлены в таблицы

INSERT INTO User1 (Family, Age)

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