*** ***** 10g Oracle Database Express Edition

advertisement
Лабораторная работа № 1
База данных Oracle Database 11g Express Edition. Конструирование
SQL-запросов
1. Цель работы
Изучение пользовательского интерфейса базы данных (БД) Oracle Database 11g
Express Edition и конструирование SQL-запросов.
2. Задачи
Создание подключения к БД Oracle Database 11g Express Edition. Исследование
объектов схемы HR и составление модели данных. Конструирование SQLзапросов на выборку данных в режимах редактора запросов и конструктора
запросов.
3. Теоретическая часть
3.1. Общие сведения о БД
БД Oracle Database 11g Express Edition (Oracle Database XE) является свободно
распространяемой (бесплатной) версией наиболее мощной реляционной базы
данных в мире. Она прекрасно подходит для установки в учебных заведениях с
целью обучения студентов современным методам работы с реляционными
базами данных Oracle и разработки приложений для отображения
пользовательских данных и манипулирования данными.
Oracle Database XE легко устанавливается и ею легко управлять. Скачать файлы
установки для различных платформ можно на официальном сайте Oracle
http://www.oracle.com/technetwork/database/database-technologies/expressedition/downloads/index.html.
Oracle Database XE может быть установлена на компьютер (хост-машину) с
любым количеством процессоров (одна БД на компьютере), но Oracle Database XE
будет хранить только до 11 ГБ данных пользователя, использовать до 1 ГБ
памяти, и использовать только один процессор на хост-машине.
Oracle Database 11g Express Edition представляет собой реляционную базу
данных, которая хранит и извлекает коллекции связанной информации. В
реляционной базе данных, объекты хранения информации организуются в
структуры, называемые таблицами. Каждая таблица содержит строки (записи),
которые состоят из столбцов (полей). Таблицы хранятся в базе данных в
структурах, называемых схемами. Схемы - это логической структуры данных, в
которых пользователи базы данных хранят свои таблицы и другие объекты.
Для доступа к Oracle Database XE используется домашняя страница базы данных,
имеющая интуитивно понятный графический интерфейс. Доступ к домашней
странице организован на основе веб-сервиса. Домашняя страница предоставляет
пользователю веб-средства для администрирования базы данных, создания
таблиц, представлений и других объектов схемы, импорта, экспорта, просмотра,
редактирования данных таблиц. Эти средства позволяют выполнять SQL-запросы
и SQL-скрипты, создавать и отлаживать программы на языке PL/SQL,
разрабатывать приложения базы данных и генерировать отчеты.
1
База данных Oracle Database XE содержит встроенную схему HR (Human
Resource), которая является примером схемы со связанными таблицами. В схеме
HR есть таблицы для хранения вымышленной информации о сотрудниках и
отделах. Таблицы содержат общие столбцы, которые позволяют данные из одной
таблицы связывать с данными из других таблиц. Схема HR принадлежит
пользователю с именем HR.
3.2. Получение доступа к Oracle Database XE
Пользователи получают доступ к Oracle Database 11g Express Edition через
учетную запись пользователя базы данных. При установке базы данных
автоматически создаются учетные записи пользователей SYS и SYSTEM – это
пользователи с привилегиями администрирования баз данных. Так же
автоматически создается учетная запись пользователя HR, не обладающего
привилегиями администрирования.
Однако по соображениям безопасности учетная запись пользователя HR
заблокирована. Нужно разблокировать эту учетную запись, прежде чем начинать
работу с объектами схемы HR. Для этого можно воспользоваться командной
строкой SQL*Plus.
Чтобы разблокировать учетную запись
командной строки SQL*Plus, необходимо:
пользователя
с
использованием
1. Кнопка Пуск –> Все программы -> Oracle Database 11g Express Edition –>
Run SQL Command Line.
2. Подключитесь как пользователь SYSTEM:
 Напечатайте connect
 Введите имя для подключения: SYSTEM
 Введите пароль: <пароль-для-SYSTEM >
