- •1. Введение в предмет.
- •1.1 Данные и информация.
- •1.2 Предметная область.
- •1.3 Понятие и сущность.
- •1.4 Концептуальная модель объекта.
- •1.5 Связь или отношение.
- •1.6 Логическая модель базы данных.
- •1.7 Физическая модель базы данных.
- •1.8 Введение в работу с базами данных на платформе Microsoft sql Server.
- •1.8.1 Платформа Microsoft sql Server.
- •1.8.2 Среда sql Server Management Studio.
- •2. Основные понятия баз данных.
- •2.3 Типы данных ms sql Server.
- •2.3.1 Типы char и varchar.
- •2.3.2 Типы данных nchar и nvarchar.
- •2.3.3 Типы точных числовых данных.
- •2.3.4 Тип данных даты и времени.
- •2.3.5 Типы данных Decimal, Float и Real.
- •2.3.6 Тип денежных данных.
- •2.3.7 Типы binary и varbinary.
- •2.3.8 Типы данных больших значений.
- •2.4 Индексы.
- •2.4.1 Простой индекс.
- •2.4.2 Уникальный индекс.
- •2.4.3 Первичный ключ.
- •2.4.4 Уточнение определения индексов для ms sql Server.
- •2.4.4.1 Создание кластеризованного индекса.
- •2.4.4.2 Создание некластеризованных индексов.
- •2.5 Ограничения (Constraints).
- •2.5.1 Ограничение первичного ключа (Primary key constraints).
- •2.5.2 Создание или изменение ограничения primary key.
- •2.5.2.1 Свойство identity.
- •2.5.2.2 Глобальные уникальные идентификаторы.
- •2.6 Отношения между таблицами.
- •2.7 Нормализация данных.
- •2.7.1 Функциональные зависимости.
- •2.7.2 Первая нормальная форма таблицы.
- •2.7.3 Вторая нормальная форма таблицы.
- •2.7.4 Третья нормальная форма таблицы.
- •2.8 Ограничение foreign key.
- •2.8.1 Ведение ссылочной целостности.
- •2.8.2 Диалоговое окно "Связи внешнего ключа".
- •2.9 Ограничение unique.
- •2.9.1 Создание ограничения уникальности визуальными средствами.
- •2.9.2 Изменение ограничения уникальности.
- •2.10 Проверочные ограничения check.
- •2.11 Значения по умолчанию (Default).
- •3. Диаграммы базы данных.
- •3.1 Конструктор баз данных.
- •3.1.1 Таблицы и столбцы в диаграмме базы данных.
- •3.2 Редактирование диаграммы.
- •4. Основы Transact-sql.
- •4.1 Введение в sql.
- •4.1.1 Особенности выполнения инструкций Transact-sql.
- •4.2 Запросы.
- •4.2.2 Синтаксис инструкции select.
- •4.2.2.1 Предложение select.
- •4.2.2.2 Предложение select_list.
- •4.2.2.3 Предложение into.
- •4.2.2.4 Предложение from.
- •4.2.2.5 Предложение where.
- •4.2.2.6 Предложение group by.
- •4.2.2.7 Предложение having.
- •4.2.2.8 Предложение order by.
- •4.3 Ввод данных.
- •4.4 Обновление или изменение данных.
- •4.5 Удаление данных.
- •4.6 Представления.
- •4.6.1 Сравнительные характеристики запросов и представлений.
- •4.6.2 Типы представлений.
- •4.6.2.1 Стандартные представления.
- •4.6.2.2 Индексированные представления.
- •4.6.3 Создание представлений.
- •4.6.3.1 Обновляемые представления.
- •4.7.5 Настройка разрешений на объекты базы данных.
- •4.7.5.3 Создание пользователя в базе данных.
- •4.7.5.4 Инструкция grant.
- •4.7.6 Удаление объектов базы данных.
2.3.6 Тип денежных данных.
В Microsoft SQL Server 2005 денежные данные, или значения валюты, хранятся с использованием двух типов данных: money и smallmoney. Для этих типов данных может использоваться любой из приведённых в таблице 1 символов валют.
Валютные или денежные данные не требуется заключать в одинарные кавычки ( ' ). Важно помнить, что, несмотря на возможность указания денежных значений, которым предшествует символ валюты, SQL Server не сохраняет какие-либо сведения о валюте, связанные с символом, а хранит только числовое значение. Например, чтобы присвоить переменной значение 100 долларов, можно сделать следующее:
DECLARE @dollars AS money
SET @dollars = $100
SELECT @dollars
В этом случае будет возвращено значение 100,0000 без символа валюты.
Объект, определенный как money, может содержать не более 19 цифр, 4 из которых могут располагаться справа от десятичной запятой. Для хранения данных в объекте используется 8 байт. Таким образом, тип данных money имеет точность 19, масштаб 4 и длину 8.
Поскльку типы данных money и smallmoney ограничены четырьмя знаками после запятой, то если требуется указать больше знаков после символов, используйте тип данных decimal.
Чтобы отделить дробные денежные единицы, например центы, от целых денежных единиц, используйте запятую. Например, 2,15 соответствует 2 долларам и 15 центам.
В константах типа money и smallmoney не допускаются запятые в качестве разделителей, хотя отображаемый формат этих типов данных содержит запятые-разделители. Запятые-разделители можно указывать только в символьных строках, явно приведенных к типу money или smallmoney.
2.3.7 Типы binary и varbinary.
binary [ ( n ) ] - двоичные данные фиксированной длины размером в n байт, где n — значение от 1 до 8000. Размер хранения составляет n байт.
varbinary [ ( n | max) ] - двоичные данные переменной длины. n могут иметь значение от 1 до 8000; max означает максимальную длину хранения, которая составляет 2^31-1 (2 147 483 647) байт. Размер хранения - это фактическая длина введенных данных плюс 2 байта. Введенные данные могут иметь размер 0 символов. В ANSI SQL синонимом для varbinary является binary varying.
Типы данных binary и varbinary хранят последовательности битов. Хотя символьные данные обрабатываются на основе кодовой страницы Microsoft SQL Server, типы binary и varbinary представляют собой просто битовые потоки.
Двоичные константы начинаются с 0х (ноль и символ "x"), затем следует шестнадцатеричное представление набора битов. Например, 0х2А задает шестнадцатеричное число 2А, равное 42 в десятичном и 00101010 в двоичном формате.
Для хранения таких шестнадцатеричных значений, как идентификационный номер безопасности и идентификатор GUID (тип данных uniqueidentifier), следует использовать двоичные данные или комплексные числа, которые можно записать в шестнадцатеричном формате.
2.3.8 Типы данных больших значений.
В Microsoft SQL Server 2005 имеется признак max. Этот признак расширяет возможности хранения типов данных varchar, nvarchar и varbinary. varchar(max), nvarchar(max) и varbinary(max) вместе называются типами данных больших значений. Можно использовать типы данных больших значений для хранения 2^31-1 байт данных.
Используйте типы данных varchar(max), nvarchar(max) и varbinary(max) вместо типов данных text, ntext и image.