- •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 Удаление объектов базы данных.
4. Основы Transact-sql.
4.1 Введение в sql.
Запрос к базе данных - это первое из тех действий, ради чего собственно и создаются базы данных. Для описания и последующего выполнения запросов к базе данных служит язык структурированных запросов (SQL, Structure Query Language).
Первая версия языка SQL была разработана в 1970 г. фирмой IBM. За 40 лет своего существования он претерпел существенные изменения, стал более гибким и мощным. Каждый производитель СУБД старался предложить пользователю как можно более удобный механизм управления данными, в результате было создано множество модификаций этого языка, хотя основной состав операторов во всех модификациях сохранялся одинаковым.
В 1992 г. американским национальным институтом стандартизации (ANSI, American National Standart Institute) был разработан стандарт на язык SQL, названный ANSI SQL-92. Этот стандарт не только определяет основные правила использования команд, идентификаторов, переменных и т.п., но и регламентирует в определённой мере работу самой СУБД.
Корпорация Microsoft, как и другие производители, разработала свою версию языка SQL под названием Transact-SQL. Этот язык удовлетворяет требованиям стандарта ANSI SQL-92, но при этом предлагает и ряд дополнительных возможностей.
Логическую основу языка Transact-SQL составляют операторы, которые делятся на две главные категории:
- операторы языка определения данных (DDL - Data Definition Language). DDL-операторы создают, изменяют, удаляют структуры, которые содержат данные. Этими структурами являются собственно базы данных, таблицы и другие компоненты базы данных. Объекты, определяемые посредством DDL операторов, обычно называют метаданными. DDL операторы начинаются со слов CREATE, ALTER, DROP. Например, оператор CREATE TABLE определяет таблицу, ALTER TABLE модифицирует существующую таблицу, а DROP TABLE удаляет таблицу. Процесс создания и сопровождения базы данных посредством этих операторов будет изучаться во 2-й части настоящего руководства;
- операторы языка манипулирования данными (DML - Data Manipulation Language). DML операторы манипулируют данными внутри вышеупомянутых структур данных. Существуют четыре основных DML оператора: INSERT, UPDATE, DELETE и SELECT. INSERT добавляет данные в таблицу, UPDATE модифицирует существующие данные и DELETE удаляет данные.
Оператор SELECT выбирает или запрашивает информацию из базы данных. Transact-SQL является процедурным языком программирования и помимо вышеперечисленных операторов содержит переменные, выражения, операторы управления потоком, функции, хранимые процедуры и триггеры. Более подробное рассмотрение всех возможностей языка Transact-SQL будет произведено во 2-й части настоящего руководства.
4.1.1 Особенности выполнения инструкций Transact-sql.
Клиент отправляет серверу инструкции на выполнение в виде так называемых пакетов (batch). Пакет является группой из одной или нескольких инструкций языка Transact-SQL, отправляемых единовременно из приложения в SQL Server для выполнения. Сервер компилирует инструкции пакета в единый исполняемый модуль, называемый планом выполнения. Инструкции в плане выполнения затем последовательно выполняются. После отработки всех команд пакета (или в ходе выполнения пакета) сервер возвращает клиенту результат.
Пакеты могут объединяться в сценарии. Сценарий - это серия инструкций языка Transact-SQL, которая хранится в файле. Эти файлы можно использовать в качестве исходных данных для редактора кода среды SQL Server Management Studio или программ sqlcmd и osql, которые могут выполнять инструкции SQL из файла. Сценарий языка Transact-SQL может содержать как один, так и несколько пакетов. Команда GO означает конец пакета. Если сценарий языка Transact-SQL не содержит команд GO, то он выполняется как единый пакет.
Сценарии языка Transact-SQL можно использовать следующим образом:
- для сохранения резервной копии последовательности шагов, которые выполнялись при создании и заполнении базы данных на сервере;
- при необходимости переноса инструкций с одного компьютера на другой; в целях обучения нового персонала.
Все команды пакета выполняются в контексте определённой базы данных. Такая база данных называется текущей. При обращении к объектам текущей базы данных не требуется указание её имени. Для выбора текущей базы данных используется команда USE. Например, для выбора в качестве текущей базы данных pubs следует указать:
USE pubs
Одним из способов исполнения инструкций языка Transact-SQL является использование графического интерфейса Management Studio.
При входе в режим редактирования (как это сделать, описано ниже) в окне Management Studio появляется дополнительная панель инструментов. На нее вынесены основные функции для работы с SQL запросами. Встроенный текстовый редактор позволяет выполнять обычные действия по редактированию, выделению, копированию, сохранению и печати файлов.