- •Введение
- •Глава 1 информационные системы
- •1.1 Информация как ресурс
- •1.2 Файловые системы
- •1.3 Информационные системы, использующие базы данных
- •1.3.1 Иерархические и сетевые модели данных
- •1.3.2 Реляционные системы управления базами данных
- •1.4 Компоненты информационных систем
- •1.4.1 Технические средства
- •1.4.2 Программное обеспечение
- •1.4.3 Данные
- •1.4.4 Пользователи
- •1.4.5 Организационное обеспечение
- •1.4.6 Отношения между компонентами системы
- •1.5 Основы проектирования информационных систем
- •1.5.1 Жизненный цикл программного обеспечения
- •1.5.2 Модели жизненного цикла по
- •1.5.3 Подходы к проектированию ис
- •1.6 Задания и вопросы для повторения
- •2.2 Подходы к проектированию баз данных
- •2.3 Создание базы данных
- •2.4 Основы концептуального проектирования баз данных
- •Объекты и отношения
- •2.3.2. Атрибуты
- •2.3.3 Ключи
- •2.3.4 Наследование
- •2.3.5 Составные объекты
- •2.3.6 Моделирование концептуальных и физических объектов
- •2.4 Реляционная модель данных
- •2.4.1 Поддержка целостности данных
- •Процесс нормализации таблиц
- •2.4.3 Пример построения нормализованной базы данных
- •2.4.4 Преобразование концептуальной модели в реляционную
- •2.5 Элементы er-моделирования
- •2.5.1 Основные понятия модели «сущность-связь»
- •2.5.2 Основные графические обозначения элементов модели
- •2.6 Заключительный этап проектирования
- •2.7 Сравнение концептуального и реляционного моделирования
- •2.8 Вопросы и задания для повторения
- •2.9 Упражнения и задачи
- •2.10 Проекты и профессиональные вопросы
- •Глава 3 реляционная алгебра и реляционное исчисление
- •3.1 Реляционная алгебра
- •3.1.1 Обзор реляционной алгебры
- •3.1.2 Теоретико-множественные операторы
- •3.1.3 Специальные реляционные операторы
- •3.1.4 Зависимые реляционные операторы
- •3.1.5 Примитивные реляционные операторы
- •3.2 Реляционное исчисление
- •3.2.1 Целевой список и определяющее выражение
- •3.2.2 Квантор существования
- •3.2.3 Квантор всеобщности
- •3.3 Заключение
- •3.4 Вопросы на повторение
- •3.5 Упражнения и задачи
- •Глава 4 управление реляционной базой данных с помощью sql
- •4.1 Элементы Transact-sql
- •Комментарии
- •4.1.2 Алфавит
- •4.1.3 Идентификаторы
- •Выражения
- •4.1.5 Ключевые слова
- •Операторы
- •4.1.7 Логические операторы
- •Типы данных
- •- Функции Transact-sql
- •4.2 Выборка данных из таблиц
- •4.2.1 Структура команды select
- •Результаты выборки
- •Отбор столбцов
- •Select Фамилия, Город from Гостиница.Dbo.Клиент
- •4.2.4 Определение заголовков столбцов
- •Выражения в выборках
- •Отбор записей
- •Порядок вывода данных
- •Котов Кузьма Кузьмич
- •Группировка данных
- •Отбор данных для групп
- •4.2.10 Директива compute
- •Выборка данных из нескольких таблиц
- •Объединение с помощью предложения where
- •Внутреннее объединение
- •4.2.14 Объединение и опция join
- •Оператор union
- •Подзапросы и структурированные запросы
- •Создание таблицы на основе выборки
- •Предложение for browse
- •4.3 Модификация данных
- •Добавление данных
- •Изменение данных
- •Удаление строк
- •Управляющие конструкции
- •Создание таблиц базы данных
- •4.6 Транзакции и блокировки
- •4.6.1 Понятие транзакций и блокировок
- •Управление транзакциями
- •Явные транзакции
- •Автоматические транзакции
- •Неявные транзакции
- •Управление блокировками
- •4.7 Хранимые процедуры
- •4.7.1 Типы хранимых процедур
- •Создание хранимых процедур
- •4.8 Триггеры
- •Создание триггера
- •Ограничения при создании триггеров
- •Использование триггеров
- •Вопросы на повторение
- •4.10 Упражнения и задачи
- •4.11 Проекты и профессиональные вопросы
- •Заключение
- •Приложение а sql скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
Select Фамилия, Город from Гостиница.Dbo.Клиент
Здесь dbo – имя пользователя.
В результате на экран будет выведена информация в следующем виде:
Фамилия Город
-------------------- --------------------
Иванов Иваново
Попович Ковров
Сазонов Ставрово
Алексеев Алексеевка
Хазанов Казань
Владимиров Владимир
Котов Петушки
Сидоров Москва
Артемьев Москва
Соков Тверь
(10 row(s) affected)
4.2.4 Определение заголовков столбцов
По умолчанию заголовками столбцов в итоговой выборке являются их имена, которые присвоены им при создании таблицы. Эти заголовки программист может изменить следующими способами:
SELECT <Заголовок столбца> = <Имя столбца>
FROM <Имя таблицы>
или
SELECT <Имя столбца> [AS] <Заголовок столбца>
FROM <Имя таблицы>
В приведенном ниже примере продемонстрированы оба способа определения заголовков:
SELECT ФИО = RTRIM(Фамилия) + ' ' + RTRIM(Имя) + ' ' +
RTRIM(Отчество), Город [Населенный пункт]
FROM Гостиница.dbo.Клиент
Фрагмент выборки имеет следующий вид:
ФИО Населенный пункт
--------------------------------------------------
Иванов Иван Иванович Иваново
Попович Алексей Егорович Ковров
Сазонов Поликарп Сидорович Ставрово
Алексеев Алексей Алексеевич Алексеевка
Хазанов Аристарх Абдулаевич Казань
Владимиров Владислав Владимирович Владимир
Котов Кузьма Кузьмич Петушки
Сидоров Сидор Сидорович Москва
Артемьев Артем Павлович Москва
Соков Эммануил Андреевич Тверь
(10 row(s) affected)
Выражения в выборках
Ко всем числовым полям типа int, smallint, tinyint, float, real, monay и smallmonay можно применять арифметические операторы. При этом необходимо учитывать, что:
они могут выполнять вычисления с числовыми столбцами или числовыми константами;
остаток после деления целых чисел не может вычисляться для столбцов с типом данных float, real, monay и smallmonay.
Приведем примеры. Пусть в таблице ТИП_НОМЕРА хранится цена проживания в сутки без налога на добавленную стоимость (НДС). Определим цену с учетом НДС.
USE Гостиница
DECLARE @@nds monay
SET @@nds = 0.18
SELECT [Число мест]=Число_мест, Цена, НДС=Цена*@@nds,
[Цена с НДС]=Цена*@@nds
FROM Тип_номера
Результат выборки:
Число мест Цена НДС Цена с НДС
---------- --------------------- ----------------------- ------------------------
1 1200.0000 216.00000 1416.00000
2 600.0000 108.00000 708.00000
3 400.0000 72.00000 472.00000
(3 row(s) affected)
Определим количество номеров, имеющихся в гостинице. Очевидно, что это количество будет равно числу записей таблицы НОМЕР.
SELECT COUNT(*) AS [Число номеров в гостинице]
FROM Номер
Результат выборки:
Число номеров в гостинице
-------------------------
20
(1 row(s) affected)
Определим максимальную стоимость проживания в сутки.
SELECT [Максимальная стоимость] = MAX(Цена) * @@nds
FROM Тип_номера
Результат выборки:
Максимальная стоимость
------------------------
1416.00000
(1 row(s) affected)
