- •Введение
- •1.5. Задание
- •1.6. Ход работы
- •1.6.1. Создание базы данных
- •1.6.2. Регистрация базы данных
- •1.6.3. Подключение к базе данных
- •1.6.4. Удаление базы данных
- •1.6.5. Извлечение метаданных
- •1.6.6. Резервное копирование и восстановление
- •1.7. Отчет о выполнении работы
- •1.8. Контрольные вопросы
- •2.4.2. Домены (Domains)
- •2.5. Задание
- •2.6. Ход работы
- •2.7. Отчет о выполнении работы
- •2.8. Контрольные вопросы
- •3.4.2. Индексы
- •3.5. Задание
- •3.6. Ход работы
- •3.7. Отчет о выполнении работы
- •3.8. Контрольные вопросы
- •4.4.1. Ограничение первичного ключа (Primary key)
- •4.4.2. Ограничения уникальности (Unique)
- •4.4.3. Ограничения внешнего ключа (Foreign keys)
- •4.4.4. Контрольные ограничения (Checks)
- •4.5. Задание
- •4.6. Ход работы
- •4.7. Отчет о выполнении работы
- •4.8. Контрольные вопросы
- •5.4.2. Бизнес-правила
- •5.4.3. Триггеры (Triggers)
- •5.4.4. Исключения (Exceptions) и обработка ошибок
- •5.6. Ход работы
- •5.7. Отчет о выполнении работы
- •5.8. Контрольные вопросы
- •6.4.2. Удаление существующих данных
- •6.4.3. Обновление существующих данных
- •6.5. Задание
- •6.6. Ход работы
- •6.7. Отчет о выполнении работы
- •6.8. Контрольные вопросы
- •7.5. Задание
- •7.6. Ход работы
- •7.7. Отчет о выполнении работы
- •7.8. Контрольные вопросы
- •8.4.2. Модифицируемые представления
- •8.5. Задание
- •8.6. Ход работы
- •8.7. Отчет о выполнении работы
- •8.8. Контрольные вопросы
- •9.4.2. Виды хранимых процедур в InterBase
- •Returns (
- •9.5. Задание
- •9.6. Ход работы
- •9.7. Отчет о выполнении работы
- •9.8. Контрольные вопросы
- •10.4.2. Создание динамической библиотеки с udf
- •Exports
- •Interface
- •10.4.4. Использование udf в базе данных
- •10.5. Задание
- •10.6. Ход работы
- •10.8. Контрольные вопросы
- •11.4.4. Права
-
6.6. Ход работы
Для заполнения созданной базы данных тестовой информацией в диалоговом режиме программы "IB Expert" необходимо выполнить следующие действия:
-
1. Подключиться к базе данных.
-
2. Открыть окно с таблицей, в которую будет заноситься информация.
-
3. Перейти на вкладку "Data" (рис. 22). На этой вкладке располагается сетка со строками и столбцами.
Рис. 22. Окно ввода данных в таблицу
При вводе полей есть возможность использования различных диалогов, таких как календарь, калькулятор или окно ввода поля внешнего ключа.
-
4. Ввести данные, используя для добавления строки клавишу [Insert] или кнопку, а для удаления строки – клавиши [Ctrl+Delete] или кнопку .
-
5. После ввода данных для сохранения их в базе данных необходимо зафиксировать изменения кнопкой [Commit Transaction] (Ctrl+Alt+C). Чтобы отменить сделанные изменения, можно воспользоваться кнопкой [Rollback Transaction] (Ctrl+Alt+R).
-
6.7. Отчет о выполнении работы
Отчет о выполнении лабораторной работы №6 необходимо оформить на листах формата A4.
Отчет должен содержать описание и результаты работы, представляемые в следующей последовательности:
-
1. Распечатка сценария создания базы данных с комментариями, которые должны содержать сведения об авторе, дате создания, всех выполняемых действиях и пояснения к введенным вручную операторам изменения данных.
-
2. Сведения о количестве введенных в каждую таблицу тестовых данных.
-
3. Перечень файлов, полученных при выполнении лабораторной работы с указанием их имен, места расположения, даты изменения и размеров (сценарий, база данных, резервная копия базы данных, файл с отчетом).
-
6.8. Контрольные вопросы
-
1. Что такое DML?
-
2. Какие бывают разновидности оператора вставки новых данных?
-
3. Как удалить из таблицы сразу все строки?
-
4. Как удалить из таблицы только некоторые строки?
-
5. Как изменить все строки таблицы?
-
6. Как изменить только некоторые строки?
-
7. Написать синтаксис оператора вставки данных.
-
8. Написать синтаксис оператора удаления данных.
-
9. Написать синтаксис оператора обновления данных.
-
10. Привести примеры операторов INSERT, DELETE, UPDATE.
-
11. Как добавить данные в несколько таблиц?
-
12. Как удалить данные из нескольких таблиц?
-
13. Как изменить данные в нескольких таблицах?
-
14. Как запретить уменьшать значение какого-либо поля, но разрешить его увеличивать?
-
15. Как разрешить вносить изменения в базу данных только в определенные дни недели?
-
16. Как разрешить вносить изменения только определенным пользователям?
-
-
-
7. Лабораторная работа №7.
-
Выборка данных
-
7.1. Цель работы
Изучить используемый в реляционных СУБД оператор извлечения данных из таблиц. Получить навыки работы с оператором SELECT в про-грамме "IB Expert".
Время выполнения: 6 часа.
7.2. Исходные данные
Исходными данными является индивидуальное задание и результат предыдущих лабораторных работ.
7.3. Используемые программы
Программы "IB Expert" и "Microsoft Word".
7.4. Теоретические сведения
Ниже приведен почти полный синтаксис оператора SELECT.
-
SELECT [DISTINCT | ALL] {* | <величина> [, <величина> ...]}
-
[INTO :Переменная [, :Переменная ...]]
-
FROM <tableref> [, <tableref> ...]
-
[WHERE <условие поиска>]
-
[GROUP BY Колонка [, Колонка ...]]
-
[HAVING <условие поиска>]
-
[UNION [ALL] <select_expr>]
-
[ORDER BY <список сортировки>];
-
<величина> = {Колонка | :Переменная | <константа>
-
| <выражение> | <функция>
-
| udf ([<величина> [, <величина> ...]])
-
| NULL | USER} [AS Псевдоним]
-
<константа> = Число | 'Строка'
-
<выражение> = SQL выражение, возвращающее единичное значение <функция> =
-
COUNT (* | [ALL] <величина> | DISTINCT <величина>)
-
| SUM ([ALL] <величина> | DISTINCT <величина>)
-
| AVG ([ALL] <величина> | DISTINCT <величина>)
-
| MAX ([ALL] <величина> | DISTINCT <величина>)
-
| MIN ([ALL] <величина> | DISTINCT <величина>)
-
| CAST(<величина> AS <тип данных>)
-
| UPPER(<величина>)
-
| GEN_ID(Имя_Генератора, <величина>)
-
<tableref> = {<joined_table> | table | view
-
| procedure[(<величина> [, <величина> ...])]}
-
[Псевдоним]
-
<joined_table> = <tableref> <join_type> JOIN <tableref> ON <условие поиска> | (<joined_table>) <join_type> = [INNER] | {LEFT | RIGHT | FULL } [OUTER]
<условие поиска> = <величина> <оператор сравнения> {<величина> | (<select_one>)}
| <величина> [NOT] BETWEEN <величина> AND <величина>
| <величина> [NOT] LIKE <величина> | <величина> [NOT] IN (<величина> [, <величина> ...] | <select_list>)
|<величина> IS [NOT] NULL | <величина> {>= | <=} <величина> | <величина> [NOT] {= | < | >} <величина> |
{ALL | SOME | ANY} (<select_list>)
| EXISTS (<select_expr>)
| SINGULAR (<select_expr>) | <величина> [NOT] CONTAINING <величина>
| <величина> [NOT] STARTING [WITH] <величина>
| (<условие поиска>) | NOT <условие поиска>
| <условие поиска> OR <условие поиска>
| <условие поиска> AND <условие поиска> <оператор сравнения> = {= | < | > | <= | >= | !< | !> | <> | !=}
<select_one> = оператор SELECT, выбирающий одну колонку и возвращающий ровно одно значение
<select_list> = оператор SELECT, выбирающий одну колонку, возвращающий ноль или много значений
<select_expr> = оператор SELECT, выбирающий несколько величин и возвращающий ноль или много значений <список сортировки> = {Колонка | Номер} [ASC | DESC] [, <список сортировки> ...]
Некоторые параметры, входящие в этот оператор, описаны в табл. 4.
Описание параметров оператора SELECT
Как видно из синтаксиса оператора SELECT, обязательными являются только предложение SELECT с перечнем выдаваемых колонок и предложе-ние FROM.
Пример простейшего оператора SELECT:
-- Выдать перечень всех служащих: SELECT * FROM Employee;
Ниже приведено несколько упрощенных вариантов синтаксиса опера-тора SELECT, помогающих научиться составлять простые запросы.
Упрощенный синтаксис внутреннего соединения (стандарт SQL-92):
SELECT Колонка [, Колонка ...] | * FROM <tableref_left> [INNER] JOIN <tableref_right> [ON <условие поиска>] [WHERE <условие поиска>];
Упрощенный синтаксис внешнего соединения:
SELECT Колонка [, Колонка ...] | * FROM <tableref_left> {LEFT | RIGHT | FULL} [OUTER] JOIN <tableref_right> [ON <условие поиска>] [WHERE <условие поиска>];
Упрощенный синтаксис использования подзапроса:
SELECT [DISTINCT] Колонка [, Колонка ...] FROM <tableref> [, <tableref> ...] WHERE {expression {[NOT] IN | <оператор сравнения>} | [NOT] EXISTS } (SELECT [DISTINCT] Колонка [, Колонка ...] FROM <tableref> [, <tableref> ...] WHERE <условие поиска> );