Перейти на главную страницу
Ш.Т.Ишмухаметов
Работа в Oracle Database Express Edition 1
Лабораторная работа № 3. 6
Работа с базой данных с использованием утилиты SQLplus. 6
Лабораторная работа № 4. 7
Экспорт баз данных. 7
Задание: 8
1.Задать структуры трех таблиц в СУБД MS Access 8
2.Заполнить данными 8
3.Перенести таблицы в БД Oracle. 8
4.Написать SQL- запрос и перенести данные из табл.3 в табл.2. 8
Лабораторная работа 5. Выполнение расчетов с использованием программирования в среде Visual Basic for Applications (VBA). 8
Лабораторная работа № 6. 9
Формирование хранилища данных из разных источников 10
Лабораторная работа № 7. 16
Оценка эффективности работы филиалов 16
Backup Database – резервирование БД
Get Started – вызов справки по Oracle Express
Go To Database Home Page – домашняя страница
Run SQL Command Line – работа с БД с помощью команд SQL
Start Database – запуск сервера
Stop Database – остановка сервера
- Изменить столбец,
- Переименовать столбец,
- Удалить столбец,
- Переименовать таблицу,
- Копировать таблицу,
- Удалить таблицу.
Чтобы заполнить таблицу, выбираем вкладку Data, кнопку Insert Row.
В появившуюся форму заносим данные:
Далее нажимаем Create, затем кнопку Insert Row. Заполняем данные на следующего студента. В результате заполнения полей таблицы появляется список всех студентов:
Внести в таблицу следующие данные:
Пользовательские приложения в Oracle представляют собой отчеты и формы, выполненные как Web-страницы и позволяющие получать информацию из Базы данных.
Рассмотрим пример создания приложения формы отчета по таблицам, входящим в учебную базу данных пользователя с идентификатором HR.
1. Разблокировка пробной учетной записи пользователя
Чтобы создать свое приложение, Вы должны войти как пользователь базы данных. Oracle Database XE поставляется с экспериментальным пользователем базы данных, именуемым HR. Этот пользователь владеет несколькими таблицами базы данных в пробной схеме, которая может быть использована при создании приложений для вымышленного подразделения Human Resources. Однако, из соображений безопасности, учетная запись этого пользователя заблокирована. Вы должны разблокировать эту учетную запись, прежде чем сможете создать свое пробное приложение.
Чтобы разблокировать пробную учетную запись пользователя:
2. Подключение к пробной учетной записи
Для подключения к пробной учетной записи:
3. Создание простого приложения
Создание приложения это самый простой способ просматривать и редактировать данные в Вашей базе данных. Вы создадите это приложение на основе таблицы EMPLOYEES, являющейся частью схемы HR.
Чтобы создать приложение, основанное на таблице EMPLOYEES:
Обратите внимание, что в поле Action отображается тип страницы, которую вы добавляете.
Application created successfully.
Чтобы запустить Ваше приложение:
Инструментальное меню разработчика дает возможность оперативно отредактировать текущую страницу, создать новую страницу, элемент управления или компонент, посмотреть состояние сессии, а также включить/отключить режим отладки или ссылки редактирования.
Поздравляем! Вы только что создали Ваше первое приложение, используя Oracle Database XE.
Утилита SQLplus является клиентским приложением, которое может осуществить доступ к базе данных Oracle Express через локальную или глобальную сеть. Ее можно установить на компьютер клиента без установки сервера Oracle Express. При установке сервера она устанавливается автоматически.
Для работы с этой утилитой, добавим нового пользователя с именем Stud. Для этого выполним команды:
ID Int not null primary key,
FIO varchar2 (20) not null,
Data date not null); клавиша
При работе в командной строке DOS предыдущие команды можно выбрать с помощью кнопок стрелочек вверх-вниз.
1, ‘Ivanov’,’25.10.2008’,’Bred’);
Снова откройте домашнюю страницу, войдя под именем test, пароль – test и посмотрите созданную таблицу через раздел Object Brower.
- ID студента (номер студенческого билета)
- ID студента (внешний ключ из табл.1)
Dim dbs As Database, r1 As Recordset ‘определить объектные переменные
Dim n, s, z As Long
Set dbs = CurrentDb ‘текущая БД=currentDb
Set r1 = dbs.OpenRecordset("Employers") ‘присвоить переменной ссылку на таблицу "Employers"
r1.MoveFirst ‘установить курсор на 1 записи
n = r1.RecordCount ‘подсчитать число записей в табл.
Do While Not r1.EOF ‘цикл по записям-пока не дойдет до конца записи
r1.Edit
r1!Zar = 6000 + 1000 * Int(Rnd() * 10) ‘занести данные случайным образом
r1.MoveNext
Loop ‘конец цикла
s = 0
n = r1.RecordCount
Do While Not r1.EOF
z = r1!Zar
s = s + z
r1.Edit ‘Редактировать таблицу
If z > 6900 Then r1!Nad = 500 Else r1!Nad = 400 'Установить надбавку в зависимости от зарплаты
r1.Update ‘занести исправления в таблицу
r1.MoveNext
Loop
Надпись1.Caption = s ‘значение средней зарплаты вывести в надпись1
End Sub
«6000» - минимальная зарплата
«1000» - шаг изменения зарплаты
«Int(Rnd() * 10)» - случайное число от 0 до 10.
Предположим, что наша фирма имеет два филиала, расположенные в разных городах, и есть центральный офис фирмы, в котором обрабатываются результаты продаж по этим регионам и формируется хранилище данных. Конечная цель работы – сформировать общее хранилище данных продаж, составить отчеты по результатам продаж в каждом из филиалов, сделать выводы об эффективности продаж по каждому из филиалов и составить рекомендации по дальнейшей деятельности филиалов.
(ввести 4-5 категорий)
ID категории |
Наименование_категории |
1 |
Материнская плата |
2 |
Видеокарта |
3 |
HDD |
4 |
Карта памяти |
2. Поставщики (Postavshiki) (ID поставщика, Название, Категория товара, Юридический Адрес, Телефон):
(ввести по 10-12 записей)
ввести по 5 записей для каждой категории)
Количество товара |
Скидка, % |
Описание |
5 |
3 |
Скидка в размере 3% при покупке товара от 5 до 10 шт. |
10 |
5 |
Скидка в размере 5% при покупке товара от 10 до 20 шт. |
20 |
7 |
Скидка в размере 7% при покупке товара от 20 и более. |
Таблица Заказы будет содержать данные о заказах – номер заказа, ID продавца. ID покупателя и дату совершения заказа
Таблица Подробности заказов содержит данные о товарах, входящих в заказ (от 1 до 3 наименований - это число можно задать в программе) и их количестве. Количество генерируется случайным образом в пределах от 1 до 50 (этот параметр также можно поменять).
Примечание: Эти таблицы будут заполняться автоматически с помощью программ, представленных ниже.
Private Sub Кнопка0_Click()
Dim nz As Integer
Dim d As String
Dim dbs As Database, r1 As Recordset, r2 As Recordset
Set dbs = CurrentDb
Set r1 = dbs.OpenRecordset("table_zakaz")
Set r2 = dbs.OpenRecordset("TABLE_Detali_zakazov")
Dim t As Integer
nz = InputBox("Необх.колич-о заказов (не менее 200)", , "200")
nt = InputBox("Число товаров", , "10")
np = InputBox("Число поставщиков", , "6")
nf = InputBox("Код филиала", , "1")
npr = InputBox("Число продавцов в филиале", , "5")
nzz = InputBox("Число покупателей", , "6")
izz = Int(Rnd * nzz) + 1 ' номер заказчика
ip = Int(Rnd * npr) + 1 ' номер продавца
d = Int(Rnd * 30) + 1
d = d + "."
d2 = Str(Int(Rnd * 12) + 1)
d = d + d2 + "."
d2 = Str(Int(Rnd * 3) + 2006)
d = d + d2
r1.AddNew
r1!ID_filiala = nf
r1!ID_zakaza = i 'Изменяемое поле. Для второго филиала должно=i+1000
r1!ID_pokupatel = izz
r1!Data_zakaza = d
r1!ID_prodavca = ip
r1.Update
Next i
' Заполнение данными таблицы Table_Detali_Zakaz "Детали заказов"
izz = Int(Rnd * nzz) + 1 ' номер заказа
kz = Int(Rnd * 3) + 1 ' кол.позиций данного заказа (от 1 до 3)
ip = Int(Rnd * npr) + 1 ' номер продавца
For k = 1 To kz
r2.AddNew
r2!ID_filiala = nf
r2!ID_zakaza = i 'Изменяемое поле. Для второго филиала должно=i+1000
r2!ID_tovara = Int(Rnd * nt) + 1
r2!ID_postav = Int(Rnd * np) + 1
r2!Kolichestvo = Int(Rnd * 49) + 1
r2.Update
Next k
Next i
________________________________
В результате в таблице Детали заказов (TABLE_ Detali_zakazov) будут заполнены следующие поля:
Все поля таблицы Заказы (TABLE_ZAKAZ) будут заполнены.
zakazov.ID_tovara=Tovary.ID_tovara SET TABLE_Detali_zakazov.Cena_za_ed = Tovary!Cena_za_ed*1.2;
В окне построителя выражение будет выглядеть следующим образом:
UPDATE TABLE_Detali_zakazov SET TABLE_Detali_zakazov.Vsego_cena = TABLE_Detali_zakazov!Cena_za_ed*TABLE_Detali_zakazov!Kolichestvo;
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_Detali_Zakazov")
Set r2 = dbs.OpenRecordset("Table_Skidka")
n = r2.RecordCount 'Количество строк в таблице Скидки
'nzz = InputBox("n=" + Str(n))
r2.MoveFirst
k = 1
While k <= n
Skidki(2, k) = r2!Skidka_v_procent
If k < n Then r2.MoveNext
k = k + 1
Wend
Skidki(1, k) = 1000 'предельное значение для кол.товара
Do While Not r1.EOF ' Цикл по табл.Заказы
z = r1!Kolichestvo
k = 1
k = k + 1
Wend
s = (r1!Vsego_cena) * Skidki(2, k) \ 100
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_Detali_Zakazov;
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. Для этого необходимо:
Запустить Oracle Database 10g Express Edition Oracle Database Home Page, вкладка SQL SQL Commands. Выполнить запросы к созданной БД с целью оценки эффективности работы филиалов.
Лабораторная работа Выполнение расчетов с использованием программирования в среде Visual Basic for Applications
18 12 2014
1 стр.
Рецензент – зам начальника Гомельской дистанции сигнализации и связи Белорусской железной дороги В. И. Прокопюк
29 09 2014
3 стр.
Простейшей и в то же время наиболее надежной из всех схем шифрования является так называемая схема однократного использования (рис. 1), изобретение, которое чаще всего связывают с
10 10 2014
1 стр.
Лабораторная работа №2 «Составление технического проекта на производство аэрофотосъемочных работ»
14 12 2014
1 стр.
Лабораторная работа №5 включает 5 заданий. Для выполнения этих заданий необходимо ознакомиться с теоретическим материалом, приведенным к данной лабораторной работе и расположенным
11 09 2014
1 стр.
Целью работы является овладение навыками использования табличной верстки при создании Web-страниц
12 09 2014
1 стр.
Субд. Это версии Microsoft sql server 2005 Express Edition и Microsoft® sql server® 2008 Express Edition. Обе версии отличаются от полных версий несколько ограниченной функциональн
10 10 2014
1 стр.
В общем случае цепочечные команды позволяют выполнять действия над блоками памяти
01 10 2014
1 стр.