- •Введение
- •Лабораторное занятие № 1
- •Описание учебного примера.
- •Удаление таблиц
- •Создание таблиц
- •Имена ограничений
- •Ограничения null и not null
- •Ограничение primary key
- •IdSubject, idReport, nTerm));
- •Ограничение unique
- •Ограничение Foreign key
- •Ограничение check
- •Вопросы для самоконтроля к лабораторной работе № 1
- •Лабораторная работа № 2
- •Команда вставки - insert
- •Команда обновления - update
- •Команда удаления - delete
- •Вопросы для самоконтроля к лабораторной работе № 2
- •Лабораторная работа №3
- •Команда alter table
- •Модификация ограничений
- •Добавление ограничений с ограниченной областью проверки
- •Отключение и подключение ограничений
- •Правила для изменения и модификации описания столбцов
- •Добавление столбца
- •Модификация столбца
- •Удаление столбца
- •Удаление таблицы
- •Переименование таблицы
- •Вопросы для самоконтроля к лабораторной работе № 3
- •Лабораторная работа № 4
- •Выборка данных из нескольких таблиц
- •Определение условий выборки в предложении where.
- •Групповые функции и предложение group by
- •Наиболее часто встречающиеся ошибки при выполнении group by
- •Предложение order by
- •Вопросы для самоконтроля к лабораторной работе № 4
- •Лабораторная работа № 5
- •Подзапросы
- •Inner join Student s
- •Inner join Student s
- •Inner join
- •Inner join Student s
- •Вопросы для самоконтроля к лабораторной работе № 5
- •Лабораторная работа №6
- •Представления
- •Вопросы для самоконтроля к лабораторной работе № 6
- •Лабораторная работа №7
- •Хранимые процедуры
- •Оператор use
- •Оператор declare
- •Операторы set и select
- •Функция @@identity
- •Функция @@error
- •Объявление параметров
- •Изменение хранимых процедур
- •Удаление хранимой процедуры
- •Лабораторная работа №8
- •If exists
- •Вопросы для самоконтроля к лабораторной работе № 8
- •Задания в тестовой форме
- •Литература Оглавление
Удаление таблиц
Прежде чем приступить к созданию таблиц познакомимся с командой удаления таблиц и других объектов базы данных, поскольку, выполняя учебный пример, нам неоднократно придется прежде, чем создавать таблицу, удалить предыдущую ее версию.
Синтаксис команды:
DROP TABLE<имя таблицы> [,<имя таблицы>]
Таким образом, одной командой мы можем удалить не одну, а несколько таблиц. Примеры применения этой команды приведены в следующем разделе.
Создание таблиц
Синтаксис команды CREATE TABLE для создания таблицы без ограничений:
CREATE TABLE [<имя базы данных>.[<имя владельца>| <имя владельца>]
<имя таблицы> ({<имя столбца> <тип данных> (<размер>)});
Пример 1
Задача.
Создать таблицу Subject 1 cо столбцами IDSubject, NameSubject.
Решение.
CREATE TABLE Subject
(IDSubject INT,
NameSubject VARCHAR (35));
Здесь и всегда сообщение об успешном выполнении команды CREATE имеет вид: The command(s) completed successfully.
Пример 2
Задача.
Создать таблицу Subject cо столбцами IDSubject (значение которого генерируется автоматически) и NameSubject.
Решение.
CREATE TABLE Subject
(IDSubject INT IDENTITY,
NameSubject VARCHAR (35));
Автоматическая генерация значения столбца IDSubject достигается за счет использования свойства IDENTITY, по умолчанию начальное значение, генерируемое с помощью IDENTITY равно 1, так же как и его приращение. Таким образом, следующее значение будет равно 2. Значения в IDENTITY-столбцах обязательно последовательные, то есть если приращение положительное, то следующее значение всегда больше предыдущего, если приращение отрицательное, то – всегда меньше. Приращение и начальное значение могут быть заданы, однако этот механизм чрезвычайно редко используется в реальных проектах.
Пример 3
Задача.
Создать таблицу Subject cо столбцами IDSubject (значение которого генерируется автоматически, начиная со значения 2 с шагом 2) и NameSubject.
Решение.
CREATE TABLE Subject
(IDSubject INT IDENTITY (2,2),
NameSubject VARCHAR (35));
Не нуждается в доказательстве, что таблица без ограничений не имеет смысла. Например, в таблице Subject – IDSubject является первичным ключом, другой атрибут NameSubject – потенциальным. В первом случае необходимо наложить ограничение PRIMARY KEY, во втором – UNIQUE, кроме того, целесообразно наложить ограничение NOT NULL на оба атрибута.
Синтаксис команды CREATE TABLE для создания таблицы c ограничениями:
CREATE TABLE [<имя базы данных>.[<имя владельца>] <имя таблицы>
({<имя столбца> <тип данных> (<размер>) [<ограничение для столбца>]}
[,…n])
[,<ограничение для таблицы>];
Ограничения на уровне таблицы целесообразно вводить, если они имеют отношения к нескольким столбцам. Ограничения для одного столбца рекомендуется устанавливать на уровне столбца. Все ограничения за исключением ограничения NULL/NOT NULL создаются как на уровне столбца, так и на уровне таблицы. Каждому созданному ограничению за исключением ограничений NULL/NOT NULL присваивается уникальное имя. Если вы хотите сами присвоить имя тому или иному ограничению, то необходимо при создании ограничения воспользоваться предложением CONSTRAINT. Синтаксис предложения CONSTRAINT, задающего в команде CREATE TABLE ограничения, как на уровне таблицы, так и на уровне столбца приведен ниже.
Синтаксис предложения CONSTRAINT:
[CONSTRAINT <имя ограничения>]
[PRIMARY KEY (<имя столбца>[, …n]) ]
[UNIQUE (<имя столбца>[, …n]) ]
[NOT NULL (<имя столбца>[, …n]) ]
[CHECK (<условие>)]
[FOREIGN KEY (<имя столбца, ссылающейся таблицы>[, …n])
REFERENCES <имя ссылочной таблицы> [(Имя столбца ссылочной
таблицы [, …n])]]
! Обратите внимание на то, что при задании ограничения на уровне таблицы перед предложением CONSTRAINT должна стоять запятая.
Если устанавливается несколько поименованных ограничений, то назначение каждого ограничения начинается с ключевого слова CONSTRAINT, ограничения разделяются друг от друга запятыми.