Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
всис-упор.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
727.54 Кб
Скачать

Редактирование таблиц

Для редактирования таблиц используется конструкция SQL – ALTER TABLE. Чтобы пользователь мог редактировать таблицу, она должна быть в его схеме, а у пользователя должна быть объектная привилегия ALTER TABLE, для редактирования таблиц принадлежащих другим пользователям требуется системная привилегия ALTER ANY TABLE.

Модификация определения существующего столбца

Для модификации определения существующего столбца используется конструкция ALTER TABLE … MODIFY. Для столбца можно изменить тип данных, значение по умолчанию или ограничение целостности.

Можно изменить размерность (длину) существующего столбца, при условии, что новая длина соответствует существующим данным. Можно изменит семантику для столбца с байтовой на символьную (CHAR), или наоборот. Чтобы уменьшить длину непустого столбца с типом данных CHAR, необходимо установить инициализационный параметр BLANK_TRIMMING=TRUE.

Если таблица изменяется для увеличения длины столбца с типом данных CHAR, то следует учитывать, что выполнение операции может занять длительное время и потребовать значительный объем дополнительного пространства. Это зависит от количества строк в таблице. Причина, добавление хвостовых пробелов, для соответствия новой длине.

Добавление столбцов таблицы

Для добавления столбца к существующей таблице используется конструкция ALTER TABLE … ADD.

Добавляемый столбец получает значение NULL, если не указано предложение DEFAULT, определяющее значение по умолчанию. Если задать значение по умолчанию, то каждая строка нового столбца примет это значение.

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

Переименование столбцов таблицы

Oracle позволяет переименовывать существующие столбцы таблицы. Для переименования используется предложение RENAME COLUMN в ALTER TABLE. Новое имя столбца не должно конфликтовать с уже существующими столбцами. Вместе с предложением RENAME COLUMN нельзя указывать другие предложения.

Переименование таблицы

Для переименования таблицы используется синтаксис похожий на конструкцию для переименования столбца таблицы. Что бы переименовать таблицу выполняется конструкция ALTER TABLE … RENAME TO.

Удаление столбцов таблицы

Столбцы, которые больше не нужны можно удалить из таблицы. Это хороший способ для освобождения пространства в базе данных. Нельзя удалить из таблицы все столбцы сразу, а так же удалять столбцы из таблиц принадлежащих пользователю SYS.

Удаление столбцов из таблицы

Для удаления используется конструкция ALTER TABLE … DROP COLUMN. В результате удаляется дескриптор столбца и данные, связанные с целевым столбцом. В одной конструкции можно удалить сразу несколько столбцов.

Удаление таблиц

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

Как показано ниже, Oracle поддерживает множество типов данных, в том числе большинство стандартных типов SQL 2003.

В FILE (тип данных SQL 2003: DATALINK)

Содержит указатель на объект типа BLOB, хранимый вне пределов базы данных, но находящийся на локальном сервере и имеющий размер до 4 Гб. База данных осуществляет потоковый доступ по чтению (но не по записи) к этому внешнему объекту. Если вы удалите строку, содержащую значение типа BFILE, будет удален только указатель. Исходная структура файлов не затрагивается.

BINARY'FLOAT(тип данных SQL 2003: FLOAT)

Хранит 32-битное число с плавающей точкой. BINARY DOUBLE (тип данных SQL 2003: FLOAT) Хранит 64-битное число с плавающей точкой.

BLOB (тип данных SQL 2003: BLOB)

Храпит большой двоичный объект (binary large object, BLOB) размером от 8 до 128 терабайт в зависимости от размера блока в базе данных. В Oracle большие двоичные объекты (BLOB, CLOB, NCLOB) имеют следующие ограничения.

Их нельзя выбирать с удаленной машины.

Их нельзя сохранять в кластерах.

Их нельзя объединять в типе varray.

Они не могут быть компонентом предложений ORDER BYw GROUP BY ъ запросе.

Их нельзя использовать в агрегатных функциях запроса.

На них нельзя ссылаться в запросах при помощи инструкций DISTINCT wUNIQUE или в соединениях.

На них нельзя ссылаться в предложениях ANALYZE…COMPUTE и ANALYZE… ESTIMATE.

Они не могут быть частью первичного ключа или ключа индекса.

Их нельзя использовать в предложении UPDATE OF триггера UPDATE.

CHAR(n)[BYTE I CHAR], СНАRACTER(n)[BYTE CHAR] (тип данных SQL 2003: CHARA CTER(n))

Хранит массив символьных данных фиксированной длины до 2000 байт. При указании атрибута BYTE длина массива измеряется в байтах. При указании атрибута CHAR длина измеряется в символах.

CLOB (тип данных SQL 2003: CLOB)

Хранит большой символьный объект (large character object, CLOB) размером от 8 до 128 терабайт в зависимости от размера блока в базе данных. См. список ограничений использования типа CLOB в пункте «BLOB».

DATE (тип данных SQL 2003: DATE)

Хранит дату и время в диапазоне от 00:00:00 01-01-4712 до н. э. до 23:59:59 31-12-9999.

DECIMALfp, s) (тип данных SQL 2003: DECIMALfp, s))

Синоним типа NUMBER, принимающий в качестве аргументов точность и масштаб.

DOUBLE PRECISION (тип данных SQL 2003: DOUBLE PRECISION)

Хранит значения с плавающей точкой двойной точности. То же, что FLOAT(126).

FLOAT(n) (тип данных SQL 2003: FLOAT(n))

Хранит числовые данные с плавающей точкой с двоичной точностью до 126.