Смекни!
smekni.com

Transact-SQL (стр. 4 из 5)

3 Имя колонки.В качестве операнда может выступать колонка таб­лицы. Это часто используется при обработке данных в таблице, удовлетво­ряющих определённому критерию. Пользователь указывает в выражении имя интересующей его колонки, а сервер будет автоматически подставлять соответствующие значения. При последовательном просмотре таблицы зна­чение будет изменяться.

4 Переменная.Это именованная область памяти определённого объ­ёма, в которой хранятся данные. Физически любая переменная есть после­довательность из одного или нескольких байт. То, как сервер будет обраба­тывать последовательность, представляющую значение переменной, зави­сит от типа данных, ассоциированного с этой переменной.

5 Подзапрос.В качестве выражения можно указать подзапрос, кото­рый подготовит соответствующий набор данных. По принципу работы это эквивалентно указанию колонки таблицы, только в случае подзапроса дан­ные не нужно явно «закачивать» в таблицу. Сервер сам сделает всю работу: создаст временную таблицу с необходимой структурой, скопирует в неё вы­бранные данные и подключит полученный набор данных в качестве выра­жения.

6 Конструкции CASE, NULLIFи COALESCE. Эти конструкции позво­ляют использовать логическое условие для определения возвращае­мого результата. Конструкция CASEможет быть представлена в виде гро­моздкого набора последовательных логических условия

Логические операторы предоставляют большие возможность по управле­нию данными и широко используется при написании запросов и фрагментов про­грамм.

Оператор ALL

Expr {=|<>|!=|>|>=|!>|<|<=|!<} ALL (subquery)

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

Операторы SOME и ANY

Scalar_ expression {=|<>|! = |>|>= | !>|<|<=| !<} SOME (subquery)

Scalar_ expression {=|<>|! = |>|>= | !>|<|<=| !<} ANY (subquery)

С помощью этих операторов можно сравнить скалярную величину со всеми значениями в колонке таблицы. Разницы между использованием операторов ANYи SOMEнет. Если хотя бы в одной строке содержится значение, равное скалярной величине, то условие выполняется.

Оператор BETWEEN

Test_ expression [NOT] BETWEEN begin_ expression AND end_ expression

С помощью этого оператора можно получить ответ на вопрос, лежит ли величина в указанном диапазоне. Исходная величина задаётся аргументом test_ ex­pression. Аргумент begin_ expressionзадаёт начало диапазона, а аргумент end_ ex­pression – конец диапазона. Оператор BETWEENможно без труда представить в виде двух операций сравнения:

Test_ expression>=begin_ expression AND test_ expression<=end_ expres­sion

Оператор EXISTS

EXSISTS (sudquery)

Этот оператор возвращает значение TRUE, если указанный подзапрос возвращает хотя бы одну строку. В противном случае возвращает значение FALSE.

ОператорIN

Test_ expression [NOT] IN

(subquery | expression [….n])

С помощью этого оператора можно проверить, соответствует ли выражение test_expressionодному из перечисленных выражений или значений, возвращаемых подзапросом. ПриработеоператорIN можнозаменитьоператором«=ANY».

Оператор LIKE

Match_ expression [NOT] LIKE pattern [ESCAPE escape_ character]

С помощью этого оператора можно выполнять сравнение выражения с заданным шаблоном. Пусть, например, вам нужно найти в базе данных всех авторов, номера телефонов которых начинаются на 415. Можно, конечно, сделать это с помощью обычных операций сравнения, вырезая первые три символа и сравни­вая их с «415».

Поиск можно легко выполнить с помощью оператора LIKE, в котором допускается использование символов-заменителей. Аргумент match_ expressionзадаёт исходное выражение, для которого необходимо выполнить проверку. Шаблон для сравнения задаётся с помощью аргумента pattern. Символы заменители: «%», «_», «[]», «[^]». Операнд LIKEпозволяет использовать специальный управ­ляющий символ, задаваемый с помощью аргумента escape_ character, который предписывает воспринимать следующий за ним символ, как обычный.

3.3 Логические операторы, инструкции языка определения

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

Выражение состоит из операндов (собственно данные) и операторов (действия, производимые над операндами). Операнды Transact-SQLделятся на следую­щие типы:

7 Константы.Это постоянные величины, значения которых не могут быть никаким образом изменены. Примеры: 7, 13.64, ‘TextPtr’.

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

9 Имя колонки.В качестве операнда может выступать колонка таб­лицы. Это часто используется при обработке данных в таблице, удовлетво­ряющих определённому критерию. Пользователь указывает в выражении имя интересующей его колонки, а сервер будет автоматически подставлять соответствующие значения. При последовательном просмотре таблицы зна­чение будет изменяться.

10 Переменная.Это именованная область памяти определённого объ­ёма, в которой хранятся данные. Физически любая переменная есть после­довательность из одного или нескольких байт. То, как сервер будет обраба­тывать последовательность, представляющую значение переменной, зави­сит от типа данных, ассоциированного с этой переменной.

11 Подзапрос.В качестве выражения можно указать подзапрос, кото­рый подготовит соответствующий набор данных. По принципу работы это эквивалентно указанию колонки таблицы, только в случае подзапроса дан­ные не нужно явно «закачивать» в таблицу. Сервер сам сделает всю работу: создаст временную таблицу с необходимой структурой, скопирует в неё вы­бранные данные и подключит полученный набор данных в качестве выра­жения.

12 Конструкции CASE, NULLIFи COALESCE. Эти конструкции позво­ляют использовать логическое условие для определения возвращае­мого результата. Конструкция CASEможет быть представлена в виде гро­моздкого набора последовательных логических условия

Логические операторы предоставляют большие возможность по управле­нию данными и широко используется при написании запросов и фрагментов про­грамм.

Оператор ALL

Expr {=|<>|!=|>|>=|!>|<|<=|!<} ALL (subquery)

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

Операторы SOME и ANY

Scalar_ expression {=|<>|! = |>|>= | !>|<|<=| !<} SOME (subquery)

Scalar_ expression {=|<>|! = |>|>= | !>|<|<=| !<} ANY (subquery)

С помощью этих операторов можно сравнить скалярную величину со всеми значениями в колонке таблицы. Разницы между использованием операторов ANYи SOMEнет. Если хотя бы в одной строке содержится значение, равное скалярной величине, то условие выполняется.

Оператор BETWEEN

Test_ expression [NOT] BETWEEN begin_ expression AND end_ expression

С помощью этого оператора можно получить ответ на вопрос, лежит ли величина в указанном диапазоне. Исходная величина задаётся аргументом test_ ex­pression. Аргумент begin_ expressionзадаёт начало диапазона, а аргумент end_ ex­pression – конец диапазона. Оператор BETWEENможно без труда представить в виде двух операций сравнения:

Test_ expression>=begin_ expression AND test_ expression<=end_ expres­sion

Оператор EXISTS

EXSISTS (sudquery)

Этот оператор возвращает значение TRUE, если указанный подзапрос возвращает хотя бы одну строку. В противном случае возвращает значение FALSE.

ОператорIN

Test_ expression [NOT] IN

(subquery | expression [….n])

С помощью этого оператора можно проверить, соответствует ли выражение test_expressionодному из перечисленных выражений или значений, возвращаемых подзапросом. ПриработеоператорIN можнозаменитьоператором«=ANY».

Оператор LIKE

Match_ expression [NOT] LIKE pattern [ESCAPE escape_ character]

С помощью этого оператора можно выполнять сравнение выражения с заданным шаблоном. Пусть, например, вам нужно найти в базе данных всех авторов, номера телефонов которых начинаются на 415. Можно, конечно, сделать это с помощью обычных операций сравнения, вырезая первые три символа и сравни­вая их с «415».

Поиск можно легко выполнить с помощью оператора LIKE, в котором допускается использование символов-заменителей. Аргумент match_ expressionзадаёт исходное выражение, для которого необходимо выполнить проверку. Шаблон для сравнения задаётся с помощью аргумента pattern. Символы заменители: «%», «_», «[]», «[^]». Операнд LIKEпозволяет использовать специальный управ­ляющий символ, задаваемый с помощью аргумента escape_ character, который предписывает воспринимать следующий за ним символ, как обычный.

Заключение

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

Типы данных определяют представление колонок таблиц, параметров процедур и переменных. В SQL Server помимо предопределенных системах типов данных можно создавать и пользовательские типы, основывающиеся на системных. Более подробно о создании пользовательских типов данных можно ознакомиться в разделе, посвященном хранимой процедуре sp_addtype. В SQL Server все типы данных регистонезависимые, в силу чего недопустимо использование различных пользовательских типов данных, отличающихся только регистром.

Для имен объектов необязательно быть уникальными в базе данных, например, имена колонок и индексов должны быть уникальными только в пределах таблицы или представления (view), все же имена других объектов должны быть уникальными в пределах базы данных для каждого владельца. Любую колонку или таблицу можно уникально идентифицировать следующим составным именем - имя базы данных, имя владельца, имя таблицы или представления. Промежуточные значения - имя владельца может быть опущено, если это не приводит к конфликтам имен. В случае удаленных хранимых процедур ее имя задается следующим образом: server.database.owner.procedure