DeepEdit!

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

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Подготовка рабочего места

Будем пользоваться программой SQL*Plus. Настроим рабочее место. 
Создайте папку, например, "c:\ora-teach". В ней создайте ярлык для запуска SQL*Plus. В свойствах ярлыка поле "Объект", скорее всего, будет иметь значение "c:\oracle\bin\sqlplusw.exe". В качестве рабочей папки укажите, ту, которую создали - "c:\ora-teach".
Рисунок 8. Свойства ярлыка для запуска SQL*Plus.
Запустите программу SQL*Plus. Подключитесь к рабочей базе данных. В диалоговом окне "Log On" введите: имя пользователя, пароль, строку подключения к базе данных.

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

create table exdoc
( doc_nd     number(6)
, doc_dd     date
, customer_n varchar2( 60)
, address    varchar2( 120)
, total_cost number(12,2)
, total_tax  number( 12,2)
, total_doc  number( 12,2)
);
Обращаю внимание. При вводе из клавиш управления курсором работает только клавиша "Backspace". Для перехода к новой строке нажимайте "Enter". Вернуться к предыдущей строке никак не получится. 
Сделали ошибку – продолжайте вводить. "Кривой" интерфейс SQL*Plus не повод сетовать!
Вводим: название команды – CREATE TABLE; имя таблицы – exdoc; список колонок. Для каждой колонки указываем имя и тип. 
Заканчиваем ввод точкой запятой и нажимаем "Enter". Если команда введена без ошибок, то будет создана таблица и SQL*Plus выведет сообщение: 
Table created.
Скорее всего команда будет введена с ошибками. SQL*Plus выдаст сообщение, которое содержит подсказку о месте и характере ошибки. Таблица в этом случае создана не будет. Продолжайте урок. Создадите её позже, после исправления команды.
2. SQL*Plus имеет буфер ввода. Программа "помнит" текст последней команды. Просмотреть её можно с помощью команды list. Введите:
list
Ввод команд в SQL*Plus заканчивайте нажатием "Enter".
На экран будет выведено, то, что набрали на предыдущем шаге.
Команду можно вводить не полностью, только первый символ "l". Это команда программы SQL*Plus, т.е. сервер ORACLE её не знает. Используется только в программе SQL*Plus.
3. Команду, которая находится в буфере ввода, можно передать в текстовый редактор и внести в неё правки. Вводим:
edit
Откроется текстовый редактор, в нём будет текст команды из буфера ввода.
Команда edit – это тоже команда SQL*Plus. По умолчанию в качестве текстового редактора используется блокнот Windows. В настройках программы его можно заменить на другой редактор.
Если команда была набрана с ошибками, то исправьте её. После редактирования закройте текстовый редактор. 
В процессе завершения программа предложит сохранить текст во временном файле afiedt.buf. Подтвердите сохранение. Окно с текстовым редактором закроется и в SQL*Plus будет выведена набранная команда - содержимое файла afiedt.buf.
4. Выполним команду, т.е. то, что есть в буфере SQL*Plus. Введите символ "/" и нажмите "Enter".
Символ "/" - это команда "Выполнить". Это команда SQL*Plus. Содержимое буфера ввода передаётся серверу для выполнения.
Рассмотрим сообщение. 
Если на первом шаге таблица была создана, то SQL*Plus выведет сообщение об ошибке. Повторная попытка создать таблицу с тем же именем приводит к ошибке: таблица с указанным именем уже существует.
Добейтесь правильного выполнения команды. Таблица должна быть создана. Для правки используйте команды list и edit. 
Убедитесь в её создании. Повторно введите команду CREATE TABLE.
5. Ещё одна команда SQL*Plus. Вводим:
desc 
На экран будет выведена подсказка – синтаксис команды. Для большинства команд SQL*Plus можно получить подсказку. Пользуйтесь этим.
6. Вводим.
desc exdoc
На экран будет выведен список колонок таблицы exdoc.
Эта команда выводит описание таблицы. После ключевого слова desc указываем имя таблицы.
7. В буфере ввода находится команда создания таблицы exdoc. Убедимся в этом. Вводим символ "l" – сокращенно команда list.
Команда присутствует. 
8. Текст буфера ввода можно сохранить в файле. Вводим:
save cre_exdoc
Сообщение: создан файл cre_exdoc.sql
save – это команда SQL*Plus для записи буфера ввода в текстовый файл. 
Если не указано расширения файла, то по умолчанию оно будет "sql". Файл будет записан в текущий каталог, т.е. туда, откуда запустили программу SQL*Plus.
В учебном курсе набранные команды всё время будем записывать в файл. Большинство из них будут использованы несколько раз в процессе обучения. Отнеситесь к этому с пониманием. В повседневной практике необязательно записывать в файл все набранные команды.

