Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие по выполнению лабораторных работ по SQL.doc
Скачиваний:
167
Добавлен:
01.05.2014
Размер:
1.22 Mб
Скачать

Удаление столбца

Удалить столбец 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

  1. Каково основное назначение команды ALTER?

  2. Какие ограничения подлежат корректировке?

  3. Каковы правила назначения ограничения NULL/NOT NULL?

  4. Когда нельзя изменить ширину столбца в таблице?

  5. Какие существуют ограничения на изменения параметров столбца?

  6. Как можно отменить действие ограничения?

Лабораторная работа № 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;

Результат реализации запроса: