Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы ГЭК (для заочников).doc
Скачиваний:
53
Добавлен:
26.04.2019
Размер:
348.67 Кб
Скачать

22. Язык t-sql. Числовые и денежные типы данных. Типы данных для хранения информации о времени.

Понятие типа данных в SQL Server полностью адекватно понятию типа данных в современных языках программирования. Тип данных определяет диапазон значений, которые можно сохранить в переменной или колонке таблицы.

1) Числовые целые типы данных

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

К целочисленным типам данных (общее название — integer) относятся следующие типы данных: Int (или Integer). Для хранения данных используются 32 бита или 4 байта; SmalI int. Для хранения данных используются 16 бит, или 2 байта. Tinyint. Этот целочисленный тип занимает всего 1 байт и не содержит отрицательных чисел. Все биты интерпретируются как числовое значе­ние. Тип данных tinyint позволяет хранить значения в интервале от О до 255.

При выборе того или иного типа данных необходимо исходить из физических значений хранимых данных. Целочисленные типы данных используются для построения индексов и первичных ключей.

2)Нецелочисленные типы данных

Числа, в составе которых есть десятичная точка, называются нецелочисленными. Microsoft разделяет нецелочисленные данные на два типа — десятичные (decimal) и приблизительные (approximate).

Десятичные данные физически хранятся в SQL Server 7.0 не в виде чисел, а в виде последовательности цифр. Для представления каждой десятичной цифры обычно используются 4 бита, то есть один байт позволяет хранить две десятичных цифры, или значение от 0 до 99.

3)Денежные типы данных.

Обеспечивает хранение значений до 4-х знаков после запятой.

Maney-8 байт.

Smallmaney- 4 байт.

4) Типы данных для хранения информации о времени.

Datetime. Для представления данных этого типа SQL Server 7.0 использует 8 байт. В первых 4 байтах хранится информация о дате. Это значение — своего рода смещение относительно базовой даты. В качестве базовой даты было выбрано 1 января 1753 г. Оставшиеся 4 байта хранят информа­цию о количестве миллисекунд, прошедших после полуночи данного дня. В итоге тип данных datetime позволяет хранить значения о дате и времени в диапазоне от 1 января 1753 г. до 31 декабря 9999 г. с точностью до 3,33 мс.

23. Язык t-sql. Символьные и текстовые типы данных.

К символьным типам данных относятся следующие типы:

1. Char(n). Этот тип данных разрешает хранение набора символов длиной до 8000 знаков. Аргумент n определяет максимальное количество символов, его максимальное значение равно 8000 (255 для SQL Server 6.x). В таблице для хранения значений типа char выделяется указанное количество байт независимо от того, сколько символов было реально сохранено. Если пользователь сохраняет строку длиной менее объявленной, то сервер до­бавляет в конец строки необходимое количество пробелов. Если строка превышает объявленную длину, то строка усекается и часть конечных символов будет потеряна.

2. Varchar(n). Этот тип подобен типу данных char с тем отличием, что количе­ство выделяемого в таблице пространства зависит от реального числа байтов, которое занимает значение. 3.Nchar(n). Поведение сервера при работе с этим типом аналогично работе с типом данных char с тем отличием, что тип nchar используется для хранения символов Unicode. Каждый символ Unicode занимает два байта и, следовательно, максимальное количество символов, которое можно сохранить с использованием этого типа, равно 4000. Если в коде программы необходимо явно указать тип символьной строки как Unicode, то перед строкой ставится символ «N». Например, оператор SET (PPVStrl = N'Stroka in Unicode Standarf присвоит переменной символьную строку в формате Unicode. Если символ «N» не указывается, то сервер предполагает, что строка указана не в Unicode.