РУКОВОДСТВО РАЗРАБОТЧИКА ИНФОРМАЦИОННЫХ СИСТЕМ СУБД ORACLE

       

ОПЕРАТОРЫ СОЗДАНИЯ ОБЪЕКТОВ БД.


Перед тем как работать с данными с БД ее надо создать, для этих целей используется специальная группа операторов, предназначенных для создания объектов базы данных, все операторы данной группы начинаются с ключевого слова CREATE.

CREATE DATABASE

Создает базу данных. Задает и определяет максимальное число экземпляров файлов данных и журнальных файлов, устанавливает режим архивирования.

Filespec (файлы данных)::=

Filespec (журнальные файлы)::=

-- Скрипт создания БД CLINICS spool clinic.log connect internal startup nomount pfile=/oracle/dbs/initclinic.ora -- создаем базу данных с именем clinics create database "clinics" maxinstances 1 maxlogfiles 10 character set "RU8PC866" national character set "RU8PC866" datafile '/oracle/db/system01.dbf' size 100M logfile '/oracle/db/lo g01.dbf' size 1M, '/oracle/db/log02.dbf' size 1M; disconnect spool off

CREATE TABLESPASE

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

CREATE USER

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

CREATE ROLE



CREATE SCHEMA

Создает несколько таблиц и представлений и предоставляет некоторые привилегии в одной транзакции.

CREATE TABLE

Создает новую таблицу БД, определяя ее столбцы, правила целостности и параметры хранения.

Пример:

create table DOCTORS(
DC_NNN NUMBER(12,0)
, DC_DC_NNN NUMBER(12,0)
, DC_NAME VARCHAR2(255)
, DC_CS_NNN NUMBER(12,0)
, DC_DIPLOMA_NUMBER NUMBER(12,0)
, DC_SPECIALTY_NNN NUMBER(12,0)
, DC_SHAT_NNN NUMBER(12,0)
, DC_CALENDAR NUMBER(12,0)

) tablespace users;

CREATE SYNONYM

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

Пример: Сначала удаляем публичный синоним для таблицы DOCTORS, а потом его заново создаем.


drop public synonym DOCTORS; create public synonym DOCTORS for DOCTORS;

CREATE INDEX

Создает индекс для заданных столбцов таблицы или кластера.







Пример:

create UNIQUE index I_DOCTORS on DOCTORS ( DC_NNN ) tablespace users;

CREATE TRIGGER

Создает триггер базы данных.



CREATE SEQUENCE

Создает новую последовательность для генерации первичных ключей.





Пример:

create sequence S_DOCTORS;

Пример: Приведем полный текст скрипта для создания триггера для таблицы DOCTORS, который будет следить за автоматическим увеличением значения поля DC_NNN на единицу при добавлении каждой новой записи в таблицу DOCTORS, что потребует от нас использование и такой конструкции - как сиквенс (генератор последовательностей).

-- Сначала удаляем предыдущие изменения в базе (если конечно они были сделаны) drop sequence S_DOCTORS; drop trigger tr_DC_NNN; drop public synonym DOCTORS; -- создаем таблицу -- назначаем права доступа -- создаем публичный синоним CREATE PUBLIC SYNONYM DOCTORS FOR DOCTORS; -- создаем сиквенс и устанавливаем его начальное значение в единицу create sequence S_DOCTORS start with 1; -- создаем индексы create unique index i_dc_nnn on doctors(dc_nnn); create index i_dc_name on doctors(dc_name); -- создаем триггер create trigger tr_dc_nnn before insert on doctors for each row begin select dc_nnn.nextval into :new.dc_nnn from dual; end; /


Содержание раздела