Для создания первичного ключа из последовательности поможет следующий пример:
Создание таблицы CITY1 и далее заполнение таблицы записями из CITY, первичный ключ CITYCODE, заполняется из seq_1.
Команда DROP SEQUENCE SEQ удаляет последовательность из базы, SEQ — имя последовательности.
Нельзя использовать значения CURRVAL и NEXTVAL в следующих ситуациях:
• в подзапросе;
• предложении SELECT с оператором DISTINCT;
• предложении SELECT с фразой GROUP BY или ORDER BY;
• предложении SELECT, объединенном с другим предложением SELECT оператором множеств UNION;
• фразе WHERE предложения SELECT;
• умалчиваемом (DEFAULT) значении столбца в предложении CREATE TABLE или ALTER TABLE;
• условии ограничения CHECK.
Нельзя использовать CURR_VAL, если вы еще ни разу не использовали команду NEXT_VAL для заданной последовательности, поскольку последовательность еще не была инициирована командой NEXT_VAL.
Чем отличаются CURR_VAL, NEXT_VAL при обращении к SEQUENCE?
CURR_VAL выводит текущее значение, NEXT_VAL выводит следующее значение.
При использовании NEXT_VAL что происходит?
SEQUENCE. NEXT_VAL выводит следующий номер последовательности, и последовательность будет равняться следующему номеру из этой последовательности, происходит переключение последовательности.
Контрольные вопросы и задания для самостоятельного выполнения
1. Создайте последовательность SQ1, которая бы генерировала числа от 1 до 5.
2. Создайте последовательность SQ10, которая бы генерировала числа от 10 до 50 000 с шагом 10.
3. Напишите запрос, который бы выводил на экран строки из таблицы AUTO и значения из последовательности SQ1.
4. Напишите запрос, который бы выводил на экран строки из таблицы AUTO и значения из последовательности SQ10.
Шаг 92. Пользователь и схема. Разграничение прав, роли
Рассмотрим такие важные понятия, как схема и пользователь в СУБД ORACLE. Понятия схемы и пользователя необходимо знать, поскольку, скорее всего, вы столкнетесь с ними в дальнейшей работе.
Пользователи и схемы существуют в базе данных ORACLE для безопасности информационной системы, а также для разграничения доступа к объектам на чтение, запись и просмотр информации в соответствии с заданными бизнес-правилами.
Для изучения данного шага, выполнения практических примеров требуется установка дополнительного программного обеспечения: ORACLEXE, SQLDEVELOPER.
Как установить данное программное обеспечение, подробно описано в шаге 51.
У каждого пользователя базы данных ORACLE есть свое уникальное имя пользователя (логин) и пароль. Логин и пароль пользователя называются учетной записью пользователя.
Зная свой логин и свой пароль, параметры своей учетной записи, пользователь осуществляет соединение с базой данных.
Все объекты базы данных: таблицы, представления, последовательности и т. д. — принадлежат определенным пользователям.
Множество объектов (таблиц, представлений…) заданного пользователя называется схемой пользователя.
То есть когда определенный пользователь создает какую-либо таблицу или другой объект базы данных, этот объект создается в схеме данного пользователя.
При обращении к объекту пользователя из другой учетной записи (когда мы соединяемся с базой данных под другим логином и паролем) необходимо перед наименованием объекта, к которому идет обращение (таблице, функции, представлению), добавлять имя пользователя — схему и через точку указывать сам объект. Такое обращение называется квалифицированным обращением.
Для обращения к объекту не из своей схемы пользователь, владелец объекта, должен предоставить соответствующие права на чтение данных соответствующего Имя_пользователя. имя_таблицы1.
Пример квалифицированного обращения:
SELECT * FROM hr.STAFF
SELECT * FROM user3.STAFF
DELETE user3.TABLE
Для создания пользователя применяется команда
CREATE USER USERNAME IDENTIFIED BY PASSWORS,
где USERNAME — имя пользователя;
PASswors — пароль пользователя.
Есть несколько дополнительных параметров: DEFAULT TABLESPACE USERS QUOTA 100M ON USERS — TEMPORARY TABLESPACE TEMP QUOTA 10M ON TEMP, которые позволяют задать дисковую квоту для заданного пользователя.
После создания пользователя необходимо выполнить команду
GRANT CREATE SESSION TO USERNAME;
GRANT CREATE TABLE TO USERNAME
GRANT CREATE PROCEDURE TO USERNAME
GRANT CREATE TRIGGER TO USERNAME
GRANT CREATE VIEW TO USERNAME
Читать дальше
Конец ознакомительного отрывка
Купить книгу