Опубликован: 28.12.2011 | Доступ: свободный | Студентов: 7561 / 1027 | Оценка: 3.81 / 3.53 | Длительность: 19:30:00
ISBN: 978-5-9963-0488-2

Лекция 2: Инструменты для работы с данными и демонстрационный пример

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Аннотация: Рассматриваются штатные инструменты для обращения к БД, предлагаемые фирмой Oracle. Происходит знакомство с демонстрационным примером.

Инструмент для общения с базой данных

Фирма Oracle предоставляет два основных инструмента для общения с БД в диалоге посредством SQL: SQL*Plus и SQL Developer. Дальнейшие примеры в тексте, как правило, предполагаются для исполнения в SQL*Plus, однако с разной степенью корректировки исполняемы и в SQL Developer.

SQL*Plusпрограмма из обычного комплекта ПО Oracle для диалогового общения с БД путем ввода пользователем (или, возможно, из сценарного файла-"скрипта") текстов на SQL и PL/SQL и предъявления на экране компьютера результата, полученного от СУБД:


Запуск SQL*Plus может осуществляться:

  • через меню ОС (в Windows);
  • из командной строки (во всех ОС).

Пример запуска из командной строки:


SQL*Plus обрабатывает тексты на трех языках: SQL, PL/SQL и собственном. Во всех случаях регистр набора не имеет значения. Точнее, можно полагать, что, приняв на входе команду на любом из трех языков, "система" (выполняет ли эту работу SQL*Plus или СУБД, в данном случае неважно) повышает регистр всем буквам, кроме закавыченных символами "'" и """, а потом уж производит обработку. Следующие две команды SQL содержательно равносильны:

SELECT * FROM emp;
select *   FRoM Emp ;

Исключение из правила автоматического повышения регистра перед обработкой команды касается значения пароля в версиях, начиная с 11. С этой версии выдача следующих двух команд SQL приведет к установке разных значений пароля пользователю SCOTT:

ALTER USER scott IDENTIFIED BY tiger;
ALTER USER scott IDENTIFIED BY Tiger;

Символ ";" используется в качестве признака окончания ввода команды SQL (они могут быть многострочными), но в некоторых случаях для этого используется / в первой позиции новой строки. Символ "-" используется как перенос продолжения набираемой команды SQL*Plus на новую строку (если эта команда чересчур длинна).

Собственные команды SQL*Plus служат для настроек работы этой программы, установления форматов и выполнения некоторых действий. Их несколько десятков, и полный перечень (в жизни избыточный) приведен в документации по Oracle.

Примеры:

  • DESCRIBE — выдача на экран общего описания структуры таблиц, представлений данных, типов объектов или пакетов:
    DESCRIBE emp
    
  • SET — установка (а SHOW — просмотр) режимов выдачи данных на экран, например установка длины внутреннего буфера формирования строк ответа и установка разбиения ответа на запрос на страницы:
    SET LINESIZE 200
    SET PAGESIZE 50>
    
  • COLUMN — задание формата выдачи данных столбца на экран:
    COLUMN object_type FORMAT A20
    
  • CONNECT/DISCONNECT — установление сеанса связи с СУБД, например:
    CONNECT scott/tiger
    

В отличие от SQL и PL/SQL, большинство ключевых слов в языке SQL*Plus имеют сокращенные формы, часто употребляемые в жизни и в литературе, например:

DESC emp
SET LINES 200
COL object_type FOR A20
CONN scott/tiger

Для обработки вводимых команд SQL (а заодно блоков на PL/SQL) в SQL*Plus применяется внутренний буфер команды. Он обновляется при каждом новом наборе текста на SQL (или блока на PL/SQL). Команда SQL*Plus LIST позволяет выдать на экран текущее содержимое буфера, команда RUN или же символ "/" — запустить содержимое на исполнение, а команда EDIT — редактировать.

SQL Developer тоже позволяет пользователю обращаться к БД на SQL, но имеет графический интерфейс и графические средства отладки. Для SQL Developer фирмой Oracle и третьими фирмами разработан ряд расширений: для администрирования картографической информации в БД (Oracle Spatial), для графического администрирования средств анализа данных (Oracle Data Mining) и др.

С целью моделирования БД графическим образом можно использовать родственный продукт Oracle SQL Developer Data Modeler.

Упражнение. При необходимости скачать из интернета SQL Developer ( http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html) и установить. Создать соединение со схемой SCOTT, открыть его. Посмотреть перечень и свойства таблиц в схеме SCOTT. Выдать запросы к данным таблиц.

В качестве графической среды разработки и отладки запросов SQL и программ на PL/SQL имеется также несколько программных продуктов третьих фирм. Они появились раньше, чем SQL Developer, в общем обладают теми же возможностями, но часто более тщательно проработаны в деталях. Дальнейшие примеры можно отрабатывать и с их помощью.

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Ярослав Прозоров
Ярослав Прозоров

В лекции № 7 "Введение в Oracle SQL" в подразделе "Несамостоятельность группировки с обобщениями ROLLUP, CUBE и GROUPING SETS"  представленная таблица сравнения содержит ошибки - окончания запросов пропущены. Видимо, ошибки вызваны некорректным переносом материала лекции.

Володимир Миколайчук
Володимир Миколайчук
Помогите разобраться поетапно с логикой запроса
-------TOOLS
NAME PRICE TYPE
drill 155 A
sawzall 192 N
mitre saw 292 M
router 86 I
RAD 145 M
jigsaw 128 I
screwdriver 77 P
------TOOL_TYPES
TYPE USAGE
A Always
I Often
M Sometimes
N Rarely
P Never

Запрос SQL:
SELECT t.type, SUM(t.price)
FROM tools t
GROUP BY t.type
HAVING SUM(t.price) >= (SELECT AVG(price)
FROM tools
WHERE type IN (SELECT type
FROM tool_types
WHERE usage = 'Often'));

И сколько строк он все таки вернет