|
Программирование >> Реализация баз данных
Занятие 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) и возвращают строковые или числовые значения
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |