Transact-SQL

Автор: Александр Барабошин, 27 Сентября 2010 в 22:53, курсовая работа

Краткое описание

Структурированный язык запросов SQL (Structured Query Language) был разработан в 1970 г. корпорацией IBM как язык управления реляционными базами данных. До него и после него были попытки создания альтернативных языков, но стандартом стал именно SQL. Практически все производители систем управления базами данных используют в своих продуктах ту или иную модификацию SQL. С 1970 г. Было разработано немало версий этого языка, часто не совместимых друг с другом. В результате в 1992 г. американским национальным институтом стандартов (American National Standard Institute-ANSI) был разработан стандарт SQL – 92, описывающий поведение сервера и регламентирующий основные правила работы. Целью разработки этого стандарта было, в частности, уменьшение несовместимости различных вариантов SQL.
Однако, несмотря на все усилия добиться единого стандарта, каждый из производителей использует и развивает свою модификацию SQL. В SQL Server 7.0 реализован вариант Transact-SQL, поддерживающий большинство возможностей стандарта ANSI SQL-92, а также ряд дополнений, увеличивающих гибкость и мощность языка. Transact-SQL широко используется не только в продуктах Microsoft, но и в приложениях независимых разработчиков.
Transact-SQL является основой SQL Server 7.0, реализуя простые, но в то же время мощные методы доступа к данным. Администратор может сконфигурировать сервер таким образом, что пользователям не нужно будет явно указывать начало и конец транзакций. Сервер сам позаботится об обеспечении целостности данных. Для профессиональной работы с SQL Server 7.0 необходимо понимать механизмы работы Transact-SQL и уметь успешно применять их на практике.
В данной роботе будут рассматриваться основные принципы работы Transact-SQL, типы строковых и числовых данных, а так же логические операторы и защита.

Оглавление

Введение………………………………………………………………………………….. 3
1. Управляющие конструкции transact-sql……………………………………………... 4
1.1 Команда группировки ………………………………………………………………. 4
1.2 Команды программирования transact-sql ………………………………………….. 4
2. Типы данных…………………………………………………………………………... 8
2.1 Таблица systypes……………………………………………………………………... 8
2.2 Числовые типы данных……………………………………………………………... 8
2.3 Строковые типы данных ………………………………………………………….. 11
3. Типы инструкций……………………………………………………………………. 13
3.1 Инструкции языка определения, управления и обработки данных……………... 13
3.2 Создание объектов и управление защитой……………………………………….. 15
3.3 Логические операторы, инструкции языка определения……………………….... 19
Заключение……………………………………………………………………………….22
Глоссарий……………………………………………………………………………….. 24
Список используемой литературы…………………………………………………….. 23
Приложение А…………………………………………………………………………... 24
Приложение В…………………………………………………………………………... 25

Файлы: 1 файл

Кузнецов К.В.(Transact-SQL).doc

— 197.50 Кб (Скачать)

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

     Оператор 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_ expression. Аргумент begin_ expression задаёт начало диапазона, а аргумент end_ expression – конец диапазона. Оператор BETWEEN можно без труда представить в виде двух операций сравнения:

          Test_ expression>=begin_ expression AND test_ expression<=end_ expression

     Оператор 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 делятся на следующие типы:

  1. Константы. Это постоянные величины, значения которых не могут быть никаким образом изменены. Примеры: 7, 13.64, ‘TextPtr’.
  2. Функции. Это изменённые программы, выполняющие обработку данных и возвращающие определённый результат. Функции могут иметь входные параметры или просто возвращать значение.
  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_ expression. Аргумент begin_ expression задаёт начало диапазона, а аргумент end_ expression – конец диапазона. Оператор BETWEEN можно без труда представить в виде двух операций сравнения:

          Test_ expression>=begin_ expression AND test_ expression<=end_ expression

     Оператор 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

Информация о работе Transact-SQL