Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3. Общие сведения о Transact-SQL.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
165.38 Кб
Скачать

Лекция 3. Общие сведения о Transact-sql

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

Цель: дать представление об основных возможностях языка Transact-SQL.

Общие сведения о Transact-sql

В 1970-х годах был разработан специальный язык SEQUEL (Structured English Query Language), который позднее был переименован в SQL. В 1986 году комитетом ANSI (American National Standards Institute) был принят первый стандарт языка. Последним принятым стандартом является ISO SQL:2008.

Язык SQL разрабатывался как непроцедурный язык, который будет доступен обычным пользователям, а не только программистам. Однако со временем язык становился все сложнее и сейчас предназначен в большей степени для программистов. Несмотря на существование стандартов языка SQL, в каждой СУБД используется свое расширение этого языка. Основной причиной использования расширений SQL является потребность применять SQL не только как язык запросов, но и как язык программирования, для этого, как правило, вводятся так называемые хранимые процедуры. СУБД Microsoft SQL Server использует свое расширение языка, которое называется Transact-SQL и включает в себя следующее:

  • управляющие конструкции;

  • локальные переменные;

  • дополнительные функции (математические, строковые и другие);

  • поддержка аутентификации Windows.

Типы данных

MS SQL Server поддерживает все основные простые типы данных, используемые в современных языках программирования. В версии MS SQL Server 2008 были добавлены несколько новых типов, а некоторые перестали рекомендоваться к использованию.

Типы данных в MS SQL Server можно разделить на семь категорий.

  1. Целые числа:

  • Bit (1 байт). На самом деле первый бит в таблице будет занимать один байт, однако следующие семь бит в этой таблице будут храниться в том же байте.

  • Bigint (8 байт). 64-разрядное целое число, позволяет хранить числа от –263 до +263–1.

  • Int (4 байта). Диапазон значений от –2 147 483 648 до +2 147 483 647.

  • SmallInt (2 байта). Диапазон значений от –32768 до +32767.

  • TinyInt (1 байт). Диапазон значений от 0 до 255.

  1. Числа с фиксированной запятой:

  • Decimal или Numeric. Диапазон значений от –1038–1 до +1038–1.

  • Money (8 байт). Денежный формат, диапазон значений от –263 до +263 с четырьмя знаками после запятой.

  • SmallMoney (4 байта). Денежный формат, диапазон значений от –214748,3648 до +214748,3647.

  1. Числа с плавающей запятой:

  • Float. Диапазон значений от –1,79E +308 до +1,79E +308.

  1. Дата и время:

  • DateTime (8 байт). Диапазон значений от 1 января 1753 года до 31 декабря 9999 года с точностью до трех сотых секунды.

  • DateTime2 (6-8 байт). Новый тип данных, поддерживает точность до 0,1 мс.

  • SmallDateTime (4 байта). Диапазон значений от 1 января 1900 года до 6 июня 2079 года с точностью одна минута.

  • DateTimeOffset (8-10 байт). Аналогичен типу DateTime, но хранит ещё сдвиг относительно времени UTC1.

  • Date (3 байта). Хранит только дату. Диапазон значений от 1 января 0001 года до 31 декабря 9999 года.

  • Time (3-5 байт). Хранит только время с точностью до 0,1 мс.

  1. Символьные строки:

  • Char. Строка фиксированной длины. Максимальная длина строки 8000 символов.

  • VarChar. Строка переменной длины. Максимальная длина строки 8000, но при использовании ключевого слова «max» может хранить до 231 байт.

  • Text. Применялся для хранения больших строк, сейчас рекомендуется использование varchar(max) вместо text. Оставлен для обратной совместимости.

  • Nchar. Строка фиксированной длины в Юникоде. Максимальная длина строки 4000 символов.

  • NvarChar. Строка переменной длины в Юникоде. Максимальная длина строки 4000 символов, но при использовании ключевого слова «max» может хранить до 231 байт.

  • Ntext. Аналогичен типу text, но предназначен для работы с Юникод. Сейчас рекомендуется использовать nvarchar(max). Оставлен для обратной совместимости.

  1. Двоичные данные:

  • Binary. Позволяет хранить двоичные данные размером до 8000 байт.

  • VarBinary. Тип данных переменной длины, позволяет хранить до 8000 байт, но при использовании ключевого слова «max» до 231 байт.

  • Image. Использовался для хранения больших объемов данных, сейчас рекомендуется использовать varbinary(max). Оставлен для обратной совместимости.

  1. Прочие типы данных:

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

  • HierarchyID. Используется для представления положения в иерархической структуре.

  • Sql_variant. Тип данных, хранящий значения различных типов данных, поддерживаемых MS SQL Server.

  • XML. Позволяет хранить XML-данные.

  • Cursor (1 байт). Тип данных для переменных или выходных параметров хранимых процедур, которые содержат ссылку на курсор.

  • Timestamp rowversion (8 байт). Это тип данных, который представляет собой автоматически сформированные уникальные двоичные числа в базе данных. Значение данного типа генерируется БД автоматически при вставке или изменении записи.

  • UniqueIdentifier (16 байт). Представляет собой GUID (Special Globally Unique Identifier). Гарантируется уникальность данного значения.