COST NUMBER(10)
В словаре данных хранится информация о самой базе данных. Словарь данных представляет собой набор таблиц, создаваемых во время генерации базы данных сервером Oracle. Сервер, также, заботится об обновлении информации в словаре. Пользователи могут обращаться прямо к словарю, чтобы получить необходимую информацию об объектах базы данных. Однако информация, хранящаяся в таблицах словаря сложна для понимания, поэтому рекомендуется пользоваться представлениями, которые позволяют извлекать данные из словаря в более удобном формате. Существует четыре категории представлений, каждая из которых обозначается своим префиксом:
§ USER_ - объекты, принадлежащие пользователю, т.е. те, которые пользователь создал сам
§ ALL_ - объекты, к которым пользователь имеет доступ, т.е. собственные объекты и объекты, на доступ к которым у пользователя есть привилегия
§ DBA_ - все объекты базы данных (только для пользователей с привилегией DBA)
§ V$ - информация о производительности сервера базы данных
SQL> SELECT object_name, object_type FROM user_objects;
OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------------
EMPLOYEE TABLE
EMPLOYEE_PROJECT TABLE
E_PK INDEX
E_P_PK INDEX
PROJECT TABLE
PROJECT_1 TABLE
P_PK INDEX
SP_PK INDEX
SUBPROJECT TABLE
9 rows selected.
SQL> SELECT constraint_name, constraint_type,
2 search_condition, r_constraint_name
3 FROM user_constraints;
CONSTRAINT_NAME C SEARCH_CONDITION R_CONSTRAINT_NAME
-------------------- - ------------------------- --------------------
E_L_NN C "LAST_NAME" IS NOT NULL
E_F_NN C "FIRST_NAME" IS NOT NULL
E_PK P
E_M_FK R E_PK
E_P_PK P
E_P_ID_EMP_FK R E_PK
E_P_ID_PR_FK R P_PK
P_NAME_NN C "NAME" IS NOT NULL
P_PK P
SP_NAME_NN C "NAME" IS NOT NULL
SP_PK P
SP_ID_P_FK R P_PK
12 rows selected.
SQL> SELECT constraint_name, column_name
2 FROM user_cons_columns;
CONSTRAINT_NAME COLUMN_NAME
-------------------- ------------------------------
E_F_NN FIRST_NAME
E_L_NN LAST_NAME
E_M_FK MANAGER
E_PK ID
E_P_ID_EMP_FK ID_EMP
E_P_ID_PR_FK ID_PR
E_P_PK ID_EMP
E_P_PK ID_PR
P_NAME_NN NAME
P_PK ID
SP_ID_P_FK ID_PROJECT
SP_NAME_NN NAME
SP_PK ID
SP_PK ID_PROJECT
14 rows selected.
Структуру созданной таблицы можно изменить с помощью команды ALTER TABLE.
Эта команда позволяет:
§ добавлять столбцы и менять их ширину
§ добавлять и удалять ограничения
§ разрешать и запрещать действие ограничений
С помощью команды ALTER TABLE нельзя:
§ удалять столбцы
§ менять ограничения
Команда ALTER TABLE так же, как и CREATE TABLE, является командой языка определения данных (DDL).
Для добавления столбца используется ключевое слово ADD. Новый столбец добавляется в конец таблицы.
ALTER TABLE [схема.]таблица ADD (столбец тип_данных [DEFAULT выражение] [NOT NULL], ...);
SQL> ALTER TABLE project ADD (comments VARCHAR2(250));
Table altered.
SQL> DESC project
Name Null? Type
------------------- -------- -----------------
ID NOT NULL NUMBER(7)
NAME NOT NULL VARCHAR2(20)
COST NUMBER(10)
COMMENTS VARCHAR2(250)
Для изменения определения столбца используется ключевое слово MODIFY.
ALTER TABLE [схема.]таблицаMODIFY (столбец тип_данных [DEFAULT выражение] [NOT NULL], ...);
Команда позволяет:
§ Увеличить ширину столбца или точность численных значений
§ Уменьшить ширину столбца, если он содержит неопределенные значения или таблица не содержит строк
§ Изменить тип данных, если столбец содержит неопределенные значения
§ Изменить значения по умолчанию для последующих вставок строк
§ Задать ограничение NOT NULL, если столбец не содержит неопределенных значений
SQL> ALTER TABLE project MODIFY (comments VARCHAR2(300));
Table altered.
SQL> DESC project
Name Null? Type
------------------- -------- ------------------
ID NOT NULL NUMBER(7)
NAME NOT NULL VARCHAR2(20)
COST NUMBER(10)
COMMENTS VARCHAR2(300)
Вы можете добавить или удалить любое ограничение, кроме NOT NULL, с помощью ключевых слов ADD и DROP. Изменить существующее ограничение нельзя. Oграничение NOT NULL можно добавить или удалить, модифицировав соответствующий столбец (ALTER TABLE … MODIFY).
ALTER TABLE [схема.]таблица ADD [CONSTRAINT ограничение] тип (столбец);
ALTER TABLE [схема.]таблица DROP PRIMARY KEY | UNIQUE (столбец) |
CONSTRAINT
ограничение [CASCADE];
SQL> DESC t1
Name Null? Type
-------------- -------- -----------------
FIRST NUMBER
SECOND NUMBER
SQL> DESC t2
Name Null? Type
-------------- -------- -----------------
FIRST NUMBER
NAME VARCHAR2(20)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.