Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Определение структуры данных
Типы данных, используемые в SQL-сервере
Системные типы данных
Один из основных моментов процесса создания таблицы – определение типов данных для ее полей. Тип данных поля таблицы определяет тип информации, которая будет размещаться в этом поле. Понятие типа данных в SQL Server полностью адекватно понятию типа данных в современных языках программирования. SQL-сервер поддерживает большое число различных типов данных: текстовые, числовые, двоичные (см. таблицу 2.2).
image | smalldatetime | bit | binary |
text | real | decimal | char |
uniqueidentifier | money | numeric | timestamp |
tinyint | datetime | smallmoney | nvarchar |
smallint | float | varbinary | nchar |
int | ntext | varchar | sysname |
Приведем краткий обзор типов данных SQL Server.
Для хранения символьной информации используются символьные типы данных, к которым относятся CHAR (длина), VARCHAR (длина), NCHAR (длина), NVARCHAR (длина). Последние два предназначены для хранения символов Unicode. Максимальное значение длины ограничено 8000 знаками ( 4000 – для символов Unicode).
Хранение символьных данных большого объема (до 2 Гб) осуществляется при помощи текстовых типов данных TEXT и NTEXT.
К целочисленным типам данных относятся INT ( INTEGER ), SMALLINT, TINYINT, BIGINT. Для хранения данных целочисленного типа используется, соответственно, 4 байта (диапазон от -231 до 231-1 ), 2 байта (диапазон от -215 до 215-1 ), 1 байт (диапазон от 0 до 255 ) или 8 байт (диапазон от -263 до 263-1 ). Объекты и выражения целочисленного типа могут применяться в любых математических операциях.
Числа, в составе которых есть десятичная точка, называются нецелочисленными. Нецелочисленные данные разделяются на два типа – десятичные и приблизительные.
К десятичным типам данных относятся типы DECIMAL [(точность[,масштаб])] или DEC и NUMERIC [(точность[,масштаб])]. Типы данных DECIMAL и NUMERIC позволяют самостоятельно определить формат точности числа с плавающей запятой. Параметр точность указывает максимальное количество цифр вводимых данных этого типа (до и после десятичной точки в сумме), а параметр масштаб – максимальное количество цифр, расположенных после десятичной точки. В обычном режиме сервер позволяет вводить не более 28 цифр, используемых в типах DECIMAL и NUMERIC (от 2 до 17 байт).
К приблизительным типам данных относятся FLOAT (точность до 15 цифр, 8 байт) и REAL (точность до 7 цифр, 4 байта). Эти типы представляют данные в формате с плавающей запятой, т.е. для представления чисел используется мантисса и порядок, что обеспечивает одинаковую точность вычислений независимо от того, насколько мало или велико значение.
Для хранения информации о дате и времени предназначены такие типы данных, как DATETIME и SMALLDATETIME, использующие для представления даты и времени 8 и 4 байта соответственно.
Типы данных MONEY и SMALLMONEY делают возможным хранение информации денежного типа ; они обеспечивают точность значений до 4 знаков после запятой и используют 8 и 4 байта соответственно.
Тип данных BIT позволяет хранить один бит, который принимает значения 0 или 1.
В среде SQL Server реализован ряд специальных типов данных.
Тип данных TIMESTAMP применяется в качестве индикатора изменения версии строки в пределах базы данных.
Тип данных UNIQUEIDENTIFIER используется для хранения глобальных уникальных идентификационных номеров.
Тип данных SYSNAME предназначен для идентификаторов объектов.
Тип данных SQL_VARIANT позволяет хранить значения любого из поддерживаемых SQL Server типов данных за исключением TEXT, NTEXT, IMAGE и TIMESTAMP.
Тип данных TABLE, подобно временным таблицам, обеспечивает хранение набора строк, предназначенных для последующей обработки. Тип данных TABLE может применяться только для определения локальных переменных и возвращаемых пользовательскими функциями значений. Пример использования типа данных TABLE приведен в лекции, посвященной функциям пользователя.
Тип данных CURSOR нужен для работы с такими объектами, как курсоры, и может быть востребован только для переменных и параметров хранимых процедур. Курсоры SQL Server представляют собой механизм обмена данными между сервером и клиентом. Курсор позволяет клиентским приложениям работать не с полным набором данных, а лишь с одной или несколькими строками. Примеры использования данных типа CURSOR мы рассмотрим в лекциях, посвященных курсорам и хранимым процедурам.
Создание пользовательского типа данных
В системе SQL-сервера имеется поддержка пользовательских типов данных. Они могут использоваться при определении какого-либо специфического или часто употребляемого формата.
Создание пользовательского типа данных осуществляется выполнением системной процедуры:
sp_addtype [@typename=]type,[@phystype=] system_data_type [,[@nulltype=]’null_type’]
Тип данных system_data_type выбирается из следующей таблицы.
image | smalldatetime | decimal | bit |
text | real | ‘decimal[(p[,s])]’ | ‘binary(n)’ |
uniqueidentifier | datetime | numeric | ‘char(n)’ |
smallint | float | ‘numeric[(p[,s])]’ | ‘nvarchar(n)’ |
int | ‘float(n)’ | ‘varbinary(n)’ | |
ntext | ‘varchar(n)’ | ‘nchar(n)’ |
EXEC sp_addtype bir, DATETIME, 'NULL' или EXEC sp_addtype bir, DATETIME, ‘NOT NULL’2.1. Создание пользовательского типа данных bir.
CREATE TABLE tab (id_n INT IDENTITY(1,1) PRIMARY KEY, names VARCHAR(40), birthday BIR)2.2. Использование пользовательского типа данных bir при создании таблицы.
Удаление пользовательского типа данных происходит в результате выполнения процедуры sp_droptype type: EXEC sp_droptype 'bir'
Получение информации о типах данных
Получить список всех типов данных, включая пользовательские, можно из системной таблицы systypes:
SELECT * FROM systypes
Преобразование типов
Нередко требуется конвертировать значения одного типа в значения другого. Наиболее часто выполняется конвертирование чисел в символьные данные и наоборот, для этого используется специализированная функция STR. Для выполнения других преобразований SQL Server предлагает универсальные функции CONVERT и CAST, с помощью которых значения одного типа преобразовываются в значения другого типа, если такие изменения вообще возможны. CONVERT и CAST примерно одинаковы и могут быть взаимозаменяемыми.
CAST(выражение AS тип_данных) CONVERT(тип_данных[(длина)], выражение [,стиль])
С помощью аргумента стиль можно управлять стилем представления значений следующих типов данных: дата/время, денежный или нецелочисленный.
DECLARE @d DATETIME DECLARE @s CHAR(8) SET @s=’29.10.01’ SET @d=CAST(@s AS DATETIME)2.3. Преобразование данных символьного типа к данным типа дата/время.
Наряду с типами данных основополагающими понятиями при работе с языком SQL в среде MS SQL Server являются выражения, операторы, переменные, управляющие конструкции.