Автор: Пользователь скрыл имя, 02 Июня 2013 в 14:23, лабораторная работа
Пакет Oracle Database 10g Express Edition (Oracle Database XE) является свободно распространяемой версией СУБД Oracle. Работа с СУБД выполняется с помощью интуитивно понятного WEB-интерфейса браузера. С помощью этого интерфейса можно выполнять все основные операции по созданию таблиц баз данных, установлению связей между таблицами, вводу данных, созданию запросов, отчетов, администрированию пользователей.
Рассмотрим основные правила работы с этим пакетом.
В результате в таблице Детали заказов (TABLE_ Detali_zakazov) будут заполнены следующие поля:
и т.д., в зависимости от количества введенных данных.
Все поля таблицы Заказы (TABLE_ZAKAZ) будут заполнены.
Примечание. При повторном запуске программы, она добавляет новые данные к уже существующим данным в таблице заказов. Если необходимо заново сформировать таблицу заказов, то необходимо сначала удалить из нее все записи с помощью запроса на удаление (См. ниже).
Для этого необходимо выполнить следующий запрос.
UPDATE TABLE_Detali_zakazov INNER JOIN Tovary ON TABLE_Detali_
zakazov.ID_tovara=Tovary.ID_
В окне построителя выражение будет выглядеть следующим образом:
TABLE_Detali_zakazov!Cena_za_
UPDATE TABLE_Detali_zakazov SET TABLE_Detali_zakazov.Vsego_
Примечание: Для переключения в режим SQL надо открыть запрос в конструкторе, потом нажать кнопку меню Вид\SQL.
В результате этого запроса будет вычислено и заполнено данными поле Vsego_cena.
Для этого открыть форму в режиме Конструктора, добавить из панели элементов кнопку, она будет иметь имя Кнопка1, в окне редактора Visual Basic набрать следующую программу:
Листинг программы для кнопки Расчет скидки, для таблицы (TABLE_Detali_zakazov):
' Программа 2.
Private Sub Кнопка1_Click()
Dim dbs As Database, r1 As Recordset, r2 As Recordset
Dim Skidki(2, 10) As Integer
Set dbs = CurrentDb
Set r1 = dbs.OpenRecordset("TABLE_
Set r2 = dbs.OpenRecordset("Table_
n = r2.RecordCount 'Количество строк в таблице Скидки
'nzz = InputBox("n=" + Str(n))
r2.MoveFirst
k = 1
While k <= n
Skidki(1, k) = r2!kolich_tovara
Skidki(2, k) = r2!Skidka_v_procent
If k < n Then r2.MoveNext
k = k + 1
Wend
Skidki(1, k) = 1000
'предельное значение для кол.
r1.MoveFirst
Do While Not r1.EOF ' Цикл по табл.Заказы
z = r1!Kolichestvo
k = 1
While (z > Skidki(1, k)) And (k < n)
k = k + 1
Wend
s = (r1!Vsego_cena) * Skidki(2, k) \ 100
r1.Edit
r1!Skidka = s
r1.Update
r1.MoveNext
Loop
End Sub
______________________________
UPDATE Table_Detali_zakazov SET Cena_so_skidkoi = Vsego_cena-Skidka;
(в каждой строчке поля Cena_so_skidkoi будет вычислена разность полной цены и скидки).
DELETE *
FROM TABLE_Zakaz;
DELETE *
FROM TABLE_Detali_Zakazov;
Подсказка: Задайте структуру временной таблицы Temp c полями: Id_zakaza, Itogo, куда с помощью запроса перемести суммарные данные из таблицы TABLE_Detali_zakazov c помощью запроса с группировкой данных по полю Id_zakaza:
INSERT INTO Temp ( Id_zakaza, Itogo )
SELECT id_zakaza, Sum(Cena_so_skidkoi)
FROM TABLE_Detali_zakazov
GROUP BY Id_zakaza;
Потом выполните еще один запрос на обновление для переноса значения из поля Итого (Itogo) таблицы Temp в аналогичное поле таблицы Table_Zakaz.
III. Формирование данных для филиала 2.
После выполнения п.7 будет сформировано две таблицы фактов, содержащие столько записей, сколько было указано заказов при запуске первого сценария (кнопка 0). Однако обе таблицы содержат данные, относящиеся только к одному филиалу.
Необходимо дополнить полученные таблицы данными о продажах во втором филиале. Для выполнения этого необходимо повторить все указанные операции, перечисленные в части II лабораторной работы, для второго филиала. Чтобы номера заказов, выполненные во втором филиале, не совпадали с номерами заказов, необходимо, чтобы поле Id_zakaza в обеих таблицах фактов начинались с числа, превышающего число записей в таблице Table_Zakaz. Для этого необходимо:
Задание. Импортировать все таблицы, созданные в лабораторной работе №6, в среду Oracle.
!. Имя пользователя должно совпадать с фамилией студента.
Запустить Oracle Database 10g Express Edition ® Oracle Database Home Page, вкладка SQL SQL Commands. Выполнить запросы к созданной БД с целью оценки эффективности работы филиалов.
Перечень SQL запросов, необходимых для выполнения работы:
Информация о работе Работа в Oracle Database Express Edition