Программирование >>  Реализация баз данных 

1 ... 21 22 23 [ 24 ] 25 26 27 ... 162


Занятие 3. Синтаксические элементы языка Transact-SQL

В Transact-SQ отолит много синтаксических элементов, которые используются большинством операторов или оказывают на них влияние. К таким элементам относятся идентификаторы, переменные иии. типы данных, выражения, язык управления ходом выполнения и комментарии. В этом занятии обсуждаются перечисленные элементы и приводятся примеры, иллюстрирующие их применение в операторах Transact-SQL.

Изучив материал этого занятия, вы сможете:

описывать и применять многие синтаксические элементы, которые используются в операторах Transact-SQL, в том числе идентификаторы, переменные, функции, типы данных, выражения, язык управления ходом выполнения и комментарии; создавать и исполнять операторы Transact-SQL с использованием различных синтаксических элементов, обсуждаемых в этом занятии.

Продолжительность занятия - около 35 минут.

Идентификаторы

Имя объекта базы данных называется идентификаторам. В SQL Server любой объект может иметь идентификатор: серверы, базы данных и их объекты (таблицы, представления, столбцы, индексы, триггеры, процедуры, ограничения и правила). Для большинства объектов идентификаторы необходимы, в то время как для некоторых объектов (наири-

мер, для ограничений) они не обязательны.

Идентификатор объекта создается при определении объекта. После этого на объект ссылаются с помошью идентификатора. Например, следующий оператор создает таблицу с идентификатором TableX, которая состоит из двух столбцов с идентификаторами KeyCol и Description:

CREATE TABLE TableX

(KeyCol INT PRIMARY KEY, Description NVARCHAfl(80))

У этой таблицы также есть ограничение, PRIMARY KEY, у которого нет идентификатора.

Классы идентификаторов

класса идентификаторов: обычные и с ограничителями.

Обычные идентификаторы

В обычных идентификаторах ограничители не применяются. В следующем операторе SELECT присутствует два идентификатора: ТаЫеХ и KeyCol (ни один из которых не является идентификатором с ограничителями).

SELECT . FROM ТаЫеХ ..

WHERE KeyCol = 124 -. .

Более подробно о формате идентификаторов рассказано в SQL Server Books Online. Идентификаторы с ограничителями

Идентификаторы с ограничителями заключаются в двойные кавычки i } или квадратные скобки ([ ]). Идентификаторы, соответствующие правилам форматирования идентификато-



Переменные

Переменная языка Transact-SQL представляет собой объект в пакетах Transact-SQL и сценариях, который может иметь определенное значение. После того как переменная определена (объявлена), один оператор Transact-SQL из пакета может установить ее значение, а другой - позже получить значение этой переменной. Следующие операторы Transact- SQL объявляют переменную с именем EmplDVar, устанавливают ее значение равным 3, а затем используют эту переменную в операторе SELECT:

USE Northwind

DECLARE igEmpIOVar INT

SET cEmpIDVar = 3

SELECT * FROM Employees

WHERE EmployeelO = SEmplDVar + 1

Как правило, переменные в пакетах и сценариях выполняют следующие функция:

являются счетчиками циклов;

хранят значение, анализируемое операторами, управляющими ходом выполнения программ ы;

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

Часто переменные используются в качестве счетчиков в операторах WHILE и LOOP, a также блоках в пакетах или Переменные можно применять только

в выражениях, они не должны совпадать с именами объектов и ключевыми словами.

Функции

Функция инкапсулирует часто исполняемую логику в подпрограмму, которая тоит из. .одного или нескольких операторов Transact-SQL. Любая программа, которой треб./ется алгоритм, реализованный функцией, может не повторять весь алгоритм, а вызвать эту функцию.

SQL поддерживает функции двух типов:

встроенные функции - их работа определена в Transact-SQL, и ее нельзя модифицировать. Эти функции разрешается вызывать только в операторах Transact-SQL;

пользовательские щии - позволяют пользователям определять собственные функции Transact-SQL с помощью оператора CREATE FUNCTION.

ров, бывают как с ограничителями, так и обычными каторами. В следующем операторе SELECT ограничители (квадратные скобки) не обязательны:

SELECT FROM [TableX] WHERE [KeyCol] = 124

В операторах Transact-SQL идентификаторы, не полностью прави-

лам форматирования, необходимо помешать между ограничителями. В опера-

торе SELECT идентификатор My Table необходимо использовать с ограничителями, поскольку он содержит пробел. Идентификатор Order также следует использовать с ограничителями, поскольку он совпадает с зарезервированным ключевым словом.

SELECT FROM [My Table] WHERE [Order] = 10

Подробнее об использовании идентификаторов с ограничителями - в SQL Server Books Online.



Использование язык et-SQL тр оте с SQL Server

Гпта 2

Встроенные функции

Язы ирования Transact- SQL содержит три типа встроенных функций: функции получения набора строк, агрегатные и скалярные функции.

Функции получения набора строк

Функции получения набора строк можно применять в операторах подобно ссылкам на таблицу. Они возвращают объект, который разрешается использовать в операторе Transact-SQL вместо ссылки на таблицу. Например, функция OPrNOFRY является функцией получения набора строк, которая исполняет транзитный запрос на данном связанном сервере, представляющем собой источник данных OLE DB. В конструкции FROM на функцию OPENQUERY можно ссылаться так же, как на имя таблицы.

Все функции получения набора стро ЮТСЯ недетерминированными. То есть при вызове с одним и тем же набором входных параметров они могут возвращать разные результаты. Детерминированность функций подробно обсуждается далее в этом разделе. Агрегатные функции

Агрегатные КЦИИ обрабатывают наборы значений, но возвращают единственное итоговое значение. Примером агрегатной функции может служить функция AVG, которая среднее значение группы данных. Допустимо использовать агрегатные функции в качестве выражений только в следую-операторах и конструкциях:

списке выбора оператора SELECT (в подзапросе или внешнем запросе);

COMPUTE или COMPUTE BY;

HAVING.

Все агрегатные функции, за исключением COUNT, игнорируют пустые значения. Агрегатные функции часто применяются с конструкцией GROUP li\ в операторе SELECT.

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

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

несколько категорий.

Категория скалярное кции

Описание

Функции конфигурации Функции курсора Функции времени и даты

Математические

Функции метаданных Функции безопасности Строковые функции

Возвращают сведения о текущей конфигурации Возвращают сведения о курсорах

Выполняют различные действия над входнгми значениями времени и даты и возвращают строковое, числовое значение или значение в формате даты и времени

Выполняют вычисления на основе входных значений, предоставленных в качестве параметров, и числовое значение

Возвращают сведения о базе данных и ее объектах

Возвращают информацию о пользователях и ролях

Выполняют операции над строками lu; или varchar) и возвращают строковые или числовые значения



1 ... 21 22 23 [ 24 ] 25 26 27 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика