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 Кб (Скачать)

      Текстовые типы данных так же, как и символьные, позволяют хранить текстовые  данные. Они обеспечивают хранение очень большого количества символов – до 2 Гбайт. К текстовым типам данных относятся:

  1. Text. Этот тип обеспечивает хранение блоков текста длиной до 231-1 (2 147 483 647) символов.
  2. Ntext. При работе с большим объёмом текста в формате Unicode используется тип данных ntext, обеспечивающий хранение до 230-1 (1 073 741 823) символов. Хранение данных типа ntext осуществляется теми же методами, что и типов text и image.

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

      Специальные типы данных используются в основном для внутренних нужд с целью обеспечения  дополнительной функциональности. К  специальным типам данных относят:

  1. Bit. Этот тип данных позволяет хранить один бит и принимает значение 0 или 1. Bit  как нельзя лучше подходит для хранения данных, которые могут принимать только два значения: «YES/NO», «MAN/ WOMAN», «TRUE/FALSE», «ON/OFF» и т. д.
  2. Timestamp. Этот тип используется в качестве индикатора версии изменения строки в пределах базы данных. С помощью timestamp можно отслеживать последовательность изменений строк как в пределах таблиц, так и в пределах баз данных.
  3. Uniqueidentifier. Он используется для хранения глобальных уникальных идентификационных номеров. Значения типа uniqueidentifier занимают 16 байт и могут быть представлены в виде xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где x 4представляет одну шестнадцатеричную цифру.
  4. Sysname. Это пользовательский тип данных, созданный самим Transact-SQL на основе типа данных nvarchar. Тип данных sysname используется для описания имён объектов базы данных, таких как таблицы, колонки, типы данных, логические имена файлов и т. д.

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

          CAST (ecspression AS data_ type)

          CONVERT (data_ type [(length)], expression [, style])

     Аргумент expression указывает величину, которую необходимо конвертировать. Тип, в который необходимо конвертировать данные, определяется аргументом data_type.        
 
 
 
 
 
 
 
 
 
 
 

  1. Типы инструкций
 

     3.1. Инструкции языка определения, управления и обработки данных 

     Все инструкции языка Transact-SQL разделены на три группы, называемые языком определения данных (Data Definition Language, DDL), языком обработки данных (Data Manipulation Language, DML) и языком управления данными (Data Control Language, DCL). Инструкции DDL предназначены для создания баз данных и их объектов, инструкции DLM предназначены для чтения и модификации данных, а инструкции DCL –для защиты данных путём определения разрешений пользователей и ролей.

     Основу  любой инструкции языка определения  данных (DDL) составляет одно из трёх ключевых слов: CREATE, ALTER или DROP. Остальные ключевые слова, входящие в инструкцию, определяют тип объекта и его параметры. Например, для создания в базе данных  Test новой таблицы с информацией о контактах нужно открыть окно Query Analyzer, подключиться к SQL Server, открыть базу данных Test и выполнить следующую инструкцию:

     CREATE TABLE Contacts

      (First Name varchar (20), Last Name varchar (30), Phone char (12)).

     Основным  элементом этой инструкции является ключевое слово CREATE, которое определяет, что в базе данных необходимо создать новый объект. Ключевое слово TABLE указывает тип создаваемого объекта (таблица), а за ним следует имя таблицы и определения её столбцов. Удалить из базы данных таблицу Contacts можно с помощью инструкции DROP TABLE, в которой задаётся только имя таблицы.

     Эти инструкции служат для предоставления, отмены и запрета разрешений на доступ к объектам баз данных SQL Server и разрешений на выполнение инструкций Transact-SQL. Следующая инструкция предоставляет пользователю Cathy разрешение на чтение данных из таблицы Contacts:                                                                                                                 GRANT SELECT ON Contacts TO Cathy

     GRANT означает предоставление разрешения, ключевое слово SELECT указывает, что это разрешение на чтение данных, далее за ключевым словом ON следует имя объекта, на который предоставляется разрешение, а за ключевым словом TO – имя пользователя, которому предоставляется данное разрешение.

     В ходе эксплуатации баз данных интенсивнее  всего используются инструкции языка обработки данных (DML), поскольку именно с их помощью выполняется чтение, добавление, удаление и изменение данных таблиц SQL Server. Главным отличием DML от двух других подмножеств Transact-SQL является то, что инструкции DML используются не структурами SQL-Server, а для работы с даными. Модификация данных SQL-Server выполняется с помощью инструкций INSERT, DELETE и UPDATE. 

     3.2 Создание объектов и управление защитой 

     В отличиe от пользователей баз данных, которые в большинстве случаев выполняют запросы на выборку и модификацию данных, администраторы очень часто создают базы данных и их объекты. Последовательности инструкций, создающих базы данных и наборы их объектов, часто сохраняют в виде сценариев, а затем используют для повторного создания тех же объектов. Пример инструкции, создающей базу данных Test: 

     CREATE DATABASE Test

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

     После создания базы данных встаёт задача создания её объектов, прежде всего таблиц. Создание таблицы выполняется с помощью инструкции, 5начинающейся с того же ключевого слова CREATE, за которым следует ключевое слово, определяющее, какой объект вы хотите создать. Однако прежде чем выполнить инструкцию, нужно сообщить SQL Server, с какой базой данных вы хотите работать. Для этого используется инструкция USE. SQL Server Query Analyzer позволяет выполнить эту инструкцию неявно, выбрав базу данных в поле со списком на панели управления. Однако рекомендуется явно включать инструкцию USE в сценарии, особенно если вы их сохраняете для повторного использования. Таким образом, сценарий создания таблицы должен начинаться с инструкции:

     USE Test

     Введите её в окне Query Analyzer и нажмите клавишу [Enter] для перехода к следующей строке. Затем введите инструкцию CREATE TABLE, указав  в ней имя создаваемой таблицы и список её столбцов. Для удобства чтения инструкций можно отодвигать их фрагменты вправо, чтобы их структура была более наглядной. Вот как должен выглядеть наш сценарий:   USE Test 

     CREATE TABLE Contacts

     (FirstName varchar (20), LasteName varchar (30), Phone char (12)).

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

     Все инструкции, изменяющие свойства баз  данных и их объектов, начинаются с ключевого слова ALTER, за которым следует ключевое слово, определяющее тип объекта: DATABASE, TABLE, VIEW, PROCEDURE, TRTGGER или FUNCTION. Инструкции ALTER можно использовать для изменения всей базы данных, представления, сохранённой процедуры и других объектов. Для каждого типа объектов в Transact-SQL имеется своя инструкция ALTER со своим набором опций. Последней задачей языка определения данных является удаление объектов. Эту операцию выполняют инструкции, начинающиеся с ключевого слова DROP. Нельзя удалить базу данных, к которой подключен хотя бы один пользователь, базу данных, в которую в данный момент загружаются данные, или базу данных публикации.

     SQL Server поддерживает некоторые типы разрешений на выполнение инструкций SELEKT, UPDATE, INSERT и DELETE. Каждое из этих разрешений для конкретного пользователя или роли может находится в одном из трёх состояний, устанавливаемых инструкциями: GRANT, DENY и REVOKE. Кроме того, разрешения предоставляются на конкретные объекты баз данных. Например, конкретному пользователю может быть предоставлено разрешение на чтение данных конкретной таблицы. Выполнению инструкций DCL обычно предшествует кропотливая работа по проектированию системы защиты баз данных и их объектов. Только когда полностью подготовлен план распределения разрешений между пользователями и ролями баз данных и SQL Server, вы можете подготовить сценарий на языке Transact-SQL, который реализует этот план. Дальнейшие изменения в системе защиты, например, добавление новых пользователей и ролей и изменение их разрешений, должны выполняться в строгом соответствии с планом согласно текущим потребностям предприятия.

     Вот так, например, предоставить пользователю Sally разрешение на чтение данных таблицы Contacts:                                                                         

     USE Test

     GRANT SELECT ON Contacts TO Sally

     Эта инструкция будет выполнена только в том случае, если в базе данных имеется таблица или представление с именем Contacts и пользователь с именем Sally.

     Если  нужно запретить пользователю Sally чтение данных таблицы Contacts, то следует вместо инструкции GRANT поставить инструкцию DENY.

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

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

  1. Константы. Это постоянные величины, значения которых не могут быть никаким образом изменены. Примеры: 7, 13.64, ‘TextPtr’.
  2. Функции. Это изменённые программы, выполняющие обработку данных и возвращающие определённый результат. Функции могут иметь входные параметры или просто возвращать значение.
  3. Имя колонки. В качестве операнда может выступать колонка таблицы. Это часто используется при обработке данных в таблице, удовлетворяющих определённому критерию. Пользователь указывает в выражении имя интересующей его колонки, а сервер будет автоматически подставлять соответствующие значения. При последовательном просмотре таблицы значение будет изменяться.
  4. Переменная. Это именованная область памяти определённого объёма, в которой хранятся данные. Физически любая переменная есть последовательность из одного или нескольких байт. То, как сервер будет обрабатывать последовательность, представляющую значение переменной, зависит от типа данных, ассоциированного с этой переменной.
  5. Подзапрос. В качестве выражения можно указать подзапрос, который подготовит соответствующий набор данных. По принципу работы это эквивалентно указанию колонки таблицы, только в случае подзапроса данные не нужно явно «закачивать» в таблицу. Сервер сам сделает всю работу: создаст временную таблицу с необходимой структурой, скопирует в неё выбранные данные и подключит полученный набор данных в качестве выражения.
  6. Конструкции CASE, NULLIF и COALESCE. Эти конструкции позволяют использовать логическое условие для определения возвращаемого результата. Конструкция CASE может быть представлена в виде громоздкого набора последовательных логических условия

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