Синтаксис операторов. SQL-DML операторы.



Синтаксис операторов.

 

SQL операторы.

Основные операторы языка SQL рассмотрим, опираясь на его реализацию в стандартном интерфейсе ODBC (OpenDataBaseConnectivity – совместимость открытых баз данных) фирмы Microsoft.Операторы языка можно условно разделить на два подъязыка: язык определения данных (DataDefinitionLanguage - DDL) и язык манипулирования данными (DataManipulationLanguage - DML). Основные операторы языка представлены в табл. 4.3. Рассмотрим формат и основные возможности основных операторов.

3. Оператор создания таблицы имеет формат вида:

CREATE TABLE <имя таблицы>

(<имя столбца><тип данных>[NOT NULL]

[,<имя столбца><тип данных>[ NOT NULL]]…)

Обязательными операндами оператора являются имя создаваемой таблицы и имя хотя бы одного столбца (поля) с указанием типа данных, хранимых в этом столбце.

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

В общем случае в разных СУБД могут использоваться различные типы данных. В интерфейсе ODBC поддерживаются свои стандартные типы данных, например, символьные (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR) и др. При работе с БД некоторой СУБД посредством интерфейса ODBC выполняется автоматическое преобразование стандартных типов данных, поддерживаемых интерфейсом, в типы данных источников и обратно. При необходимости обмен данными между программой и источником данных может вестись без преобразования – во внутреннем формате данных источника.

DML-оператор.

Язык, содержащий набор операторов для поддержки основных операций манипулирования содержащимися в базе данными.

К операциям управления данными относятся:

• вставка в базу данных новых сведений;

• модификация сведений, хранимых в базе данных;

• извлечение сведений, содержащихся в базе данных;

• удаление сведений из базы данных.

Таким образом, одна из основных функций СУБД заключается в поддержке

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

Языки DML имеют разные базовые конструкции извлечения данных. Существуют два типа языков DML: процедурныйинепроцедурный. Основное различие

между ними заключается в том, что процедурные языки указывают то, как

можно получить результат оператора языка DML, тогда как непроцедурные

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

 

16.Многотабличные запросы. Подчиненные запросы. Использование агрегатных функций. Упорядочивание результата

Многотабличный запрос позволяет сформировать записи результата путем объединения взаимосвязанных записей из таблиц БД и включения нужных полей из нескольких таблиц. В частности, при объединении двух нормализованных связанных одно-многозначными отношениями таблиц результирующая запись образуется на основе записи подчиненной таблицы, в которую добавляются поля из связанной записи в главной таблице. Заметим, что подобное объединение формирует новую таблицу, которая не является нормализованной. Выбранный тип объединения таблиц задается при установлении связи между таблицами и определяет способ формирования записей запроса. По умолчанию связи устанавливаются с параметром объединения первого типа: объединение только тех записей, в которых значения связанных полей обеих таблиц совпадают.

Инструкции Jet SQL, такие как SELECT, SELECT. .. INTO, INSERT...INTO, DELETE или UPDATE позволяют для вычисления предиката в предложении WHERE использовать другой запрос. Этот запрос называется подчиненным запросом.

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

●        сравнение [ANY | ALL | SOME] (инструкцияSQL);

●        выражение [NOT] IN (инструкцияSQR);

●        [NOT] EXISTS (инструкцияSQL) ,

где:

сравнение — выражение и оператор сравнения, который сравнивает это выражение с результатами подчиненного запроса;

выражение — выражение, для которого проводится поиск в результирующем наборе записей подчиненного запроса;

инструкцияSQL — инструкция SELECT, которая представляет подчиненный запрос.

Предикаты ANY или SOME являются синонимами и используются если в главном запросе нужно выбрать записи, удовлетворяющие сравнению со всеми записями, выбранными в подчиненном запросе. Ниже приведен пример запроса, который выбирает из таблицы "Товары" (Products) все товары, цена которых не ниже, чем цена товаров у конкурентов:

Агрегатные функции выполняют вычисление на наборе значений и возвращают одиночное значение. Агрегатные функции, за исключением COUNT, не учитывают значения NULL. Агрегатные функции часто используются в выражении GROUP BY инструкции SELECT.

Все агрегатные функции являются детерминированными. Это означает, что агрегатные функции возвращают одну и ту же величину при каждом их вызове на одном и том же наборе входных значений. Дополнительные сведения о детерминизме функций см. в разделеДетерминированныеи недетерминированные функции. Предложение OVER может следовать за всеми агрегатными функциями, кроме GROUPING или GROUPING_ID.

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

●        Список выбора инструкции SELECT (вложенный или внешний запрос).

●        Предложение HAVING.

 

 


Дата добавления: 2018-08-06; просмотров: 672; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!