Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
database.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.12 Mб
Скачать

2. Создание и удаление индексов.

Индексы можно создать автоматически (при описании ограничений типа PRIMARY KEY или UNIQYE) или вручную как объект:

CREATE INDEX имя_индекса ON имя_таблицы (имя_столбца)

Пример 1:

CREATE INDEX Orderdate ON Orders(odate)

Определение индекса содержится в представлении словаря данных USER_INDEXES. Таблица USER_IND_COLUMNS содержат имя индекса, имя таблицы и имя столбца.

SELECT ic.index_name, ic.column_name, ic.column_position col_pos, ix.uniqueness

From user_indexes ix, user_ind_columns ic

WHERE ic.index_name=ix.index_name

AND ic.table_name=’имя_таблицы

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

Пример 2:

SELECT *

FROM Orders

WHERE Odate = ‘10/02/2000’

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

Пример 3: Создание уникального индекса:

CREATE UNIQUE INDEX onlyonename

ON Salespeople(sname);

Удалить индекс можно с помощью оператора DROP INDEX имя_индекса

Пример 4:

DROP INDEX Orderdate;

Тема 14: «Создание отчетов»

  1. Изменение заголовка колонки.

  2. Форматирование NUMBER колонок.

  3. Оформление Отчета пробелами и итоговыми строками.

  4. Вычисление итоговых строк при изменении значения колонки.

  5. Определение заголовков.

  6. Установка размеров страницы

  7. Сохранение и печать результатов запроса

1. Изменение заголовка колонки

Синтаксис:

COLUMN имя_колонки HEADING заголовок_колонки

Пример 1: Изменение заголовка comm на Commission:

COLUMN comm HEADING Commission

SELECT deptno, ename, sal, comm

FROM emp

WHERE job = 'менеджер';

Чтобы заменить заголовок колонки на два или более слова, нужно заключить новый заголовок в одиночные или двойные кавычки при вводе команды COLUMN. Для разделения имени колонки в несколько строк, используется вертикальная черта (|) там, где необходимо начать новую строку.

Пример 2: Присвоение колонке ENAME заголовка EMPLOYEE NAME и разделение нового заголовка на две строки:

COLUMN ename HEADING 'Employee|Name'

Чтобы заменить символ подчеркивания заголовка каждой колонки, установите переменную UNDERLINE команды SET и укажите новый символ подчеркивания. (Это может быть *, =,…)

SET UNDERLINE =

Чтобы восстановить символ подчеркивания, необходимо указать в команде SET знак тире в кавычках, иначе SQL воспримет тире как символ переноса и будет ожидать продолжения команды на следующей строке.

SET UNDERLINE '-'

2. Форматирование number колонок.

Можно задавать разные форматы для колонок типа NUMBER, используя модель формата в команде COLUMN. С помощью модели формата задают вид колонок при печати, для представления цифр используется 9.

Команда COLUMN указывает колонку, которую необходимо форматировать, и используемую модель, как показано ниже:

Синтаксис:

COLUMN имя_колонки FORMAT модель

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

Чтобы использовать одну форматную модель для одной колонки, нужно объединить модель в одной команде COLUMN.

Чтобы вывести значение столбца SAL со знаком доллара, запятой и нулями вместо пробелов для любого нулевого значения, можно использовать следующую команду:

COLUMN sal FORMAT $99,99

Замечание: Модель формата действует до тех пор, пока вы не введете новый, не сбросите формат колонки или не покинете SQL*PLUS.

Сбросить формат колонки можно с помощью следующей команды:

COLUMN sal FORMAT A10

Чтобы сбросить атрибуты вывода у колонки (восстановить значения по умолчанию), используется параметр CLEAR команды COLUMN:

COLUMN имя_колонки CLEAR

Для сброса атрибутов у всех колонок используется параметр COLUMN команды CLEAR.

Чтобы сбросить атрибуты вывода у всех колонок к их значениям, вводится следующая команда:

CLEAR COLUMNS

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

Можно подавить и восстановить атрибуты вывода, которые были назначены определенной колонке. Для подавления атрибутов колонки вывода колонки, используется команда COLUMN в следующем формате:

COLUMN имя_колонки OFF

Фраза OFF сообщает SQL*PLUS, что необходимо использовать атрибуты вывода для данной колонки определенные по умолчанию, но сами атрибуты вывода удалять не надо. Для восстановления атрибутов необходимо ввести команду COLUMN с фразой ON:

COLUMN имя_колонки ON

Чтобы напечатать строку из тире после каждой записи, необходимо ввести следующие команды:

SET RECSEP EACH

SET RECSEPCHAR '-'

COLUMN loc FORMAT A7 WORD_WRAPPED

SELECT * FROM DEPT;

Перед тем как продолжить работу необходимо установить RECSEP в состояние OFF, чтобы подавить печать разделителя записей:

SET RECSEP OFF

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]