1. Структурные ограничения при определении таблиц.
2. Представления (View).
3. Последовательности и синонимы.
Литература:
1. Бобровский, С. Oracle Database XE для Windows. Эффективное использование/ С. Бобровский. – М. : Лори. 2009. – 512 с.
2. Джейсон Прайс. SQL для Oracle 10g. Изд. Лори. 2010 г. – 556 с.
Ограничения
На поля таблицы могут быть наложены ограничения – специальные требования, или условия, которые ограничивают множество значений, которые могут быть присвоены полям таблицы. Эти условия обычно используются для того, чтобы запретить помещать в базу данных значения, которые являются логически неправильными или противоречивыми.
Проверка выполнения ограничения производится при выполнении SQL-сервером команд обновления данных (INSERT, UPDATE и DELETE), а так же при изменении структуры таблицы. Если ограничение при конкретном обновлении не выполняется, генерируется ошибка.
Полное определение ограничения имеет следующий синтаксис:
AND "Заказ"."Код заказа"="СоставЗак"."Код заказа" AND "Товар"."Код товара"="СоставЗак"."Код товара"
SELECT * FROM "Все заказы"
SELECT * FROM "Все заказы"
WHERE "Имя" = 'Лена' AND "Фамилия" = 'Шварц'
SELECT "Имя", "Фамилия", COUNT(*)
FROM "Все заказы"
GROUP BY "Имя", "Фамилия"
SELECT * FROM SYS.OBJ$
SELECT OWNER, VIEW_NAME, TEXT
FROM all_views
WHERE VIEW_NAME ='ALL_VIEWS'
OWNER
VIEW_NAME
TEXT
SYS
ALL_VIEWS
select u.name, o.name, v.textlength, v.text, t.typetextlength, t.typetext, t.oidtextlength, t.oidtext, t.typeowner, t.typename, decode(bitand(v.property, 134217728), 134217728, (select sv.name from superobj$ h, obj$ sv where h.subobj# = o.obj# and h.superobj# = sv.obj#), null) from sys.obj$ o, sys.view$ v, sys.user$ u, sys.typed_view$ t where o.obj# = v.obj# and o.obj# = t.obj#(+) and o.owner# = u.user# and (o.owner# = userenv('SCHEMAID') or o.obj# in (select oa.obj# from sys.objauth$ oa where oa.grantee# in ( select kzsrorol from x$kzsro ) ) or /* user has system privileges */ exists (select null from v$enabledprivs where priv_number in (-45 /* LOCK ANY TABLE */, -47 /* SELECT ANY TABLE */, -48 /* INSERT ANY TABLE */, -49 /* UPDATE ANY TABLE */, -50 /* DELETE ANY TABLE */) ) )