46897 (607981), страница 3
Текст из файла (страница 3)
SELECT …
Здесь параметры TableName и columnList имеют тот же формат и смысл, что и при вставке в таблицу одной строки. Конструкция SELECT может представлять собой любой допустимый оператор SELECT. Строки, вставляемые в указанную таблицу, в точности соответствуют строкам результирующей таблицы, созданной при выполнении вложенного запроса. Все ограничения, указанные выше для первой формы оператора INSERT, применимы и в этом случае.
Оператор UPDATE позволяет изменять содержимое уже существующих строк указанной таблицы. Этот оператор имеет следующий формат:
UPDATE TableName
SET columnName1= dataValue1 [,columnName2= dataValue2…]
[WHERE searchCondition]
Здесь параметр TableName представляет либо имя таблицы базы данных, либо имя обновляемого представления. В конструкции SET указываются имена одного или более столбцов, данные в которых необходимо изменить. Конструкция WHERE является необязательной. Если она опущена, значения указанных столбцов будут изменены во всех строках таблицы. Если конструкция WHERE присутствует, то обновлены будут только те строки, которые удовлетворяют условию поиска, заданному в параметре searchCondition. Параметры dataValue1, dataValue2... представляют новые значения соответствующих столбцов и должны быть совместимы с ними по типу данных.
Оператор DELETE позволяет удалять строки данных из указанной таблицы. Этот оператор имеет следующий формат:
DELETE FROM TableName
[WHERE searchCondition]
Как и в случае операторов INSERT и UPDATE, параметр TableName может представлять собой либо имя таблицы базы данных, либо имя обновляемого представления. Параметр searchCondition является необязательным - если он опущен, из таблицы будут удалены все существующие в ней строки. Однако сама по себе таблица удалена не будет. Если необходимо удалить не только содержимое таблицы, но и ее определение, следует использовать оператор DROP TABLE. Если конструкция WHERE присутствует, из таблицы будут удалены только те строки, которые удовлетворяют условию отбора, заданному параметром searchCondition
В данном курсовом проекте для удобства доступа к данным также созданы запросы:
Запрос на баланс:
SELECT shelfs. quantity-selling. quantity AS quantity
FROM shelfs INNER JOIN selling ON shelfs. ID_shelf=selling. ID_shelf
WHERE selling. ID_selling = (SELECT MAX (ID_selling) FROM selling);
Запрос на Города с покупателями:
SELECT cities. cityName AS Город, COUNT (ID_client) AS [Количество клиентов]
FROM clients INNER JOIN cities ON clients. clientCity=cities. ID_city
GROUP BY clients. ID_client, cities. cityName;
Запрос на города с поставщиками:
SELECT cities. cityName AS Город, COUNT (ID_diler) AS [Количество поставщиков]
FROM dilers INNER JOIN cities ON dilers. dilerCity=cities. ID_city
GROUP BY dilers. ID_diler, cities. cityName;
Запрос на дату покупки товара:
SELECT ID_shelf AS Стеллаж, products. name AS Товар, shelfs. quantity AS Количество, shelfs. price AS Стоимость, shelfs. date AS [Дата покупки]
FROM shelfs INNER JOIN products ON products. ID_product=shelfs. ID_product;
Запрос на клиентов без покупки:
SELECT clients. clientName AS [Покупатели, не совершавшие покупки]
FROM clients
WHERE ID_client NOT IN (SELECT DISTINCT ID_client FROM Selling)
ORDER BY clientName;
Запрос на отчет по покупкам:
SELECT dilers. dilerName AS Поставщик, products. name AS Товар, buying. quantity AS [Количество товара], buying. sum*buying. quantity AS [Сумма сделки], buying. date AS [Дата сделки]
FROM (buying INNER JOIN dilers ON buying. ID_diler=dilers. ID_diler) INNER JOIN products ON buying. ID_product=products. ID_product;
Запрос на отчет по продажам:
SELECT clients. clientName AS Клиент, products. name AS Товар, selling. quantity AS [Количество товара], selling. sum*selling. quantity AS [Сумма сделки], selling. date AS [Дата сделки]
FROM ( (selling INNER JOIN clients ON selling. ID_client=clients. ID_client) INNER JOIN shelfs ON shelfs. ID_shelf=selling. ID_shelf) INNER JOIN products ON shelfs. ID_product=products. ID_product;
Запрос на поставщиков и закупки:
SELECT dilers. dilerName AS Поставщик, COUNT (ID_buying) AS [Количество сделок], SUM (buying. quantity*buying. sum) AS [Сумма всех сделок]
FROM dilers INNER JOIN buying ON dilers. ID_diler=buying. ID_diler
GROUP BY dilers. ID_diler, dilers. dilerName;
Запрос на поставщиков без поставок:
SELECT dilers. dilerName AS [Поставщики, не совершавшие поставок]
FROM dilers
WHERE ID_diler NOT IN (SELECT DISTINCT ID_diler FROM buying)
ORDER BY dilerName;
Запрос на продажи с клиентами:
SELECT clients. clientName AS Покупатель, COUNT (ID_selling) AS [Количество сделок], SUM (selling. quantity*selling. sum) AS [Сумма всех сделок]
FROM clients INNER JOIN selling ON clients. ID_client=selling. ID_client
GROUP BY clients. ID_client, clients. clientName;
Запрос на стоимость товаров на складе:
SELECT SUM (price*quantity) AS [Стоимость всех товаров на складе]
FROM shelfs;
Запрос на вставку обновлений продажи:
INSERT INTO selling (ID_client, ID_shelf, quantity, [sum])
SELECT ID_client, (SELECT ID_shelf FROM shelfs WHERE ID_shelf= (SELECT MAX (ID_shelf) FROM shelfs)), quantity, sum
FROM selling
WHERE ID_selling = (SELECT MAX (ID_selling) FROM selling);
Запрос на обновление товара (добавление):
INSERT INTO shelfs (ID_product, price, quantity)
SELECT ID_product, price, (SELECT shelfs. quantity-selling. quantity AS quantity FROM shelfs INNER JOIN selling ON shelfs. ID_shelf=selling. ID_shelf WHERE selling. ID_selling = (SELECT MAX (ID_selling) FROM selling))
FROM shelfs
WHERE ID_shelf = (SELECT ID_shelf FROM selling WHERE ID_selling = (SELECT MAX (ID_selling) FROM selling));
Запрос на обновление товара (удаление):
DELETE *
FROM shelfs
WHERE ID_shelf = (SELECT ID_shelf FROM selling WHERE ID_selling = (SELECT MAX (ID_selling) FROM selling));
Запрос на откат продажи:
DELETE *
FROM selling
WHERE ID_selling = (SELECT MAX (ID_selling) FROM selling);
Запрос на покупку товара:
INSERT INTO shelfs (ID_product, quantity, price)
SELECT ID_product, quantity, sum
FROM buying
WHERE ID_buying =
(SELECT MAX (ID_buying) FROM buying);
Запрос на удаление товара:
DELETE *
FROM shelfs
WHERE ID_shelf = (SELECT ID_shelf FROM selling WHERE ID_selling = (SELECT MAX (ID_selling) FROM selling));
Запрос на удаление старой продажи:
DELETE *
FROM selling
WHERE ID_selling = (SELECT MAX (ID_selling) - 1 FROM selling);
Почти все эти запросы можно увидеть на главной форме в виде таблиц при нажатии кнопки.
6. Инструкция администратору, инструкция пользователю
6.1 Инструкция администратору
Работать с нашей базой данных достаточно легко, зная основные свойства пакета Microsoft Office Access. Запуская наш курсовой проект, мы видим главную форму, на которой расположены различные кнопки, отвечающие за функции, указанные на них. Таким образом, можно достаточно легко работать с таблицами, отчетами и т.д. Если же необходимо что-то изменить в корне таблиц, то открываем их с помощью конструктора. Также в этом режиме можно создавать новые таблицы. При этом указываем имя поля, тип данных, и устанавливаем ключевой атрибут. Чтоб внести какие-либо данные в новую таблицу, необходимо открыть ее уже в режиме таблицы и заносить данные. Затем таблицу сохраняют, после чего успешно можно выполнять работу. Можно создавать также запросы, формы, отчеты, макросы для удобства работы с базой данных. Это все объекты базы данных, которыми можно с легкостью манипулировать. Желательно, чтоб в главной форме были кнопки всех таблиц, чтоб был кратчайший доступ к ним, но также, чтоб эти таблицы были в виде формы, чтоб можно было, используя кнопки, добавлять запись или удалять ее, что предусмотрено в курсовом проекте. Чтоб создать кнопку на форме, мы выбираем ее, отме6чаем на форме и назначаем в процессе ей какие-то функции. Запросы же пишем с помощью SQL.
6.2 Инструкция пользователю
Наша база данных создана так, что она с легкостью доступна не только программисту или человеку, который хорошо разбирается в компьютерах, а и простому пользователю. Дважды нажимаем на базу данных и видим главную форму, на которой расположено множество кнопочек, отвечающих за функции, указанные на них. Слева на форме указаны кнопки, отвечающие за таблицы. При нажатии на них у нас выпадают таблички, где можно добавлять или удалять компоненты, что также делается с помощью кнопок. Также мы можем увидеть на главной форме запросы на кнопках, также нажимаем их, где в следствии видим объединенные некоторые таблицы. Ниже можно открыть отчеты о покупках и продажах, что является очень удобным при работе. Справа внизу расположены кнопочки о программе, где можно посмотреть, кто создал программу, а также кнопки печати отчетов, что является простым в печатании отчетов на бумаге. Если необходимо просмотреть таблицы не в главной форме, а просто так, внести какие-то изменения, то открываем их в режиме таблиц в базе данных и изменяем то, что требуется. Итак, этим можно сказать, что с помощью этого курсового проекта можно элементарно просмотреть все данные, с легкостью проделать отчеты о выполненной работе, вносить изменения и делать корректировку данных.
Заключение
Проделав работу по созданию базы данных, можно подвести итог, что данная область IT - индустрии просто незаменима в создании серьезных проектов в любой сфере деятельности современных предприятий, фирм, заводов. Владея таким мощным средством как проектирование баз данных, языком запросов SQL, можно создавать гибкие, а самое главное, надежные информационные системы.
При проектировании информационных систем использование реляционной модели базы данных является самым подходящим методом. Нормализация отношений разработанной базы данных позволила устранить ошибки внесения, удаления, обновления, дублирования данных, что особенно важно при работе с базой данных пользователей непрофессионалов.
В ходе данной курсовой работы была разработана автоматизированная информационно-справочная система хранения и обработки информации оптового склада, которая способствует быстрому поиску необходимых данных при минимальных затратах времени.
Практическая реализация информационной системы, в основе которой лежит проектирование предметной области "Оптовый склад", и логической схемы БД, являющейся информационным ресурсом разрабатываемой системы, была выполнена с использованием СУБД Access, однако ее разработку можно было реализовать в любом другом коммерческом пакете реляционного типа. Разработанная база данных является законченным программным продуктом для поддержания информационных потребностей, и может быть легко расширена при изменении информационных потребностей пользователя без потери ранее занесенной информации.
Список использованных источников
1. Вейкас Д. Эффективная работа с Microsoft Access 2/ Перев. с англ. - СПб.: Питер, 1995. - 864 с.: ил.
2. Базы данных: модели, разработка, реализация/ Т.С. Карпова - СПб.: Питер, 2001. - 304 с.: ил.
3. Манфред Хоффбауер, Кристоф Шпильман Access: сотни полезных рецептов: пер. с нем. - К.: BHV, 1997 - 400 с
















