Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Блок 2.doc
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
119.81 Кб
Скачать

Назначение

Изменить определение таблицы. Таблицы изменяются в Oracle в следующих случаях:

  • Чтобы добавить один или более столбцов к таблице.

  • Чтобы добавить одно или более ограничений целостности к таблице.

  • Для изменения определения существующего столбца (тип данных, дина, значение по умолчанию, ограничение целостности NOT NULL) .

  • Для удаления ограничения целостности, связанного с таблицей.

  • Для удаления столбца.

После создания таблицы вы можете переопределить ее, например, добавляя новые столбцы и/или ограничения целостности, с помощью фразы ADD предложения ALTER TABLE. Вы можете изменить описание существующего столбца с помощью фразы MODIFY предложения ALTER TABLE.

alter table FACULTY add

(

Dean varchar2(2),

Fund number (7,2)

);

alter table FACULTY MODIFY Name varchar2(50);

  1. Язык SQL Oracle. Назначение и возможности команды DROP TABLE. Пример

Назначение

Удаление таблицы и всех содержащихся в ней данных.

Предварительные требования

Таблица должна находиться в вашей схеме, иначе вы должны иметь системную привилегию DROP ANY TABLE.

Ключевые слова и параметры

schema

Схема, содержащая таблицу. Если schema отсутствует, Oracle предполагает, что таблица находится в вашей схеме.

table

Имя удаляемой таблицы. Oracle автоматически выполняет следующие действия:

  • Удаляет все имеющиеся строки.

  • Удаляет все индексы таблицы и триггеры не зависимо от того, кто их создал и в какой схеме онги располагаются.

  • Если таблица является базовой для виртуальной таблицы или не нее имеются ссылки в хранимых процедурах или функциях, Oracle делает не доступными эти объекты, но не удаляет их. Вы не сможете воспользоваться такими объектами до тех пор, пока не восстановите таблицу или не удалите и восстановите эти объекты таким образом, чтобы они не зависели от удаленной таблицы.

CASCADE CONSTRAINTS

Удаляет все референциальные ограничения целостности, которые ссылаются на первичные и уникальные ключи удаляемой таблицы. Если эта фраза отсутствует и такие референциальные ссылки существуют, Oracle возвращает ошибку и таблица не удаляется.

Если при удалении таблица имеет первичные или уникальные ключи, то Оракл возвращеет ошибку удаления, если не указать параметры удаления CASCADEили CONSTRAINS.

drop table FACULTY;

  1. Язык SQL Oracle. Правила именования объектов базы данных

В базе данных могут присутствовать следующие типы объектов:

  1. таблицы (tables)

  2. представления (views)

  3. хранимые процедуры (stored procedures)

  4. функции пользователей (user functions)

  5. иные объекты

Предлагаются следующие общие правила именования объектов.

1. Имя объекта составляется из трех частей:

префикс типа объекта + префикс проекта + название объекта

Префикс типа объекта указывает, к какому типу относится данный объект. Предлагается использовать следующие префиксы:

Тип объекта

Префикс

Таблица

t

Представление

v

Хранимая процедура

p

Функция

f

Триггер

tr, trg

Индекс

i, ind, idx

Префикс проекта используется, когда в одной базе данных содержатся объекты, относящиеся к разным проектам. В частности, в разрабатываемой нами системе были объекты, относящиеся к управлению работой ВУЗом и объекты, относящиеся к анкетированию студентов, которые не входили в систему управления, но использовали некоторые ее таблицы.

После префикса проекта рекомендуется ставить символ подчеркивания ("_").

2. Название объекта должно отражать суть или назначение данного объекта.

3. Название объектов составляются из одного или нескольких слов, причем сокращения не допускаются. Сокращения могут применяться только в том случае, если название получается очень длинным (больше 25-30 символов). Первые буквы слов пишутся заглавными, остальные — строчными, либо разделение слов производится с помощью символа подчеркивания ("_").

4. Наименования полей, параметров и т.д. подчиняются правилу 3, но допускаются сокращения без потери смысла.

Выбор имени сущности

Обычно в результате нормализации каждая таблица ассоциируется с неким объектом или событием реального мира - человеком, документом, посещением и т.д., то есть "сущностью". Основой для дальнейших рассуждений будет "имя сущности" - идентификатор из латинских букв и цифр, например 'man', 'doc', 'visit'. При выборе имени сущности разумно придерживаться таких правил:

  1. Имя должно быть существительным (полным, сокращенным либо аббревиатурой) в единственном числе.

  2. Имя должно быть как можно короче. Оптимально - 2-4 буквы, максимум до 10.

  3. Имя должно быть уникальным в пределах базы данных.

  4. Имя должно быть мнемонически понятным проектантам без заглядывания в словарь (но словарь такой хорошо бы составить).

  5. Желательно, чтобы имена не начинались и не заканчивались на другие имена сущностей

  1. Язык SQL Oracle. Синтаксические формы определения ограничений целостности. Пример

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

(оганичение целосности на столбец):

create table faculty ( facno integer primary key, name varchar2(50) UNIQUE NOT NULL, dean varchar2(50) UNIQUE, building char(5), fund number(7,2) check(fund>=0) );

(присутствует ограничение целосности на таблицу)

create table department ( depno integer primary key, facno integer , name varchar2(50) not null, head varchar2(50), building char(5), fund number(7,2) check (fund >= 0), constraints con1 foreign key(facno) references faculty(facno) on delete cascade, constraints con2 unique(name,head) ); ПРИМЕРИ к :

  1. Язык SQL Oracle. Ограничение целостности UNIQUE. Синтаксис и семантика. Пример.

create table faculty ( facno integer primary key, name varchar2(50) UNIQUE NOT NULL, dean varchar2(50) UNIQUE, building char(5), fund number(7,2) check(fund>=0) );

  1. Язык SQL Oracle. Ограничение целостности PRIMARY KEY. Синтаксис и семантика. Пример.

  2. Язык SQL Oracle. Ограничение целостности FOREIGN KEY Синтаксис и семантика. Пример.

(примеры на оба вопроса)

create table department ( depno integer primary key, facno integer , name varchar2(50) not null, head varchar2(50), building char(5), fund number(7,2) check (fund >= 0), constraints con1 foreign key(facno) references faculty(facno) on delete cascade, constraints con2 unique(name,head) );

create table sgroup ( grpno integer primary key, depno integer, course number(1) check(course in (1,2,3,4,5)), num number(3), quantity number(2) check (quantity between 1 and 50), curator integer, rating number(3) default 0 check(rating between 0 and 100), constraints conn1 foreign key(depno) references department(depno) on delete set null, constraints conn2 foreign key(curator) references teacher (tchno) on delete set null, constraints conn3 unique(depno,num) );

16)Язык SQL Oracle. Ограничение целостности CHECK Синтаксис и семантика. Пример.

17)Язык SQL Oracle. Ограничение целостности NULL/NOT NULL Синтаксис и семантика. Пример.

(пример на оба вопроса)

create table faculty ( facno integer primary key, name varchar2(50) UNIQUE NOT NULL, dean varchar2(50) UNIQUE, building char(5), fund number(7,2) check(fund>=0) );