Синтаксис операторов. 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!