Индекс – это объект базы данных, который содержит запись для каждого значения, которое появляется в столбцах таблицы или кластера, который индексируется и обеспечивает прямой и быстрый доступ к полям.
Индекс бывает нескольких видов – Уникальный, Неуникальный и Составной. Уникальный создается при помощи ограничения целостности UNIQUE – при помощи него создаются уникальный индексы. Неуникальные – без каких-либо ограничений. Составной – это индекс, который состоит из нескольких столбцов в таблице (До 32 столбцов).
У индексации есть как свои плюсы, так и минусы: вырастает скорость нахождения информации, но уменьшается скорость добавлении оной в таблицу. Вырастает скорость выполнения запросов по индексированным полям, но уменьшается скорость удаления информации.
VIEW – это виртуальная таблица на основе имеющейся физической таблицы или таблиц, то есть это всего лишь запрос, но представлен ввиде виртуальной таблицы. В отличие от обычных таблиц базы данных, представление не является самостоятельной, а является частью набора данных, хранящихся в таблицах. Изменение данных в реальной таблице БД немедленно отражается и в содержимом всех представлений, построенных на основании этой таблицы.
Последовательность – это объект базы данных, из которого пользователи могут генерировать уникальные целые числа. Для создания последовательности используют команду CREATE SEQUENCE. У него есть ряд параметров, которые могут облегчить жизнь пользователям.
- INCREMENT BY – интервал между генерируемыми значениями, по умолчанию задано 1. Не может быть равен 0.
- START WITH – объявляется первый номер последовательности, который будет в дальнейшем генерироваться. (По умолчанию – минимум для увеличивающейся и максимум для уменьшающейся последовательности).
- NOMAXVALUE (MAXVALUE) – Максимальное значение 10^27. Последовательность может увеличиваться или уменьшаться.
- NOMINVALUE (MINVALUE) – Минимальное значение 1 (при увеличении) или -10^26 (при уменьшении). По умолчанию равна NOMAXVALUE.
- CYCLE (NOCYCLE)
- CACHE (NOCACHE) – сколько значений оракл распределяет наперед и поддерживает в памяти для быстрого доступа. (Минимум 2, по умолчанию 20).
- ORDER (NOORDER) – гарантирует, что номер последовательностей генерируется в порядке запроса. (По умолчанию NOORDER).
После того, как последовательность создана, достаточно просто к ней можно обратиться, путем написания её имени seq_name и через точку можно обратится к CURRVAL, NEXTVAL. CURRVAL – возвращает текущее значение, NEXTVAL – следующее.
Следует помнить, что к последовательностям нельзя обращаться в подзапросе, в запросе представления, в запросе SELECT, в котором есть оператор DISTINCT, в запросе SELECT, в котором есть фраза GROUP BY, ORDER BY, в запросе SELECT, которые объединён с другим запросом SELECT операторами UNION, INTERSECT, MINUS, в фразе WHERE запроса SELECT.