Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала

Тут можно читать онлайн Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала - бесплатно ознакомительный отрывок. Жанр: comp-programming, год 11. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Oracle SQL. 100 шагов от новичка до профессионала
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    11
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание

Oracle SQL. 100 шагов от новичка до профессионала - описание и краткое содержание, автор Максим Чалышев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Более 300 ответов на вопросы.
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.

Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок

Oracle SQL. 100 шагов от новичка до профессионала - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Максим Чалышев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Попробуем внести данные в таблицу, которые не подходят по условиям ни в один из фрагментов (секций).

Сервер выведет ошибку Ora-144000. Вставленный ключ секции не соответствует ни одной секции.

Изменим данные таким образом, чтобы изменилась принадлежность записей к фрагменту.

Получим ошибку обновление ключа секции, что приведет к ее изменению…

Как же сделать возможным перенос строк?

Для этого необходимо включить для выбранной таблицы опцию ROW MOVEMENT.

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

На этот раз ошибок не было. Обновление строк в таблице прошло успешно.

А собственно, зачем это все было необходимо? Как это применить?

У вас есть три табличных пространства, нам в данный момент нужна только оперативная информация по документам типа RR из таблицы PRO_LIST в табличном пространстве номер TBLSP2.

Отключим остальные табличные пространства и перенесем их на архивный диск.

Выполним запрос по таблице PRO_LIST:

Получим системную ошибку о том, что сегмент не может быть прочитан.

Скорректируем запрос, так как нам нужны только документы RR.

Запрос выполнен без ошибок.

SUMM DOCDATE DOCTYPE
3046 21.12.2011 RR
2093 07.09.2012 RR
9233 14.08.2012 RR
5474 09.03.2013 RR

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

Контрольные вопросы и задания для самостоятельного выполнения

1. Повторите материалы данного шага.

2. Создайте секционированную таблицу, основанную на таблице AUTO, где данные бы распределялись по секциям времени, по годам.

Шаг 72. Работаем с XML в SQL

Введение

XML — это специальный расширяемый язык разметки. XML нашел широкое применение в сервисах обмена данными, в интернете, в RSS-сообщениях. Для работы с XML в ORACLE используется специальный тип данных XMLType, при помощи которого работа с XML-выражениями в ORACLE SQL становится максимально удобной и комфортной.

Для работы с XMLType в ORACLE SQL присутствует ряд дополнительных команд, применяемых для обработки XML-документа. Это команды EXTRACT, EXTRACTVALUE, XMLSEQUENCE.

Разберем работу с этими командами подробнее.

Теория и практика

XMLTYPE — специальный тип данных, который позволяет программисту работать с XML-документом, не прибегая к XPath и парсингу строк.

Рассмотрим приемы работы с XMLTYPE.

Создадим таблицу из двух колонок.

Первая колонка — идентификатор, вторая колонка специального типа XMLType.

Добавим данные, идентификатор XML-документа, и непосредственно сам XML-документ.

Для доступа к XML-атрибутам используются две специальные функции VALUE и EXTRACTVALUE, продемонстрируем их работу на примере.

Извлекаем атрибут TO из колонки XMLTEST нашего примера:

Извлекаем остальные атрибуты из нашей таблицы из колонки XMLTEST:

Следующий пример демонстрирует получение внутреннего атрибута IDn, для этого в EXTRAСTVALUE используется специальная запись @nID.

SELECT ID, EXTRACTVALUE (XMLtest, «NOTe/@nID») FROM messages;

Преобразование строки XML-документа в XMLType.

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

В этом примере, используя WITH, мы создали таблицу с одной строкой из XML-документа, воспользовавшись преобразованием XMLType.

А если нам необходимо преобразовать XML-документ в многострочную таблицу, то следует использовать конструкцию XMLSEQUENCE.

Преобразование XMLType в таблицу

XMLSEQUENCE возвращает XMLSEQUENCETYPE, отображает XML.

Следующий пример демонстрирует, как работать с XMLSEQUENCE для получения данных из XML в табличном виде.

В этом примере с помощью инструкции TABLE (XMLSEQUENCE (s. XMLTEST. extract (’messages/NOTe’))) мы создали таблицу, состоящую из XML-документа между тегами NOTE.

Пример

(

Alex

Tove

Re: Hey

Не забуду

)

Из которой извлекли соответствующие значения.

Важные замечания

XMLTYPE появился в ORACLE начиная с версии 9.0, на более ранних версиях ORACLE приведенные в этом шаге команды работать не будут.

Вопросы учеников

Кроме XMLType, какие существуют способы разбора в ORACLE SQL?

Можно использовать XPATH для разбора XML, но это менее удобный способ.

Контрольные вопросы и задания для самостоятельного выполнения

1. Создайте таблицу из двух колонок (ID NUMBER, XMLT XMLtype).

2. Внесите в таблицу следующий XML и ID = 1:

Dhirendra Brahmachari

1966

81-40-34319-4

Dhirendra Yoga Publications

11.50

J. KrIShnamurti

1954

0-06-064831-7

Harper & Row

2.95

3. Выберите из XML-документа следующую информацию: TITLE, AUTHOR, ISBN в табличном виде.
4. Выберите из данной таблицы CURRENCY при покупке книги.

Шаг 73. Сложные группировки SET GROUP CUBE

Введение

В ORACLE существуют конструкции для подведения подытогов и итогов групповых операций.

Это операции CUBE, ROLLUP.

Теория и практика

Группировки ROOLUP, CUBE ROLLUP и CUBE — это специальные групповые опepации ORACLE.

Используются вместе с группировкой GROUP BY. Применяются начиная с версии ORACLE 8i.

Синтаксис:

ROLLUP — выражение, по которому подводятся итоги.

GROUPING — условное выражение, которое показывает, является ли строчка строчкой подведения итогов.

Очень удобно использовать ROLLUP CUBE при подведении итогов.

Рисунок 203. Пример использования группировок

Примеры

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

Итоги нашей выборки подведем с помощью ROLLUP.

Рисунок 204. Пример использования ROLLUP

Второй пример:

Рисунок 205. Пример использования ROLLUP

Итак, функция ROLLUP подводит итоги по некоторой группе, некоторым сгруппированным значениям. В первом примере это первая буква имени, во втором примере — первые две буквы имени; GROUPING показывает, в какой именно строке подводился итог.

Группировка CUBE также используется для подведения итогов, очень похожа на ROLLUP, но подводит общий итог в конце выборки.

Пример

Рисунок 206. Пример использования CUBE

Важные замечания

ROLLUP работает следующим образом:
• сначала вычисляются стандартные агрегированные значения в предложении GROUP BY;
• затем создаются промежуточные итоги высокого уровня для столбцов группировки, которые представляют собой столбцы «колонка2» и «колонка 1», справа налево;
• наконец, создается общий итог.

Вопросы учеников

Есть еще дополнительная функция GROUPING SET, поясните ее работу.

Предложение GROUPING SETS — это расширение предложения GROUP BY, которое можно использовать, чтобы задать одновременно сразу несколько группировок данных.

Пример работы:

Без данной функции для получения результата, аналогичного приведенной инструкции SELECT, потребовалось бы несколько запросов, объединенных UNION ALL. Использование нескольких запросов неэффективно, так как требует нескольких обращений для одних и тех же данных.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Максим Чалышев читать все книги автора по порядку

Максим Чалышев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Oracle SQL. 100 шагов от новичка до профессионала отзывы


Отзывы читателей о книге Oracle SQL. 100 шагов от новичка до профессионала, автор: Максим Чалышев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x