3. После успешного подключения (сообщения connected) введите следующий
SQL-оператор:
SQL> ALTER USER HR ACCOUNT UNLOCK;
4. Введите пароль для пользователя HR с помощью следующего SQLоператора:
SQL> ALTER USER HR IDENTIFIED BY HR;
5. Для выхода из редактора введите SQL-оператор:
SQL> EXIT
Окно редактора командной строки SQL*Plus показано на рис. 1.1.
2
Рис. 1.1. Окно редактора командной строки SQL*Plus
Подключение к базе данных Oracle Database XE производится через домашнюю
страницу - веб-интерфейс на основе браузера для выполнения различных
операций администрирования баз данных, в том числе следующих:




Мониторинг базы хранения (Storage);
Мониторинг сеансов базы данных (Sessions);
Просмотр параметров инициализации базы данных (Parameters);
Начало работы с Oracle Application Express (Application Express).
Доступ к домашней странице: кнопка Пуск –> Все программы -> Oracle Database
11g Express Edition –> Get Started.
В окне веб-браузера появится домашняя страница Oracle Database XE (рис. 1.2).
Рис. 1.2. Домашняя страница Oracle Database XE
Нажмите кнопку Application Express. После запроса информации для входа
укажите: имя пользователя – SYSTEM, пароль - <пароль-для-SYSTEM >, как в
редакторе командной строки SQL*Plus. Нажмите кнопку Login (рис. 1.3).
3
Рис. 1.3. Подключение к Oracle Database XE пользователя с ролью
администратора БД
Следующий шаг – создание рабочего пространства Oracle Application Express для
пользователя HR. В этом рабочем пространстве будут находиться все
приложения БД, с которыми разрешена работа пользователю HR. Форма
создания рабочего пространства показана на рис. 1.4.
Рис. 1.4. Создание рабочего пространства Oracle Application Express
Application Express Username – имя рабочего пространства. Можно использовать
как имя пользователя (HR), так и любое другое (например, hr_apex). Подтвердите
пароль. Нажмите Create Workspace. На следующей странице нажмите Click here
для входа в рабочую область. Первый раз, когда вы пытаетесь получить доступ к
рабочей области, вам будет предложено сбросить пароль для рабочей области
(можно указать тот же пароль ил другой).
Создание рабочего пространства Oracle Application Express нужно произвести
только один раз. При следующих подключениях к БД используйте кнопку Already
have in account? Login Here. Для входа в рабочее пространство будет показана
форма авторизации для Oracle Application Express, рис. 1.5.
4
Рис. 1.5. Форма авторизации для Oracle Application Express
Чтобы при следующих подключениях к рабочему пространству пропустить шаги
авторизации пользователя SYSTEM и перехода к форме рис. 1.5, скопируйте и
сохраните
URL
этой
формы
(например,
вида
http://127.0.0.1:8080/apex/f?p=4550:1:494885012264286) и используйте его в веббраузере для непосредственного начала работы с формой авторизации.
Авторизация пользователя: ввод Workspace HR -> ввод Username HR -> ввод
Password HR -> кнопка Login.
После выполнения входа в рабочее пространство Oracle Application Express
открывается домашняя страница, на которой расположены основные элементы
управления – иконки Application Builder, SQL Workshop, Team Development,
Administration (рис. 1.6).
Рисунок 1.6. Иконки элементов управления домашней страницы рабочего
пространства Oracle Application Express
Щелчок на изображении иконки вызывает переход на новую страницу с иконками
допустимых операций. Щелчок на иконке SQL Workshop позволяет получить
доступ к инструментам исследования объектов БД (Object Browser, Utilites) и
работы с SQL-запросами SQL Commands, SQL Scripts, Query Builder (рис. 1.7).
5
Рис. 1.7. Инструменты исследования объектов БД и работы с SQL-запросами
3.3. Доступ к данным с помощью SQL
SQL является непроцедурным языком для доступа к базе данных. SQL-операторы
предназначены для выполнения различных задач, таких как получение данных из
таблиц в Oracle Database XE. Все операции с базой данных выполняются с
помощью операторов SQL. С помощью операторов SQL можно выполнить
следующие операции:
 запроса, вставки и обновления данных в таблицах;
 форматирования данных, выполнения расчетов на основе данных,
хранения и печати результатов запроса;
 изучения структуры таблиц и определения объектов базы данных.
Создание запросов на выборку данных
Синтаксис оператора SELECT для выборки всех записей таблицы
SELECT [ DISTINCT ] * | столбец [ псевдоним ] , ...
FROM таблица ;
SELECT
DISTINCT
*
столбец
Список из одного или нескольких столбцов
Устраняет отображения повторяющихся строк
Выбор всех столбцов
Имя выбираемого столбца
Дает возможность настроить заголовок
псевдоним
выбранного столбца
Определяет таблицу или таблицы, содержащие
таблица
столбцы
Вы можете указать псевдоним после имени столбца в списке выбора, используя
пробел в качестве разделителя. Если псевдоним содержит пробелы или
специальные символы, такие как знак номера # или знак доллара $, или, если он
чувствителен к регистру, заключите псевдоним в кавычки "". Пример:
SELECT employee_id "Employee ID number",
last_name "Employee last name",
first_name "Employee first name"
FROM employees
Ограничение выборки строк
Вы можете ограничить количество строк, которые извлекаются из базы данных, с
помощью инструкции WHERE в операторе SQL. Добавляя инструкцию WHERE, вы
6
можете задать условие, которое должно быть выполнено, и только те строки,
которые соответствуют условию, будут возвращены.
При использовании инструкции WHERE:
 инструкция WHERE непосредственно следует за инструкцией FROM в
синтаксисе оператора SQL;
 инструкции WHERE состоит из ключевого слова WHERE и условия (или
нескольких условий);
 условие инструкции WHERE указывает сравнение значений, которые
ограничивают количество строк, возвращаемых запросом.
Объединение таблиц
Иногда возникает необходимость отображать данные из нескольких таблиц.
Чтобы сделать это, в инструкции FROM оператора SELECT указывается список
имен таблиц, из которых извлекаются данные. Если информация поступает из
более чем одной таблицы, происходит объединение таблиц.
Например, в таблице EMPLOYEES столбец DEPARTMENT_ID представляет
номер отдела сотрудника. В таблице DEPARTMENTS есть столбец
DEPARTMENT_ID, а также столбец DEPARTMENT_NAME. Можно объединить
данные из таблиц EMPLOYEES и DEPARTMENTS с использованием столбца
DEPARTMENT_ID и подготовить отчет, который будет показывать имена
работников и названия отделов.
Внутренние объединения таблиц
При внутреннем объединении объединяются столбцы связанных таблиц на
основе общего поля или комбинации общих полей. При таком объединении в
результирующее множество не включаются строки какой-либо из таблиц, которые
не имеют соответствия в другой таблице. При внутренних объединениях условие
объединения должно строго соблюдаться.
Естественное объединение
Естественное объединение позволяет отображать данные из двух таблиц, когда
значение в одном столбце одной таблицы прямо соответствует значению в другом
столбце во второй таблице. Если две таблицы включают один или несколько
столбцов, которые имеют одинаковые имена и типы данных, естественное
соединение возвращает все строки из двух таблиц, которые имеют одинаковые
значения во всех соответствующих столбцах. Часто этот тип объединения
включает в себя первичный ключ и столбцы внешних ключей.
Синтаксис
SELECT [ DISTINCT ] * | столбец [ псевдоним ] , ...
FROM таблица1 NATURAL JOIN таблица2;
Пример:
SELECT employee_id, last_name, first_name, department_id,
department_name, manager_id
FROM employees NATURAL JOIN departments
7
Объединение двух таблиц с инструкцией USING
Инструкция USING позволяет указать столбцы, которые будут использоваться для
соединения между двумя таблицами. Имена столбцов должны быть одинаковыми
для обеих таблиц и должны иметь совместимые типы данных. Используйте
инструкцию USING, если ваши таблицы содержат более одного столбца, чьи
имена совпадают, и необходимо четко определить имя столбца, по которому
необходимо образовать соединение таблиц.
Синтаксис
SELECT [ DISTINCT ] * | столбец [ псевдоним ] , ...
FROM таблица1 JOIN таблица2
USING общий_столбец;
Объединение таблиц с идентификацией столбцов. Оператор ON
Оператор ON используетcя, чтобы задать условие объединения двух таблиц или
условие самообъединения таблицы. Оператор ON позволяет записывать условие
объединения для разных имен столбцов, однако при этом типы данных этих
столбцов должны совпадать.
Синтаксис
SELECT [ DISTINCT ] * | столбец [ псевдоним ] , ...
FROM таблица1 JOIN таблица2
ON столбец_1 = столбец_2
Пример:
SELECT employees.*, job_history.*
FROM employees JOIN job_history
ON employees.hire_date = job_history.start_date
Применение дополнительных условий объединения
Часто бывает необходимо объединить данные из двух таблиц так, чтобы
выполнялись некоторые дополнительные условия. Пусть, например, нужно
показать результат объединения таблиц EMPLOYEES и DEPARTMENTS только
для сотрудника, который имеет идентификатор 149. Чтобы добавить
дополнительные условия для оператора ON, можно добавить оператор AND.
Кроме того, можно использовать оператор WHERE, чтобы применить
дополнительные условия для предварительного отбора строк таблицы.
Использование оператора AND
SELECT e.employee_id, e.last_name, e.department_id,
d.department_id, d.location_id
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
AND e.manager_id = 149
8
Использование оператора WHERE
SELECT e.employee_id, e.last_name, e.department_id,
d.department_id, d.location_id
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
WHERE e.manager_id = 149
Псевдонимы таблиц
В примерах показано, как псевдонимы используются для идентификации имен
таблиц. В операторе FROM сокращенное наименование указывается после имени
таблицы. Это сокращенное наименование называется псевдонимом. После того,
как псевдоним создан в операторе FROM, его можно использовать в любой части
предложения SELECT.
Объединение нескольких таблиц
Объединение нескольких таблиц используется, когда необходимая информация
распределена по более чем двум таблицам. Примером может служить
трехстороннее соединение - объединение трех таблиц. Пусть необходимо найти
сотрудников, их подчиненных и названия отделов для сотрудников . Для этого
требуется доступ к трем таблицам: - EMPLOYEES, DEPENDENTS и
DEPARTMENTS. Возможно объединение любого количества таблиц, сколько
необходимо для получения связной информации.
Синтаксис
В операторе FROM необходимо указать таблицы, которые должны объединиться.
FROM таблица1
JOIN таблица2 ON условие_1
JOIN таблица3 ON условие_2
Пример
SELECT e.last_name, d.first_name, w.department_name
FROM employees e
JOIN dependents d
ON d.relative_id = e.employee_id
JOIN departments w
ON w.department_id = e.department_id
Самообъединение таблиц
Оператор ON может быть также использован для присоединения столбцов,
которые имеют разные наименования (в той же таблице или в другой таблице).
Если разноименные объединяемые столбцы расположены в одной таблице, то
имеет место самообъединение таблиц. Например, вы можете выполнить
самообъединение таблицы EMPLOYEES на основе столбцов EMPLOYEE_ID и
MANAGER_ID.
9
Внешние объединения таблиц
При внешнем объединении также происходит объединение строк связанных
таблиц на основе общего поля или комбинации общих полей. Однако
результирующее множество включает в себя строки какой-либо из таблиц даже в
том случае, когда они не имеют соответствия в другой таблице. При внешних
объединениях условие объединения соблюдается нестрого. Одна из таблиц
является обязательной – в результирующем множестве будут находиться все ее
строки.
Синтаксис
SELECT [ DISTINCT ] * | столбец [ псевдоним ] , ...
FROM таблица1 { LEFT | RIGHT | FULL } [ OUTER ] JOIN
таблица2
ON столбец_1 = столбец_2
Здесь:
LEFT – левое внешнее объединение. Указывает, что таблица1 - обязательная
таблица (в результирующем множестве будут находиться все ее строки), а
таблица2 - необязательная. Для тех строк таблица1, которым нет соответствия в
таблица2, возвращается NULL.
RIGHT – правое внешнее объединение. Обязательная таблица таблица2,
таблица1 необязательная.
FULL – полное внешнее объединение. Является двунаправленным внешним
объединением. В результирующее множество включаются:
 все строки внутреннего объединения таблиц;
 строки таблица1, которым нет соответствия в таблица2;
 строки таблица2, которым нет соответствия в таблица1.
OUTER – необязательное ключевое слово. Указывает, что выполняется внешнее
объединение.
Пример:
SELECT employees.*, job_history.*
FROM employees LEFT JOIN job_history
ON employees.hire_date = job_history.start_date
Групповые операции
Групповые операции обрабатывают по нескольку строк и возвращают один
обобщенный результат. Фактически они позволяют объединять в той или иной
форме сходные элементы информации, возвращаемые из базы данных. Для
выполнения групповых операций Oracle предоставляет обобщающие функции и
инструкции группировки (GROUP BY, HAVING и другие).
Синтаксис большинства обобщающих функций:
обобщающая_функция([DISTINCT | ALL] выражение)
10
Обобщающая_функция – указывает имя обобщающей функции: COUNT
(количество), AVG (среднее значение), MAX (максимальное значение), MIN
(минимальное
значение),
STDDEV
(стандартное
среднеквадратичное
отклонение), SUM (сумма), VARIANCE (статистическая дисперсия).
DISTINCT – указывает, что обобщающая функция должна учитывать только
неповторяющиеся значения выражения.
ALL – указывает, что обобщающая функция должна учитывать все значения
выражения, в том числе и дублирующиеся. По умолчанию считается, что
использовано ALL.
Выражение – указывает столбец или любое другое выражение, по которому
необходимо выполнить обобщение.
Значения NULL для выражения обобщающими функциями игнорируются, в
результат не входят.
Примеры
Select MAX(salary) from Employees – найти максимальное значение по столбцу
salary во всей таблице EMPLOYEES.
Select count(*) from Regions – вычисляет количество записей в таблице REGIONS.
Инструкция GROUP BY
Используется совместно с обобщающими функциями, разбивает результирующее
множество на несколько групп, а затем для каждой группы выдается одна строка
сводной информации. Если в списке SELECT присутствует смесь обобщенных и
необобщенных значений, SQL считает, что нужно выполнить операцию Group by,
поэтому все необобщенные выражения должны быть указаны и в инструкции
Group by. Если этого не сделать, Oracle выдаст сообщение об ошибке.
Не разрешено использование групповой (обобщающей) функции в инструкции
GROUP BY.
При группировке по столбцу, содержащему в некоторых строках NULL-значения,
все строки с NULL-значениями помещаются в одну группу и представляются в
выводе одной сводной строкой.
Для получения итоговых результатов с использованием инструкции GROUP BY
существует возможность фильтрации записей таблицы при помощи инструкции
WHERE. При выполнении оператора SQL, содержащего инструкции WHERE и
GROUP BY, Oracle сначала применяет инструкцию WHERE и отсеивает строки, не
удовлетворяющие условию WHERE. Затем строки, удовлетворяющие условию
WHERE, группируются в соответствии с инструкцией GROUP BY. Синтаксис SQL
требует, чтобы инструкция WHERE предшествовала инструкции GROUP BY.
Инструкция HAVING
Используется для наложения фильтра на группы, созданные инструкцией GROUP
BY. Если запрос содержит GROUP BY и HAVING, результирующее множество
будет содержать только те группы, которые удовлетворяют условию, указанному в
инструкции HAVING. Синтаксис инструкции HAVING подобен синтаксису
инструкции WHERE. Но для инструкции HAVING существует одно ограничение.
Это условие (указанное в инструкции HAVING), может относиться только к
выражениям списка SELECT или инструкции GROUP BY. Если в HAVING будет
11
содержаться что-то, чего нет в SELECT или GROUP BY, будет выдано сообщение
об ошибке.
Порядок следования инструкций GROUP BY и HAVING в операторе SELECT не
имеет значения.
Можно использовать в одном запросе инструкции WHERE и HAVING. При этом
важно понимать, как одна инструкция воздействует на другую. Инструкция
WHERE выполняется первой, и строки, которые удовлетворяют условию WHERE,
передаются в инструкцию GROUP BY. Инструкция GROUP BY сводит
отфильтрованные данные в группы, а затем уже к группам применяется
инструкция HAVING для устранения групп, не удовлетворяющих условию HAVING.
Синтаксис для запросов с обобщающими функциями и группировкой
SELECT столбец_1, столбец_n, обобщающая_функция(столбец)
FROM таблица
WHERE условие отбора строк
GROUP BY столбец_1, столбец_n
HAVING условие отбора групп
ORDER BY столбец
3.4. Инструменты для создания и выполнения SQL- запросов
В Oracle Database XE писать и выполнять SQL-операторы можно с помощью
инструмента SQL Commands (редактор SQL-запросов), или же можно
использовать инструмент Query Builder (конструктор запросов) для построения
запросов с графическим интерфейсом (рис. 1.7).
Запуск редактора SQL-запросов: щелчок на иконке SQL Commands.
Ввод и выполнение SQL-запроса: на странице SQL Commands написать тексты
запросов -> выделить нужный для выполнения запрос -> щелчок на кнопке Run.
Результат выполнения запроса – в нижней части окна (рис. 1.8).
Рис. 1.8. Ввод и выполнение SQL-запросов на странице SQL Commands
Oracle Database XE имеет удобный графический инструмент для создания SQLзапросов – конструктор запросов. Запуск конструктора запросов: щелчок на иконке
12
Query Builder (рис. 1.7) или на таком же элементе раскрывающегося списка SQL
Workshop -> открывается страница браузера с формой конструктора запросов. На
левой панели – список доступных таблиц. Щелчок на имени таблицы -> форма
таблицы с перечнем доступных столбцов размещается на правой верхней панели.
На форме таблицы отметьте те столбцы, данные по которым должны войти в
результирующее множество (рис. 1.9).
Рис. 1.9. Конструирование SQL-запросов на странице Query Builder
На правой нижней панели расположены закладки:
Conditions – условия, накладываемые на столбцы таблицы. Позволяет задавать
псевдонимы столбцов, вводить условия отбора строк по данным столбца,
определять тип и порядок сортировки, видимость результата, применяемую к
столбцу функцию, необходимость группировки.
SQL – текст сгенерированного SQL-запроса.
Results – результат выполнения SQL-запроса. Для его получения необходимо
щелкнуть на кнопке Run.
Saved SQL – сохраненные SQL-запросы. Чтобы сохранить запрос, необходимо
щелкнуть на кнопке Save.
Конструктор запросов позволяет в наглядном виде производить объединение
таблиц. Для объединения двух таблиц надо: выбрать две таблицы -> отметить на
их формах столбцы для результата -> расположить курсор над связываемым
столбцом дочерней таблицы (COUNTRIES) -> нажать правую кнопку мыши и
перетащить с нажатой кнопкой изображение связи на связываемый столбец
родительской таблицы (REGIONS) (рис. 1.10).
13
Рис. 1.10. Конструирование SQL-запросов для объединения таблиц
Если навести курсор на изображение связи, появляется всплывающая подсказка с
условием связи. Щелчок на связи вызывает всплывающее меню – удалить связь,
установить левое или правое внешнее объединение. По умолчанию связь
определяет внутреннее объединение таблиц.
3.5. Информация об объектах базы данных
Oracle хранит всю информацию об объектах базы данных в специальном словаре
данных (data dictionary). Словарь содержит описания, как организованы реальные
данные. Словарь состоит из таблиц и представлений, к которым можно
обращаться с запросами точно так же, как и к любым другим таблицам и
представлениям базы данных. Владельцем этих представлений является
пользователь Oracle с именем SYS. В представлениях типа user_* содержится
информация об объектах, владельцем которых является текущий пользователь.
Для получения информации об объектах пользователя можно использовать
следующие представления:
o User_tables – реляционные таблицы, принадлежащие текущему
пользователю;
o User_views – представления, принадлежащие текущему пользователю;
o User_tab_comments – комментарии для таблиц, принадлежащие текущему
пользователю;
o User_tab_columns – столбцы всех таблиц, принадлежащих текущему
пользователю;
o User_col_comments – комментарии для столбцов таблиц и представлений,
принадлежащих текущему пользователю;
o User_indexes – индексы таблиц текущего пользователя;
o User_cons_columns – столбцы в ограничениях текущего пользователя;
14
o User_constraints – ограничения на таблицы текущего пользователя;
o User_triggers – триггеры базы данных, принадлежащие текущему
пользователю.
Oracle Database XE имеет инструменты для исследования объектов базы данных
и формирования отчетов по ним.
Доступ к инструменту исследования объектов базы данных: иконка Object
Browser (рис. 1.7) или соответствующий элемент раскрывающегося списка SQL
Workshop. По умолчанию происходит переход к списку таблиц (другой тип
объектов базы данных для исследования можно выбрать из выпадающего
списка). Затем после выбора конкретного объекта отображаются его свойства.
Вид страницы отображения свойств таблицы DEPARTMENTS (закладка Table –
показывает список столбцов и их свойства) приведен на рис. 1.11.
Рис. 1.11. Отображение свойств таблицы: список столбцов
Если перейти на закладку Model, то можно увидеть модель данных - наглядное
изображение связей исследуемой таблицы с другими таблицами базы данных
(рис. 1.12).
15
Рисунок 1.12. Отображение модели данных: связи таблицы
Приведенная на рисунке модель данных показывает, что таблицы LOCATIONS и
EMPLOYEES являются родительскими по отношению к исследуемой таблице
DEPARTMENTS. Они в модели изображены выше исследуемой таблицы. Сама же
таблица DEPARTMENTS является родительской по отношению к таблицам
JOB_HISTORY и EMPLOYEES (расположеные ниже таблицы DEPARTMENTS).
Аналогичную информацию о родительских (по отношению к исследуемой)
таблицах можно увидеть в закладке Dependencies (список References).
Доступ к отчетам: иконка Utilites (рис. 1.7) или соответствующий элемент
раскрывающегося списка SQL Workshop -> элемент списка (или иконка) Object
Reports -> элемент списка по интересующему параметру. Например, для списка
Table Reports - столбцы, комментарии, ограничения и др. (рис.1.13).
Рис. 1.13. Отчеты Object Reports
16
С помощью этих инструментов можно получить достаточно полную информацию
об основных объектах, имеющихся в базе данных.
4. Меры безопасности
Во время выполнения лабораторной работы необходимо:
соблюдать правила включения и выключения вычислительной техники;
не подключать кабели, разъемы и другую аппаратуру к компьютеру, не
относящиеся к лабораторной установке;
 при включенном напряжении сети не отключать, не подключать и не
трогать кабели, соединяющие различные устройства компьютера;
 в случае обнаруженной неисправности в работе оборудования или
нарушения правил техники безопасности сообщить руководителю
лабораторной работы;
 не пытаться самостоятельно устранить неисправности в работе
аппаратуры;
 по окончании работы привести в порядок рабочее место.
ВНИМАНИЕ! При работе за компьютером необходимо помнить: к каждому
рабочему месту подведено опасное для жизни напряжение. Поэтому во время
работы надо быть предельно внимательным и соблюдать все требования техники
безопасности!


5. Задание
1. Запустить интернет-браузер, например, Google Chrome. Запустить
домашнюю
страницу
Oracle
Application
Express
по
адресу
http://127.0.0.1:8080/apex/ . Войти в базу данных как пользователь HR.
2. С помощью редактора SQL-запросов составить и выполнить запрос на
выборку данных из таблицы EMPLOYEES, используя инструкцию
сортировки по именам сотрудника.
3. С помощью конструктора SQL-запросов составить и выполнить запрос на
выборку данных из таблицы DEPARTMENTS, используя инструкцию
сортировки по названию департамента.
4. С помощью редактора SQL-запросов составить и выполнить запрос на
выборку данных из связанных таблиц DEPARTMENTS и EMPLOYEES,
используя русские псевдонимы столбцов и сортировку. Запрос должен
возвращать названия всех департаментов, полные имена менеджеров этих
департаментов, их адреса электронной почты и номера телефонов.
Указания: применить левое внешнее объединение таблиц, сортировку
произвести по названию департамента.
5. С помощью конструктора SQL-запросов составить и выполнить запрос на
выборку данных из связанных таблиц DEPARTMENTS, LOCATIONS,
COUNTRIES, REGIONS, используя русские псевдонимы столбцов и
сортировку. Запрос должен возвращать названия всех департаментов и их
адреса (название региона, название страны, название города, название
улицы с номером дома). Указание: сортировку произвести по названиям
страны, города, департамента.
6. С помощью редактора SQL-запросов составить и выполнить запрос на
выборку данных из связанных таблиц DEPARTMENTS, EMPLOYEES с
использованием обобщающих функций. Запрос должен возвращать
названия департаментов, количество работающих в них сотрудников, сумму
17
заработной платы по департаменту, среднюю заработную плату по
департаменту.
7. Получить полную информацию об объектах базы данных – таблицах,
столбцах, ограничениях, представлениях, включая все комментарии и типы
данных. Основываясь на этой информации, составить модель данных, на
которой показать все таблицы и связи между ними.
Указания:
 общую информацию о связях между таблицами получить с помощью
инструмента Object Browser;
 подробную информацию о связях между таблицами получить с
помощью запроса
select uc.table_name "Таблица",
uc.constraint_name "Огр внеш ключа",
ucc1.column_name "Поле внеш ключа",
ucc2.table_name "Родит таблица",
uc.r_constraint_name "Огр в РТ",
ucc2.column_name "Поле ключа в РТ"
from user_constraints uc
join user_cons_columns ucc1 on ucc1.constraint_name =
uc.constraint_name
join user_cons_columns ucc2 on ucc2.constraint_name =
uc.r_constraint_name
where uc.constraint_type = 'R';
 модель данных представить в графическом виде с помощью MS
Word, MS Visio или ERWin Data Modeller.
6. Требования к содержанию и оформлению отчета
Отчет должен быть выполнен в текстовом редакторе MS Word. Отчет должен
содержать:
o Краткие теоретические сведения,
o Модель данных в графическом виде,
o Тексты всех SQL-запросов с комментариями относительно каждой
использованной в запросе инструкции,
o Результирующие таблицы с данными для всех выполненных запросов,
o Выводы по проделанной работе.
7. Контрольные вопросы
7.1. Каково назначение БД Oracle Database XE?
7.2. Как осуществляется подключение пользователя к БД Oracle Database XE?
7.3. Какие инструменты предоставляет пользовательский интерфейс БД Oracle
Database XE для работы с SQL-запросами?
7.4. Какие инструменты предоставляет пользовательский интерфейс БД Oracle
Database XE для исследования объектов БД?
7.5. Каков синтаксис оператора SELECT?
7.6. Каково назначение инструкции WHERE?
7.7. Какие существуют виды объединения таблиц?
7.8. В чем отличия между внутренним и внешними объединениями таблиц?
7.9. Для чего применяются групповые операции?
7.10. Как надо использовать инструкции GROUP BY и HAVING?
18
Download