- •Введение
- •Лабораторное занятие № 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
- •Задания в тестовой форме
- •Литература Оглавление
Удаление столбца
Удалить столбец YearBegin
alter table Student
drop column YearBegin
Удаление таблицы
Таблица удаляется с помощью команды DROP. Одной командой можно удалить сразу несколько таблиц. Однако вы не сможете удалить таблицу, если на нее есть ссылки из других таблиц. То есть вам сначала придется удалить соответствующий внешний ключ в ссылочной таблице и только после этого выполнить команду DROP.
Синтаксис команды:
DROP TABLE<имя таблицы>[, <имя таблицы>]
Пример 37
Задача.
Удалить таблицу Subject.
Решение.
На таблицу Subject ссылается как таблица Progress, так и таблица UPlan. В связи с этим удалению таблицы Subject должно предшествовать удаление ограничения ProgressSubjectForeign из таблицы Progress и ограничения Plan SubjectForeign из таблицы UPlan.
ALTER TABLE Progress
DROP CONSTRAINT ProgressSubjectForeign
ALTER TABLE UPlan
DROP CONSTRAINT PlanSubjectForeign
И, наконец,
DROP TABLE Subject
Переименование таблицы
Иногда приходится корректировать не только ограничения и структуру таблицы, но и ее имя. Для переименования таблиц используется системная хранимая процедура SP_RENAME. Однако в этом случае следует быть предельно осторожным, так как в этом случае необходимо корректировать и все ограничения, ссылающиеся на эту таблицу.
Синтаксис команды:
EXEC SP_RENAME 'старое имя',' новое имя' ;
Пример 38
Задача.
Переименовать таблицу Subject в Subject05 и восстановить первоначальное имя таблицы.
Решение.
EXEC SP_RENAME 'Subject','Subject05';
В ответ на выполнение этой команды система генерирует сообщение, где предупреждает о возможных последствиях изменения имени:
Caution: Changing any part of an object name could break scripts and stored procedures. The object was renamed to 'Subject05'.
EXEC SP_RENAME 'Subject05','Subject';
Задание 13
Переименовать таблицу Progress в таблицу Uspev.
Задание 14
Восстановить прежнее название переименованной в предыдущем задании таблицы (см.Задание 13) (Progress).
Вопросы для самоконтроля к лабораторной работе № 3
Каково основное назначение команды ALTER?
Какие ограничения подлежат корректировке?
Каковы правила назначения ограничения NULL/NOT NULL?
Когда нельзя изменить ширину столбца в таблице?
Какие существуют ограничения на изменения параметров столбца?
Как можно отменить действие ограничения?
Лабораторная работа № 4
Цель занятия: Изучить команды формирования запросов к базе данных (SELECT) .
Команда SELECT позволяет реализовывать все операторы реляционной алгебры над отношениями (таблицами) базы данных. Обязательными предложениями команды SELECT являются предложения SELECT и FROM. В самой простой форме, команда SELECT используется для того, чтобы извлечь информацию из таблицы. Не обязательно использовать все предложения команды, но обязательно соблюдать их порядок следования, то есть предложение ORDERBYвсегда завершает командуSELECT, а предложениеHAVINGвсегда стоит послеGROUPBY, которое в свою очередь не может предшествовать предложениюWHEREи т.п.
Синтаксис команды SELECT:
SELECT [DISTINCT] *|<столбец> [<псевдоним>] [,<групповая функция>] [,…n]
FROM <таблица>[, …n]| (<подзапрос>)
[WHERE <условие>]
[GROUP BY<выражение группировки]
[HAVING <условие отбора группы>]
[ORDER BY < столбец >[,…n]]
Команда SELECT позволяет извлечь определенную информацию из таблицы. Например, просмотреть содержимое одного или нескольких столбцов, присвоив столбцам вывода имена отличные от имен атрибутов в таблице, но более информативные. Чтобы вывести содержание всех столбцов, можно заменить их перечисление знаком *. В этом случае столбцы будут выведены в том порядке, в котором они следуют в таблице. Если вы хотите изменить порядок, то придется перечислить имена столбцов в нужном порядке.
Предложение FROM используется для указания перечня таблиц, используемых в запросе и условия их соединения.
Пример 39
Задача.
Вывести все записи из отношения Progress.
Решение.
1 вариант:
SELECT * FROM Progress;
Результат реализации запроса:
2 вариант:
SELECT IDReport, IDSubject, NRecordBook, NTerm, PIN, Mark
FROM Progress;
Результат реализации запроса:
Пример 40
Задача.
Вывести названия предметов из таблицы Subject.
Решение.
SELECT NameSubject
FROM Subject ;
Результат реализации запроса:
Пример 41
Задача.
Вывести список студентов из таблицы Student, присвоив столбцу вывода имя ФИО.
Решение.
SELECT StName ФИО
FROM Student;
Результат реализации запроса:
Отдельно следует остановиться на предложении DISTINCT, которое позволяет вывести уникальные значения на множестве атрибутов, заданном в предложении SELECT.
Пример 42
Задача.
Вывести значения оценок, которые когда-либо выставлялись студентам.
Решение.
SELECT Mark Оценка
FROM Progress;
Результат реализации запроса:
Результатом этого запроса будет множество повторяющихся значений оценок, в то время как нас интересует только их присутствие в исходном множестве, поэтому целесообразно этот запрос выполнить следующим образом:
SELECT DISTINCT Mark Оценка
FROM Progress;
Результат реализации запроса: