- •Содержание
- •Введение
- •1Лабораторная работа № 1 Создание концептуальной модели предметной области
- •1.5Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •2Лабораторная работа № 2 Создание и заполнение реляционной базы данных с помощью языка sql
- •2.1Цель лабораторной работы
- •2.2Задачи лабораторной работы
- •2.3Задание
- •2.4Методика выполнения задания
- •Этап 1. Создание структуры реляционной базы данных и ее модификация
- •Этап 2. Выполнение операций вставки, обновления и удаления данных
- •Этап 3. Выполнение операций выборки данных из одной таблицы
- •2.5Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •3.4Методика выполнения задания
- •Этап 1. Сортировка и встроенные функции
- •Этап 2. Вложенные запросы и операция соединения
- •Этап 3. Создание и обновление представлений
- •3.5Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •4Лабораторная работа № 4 Разработка триггеров и хранимых процедур
- •4.5Курсоры
- •4.6Хранимые процедуры
- •4.7Триггеры
- •4.8Методика выполнения задания
- •4.9Требования к оформлению и содержанию отчета
- •4.10 Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •Список литературы
- •Приложение 1 Варианты заданий для лабораторной работы № 1
- •1. Страховая компания
- •2. Гостиница
- •3. Ломбард
- •4. Реализация готовой продукции
- •5. Ведение заказов
- •6. Бюро по трудоустройству
- •7. Нотариальная контора
- •8. Химчистка
- •9. Курсы повышения квалификации
- •10. Сдача в аренду торговых площадей
- •11. Распределение учебной нагрузки
- •12. Распределение дополнительных обязанностей
- •13. Техническое обслуживание станков
- •14. Туристическая фирма
- •15. Грузовые перевозки
- •Приложение 2 Построение концептуальной модели предметной области в пакете AllFusion eRwin Data Modeler Введение
- •5Описание интерфейса
- •6Создание логической модели данных
- •6.1Сущности и атрибуты
- •6.2Связи
- •6.3Ключи
- •1. Табельный номер,
- •7Создание физической модели данных
- •7.1Выбор сервера
- •7.2Таблицы и колонки
- •Приложение 3. Примеры кода на языке sql
- •Операторы ddl (Data Definition Language)
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Выборка данных – select
- •Внешние соединения
- •Представления
Выборка данных – select
SELECT (имена столбцов или *)
FROM (имена таблиц, разделенные запятыми, если таблиц больше, чем одна)
WHERE (условия)
Листинг 15. Чтение заданных столбцов из одиночной таблицы SELECT Название, Отдел, МаксТрудозатраты FROM ПРОЕКТ; |
Листинг 16. Удаление одинаковых строк – DISTINCT
SELECT DISTINCT Отдел FROM ПРОЕКТ;
|
Листинг 17. Чтение заданных строк из одиночной таблицы SELECT ИдПроекта, Название, Отдел, МаксТрудозатраты FROM ПРОЕКТ WHERE Отдел = 'Финансы'; |
Листинг 18
SELECT * FROM ПРОЕКТ WHERE Отдел = 'Финансы' AND МаксТрудозатраты > 100;
|
Листинг 19 SELECT Имя, Телефон, Отдел FROM СОТРУДНИК WHERE Отдел IN ('Бухгалтерия', 'Финансы', 'Маркетинг');
|
|
Диапазоны, специальные символы и пустые значения в предложениях WHERE |
|
Листинг 20 SELECT Имя, Отдел FROM СОТРУДНИК WHERE ТабельныйНомер BETWEEN 200 AND 500;
|
Листинг 21 SELECT * FROM ПРОЕКТ WHERE Имя LIKE 'KB_ Анализ портфеля';
|
Листинг 22 SELECT * FROM СОТРУДНИК WHERE Телефон LIKE '285-____';
|
Листинг 23 SELECT * FROM СОТРУДНИК WHERE Телефон LIKE '285%'; |
Листинг 24 SELECT Имя, Отдел FROM СОТРУДНИК WHERE Телефон IS NULL; |
|
Сортировка результатов |
Листинг 25 SELECT Имя, Отдел FROM СОТРУДНИК ORDER BY Отдел DESC, Имя ASC; |
Встроенные функции SQL |
|
Cледующий оператор недопустим: Листинг 26 SELECT Название, SUM(МакТрудозатраты) FROM ПРОЕКТ WHERE ИдПроекта<1500;
|
Зато допустим оператор:
Листинг 27 SELECT Отдел, COUNT(*) FROM СОТРУДНИК GROUP BY Отдел;
|
Листинг 28 SELECT Отдел, COUNT(*) FROM СОТРУДНИК GROUP BY Отдел HAVING COUNT(*) > 1;
|
Листинг 29 SELECT Отдел, COUNT(*) FROM СОТРУДНИК WHERE ТабельныйНомер < 600 GROUP BY Отдел HAVING COUNT(*) > 1; |
Листинг 30:
SELECT Имя, ФактТрудозатраты
FROM СОТРУДНИК, НАЗНАЧЕНИЕ
WHERE ТабельныйНомер = НомерСотрудника;
Листинг 31. Соединить информацию о проектах и назначениях.
SELECT Название, ФактТрудозатраты
FROM ПРОЕКТ, НАЗНАЧЕНИЕ
WHERE ПРОЕКТ.ИдПроекта = НАЗНАЧЕНИЕ.ИдПроекта;
Листинг 32. Альтернативный синтаксис соединения JOIN … ON
SELECT Имя, ФактТрудозатраты
FROM СОТРУДНИК JOIN НАЗНАЧЕНИЕ
ON СОТРУДНИК.ТабельныйНомер = НАЗНАЧЕНИЕ.НомерСотрудника;