Удаление таблицы
1. Удалим созданную таблицу. Вводим:
drop table exdoc;
Получили сообщение: таблица удалена.
Команда DROP TABLE удаляет существующую таблицу. После команды нужно указать имя таблицы. 
Обращаю внимание. В конце команды ввели точку с запятой. SQL*Plus проверяет буфер ввода. Если программа распознала команду ORACLE, которая заканчивается символом ";", то пытается её выполнить сразу по завершению ввода. 
Для завершения ввода без выполнения не вводите точку с запятой и дважды нажмите "Enter".
2. Вводим:
l
В буфере ввода команда DROP TABLE.
3. Повторно выполним:
/
Получили сообщение об ошибке: таблица с указанным именем не существует.
4. Текст команды CREATE TABLE был сохранен в файле cre_exdoc.sql. Вводим команду:
start cre_exdoc
Получили сообщение: таблица создана.
Команда SQL*Plus start выполняет команды, которые записаны в текстовом файле. 
Если не указывать расширение файла, то SQL*Plus будет искать файл с расширением "sql". Файл должен располагаться в папке, из которой была запущена программа.
Обращаю внимание. Программа "Блокнот", которая используется в качестве текстового редактора, при сохранении файла частенько сама подставляет расширение "txt". Поэтому обязательно указывайте расширение"sql" и записывайте в режиме "Все файлы *.*".
5. Убедимся в существовании таблицы.
desc exdoc
Выведено описание таблицы exdoc. Таблица существует.

Создание таблицы для позиций с товарами 
1. Создадим таблицу с позициями счёта expos. Вводим:
create table expos
Дважды нажимаем "Enter"
2. Вводим:
edit
Продолжаем в текстовом редакторе:

create table expos
( doc_nd  number(6)
, doc_dd  date
, pos_no  number(5)
, good_n  varchar2( 60)
, ed      varchar2( 6)
, quant   number( 9,2)
, price   number( 9,2)
, cost    number( 12, 2)
, tax     number( 12,2)
, sum_tax number( 12, 2)
, sum_pos number( 12, 2)
)
3. Выполним команду.
/
4. Запишем в файл.
save cre_expos

Создание таблицы для услуг
1. Создадим таблицу с услугами exsvc. 
Если на экране видно текст последней команды, то можно поступить так.
Первый вариант: выделите мышкой участок текста; скопируйте его в буфер обмена Windows; вставьте текст из буфера. SQL*Plus будет "вводить" текст начиная c текущей позиции ввода. Этим способом можно "переносить" заготовленные для выполнения команды в SQL*Plus из любого другого приложения Windows. 
Второй вариант: выделите мышкой участок текста в окне SQL*Plus; не отпуская левую клавишу мышки, нажмите на правую клавишу. Текст будет скопирован в строку набора команд. Это вариант удобен для исправления ошибок или повторного ввода команд.
Попробуйте оба варианта.
Помним о команде edit.
Итак. Команда для создания таблицы с услугами.

create table exsvc
( doc_nd    number   ( 6)
, doc_dd    date
, service_n varchar2 ( 60)
, cost      number   ( 12,2)
, tax       number   (  5,2)
, sum_tax   number   ( 12,2)
, sum_svc   number   ( 12,2)
)
2. Выполняем.
/
3. Запишем в файл.
save cre_exsvc

Подготовка скрипта для создания всех таблиц
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
 









jAntivirus