Типы данных SQL Server 2000

 

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

Типы данных играют большую роль при работе с таблицами. Каждый столбец должен иметь конкретный тип данных. В одной таблице может быть множество столбцов, как с одинаковыми, так и с различными типами данных. Наконец, типы данных активно используются при работе с хранимыми процедурами, определяя вид значений, указываемых при вызове.

В SQL Server 2000 набор типов данных несколько расширен по сравнению с предыдущей версией SQL Server – добавлены типы данных bigint, table и sql_variant.

В итоге в распоряжении пользователей имеется набор из встроенных типов данных:

· binary(n) – двоичные данные фиксированной длины до 8000 байт; для n байтов выделяется n+4 байта памяти, значения задаются с помощью шестнадцатеричных чисел 0x<шестнадцатеричные цифры>;

· image – двоичные данные длиной до 231–1, место во внешней памяти выделяется в виде цепочки страниц;

· char(n) – строковый тип данных фиксированной длины без поддержки Unicode длиной до 8000 байтов, данные зависят от кодовой страницы; если для столбца не задана опция NULL, то строка при необходимости будет дополняться справа пробелами; если эта опция задана, то дополнение пробелами будет иметь место при условии ANSI_PADDING=ON, в противном случае пробелы добавляться не будут;

· varchar(n) – строковый тип, как и char(n), но не с фиксированной длиной, если ANSI_PADDING=OFF, то будет выполняться удаление конечных пробелов, если ANSI_PADDING=ON, то удаление пробелов производиться не будет;

· nchar(n) - строковый тип, как и char(n), но с поддержкой Unicode, поэтому максимальное количество символов составляет 4000, в этом случае для строковых констант надо задавать впереди букву N (например, N’ABC’);

· nvarchar(n) – строковый тип, как varchar(n), но с поддержкой Unicode;

· text – строковый тип без поддержки Unicode длиной до 2 Гбайт; память выделяется страницами по 8 Кбайт, связываемыми в цепочку;

· ntext – строковый тип как и text, но с поддержкой Unicode, поэтому длина строки не более 1 Гбайта;

· int – целый тип длиной в 4 байта и с диапазоном от –231 до 231-1;

· smalling – целый тип длиной в 2 байта с диапазоном от –215 до 215-1;

· tinyint – целый тип длиной в 1 байт и диапазоном от 0 до 255;

· bigint – целый тип длиной в 8 байт и с диапазоном от-263 до 263-1;

· decimal[(p[,s])] – десятичный двоично-кодированный тип с p десятичными разрядами, из которых s – дробных; максимальное значение p достигает 38, поэтому диапазон значений составляет от –(1038-1) до 1038-1;

· numeric[(p[,s])] – тип, аналогичный типу decimal[(p[,s])];

· float[(n)] – плавающий (приблизительный) тип длиной в 4 байта и с диапазоном от –1.79x10308 до 1.79x10308; значение n определяет количество бит для хранения мантиссы и может принимать значения от 1 до 53;

· real – плавающий тип, являющийся аналогом float(240);

· datetime – тип данных для хранения даты (4 первых байта) и времени (4 последних байта) в диапазоне от 1.1.1753 и до 31.12.9999 года, дата хранится в виде смещения относительно базовой даты 1.1.1753, а время является количеством миллисекунд после полуночи;

· smalldatetime – тип данных для хранения даты (первых 2 байта) и времени (последние 2 байта) в диапазоне от 1.1.1900г. до 6.6.2079г., время задается с точностью до минуты;

· money – тип данных для хранения больших денежных величин с точностью до 4 знаков после запятой в диапазоне от –922 337 203 685 477.5808 до +922 337 203 685 477.5807, для хранения данных отводится 8 байт;

· smallmoney – тип данных для хранения нормальных денежных величин с точностью до 4 знаков после запятой в диапазоне от –214 748.3648 до 214 748.3647, для хранения данных отводится 4 байта;

· bit – битовый (логический) тип со значениями 0 и 1; для хранения выделяется 1 разряд байта памяти;

· timestamp – тип данных временный штамп для учета числа изменений данных в записи (версий строки row version), значение timestamp уникально в пределах базы данных и позволяет идентифицировать конкретное значение записи;

· uniqueidentifier – тип данных для хранения глобальных уникальных идентофикаторов длиной в 16 байт, генерируемых функций NEWID и используемых для идентификации строк (записей), при генерации используется номер сетевой карты компьютера и текущее время;

· sysname – тип данных для хранения имен объектов базы данных; аналог

nvarchar (128);

· sql_variant – вариантный тип данных для хранения данных любого типа, кроме text, ntext, image, timestamp;

· table – тип таблицы для временного хранения наборов данных с использованием переменных.

На основе некоторых из базовых типов данных могут быть созданы новые типы данных, называемые пользовательскими (user-defined). Примером такого типа данных может служить тип sysname (основанный на nvarchar(l28)), активно применяемый в системных таблицах для хранения имен объектов.

Типы данных SQL Server 2000 можно разбить на следующие группы:

· целочисленные (Integers) – bigint, int, smallint и tinyint;

· нецелочисленные (Decimal) – decimal, numeric, float и real;

· денежные (Money) – money и smallmoney;

· дата и время (Date and Time) – datetime и smalldatetime;

· двоичные (Binary) – binary, varbinary и image;

· строковые (String) – char, varchar, nchar и nvarchar;

· текстовые (Text) – text и ntext;

· специальные (Specials) – timestamp, uniqueidentifier, bit, cursor, table и sql variant.

 

Создание и удаление баз данных, таблиц и представлений


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: