Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание клиент-серверных приложений.doc
Скачиваний:
0
Добавлен:
04.01.2020
Размер:
4.13 Mб
Скачать

2.4. Введение в Transact-sql (t-sql)

Наряду с типами данных основополагающими понятиями при работе с языком SQL в среде MS SQL Server являются выражения, операторы, переменные, управляющие конструкции языка Transact-SQL.

Идентификаторы языка Transact-SQL предназначены для обозначения объектов в базе данных и могут являться именами таблиц, представлений, столбцов и других объектов базы данных. Символы, которые могут использоваться в создаваемых пользователем идентификаторах языка SQL, должны быть определены как набор символов. Стандарт SQL задает набор символов, который используется по умолчанию, – он включает строчные и прописные буквы латинского алфавита (A-Z, a-z), цифры (0-9) и символ подчеркивания (_). На формат идентификатора накладываются следующие ограничения:

  • идентификатор может иметь длину до 128 символов;

  • идентификатор должен начинаться с буквы;

  • идентификатор не может содержать пробелы.

Идентификатор в нотации БНФ имеет следующий формат:

<идентификатор>::=<буква> {<буква>|<цифра>}[...n]

Большинство компонентов языка не чувствительны к регистру. Поскольку у языка SQL свободный формат, отдельные SQL-операторы и их последовательности будут иметь более читаемый вид при использовании отступов и выравнивания.

2.4.1. Выражения

Выражения представляют собой комбинацию идентификаторов, функций, знаков логических и арифметических операций, констант и других объектов [6,7,13]. Выражение может быть использовано в качестве аргумента в командах, хранимых процедурах или запросах.

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

Операторы – это знаки операций над одним или несколькими выражениями для создания нового выражения. Среди операторов можно выделить унарные операторы, операторы присваивания, арифметические операторы, строковые операторы, операторы сравнения, логические операторы, битовые операторы.

2.4.2. Переменные

В среде SQL Server существует несколько способов передачи данных между командами. Один из них – передача данных через локальные переменные. Прежде чем использовать какую-либо переменную, ее следует объявить. Объявление переменной выполняется командой DECLARE, имеющей следующий формат:

DECLARE @имя_переменной тип_данных [,...n]

Имена локальных переменных должны начинаться с символа @. Значения переменной можно присвоить посредством команд SET и SELECT. С помощью команды SELECT переменной можно присвоить не только конкретное значение, но и результат вычисления выражения.

Пример 2.1. Использование SET для присваивания значения локальной переменной.

DECLARE @a INT

SET @a=10

Пример 2.2. Использование SELECT для присваивания локальной переменной результата вычислений.

DECLARE @k INT

SELECT @k=SUM(количество) FROM Товар

2.4.3. Преобразование типов

Нередко требуется конвертировать (преобразовать) значения одного типа в значения другого. Наиболее часто выполняется конвертирование чисел в символьные данные и наоборот [6,7]. В первом случае, используется специализированная функция STR, которая имеют следующий формат:

STR(выражение [,длина][,кол]])

Первый аргумент определяет само (исходное) число, второй – длину символьной строки, третий – количество знаков после десятичной запятой.

Для выполнения других преобразований SQL Server предлагает универсальные функции CONVERT и CAST, с помощью которых значения одного типа преобразовываются в значения другого типа, если такие изменения вообще возможны. CONVERT и CAST могут быть взаимозаменяемыми и имеют следующий формат:

CAST(выражение AS тип_данных)

CONVERT(тип_данных[(длина)], выражение [,стиль])

Аргумент «выражение» определяет исходное (преобразуемое) значение, аргумент «тип_данных» – тип, в который необходимо преобразовать данные.

С помощью аргумента «стиль» можно управлять стилем представления значений следующих типов данных: дата/время, денежный или нецелочисленный. Некоторые допустимые значения этого аргумента приведены в таблицах 3,4.

Таблица 3. Значение аргумента «стиль» для типов данных DATETIME и SMALLDATETIME

Стиль

Формат символьного значения

101

mm/dd/yy

102

yy.mm.dd

103

dd/mm/yy

104

dd.mm/yy

105

dd-mm-yy

108

hh:mm:ss

110

mm-dd-yy

111

yy/mm/dd

Таблица 4. Значение аргумента «стиль» для типов данных FLOAT и REAL

Стиль

Поведение

0

Максимум 6 цифр

1

Всегда 8 цифр

2

Всегда 16 цифр

Пример 2.3. Преобразование данных символьного типа к данным типа дата/время.

DECLARE @d DATETIME

DECLARE @s CHAR(8)

SET @s=’29.10.2001’

SET @d=CAST(@s AS DATETIME)

SET @s=’2001.10.29’

SET @d=CONVERT(DATETIME, @s, 102)