- •Типы данных mssqlServer2005. Названия, характеристики, области применения.
- •2. Операции в mssqlServer2005. Названия и назначение. Типы данных, для которых операции применимы. Примеры.
- •3. Приведение типов данных. Явное и неявное приведение типов данных. Функции casTи convert. Совместимость типов данных. Функции coalesce, case, isnull. Примеры.
- •4. Команда создания таблицы. Синтаксис, подробное описание секций команды. Примеры.
- •5. Команда изменения структуры таблицы. Синтаксис, подробное описание секций команды. Примеры.
- •6. Команда удаления таблицы и команды удаления данных из таблицы. Синтаксис, подробное описание секций команд. Примеры.
- •Дополнительные сведения
- •7. Commontableexpressions (cte). Их назначение и синтаксис описания. Ограничения при описании cte. Рекурсивные cteи ограничения при их описании. Примеры.
- •8. Команда извлечения данных из таблицы. Секция From, синтаксис, подробное описание. Использование горизонтальных и вертикальных объединений.Примеры.
- •Into имя_таблицы
- •9. Команда извлечения данных из таблицы. Синтаксис, подробное описание секций команды (кроме секции from). Примеры.
- •Into имя_таблицы
- •10. Команда добавления (вставки) данных в таблицу. Синтаксис, подробное описание секций команды. Примеры.
- •11. Команда изменения данных в таблице. Синтаксис, подробное описание секций команды. Примеры.
- •Дополнительные сведения
- •12. Курсоры. Необходимость их применения. Синтаксис описания (подробно). Общая схема работы с курсором. Команды и функции для работы с курсором. Примеры.
- •16. Триггеры. Необходимость их применения. Синтаксис команды создания / изменения logoNтриггеров (подробно). Синтаксис команды удаления триггера (подробно). Пример триггера.
- •20. Типы данных mssqlServer2008 (отличия от типов данных mssqlServer2005). Названия, характеристики, области применения.
- •21. Команды создания / изменения структуры таблиц (отличия в синтаксисе в mssqlServer2008 по сравнению с mssqlServer2005).
- •Типы данных mssqlServer2005. Названия, характеристики, области применения.
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