Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура информационных систем.docx
Скачиваний:
73
Добавлен:
23.05.2015
Размер:
32.29 Mб
Скачать

Создание сервера и клиента на базе tcp/ip

Запустите цикл. В

[Пропущено]

Ограничение статистических значений с помощью условий группировки: предложение having

Если необходимо указать условия для ограничения результатов, но поле, к которому их требуется применить, используется в статистической функции, предложение WHERE использовать нельзя. Вместо него следует использовать предложениеHAVING.

Например, чтобы запрос возвращал строки, если у компании имеется несколько адресов электронной почты:

HAVING COUNT ([E-mail Address])>1

Запрос может включать и предложение WHERE, и предложениеHAVING, при этом условии отбора для полей, которые не используется в статистических функциях, указываются в предложении WHERE, а используемые в предложении HAVING.

Select company, count ([E-mail])

From t1

Where company like ‘A*’

Group by company

Having count([E-mail])>2

Ключевое слово DISTINCTпозволяет убрать повторяющиеся записи.

Сортировка

SELECT DISTINCT speed, ram FROM Pc ORDER BY ram DESC

SELECT DISTINCT speed, ram FROM Pc

Объединение результатов запроса: оператор union

Оператор UNIONиспользуется для одновременного просмотра всех данных, возвращаемых несколькими запросами на выборку, в виде объединенного набора.

UNIONпозволяет объединить две инструкции SELECT в одну. Объединение инструкцийSELECTдолжны иметь одинаковые числа и порядок входных полей с таким же или совместимыми типами данных.

Используя оператор UNION, можно указать, должны ли в результате запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое словоALL

SELECT field_!

FROM table_!

UNION [ALL]

SELECT field_a

FROM table_a;

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

Подчиненным запросом называется инструкция SELECT, помещенная в инструкциюSELECT, SELECT…INTO,INSERT…INTO,DELETE, UPDATE или другой подчиненный запрос.

Предикаты ANYиSOMEявляются синонимами. С их помощью можно извлечь записи, удовлетворяющие сравнению с любыми запиясми, извлеченными в подчиненном запросе.

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

Предикат EXISTSпринимает значениеTRUE, если подзапрос возвращает любое количество строк.

Использование подчиненных запросов

Пример: запрос возвращает все товары, цена которых превышает цену любого товара, проданного со скидкой от 25 и более процентов

SELECT * FROM Товары WHERE ЦенаЗаЕдиницу > ANY (SELECT ЦенаЗаЕдиницу FROM СведенияОЗаказе WHERE Скидка >=0,25);

Если ANYзаменить наALL, запрос вернет только те товары, цена которых превышает цену всех товаров, проданных со скидкой от 25 и более процентов.

Exists– примеры

Запросы на добавление insert

  • Вставляет новые строки в таблицу

  • При этом значения столбцов могут представлять собой константы либо являться результатом выполнения подзапросов

  • Запрос на добавление одной записи:

  • INSERT INTO конечный_объект [(поле1[,поле2[,…]])]

  • VALUES (значение1[,значение2[,…])

  • Запрос на добавление нескольких записей

  • INSERT INTO конечный объект [(поле1[, поле2[,…]])]

  • [IN внешняя_база_данных]

  • SELECT [источникю]поле1[,поле2[,]

  • FROM выражение_таблицы

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

UPDATE

Синтаксис

UPDATE таблица

SER новое_значение

WHERE условие_отбора;

DELETE

Синтаксис

DELETE [таблица.*]

FROM таблица

WHERE условие_отбора

С помощью DELETE можно удалять записи из таблиц, находящихся в отношении «один-ко-многим»

Создание и изменение таблиц или индексов с помощью DDL В отличие от других запросов, запросы определения данных не возвращают данные, а используются для создания, изменения