Назначение
Изменить определение таблицы. Таблицы изменяются в 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);
Язык SQL Oracle. Назначение и возможности команды DROP TABLE. Пример
Назначение
Удаление таблицы и всех содержащихся в ней данных.
Предварительные требования
Таблица должна находиться в вашей схеме, иначе вы должны иметь системную привилегию DROP ANY TABLE.
Ключевые слова и параметры
schema |
Схема, содержащая таблицу. Если schema отсутствует, Oracle предполагает, что таблица находится в вашей схеме. |
table |
Имя удаляемой таблицы. Oracle автоматически выполняет следующие действия:
|
CASCADE CONSTRAINTS |
Удаляет все референциальные ограничения целостности, которые ссылаются на первичные и уникальные ключи удаляемой таблицы. Если эта фраза отсутствует и такие референциальные ссылки существуют, Oracle возвращает ошибку и таблица не удаляется. |
Если при удалении таблица имеет первичные или уникальные ключи, то Оракл возвращеет ошибку удаления, если не указать параметры удаления CASCADEили CONSTRAINS.
drop table FACULTY;
Язык SQL Oracle. Правила именования объектов базы данных
В базе данных могут присутствовать следующие типы объектов:
таблицы (tables)
представления (views)
хранимые процедуры (stored procedures)
функции пользователей (user functions)
иные объекты
Предлагаются следующие общие правила именования объектов.
1. Имя объекта составляется из трех частей:
префикс типа объекта + префикс проекта + название объекта
Префикс типа объекта указывает, к какому типу относится данный объект. Предлагается использовать следующие префиксы:
|
Префикс проекта используется, когда в одной базе данных содержатся объекты, относящиеся к разным проектам. В частности, в разрабатываемой нами системе были объекты, относящиеся к управлению работой ВУЗом и объекты, относящиеся к анкетированию студентов, которые не входили в систему управления, но использовали некоторые ее таблицы.
После префикса проекта рекомендуется ставить символ подчеркивания ("_").
2. Название объекта должно отражать суть или назначение данного объекта.
3. Название объектов составляются из одного или нескольких слов, причем сокращения не допускаются. Сокращения могут применяться только в том случае, если название получается очень длинным (больше 25-30 символов). Первые буквы слов пишутся заглавными, остальные — строчными, либо разделение слов производится с помощью символа подчеркивания ("_").
4. Наименования полей, параметров и т.д. подчиняются правилу 3, но допускаются сокращения без потери смысла.
Выбор имени сущности
Обычно в результате нормализации каждая таблица ассоциируется с неким объектом или событием реального мира - человеком, документом, посещением и т.д., то есть "сущностью". Основой для дальнейших рассуждений будет "имя сущности" - идентификатор из латинских букв и цифр, например 'man', 'doc', 'visit'. При выборе имени сущности разумно придерживаться таких правил:
Имя должно быть существительным (полным, сокращенным либо аббревиатурой) в единственном числе.
Имя должно быть как можно короче. Оптимально - 2-4 буквы, максимум до 10.
Имя должно быть уникальным в пределах базы данных.
Имя должно быть мнемонически понятным проектантам без заглядывания в словарь (но словарь такой хорошо бы составить).
Желательно, чтобы имена не начинались и не заканчивались на другие имена сущностей
Язык 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) ); ПРИМЕРИ к :
Язык 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) );
Язык SQL Oracle. Ограничение целостности PRIMARY KEY. Синтаксис и семантика. Пример.
Язык 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) );