
- •Введение
- •Лабораторная работа № 1. Работа с базами данных и таблицами ms sql server
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Работа с базой данных
- •2.2. Создание баз данных
- •2.3. Удаление баз данных
- •2.4. Работа с таблицами
- •2.5. Типы данных
- •2.6. Создание таблиц
- •2.7. Изменение структуры таблицы
- •2.8. Удаление таблиц
- •3. Задание на лабораторную работу
- •Контрольные вопросы
- •Лабораторная работа № 2. Выборка данных
- •1. Цель работы
- •2. Теоретическая часть
- •3. Задание на лабораторную работу
- •Лабораторная работа № 3. Вставка, изменение и удаление данных
- •2.2. Изменение данных
- •2.3. Удаление данных
- •Лабораторная работа № 4. Типы функций и хранимые процедуры
- •2.2. Создание функций пользователя
- •2.3. Удаление функций пользователя
- •2.4. Разработка хранимых процедур
- •2.5. Создание хранимой процедуры
- •2.6. Вызов хранимой процедуры
- •2.7. Возвращение данных из хранимой процедуры
- •2.8. Удаление хранимой процедуры
- •3. Задание на лабораторную работу
- •Контрольные вопросы
- •Лабораторная работа № 5. Метаданные
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Общие сведения
- •3. Задание на лабораторную работу
- •Контрольные вопросы
- •Список рекомендуемой литературы
- •Приложение Предметная область для разработки базы данных по вариантам
2.5. Типы данных
Одним из свойств столбца является его тип данных. Поскольку каждый столбец представляет один признак объекта, данные в каждом столбце подобны, то есть тип данных значений, хранящихся в одном и том же столбце, одинаков. SQL Server имеет набор встроенных типов данных, называемых системными. Этот набор приведен в табл. 1.
Таблица 1.
Типы данных, используемые в SQL Server 2000
Тип данных |
Описание |
1 |
2 |
bit |
Один бит. В столбце с этим типом может храниться либо 0, либо 1 |
binary(n) |
Двоичные данные фиксированной длины до 8000 байт |
varbinary(n) |
Двоичные данные переменной длины до 8000 байт |
Image |
Двоичные данные длиной до 2 Гбайт. Пространство для хранения данных этого типа отводится страницами, размер которых составляет 8 Кбайт |
decimal |
Используется для хранения дробных чисел с фиксированным количеством знаков до и после десятичной точки |
numeric |
Является аналогом типа данных decimal |
float(n) |
Используется для хранения дробных чисел с приблизительной точностью |
real |
Является аналогом float (24) |
int |
Занимает 4 байта и может хранить целые числа в диапазоне от -231 до 231-1 |
smallint |
Небольшое целое. Занимает 2 байта и может хранить целые числа в диапазоне от -215 до 215-1 (от -32 768 до 32 767) |
tinyint |
Маленькое целое. Занимает 1 байт и может хранить целые числа в диапазоне от 0 до 255 |
bigint |
Большое целое. Занимаете байт и может хранить целые числа в диапазоне от -263 до 263-1 |
char(n) |
Строковый тип данных фиксированной длины без поддержки Unicode длиной до 8000 символов |
nchar(n) |
Строковый тип данных фиксированной длины с поддержкой Unicode длиной до 4000 символов |
|
Окончание таблицы 1 |
1 |
2 |
varchar(n) |
Строковый тип данных переменной длины без поддержки Unicode длиной до 8000 символов |
nvarchar(n) |
Строковый тип данных переменной длины с поддержкой Unicode длиной до 4000 символов |
text |
Строковый тип данных без поддержки Unicode длиной до 2 миллиардов символов. Пространство для хранения данных этого типа отводится страницам, размер которых составляет 8 Кбайт |
ntext |
Строковый тип данных с поддержкой Unicode длиной до 1 миллиарда символов. Пространство для хранения данных этого типа отводится страницам, размер которых составляет 8 Кбайт |
datetime |
Тип данных для хранения даты и времени с высокой точностью в диапазоне от 1 января 1753 года и до 31 декабря 9999 года, занимающий 8 байт |
small datetime |
Тип данных для хранения даты и времени с нормальной точностью в диапазоне с 1 января 1900 года и до 6 июня 2079 года, занимающий 4 байт |
money |
Используется для хранения денежных данных в большом диапазоне. Обеспечивает точность до 4 знаков после десятичной точки и занимает 8 байт |
smallmoney |
Используется для хранения денежных данных в нормальном диапазоне. Обеспечивает точность до 4 знаков после десятичной точки и занимает 4 байта |
sql_variant |
Тип данных, позволяющий хранить данные нескольких типов в одном и том же столбце. Например, при использовании этого типа данных в столбце могут одновременно находиться данные целочисленные, дробные, символьные и др. |
sysname |
Этот тип данных, по сути, является не встроенным, а пользовательским (user-defined data type), создаваемым в системных базах данных автоматически при установке SQL Server 2000. Используется для указания имен объектов. |
timestamp |
Временной штамп. Значения в столбце этого типа изменяются SQL Sewer 2000 автоматически при каждом изменении строки. Для типа данных timestamp также можно использовать псевдоним rowversion |
table |
Этот тип данных предназначен для временного хранения сложных наборов данных. Поддерживается создание переменных типа table. Кроме того, функции пользователя могут возвращать значения типа table, что предоставляет широкие возможности для разработчиков. Однако тип данных table не может использоваться для столбцов таблицы. Он подходит только для переменных Transact-SQL, параметров хранимых процедур и для значений, возвращаемых функциями пользователя |
uniqueidentifier |
Используется для хранения глобальных уникальных идентификаторов (Global Unique Identifier, GUID) |
cursor |
Предназначен для хранения ссылок на курсоры. |
Итак, каждый столбец таблицы должен содержать данные, соответствующие типу данных столбца. Например, допускается неявное преобразование типа данных int в тип данных decimal или значений типа данных varchar в значения типа данных char. При необходимости можно использовать функции преобразования типов данных.
Значение NULL
NULL – это специальное значение, представляющее собой отсутствие любого значения. NULL – это не то же самое, что знак пробела или ноль. Пробел – это допустимый символ, а 0 – допустимое число. NULL также отличается от строки нулевой длины (пустой строки).
Столбцы могут разрешать или запрещать хранение значений NULL. Если столбец запрещает хранение значений NULL, то в таблицу нельзя вставлять строки, имеющие значение NULL для этого столбца.