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

Подготовка скрипта для создания всех таблиц

1. Создадим скрипт для программы SQL*Plus. Скрипт будет создавать три таблицы из учебного примера.

Перейдем в текстовый редактор…

edit

… вводим следующий текст:

drop table exsvc

/

drop table expos

/

drop table exdoc

/

start cre_exdoc

start cre_expos

start cre_exsvc

desc exdoc

desc expos

desc exsvc

Все команды понятны? Три команды на удаление таблиц. Три команды start запускают команды, которые создают таблицы. Три команды SQL*Plus выводят описание таблиц.

2. Сохраним в файле.

save cre_base

3. Выполним скрипт.

start cre_base

Смотрим листинг: таблицы удалены; таблицы созданы; выведена структура первой таблицы exdoc; второй expos; третьей exsvc.

4. Закрываем программу SQL*Plus.

Смотрим содержимое рабочей папки. Видим 6 файлов: ярлык запуска SQl*Plus, служебный файл текстового редактора afiedt.buf, 4 файла с расширением sql.

Теперь знаем

Язык описания данных DDL:

  • CREATE TABLE

  • DROP TABLE

  • типы данных: number, varchar2, date

Команды SQL*Plus:

  • connect

  • disconnect

  • list

  • edit

  • /

  • desc

  • save

  • start

Лекция 4: Работа с данными. Записи.

Записи таблицы

Мы уже знаем, что информация в базе данных ORACLE хранится в таблицах. В предыдущем уроке мы создали таблицы для учебного примера. Рассмотрим одну из них. Например, таблицу с позициями товаров EXPOS.

Для каждой строки воображаемой таблицы создается запись в базе данных. Значения в колонках хранятся друг за другом. В том порядке, в котором они перечислены в описании таблицы. Например, значения в колонках первой записи будут записаны в файле ORACLE друг за другом.

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

Р исунок 1. Таблица exdoc с дубликатами.

Например. Запись первой позиции счёта номер 152 добавлена первой и записана в конец таблицы. Записи для счёта номер 139, добавлены после неё и были записаны в начало таблицы.

На порядок хранения записей не накладывается никаких ограничений.

Следствием этого является факт: при отсутствии явных указаний при чтении информации из данных мы будем получать записи не в порядке добавления. Порядок значений внутри записи будет совпадать с порядком, в котором колонки перечислены в описании таблицы.

Ещё одно следствие. У записи нет номера, т.е. нельзя сказать: "Удали вторую запись в таблице".

Как же указать на запись, которую хотим удалить или изменить?

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

Например. Меня интересует вторая позиция счёта 137. Или сказать: запись, в которой колонка DOC_ND равна 137 и колонка POS_NO равна 2.

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

Может случиться так, что под такое описание будут попадать несколько записей.

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

Ещё один важный вопрос: "Как прочитать записи в нужном порядке?"

В ряде случаев записи должны возвращаться в определенном порядке. Для этого необходимо либо определить правило задающее порядок, либо создать дополнительную колонку для хранения порядкового номера.

Например. В таблице с позициями есть колонка "Номер позиции". Колонка соответствует полю в форме счёта, придумана не нами. Записи одного счёта можно упорядочить, используя значения этой колонки.

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

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

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