Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Ораклу.doc
Скачиваний:
1
Добавлен:
10.08.2019
Размер:
467.46 Кб
Скачать

Язык манипулирования данными

Для работы с записями предусмотрены следующие операции: добавление, удаление, изменение и чтение. Эти операции в ORACLE реализованы с помощью команд манипулирования данными. Язык Data Manipulation Language (DML).

Во всех командах DML надо указывать имя таблицы. И как говорилось, они предусматривают работу с группой записей. Правило отбора записей задаётся в конструкции WHERE.

Рассмотрим самый простой синтаксис команд манипулирования данными.

Д обавление одной записи. Это команда INSERT.

Для добавления записи необходимо указать имя таблицы, список колонок и список значений. Колонки могут быть указаны только те, которые хотим заполнить. Количество значений в списке должно совпадать с количеством колонок. Причём должно быть соответствие по типам данных.

Вторая команда - DELETE. Удаление записей. Очень простая.

Для удаления записей необходимо указать имя таблицы.

Действие команды можно распространить на группу записей, или на одну запись, или использовать для удаления всех записей таблицы. Это задаётся с помощью условия в правиле WHERE.

Если отсутствует конструкция WHERE, то будут удалены все записи таблицы.

Если конструкция WHERE присутствует в команде, то команда DELETE удалит только те записи, для которых выполняется указанное условие.

Подробнее условия отбора записей разберём в практической части.

Команда изменения записей UPDATE.

Для её выполнения также потребуется указать имя таблицы. Обязательно нужно определить, какая колонка какое значение будет принимать. Можно использовать конструкцию WHERE для задания правила отбора изменяемых записей.

Команда select

Четвертая команда – SELECT, чтение записей из таблицы. "Рабочая лошадка".

В простейшем случае она записывается так.

Во-первых, в конструкции FROM указываем имя таблицы, из которой необходимо прочитать данные.

Во-вторых, перечисляем колонки, значения которых нас интересуют.

В-третьих, при необходимости дописываем конструкцию WHERE.

В-четвертых, задаём порядок в конструкции ORDER BY.

Список колонок может быть опущен. Вместо него можно ввести символ "*". Это означает, что необходимо получить значения из всех колонок. Порядок следования значений определяется порядком колонок в описании таблицы.

В списке колонок можно указывать арифметические выражения. На практике будем их активно использовать.

Порядок работы команды SELECT примерно таков.

  1. Выполняется чтение записей из таблицы, указанной в конструкции FROM.

  2. Каждая запись проверяется на выполнение условия, которое заданно в конструкции WHERE.

  3. Для каждой отобранной записи рассчитываются все арифметические выражения. Используются значения колонок этой записи.

  4. Записи сортируются. Правила указаны в конструкции ORDER BY.

Тестовый набор данных

Напомню, мы занимаемся разработкой программного модуля для ведения счетов. Уже подготовили структуру, создали таблицы.

На этом этапе хотелось бы знать:

  • Можно ли данные счёта сохранить в этих таблицах?

  • Какую часть счёта мы сможем записать в таблицы, а какую нет?

  • Удобно ли нам работать с этими таблицами?

Кроме того, нам придется писать запросы на выборку данных из этих таблиц.

  • Как проверить работу команды SELECT на пустой таблице?

  • Как убедиться в её правильном написании?

Эти вопросы подталкивают к мысли, что после создания таблиц хорошо бы их чем-нибудь и как-нибудь наполнить.

Чем наполнять? Желательно реальными данными. Взять их можно из описания задачи, из образцов первичных документов. Или из отчетов, которые к ней прилагаются. В общем, поищите реальные данные. Это самый простой способ. Желательно найти несколько вариантов.

Стоит отметить следующее. Во-первых. В задании на разработку зачастую есть описание всевозможных правил заполнения, исключительных ситуаций, памяток и т.д. Это может быть оговорено явно или передаваться "из уст в уста".

Во-вторых. Часто бывает, что в описании задачи есть порядок расчёта той или иной величины. Например, это может быть "интуитивно" понятная формула или словесное описание алгоритма.

Хотим мы того или нет, но нам нужно будет со всем этим работать. И с "исключениями", и с "интуитивно" понятными формулами. Придется специально подготовить данные. Они будут учитывать то или иное "исключительное" правило, а возможно и комбинацию правил.

Итак. Для работы нужно подготовить один или несколько тестовых наборов данных. Чем раньше начнете готовить, тем легче будет.

Оформить тестовые наборы можно в форме "распечатки", таблицы Excel. И конечно нужно иметь скрипт ввода тестового набора и скрипт для его удаления.

В нашем случае возьмем данные из формы учебного примера.

Алгоритм расчёта стоимости услуг

Учебный пример предполагает, что стоимости услуг рассчитываются по алгоритму. Рассмотрим его подробнее.

Р исунок 2. Расчёт стоимости упаковки.

Расчёт услуг упаковки выполняется с использованием таблицы. Она определяет размер партии для штучных товаров. Сколько единиц товара составляют партию. Указан вес одной партии в килограммах и стоимость упаковки.

Например. Если продаем стеклянные банки, то партией считается одна банка и стоимость упаковки равна 1 рубль. Если счёт выписан на медицинские пробки, то партия состоит из 10 пробок и стоимость упаковки будет составлять 1 рубль 50 копеек.

Расчёт услуг на доставку товара выполняется следующим образом.

Р исунок 3. Расчёт стоимости доставки.

Для каждой позиции счёта рассчитывается вес: определяем количество партий, находим вес одной партии и рассчитываем общий вес. Далее суммируем вес всех позиций с товаром, т.е. находим общий вес всех товаров по счёту.

Определяем стоимость доставки исходя из общего веса.

Если до 100 кг, то доставка будет 1 рубль 80 копеек. Если вес от 100 до 200 кг, то стоимость будет 4 рубля 70 копеек. Доставка веса больше 200 кг, обойдется покупателю в 6 рублей.

Лекция 5: Добавление записей в таблицы.

Подключаемся к учебной базе данных: запускаем SQL*Plus; вводим имя пользователя, пароль, строку соединения с базой данных.