- •Введение
- •Глава 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 скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
4.2 Выборка данных из таблиц
4.2.1 Структура команды select
Одной из важнейших задач, решаемых в приложениях, является выборка необходимых данных из таблиц. Чем лучше разработчики ее организуют, тем более удобной и привлекательной для конечных пользователей будет программа. Поскольку выборка данных в SQL осуществляется с помощью команды SELECT, то, без сомнения, именно она является главной командой любого диалекта SQL. Ниже приводится синтаксис команды SELECT, который включает в себя все ключевые слова и фразы.
SELECT [ALL | DISTINCT] <Список столбцов в результате>
[INTO [<Имя создаваемой таблицы>]]
[FROM {<Имя таблицы 1> | <Имя представления 1>}
[<Подсказка оптимизатору>]]
…
[{<Имя таблицы 16> | <Имя представления 16>}
[<Подсказка оптимизатору>]]
[WHERE <Выражение>]
[GROUP BY < Выражение >]
[HAVING < Выражение >]
[ORDER BY < Выражение > [ASC | DESC]]
[COMPUTE <Опция>]
[FOR BROWSE]
В приведенном выше описании команды SELECT квадратные скобки говорят о том, что выражение, заключенное в них, не является обязательным. Вертикальная черта, разделяющая два выражения, указывает на то, что в команде можно использовать любое из них.
В тех случаях, когда база данных не является текущей и в информационной системе установлено несколько серверов баз данных, при выборке имя столбца необходимо будет указывать с полным адресом, например:
<Имя сервера>.<Имя базы данных>.<Владелец>.<Имя таблицы>.<Имя столбца>.
Установить текущую базу данных можно командой
USE <Имя базы данных>
Далее рассмотрение команды SELECT будет продолжено с использованием базы данных ГОСТИНИЦА. В базу данных входят ЧЕТЫРЕ таблицы, структуры которых приведены ниже:
Рисунок 4.1 - Структура таблицы КЛИЕНТ.
Рисунок 4.2 - Структура таблицы ПРОЖИВАЕТ.
Рисунок 4.3 - Структура таблицы НОМЕР.
Рисунок 4.4 - Структура таблицы ТИП_НОМЕРА.
Результаты выборки
Первое предложение запроса, создаваемого с помощью команды SELECT, является обязательным. Оно может включать в себя список столбцов, а также выражения – константы и функции либо их комбинации, создаваемые с помощью арифметических операторов и скобок. Примеры выражений:
Price * 1.2
Count(*)
Sum(price*quantity)
Каждый элемент списка выборки должен отделяться от следующего запятой.
Отбор столбцов
Если необходимо просто вывести информацию из всех столбцов таблицы, можно использовать звездочку. В этом случае поля на экран будут выводиться в порядке, который был определен при создании таблицы. Например, следующая команда выводит на экран все записи из таблицы КЛИЕНТ:
SELECT * FROM Клиент
Следует отметить, что команды в Transact-SQL могут записываться как в одной строке, так и в нескольких строках.
Если из таблицы КЛИЕНТ необходимо выбрать не все поля, а только названия клиентов и города, то команда должна быть написана так:
SELECT Фамилия, Город FROM Клиент
Если после выполнения этой команды получено сообщение об ошибке:
Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'Клиент',
то в команде необходимо указать полное имя таблицы.
