- •6.3. Теоретическое введение
- •6.4. Пример выполнения работы
- •6.5. Варианты заданий
- •Лабораторная работа 7. Работа с базой данных в режиме sql.
- •7.1. Цель работы
- •7.2. Практическое задание
- •7.3. Теоретическое введение
- •7.4. Пример выполнения работы
- •7.5. Варианты заданий
- •Приложения. Библиотечные функции языка Си
- •Словарь англоязычных терминов
- •Литература
- •Карпухина н.В., Светозарова г.И. Информатика. Основы алгоритмизации и программирования. Учебное пособие. - Москва: 2005. - 17с. Сайт http://www.Iqlib.Ru
7.4. Пример выполнения работы
В качестве примера рассмотрим отношение, соответствующее варианту:
Информация банка:
ф.и.о. вкладчика; адрес; сумма вклада; вид вклада.
Присвоим имя таблице - «Вкладчики» и определим имена атрибутов и их типы.
ФИО_вкладчика - CHAR(20)
Адрес - CHAR(30)
Сумма_вклада – FLOAT
Вид_вклада - CHAR(20)
Используя какую-либо SQL - среду (например, pgAdmin), откроем файл БД.
Таблицу можно создать при помощи запроса и его выполнения или с помощью меню Таблицы Новый.
Например, создадим запрос на создание таблицы «Вкладчики»:
Выбрать: Запросы Новый;
В открывшемся построителе запросов ввести имя запроса (например, zap_create)
В нижнем окне набрать текст запроса:
CREATE TABLE Вкладчики (ФИО_вкладчика CHAR(20) NOT NULL, Адрес CHAR(30), Сумма_вклада FLOAT CHECK (Сумма_вклада>0), Вид_вклада CHAR(20));
Выбрать вкладку Выполнить запрос;
Сохранить определение запроса;
В результате выполнения запроса появится таблица Вкладчики.
Внесение данных в таблицы возможно с помощью меню Таблицы Указать таблицу Открыть.
Введем несколько записей:
ФИО_вкладчика |
Адрес |
Сумма_вклада |
Вид_вклада |
Иванов |
Жукова 34/45 |
10000 |
обычный |
Петров |
Конева 67/89 |
65000 |
срочный |
Михайлов |
Жукова 87/45 |
160000 |
зарплатный |
Быков |
Лесной 32/201 |
30000 |
срочный |
Сидоров |
Конева 85/43 |
14000 |
зарплатный |
Выполним запрос на добавление данных.
INSERT INTO “Вкладчики” VALUES (‘Быков’, ‘Лесной 32/201’, 2000, ‘до востребования’);
Далее следует открыть таблицу “Вкладчики” и проверить корректность добавления записи.
Выполним запрос на удаление данных.
1)Удалить из базы данных всю информацию по данному вкладчику банка.
Выберем: Запросы Новый;
В открывшемся построителе запросов введем имя запроса (например, zap_delete)
В нижнем окне введем текст запроса:
DELETE FROM “Вкладчики” WHERE “ФИО_вкладчика”=’Иванов’;
Выберем вкладку Выполнить запрос;
Сохраним определение запроса;
Аналогично выполним запросы на обновление данных.
2)Изменить для данного вкладчика вид вклада.
UPDATE “Вкладчики” SET “Вид_вклада”=’срочный’ WHERE “ФИО_вкладчика”=’Иванов’;
3)Изменить адрес проживания данного вкладчика.
UPDATE “Вкладчики” SET Адрес=’Юбилейный 67/89’ WHERE “ФИО_вкладчика”=’Петров’;
Аналогично выполним запрос на создание новой таблицы на основе отбора записей из имеющейся таблицы
4)Создать новую таблицу, в которую занести всю информацию о клиентах банка, имеющих данный вид вклада.
CREATE TABLE “Вклад_срочный” AS SELECT “ФИО_вкладчика”, “Адрес”, “Сумма_вклада” FROM “Вкладчики” WHERE “Вид_вклада”=’срочный’;
Выполним запросы на выборку данных.
1) Выбрать все сведения о вкладчике по требуемым фамилии и инициалам.
SELECT Вкладчики.* FROM Вкладчики WHERE “ФИО_вкладчика”=’Петров’;
2) Выбрать фамилии и инициалы вкладчиков, у которых сумма вклада превышает 100 тыс. руб.
SELECT “ФИО_вкладчика” FROM “Вкладчики” WHERE “Сумма_вклада”>100000;
3) Выбрать все сведения о вкладчиках, проживающих в указанном микрорайоне.
SELECT Вкладчики.* FROM Вкладчики WHERE Дом_адрес Like ‘Жукова*’;
4)Выбрать все сведения о вкладчиках, имеющих по данному виду вклада сумму, входящую в указанный диапазон.
SELECT Вкладчики.* FROM Вкладчики WHERE “Вид_вклада”=’срочный’ AND “Сумма_вклада”>20000 AND “Сумма_вклада”<100000;
5) Выбрать фамилии и.о. вкладчиков, имеющих следующие виды вклада: "срочный", "до востребования".
SELECT “ФИО_вкладчика” FROM “Вкладчики” WHERE “Вид_вклада”=’срочный’ OR “Вид_вклада”=’до востребования’;
Выполним запросы на выборку данных с использованием агрегатных функций.
1)Определить количество видов вклада, сделанных данным вкладчиком.
SELECT Count(Вкладчики.Вид_вклада) FROM Вкладчики
GROUP BY Вкладчики.ФИО_вкладчика HAVING Вкладчики.ФИО_вкладчика=’Иванов’;
2) Определить фамилию, имя и отчество вкладчика, имеющего наибольшую сумму вклада.
SELECT ФИО_вкладчика, Сумма_вклада FROM Вкладчики WHERE Вкладчики.Сумма_вклада =( SELECT Max(Сумма_вклада) FROM Вкладчики);
3)Определить фамилию, имя и отчество вкладчика, имеющего наименьшую сумму вклада.
SELECT ФИО_вкладчика, Сумма_вклада FROM Вкладчики WHERE Вкладчики.Сумма_вклада = ( SELECT Min(Сумма_вклада) FROM Вкладчики);
4) Определить общую сумму денег, содержащихся в банке по вкладам.
SELECT Sum(Вкладчики.Сумма_вклада) AS Общая_Сумма_вкладов FROM Вкладчики;
Выполним подзапрос на выборку данных.
1)Выбрать ФИО вкладчиков, их адреса и виды вкладов, которые имеют такой же вид вклада, что и указанный вкладчик.
SELECT ФИО_вкладчика, Адрес, Вид_вклада FROM Вкладчики WHERE Вид_вклада IN (SELECT Вид_вклада FROM Вкладчики WHERE ФИО_вкладчика=’Иванов’);
Выполним запрос на создание представления.
1)Создать представление, содержащее: ФИО вкладчиков, их адреса и суммы вкладов, превышающих заданное значение.
CREATE VIEW “Вкладчики_пред” AS SELECT ФИО_вкладчика, Адрес, Сумма_вклада FROM “Вкладчики ” WHERE Сумма_вклада >50000;
