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

4. Команда создания таблицы. Синтаксис, подробное описание секций команды. Примеры.

CREATE [TEMPORARY] TABLE таблица (поле_1 тип [(размер)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [индекс_1] [, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [, ...]] [, CONSTRAINT составнойИндекс [, ...]])

Ниже перечислены аргументы инструкции CREATE TABLE:

таблица

Имя создаваемой таблицы.

поле_1, поле_2

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

тип

Тип данных поля в новой таблице.

размер

Размер поля в знаках (только для текстовых и двоичных полей).

индекс_1, индекс_2

Предложение CONSTRAINT, предназначенное для создания простого индекса. Для получения более подробных сведений смотрите описание предложения CONSTRAINT.

составнойИндекс

Предложение CONSTRAINT, предназначенное для создания составного индекса. Для получения более подробных сведений смотрите описание предложения CONSTRAINT.

Инструкция CREATE TABLE используется для описания новой таблицы, ее полей и индексов. Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать допустимые данные.

Предложение CONSTRAINT устанавливает различные ограничения на поле и может быть использовано для определения ключа. Кроме того, для создания ключа или дополнительного индекса для существующей таблицы можно использовать инструкцию CREATE INDEX.

Допускается использование ограничения NOT NULL для одиночного поля, а также внутри именованного предложения CONSTRAINT, которое применяется к одиночному полю или к именованному предложению CONSTRAINT, предназначенному для создания составного индекса. Однако ограничение NOT NULL можно наложить на поле только один раз. При попытке применить это ограничение несколько раз возникает ошибка выполнения.

Создаваемая временная (TEMPORARY) таблица будет доступна только в том сеансе, где эта таблица была создана. По завершении данного сеанса она автоматически удаляется. Временные таблицы могут быть доступны для нескольких пользователей.

Использование атрибута WITH COMPRESSION допускается только для типов данных CHARACTER и MEMO (он же TEXT) и их синонимов.

Атрибут WITH COMPRESSION был добавлен к столбцам CHARACTER вследствие перехода к формату представления знаков Юникод. Каждый знак в формате Юникод всегда кодируется с помощью двух байтов.

пример

create table subjects (id_subj int PRIMARY KEY IDENTITY, subject varchar(50))

5. Команда изменения структуры таблицы. Синтаксис, подробное описание секций команды. Примеры.

ALTER TABLE таблица {ADD {COLUMN тип поля[(размер)] [NOT NULL]     [CONSTRAINT индекс] |     ALTER COLUMN тип поля[(размер)] |     CONSTRAINT составнойИндекс} |     DROP {COLUMN поле I CONSTRAINT имяИндекса} }

Ниже перечислены аргументы инструкции ALTER TABLE:

Элемент

Описание

таблица

Имя изменяемой таблицы.

поле

Имя поля, добавляемого в таблицу или удаляемого из нее. Имя поля, заменяемого в таблице.

тип

Тип данных поля.

размер

Размер поля в знаках (только для текстовых и двоичных полей).

индекс

Индекс для поля. Для получения более подробных сведений о создании индекса смотрите описание предложения CONSTRAINT.

составнойИндекс

Описание составного индекса, добавляемого к таблице. Для получения более подробных сведений о создании индекса смотрите описание предложения CONSTRAINT.

имяИндекса

Имя составного индекса, который следует удалить.

С помощью инструкции ALTER TABLE существующую таблицу можно изменить несколькими способами. Например:

  • Добавить новое поле в таблицу с помощью предложения ADD COLUMN. В этом случае укажите имя поля, его тип и (для текстовых и двоичных полей) необязательный размер. Например, следующая инструкция добавляет в таблицу «Сотрудники» текстовое поле «Примечания» длиной 25 знаков:

  • ALTER TABLE Сотрудники ADD COLUMN Примечания TEXT(25)

  • Кроме того, можно создать индекс по этому полю. Для получения более подробных сведений о простых индексах смотрите описание предложения CONSTRAINT.

  • Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать допустимые данные.

  • Для изменения типа существующего поля используйте инструкцию ALTER COLUMN. В этом случае укажите имя поля, его тип и (для текстовых и двоичных полей) необязательный размер. Например, следующая инструкция позволяет в таблице «Сотрудники» изменить тип поля «Почтовый индекс» (первоначально определенный как INTEGER), переопределив это поле как текстовое длиной 10 знаков:

  • ALTER TABLE Сотрудники ALTER COLUMN ПочтовыйИндекс TEXT(10)

  • Добавить составной индекс с помощью зарезервированных слов ADD CONSTRAINT. Для получения более подробных сведений о составных индексах смотрите описание предложения CONSTRAINT.

  • Удалить поле с помощью зарезервированных слов DROP COLUMN. В этом случае укажите только имя поля.

  • Удалить составной индекс с помощью зарезервированных слов DROP CONSTRAINT. В этом случае укажите только имя составного индекса, следующее за зарезервированным словом CONSTRAINT.

Нельзя добавить или удалить одновременно несколько полей или индексов.

Пример if exists(SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'STUDENT' and CONSTRAINT_NAME = 'chk_recordbook_num')

alter table STUDENT drop constraint chk_recordbook_num

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]