- •Вопросы для подготовки к экзамену
- •1) Бд и файловые системы
- •2) Субд определение, функции
- •3) Субд определение, классификация
- •4) Бд основные определения, классификация
- •5) Объекты базы данных
- •Пользователи – лица, обладающие доступом к бд Роли позволяют объединять пользователей в группы
- •6) Физическая структура базы данных
- •7) Структурная часть реляционной модели
- •8) Фундаментальные свойства отношений
- •9) Реляционная алгебра Кодда
- •1. Оператор соединения
- •11) Этапы разработки бд
- •12) Нормальные формы отношений
- •13) Модель сущность-связь
- •14) Технология "клиент-сервер"
- •15) Обзор ms sql Server, клиентские приложения, системные таблицы
- •3. Утилиты командной строки
- •16) Основы языка sql, типы команд
- •17) Основной синтаксис оператора select
- •18) Построение нетривиальных запросов с использованием оператора select
- •19) Операторы dml
- •20) Операторы ddl
- •21) Операторы ddl (определение структуры таблицы)
- •22) Индексы в среде ms sql Server
- •23) Представления
- •24) Сценарии
- •25) Хранимые процедуры
- •26) Понятие функции
- •27) Триггеры
- •28) Курсоры
21) Операторы ddl (определение структуры таблицы)
DDL (Data Definition Language, DDL) - язык определения данных, который позволяет создавать и изменять структуру объектов базы данных.
Создание таблицы
Таблица – основной объект для хранения информации в реляционной базе данных. Она состоит из содержащих данные строк и столбцов, занимает в базе данных физическое пространство и может быть постоянной или временной.
Поле, также называемое в реляционной базе данных столбцом, является частью таблицы, за которой закреплен определенный тип данных. Каждая таблица базы данных должна содержать хотя бы один столбец.
Строка данных – это запись в таблице базы данных, она включает поля, содержащие данные из одной записи таблицы.
CREATE TABLE
[ имя_базы_данных.[ владелец ] . | владелец. ] имя_таблицы
( { < определение_столбца >
| название_столбца AS выражение_для вычисляемого_столбца
| < табличное_ограничение > ::= [ CONSTRAINT имя_ограничения ] }
| [ { PRIMARY KEY | UNIQUE } [ ,...n ]
)
[ ON { файловая_группа | DEFAULT } ]
< определение_столбца > ::= { название_столбца тип_данных }
[ [ DEFAULT выражение_для_значения_по_умолчанию ]
| [ IDENTITY [ ( первоначальное_значение , инкремент )] ]
[ < ограничение_для_столбца > ] [ ...n ]
< ограничение_для_столбца > ::= [ CONSTRAINT имя_ограничения]
{ [ NULL | NOT NULL ]
| [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ]
[ON {filegroup | DEFAULT} ] ]
| [ [ FOREIGN KEY ]
REFERENCES имя_родительской_таьлицы [ ( назв_столбца ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ] ]
| CHECK ( логическое_выражение )
}
< табличное_ограничение > ::= [ CONSTRAINT имя_ограничения ]
{ [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ]
{ ( имя_столбца [ ASC | DESC ] [ ,...n ] ) }
[ ON {файловая_группа | DEFAULT } ] ]
| FOREIGN KEY
[ (имя_столбца [ ,...n ] ) ]
REFERENCES имя_родительской_таьлицы [ ( назв_столбца [ ,...n ] ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
| CHECK ( условие_проверки )
}
Изменение таблицы
ALTER TABLE имя_таблицы
{[ALTER COLUMN имя_столбца
{новый_тип_данных [(точность[,масштаб])] [ NULL | NOT NULL ]}]
| ADD { [имя_столбца тип_данных]
| имя_столбца AS выражение } [,...n]
| DROP {COLUMN имя_столбца}[,...n] }
Команда позволяет добавлять и удалять столбцы, изменять их определения.
При изменении определений столбцов следует принимать во внимание некоторые общепринятые правила:
размер столбца может быть увеличен до максимального значения, допускаемого соответствующим типом данных;
размер столбца может быть уменьшен только в том случае, если содержащееся в нем наибольшее значение не будет превосходить его нового размера;
количество разрядов числового типа данных всегда может быть увеличено;
количество разрядов числового типа данных может быть уменьшено только в том случае, если количество разрядов наибольшего значения в соответствующем столбце не будет превосходить нового числа разрядов, определенного для этого столбца;
количество десятичных знаков числового типа данных может быть уменьшено или увеличено;
тип данных столбца, как правило, может быть изменен.
Удаление таблицы
DROP TABLE имя_таблицы [RESTRICT | CASCADE]
Следует отметить, что эта команда удалит не только указанную таблицу, но и все входящие в нее строки данных.
Если в операторе указано ключевое слово RESTRICT, то при наличии в базе данных хотя бы одного объекта, существование которого зависит от удаляемой таблицы, выполнение оператора DROP TABLE будет отменено.
Если указано ключевое слово CASCADE, автоматически удаляются и все прочие объекты базы данных, чье существование зависит от удаляемой таблицы, а также другие объекты, зависящие от удаляемых объектов.
Чаще всего оператор DROP TABLE используется для исправления ошибок, допущенных при создании таблицы.