Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Локальные временные таблицы

Лекция 9

Модификация таблиц

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

Для внесения изменений в уже созданные таблицы стандартом SQL предусмотрен оператор ALTER TABLE, предназначенный для выполнения следующих действий:

· добавление в таблицу нового столбца:

· удаление столбца из таблицы;

· добавление в определение таблицы нового ограничения;

· удаление из определения таблицы существующего ограничения;

· задание для столбца значения по умолчанию;

· отмена для столбца значения по умолчанию.

 

Оператор изменения таблицы имеет следующий обобщенный формат:

 

ALTER TABLEимя_таблицы

 

[ADD [COLUMN]имя_столбца

[ NOT NULL ] [UNIQUE]

[ DEFAULT<значение>]

[CHECK(<условие_выбора>) ] ]

 

[ DROP [ COLUMN] имя_столбца [RESTRICT CASCADE ]]

[ADD[CONSTRAINT[имя_ограничения] ]

[{PRIMARY KEY(имя_столбца [,...n]) | [UNIQUE(имя_столбца [, . ..n])}

| [FOREIGN KEY (имя_столбца_внешнего_ключа [,...n])

REFERENCES имя_род_таблицы [ (имя_столбца_род_таблицы [,...n] ) ] ,

[ MATCH { PARTIAL | FULL}

 

[ON UPDATE {CASCADE | SET NULL | NO ACTION}]

[ON DELETE {CASCADE | SET NULL | NO ACTION}]

| [CHECK(<условие_выбора>)] [,…n] }]

 

[DROP CONSTRAINT имя_ограничения

RESTRICT | CASCADE]]

[ALTER[COLUMN] SET DEFAULT <значение>]

[ALTER[COLUMN] DROP DEFAULT]

 

Здесь параметры имеют то же самое назначение, что и в определении

оператора CREATE TABLE.

 

Оператор alter table реализован не во всех диалектах языка SQL.

В некоторых диалектах он поддерживается, однако не позволяет

удалять из таблицы уже существующие столбцы,

 

Помните, что вы не сможете удалить ограничение первичного ключа при наличии ограни­чений внешнего ключа, ссылающегося на него.

Дополнение таблиц

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

 

Например:

 

ALTER TABLEAuthor

ADD

[ИНН] char (16) NULL

CONSTRAINT inn CHECK[ИНН] LIKE '78%',

[Пол] bit NULL

 

В этой команде добавляются два новых столбца: для хранения информации об ИНН и поле автора. А для столбца ИНН устанавливается ограничение: ИНН должен начинаться с цифр 78.

Новые столбцы могут представлять собой вычисляемые выражения и объяв­ляться с ограничениями уровня столбцов.

Удаление отдельных полей из таблицы

Из созданной таблицы можно удалить столбцы или ограничения.

При удале­нии ограничений следует помнить, что выполнению команд могут помешать некоторые зависимости. Например, если столбец является первичным клю­чом, вы должны удалить это ограничение (ограничение первичного ключа) до удаления столбца.

Если в другой таблице существует ссылка на столбец, SQL Server также не позволит уда­лить его до снятия ограничения.

 

Примеры команды alter tabledrop:

ALTER TABLE Authors DROP CONSTRAINT inn

ALTER TABLE Authors DROP COLUMN [ИНН]

Модификация столбцов

Иногда требуется изменить тип данных столбца. Неверный тип приводит к неэффективному хранению данных, или же данные могут оказаться слиш­ком большими и не помещаться в столбцах. Для этого можно использовать команду alter table.

Например, выяснилось, что не хватает 50 символов для хранения имени авто­ра. У издательства появился новый автор с экзотическим именем длиной 100 символов. Вам необходимо увеличить размер столбца, в котором хранит­ся имя.

 

Вот команда, которая делает это:

ALTER TABLE Authors

ALTER COLUMN FirstName varchar(100)

 

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

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

Временные таблицы

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

 

Временные таблицы создаются, удаляются и используются как обычные таблицы.

Перечислим главные отличия временных таблиц от обычных:

· имя временной таблицы должно начинаться с символов # или ##;

· длина имени временной таблицы ограничивается 116 символами;

· временные таблицы удаляются при отключении пользователя от базы данных;

· временные таблицы используются так, как будто они входят в текущую базу данных, однако в действительности данные хранятся в базе TEMT_DB.

 

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

Локальные временные таблицы

Иногда бывает необходимо создавать локальную временную таблицу для помещения в неё обрабатываемую информацию.

Такие таблицы будут доступны лишь для своего владельца.

Имена локальных временных таблиц должны начинаться с префикса #.

В следующем примере создается локальная временная таблица с именем # TEMPL:

 

CREATE TABLE # TEMPL ( a int NULL, b varchar(25) NULL)

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.