Пример удаления столбца

ALTER TABLE Студенты

DROP COLUMN Год_поступления

Оператор DROP TABLE

Для удаления таблиц используется операторDROP TABLE.

Синтаксис этого оператора имеет следующий вид:

DROP TABLE имя_таблицы

1.2. Задание ограничений

Ограничения используются для того, чтобы обеспечить достоверность и непротиворечивость информации в базе данных. Существует достаточно большое количество различного рода ограничений, из которых мы рассмотрим лишь основные:

1.ограничение NOT NULL;

2.ограничение первичного ключа;

3. ограничение UNIQUE;

4. ограничение внешнего ключа;

5. ограничение СНЕСК.

Oграничение NOT NULL

Ограничение NOT NULL может быть установлено для любого поля реляционной таблицы. При наличии этого ограничения запрещается ввод значений NULL в поле, для которого это ограничение установлено.

Ограничение первичного ключа

Так как поля, входящие в состав первичного ключа, не могут принимать значение NULL, то для них обязательным является ограничение NOT NULL.

Ограничение UNIQUE

Ограничение UNIQUE похоже на ограничение первичного ключа, так как при наличии этого ограничения для некоторого поля все значения, содержащиеся в это поле, должны быть уникальными. Однако, в отличие от первичного ключа, ограничение UNIQUE

допускает наличие пустых значений поля (если, конечно, для этого поля не установлено ограничение NOT NULL.

Ограничение UNIQUE задается при создании таблицы с помощью ключевого слова UNIQUE указываемого при описании поля:

Ограничение внешнего ключа

Ограничение внешнего ключа является основным механизмом для поддержания ссылочной целостности базы данных. Поле, определяемое в качестве внешнего ключа используется для ссылки на поле другой таблицы обычно называющееся родительским ключом, а таблица на которую внешний ключ ссылается, называется родительской таблицей (родительски ключ часто является первичным ключом родительской таблицы)

Типы полей внешнего и родительского ключа обязательно должны быть идентичны. А вот имена полей могут быть разными. Однако во избежание путаницы желательно и имена полей дл внешнего и родительского ключей задавать одинаковыми.

Внешний ключ не обязательно должен состоять только из одного поля. Подобно первичному ключу внешний ключ может состоять из любого числа полей, которые обрабатываются как единый объект. Поля родительского ключа, на который ссылается составной внешний ключ, должны следовать в том же порядке что и во внешнем ключе.

Когда поле таблицы является внешним ключом, оно определенным образом связано с таблицей на которую этот ключ ссылается. Это фактически означает, что каждое значение внешнего ключа непосредственно привязано к значению в родительском ключе.

Ограничение внешнего ключа FOREIGN KEY задается при создании таблицы.

Ограничение CHECK

Используется для проверки вводимых данных в таблицу.

1.3. Задание значений по умолчанию(DEFAULT)

При этом в поля таблицы при добавлении новой записи значения будут задаваться по умолчанию.

1.4.Создание и удаление индексов(INDEX)

1.5.Работа с представлениями

Таблицы без данных. Их содержимое выбирается из других таблиц(представлений)

Оператор CREATE VIEW.

CREATE VIEW имя_представления AS

{ оператор выборки данных}

1.6. Хранимые процедуры

Хранимые процедуры (Stored Procedure) представляют собой группы связанных операторов SQL. Использование хранимых процедур обеспечивает дополнительную гибкость при работе с базой данных, так как выполнить хранимую процедуру обычно гораздо проще, чем последовательность отдельных операторов SQL.

Хранимые процедуры хранятся в базе данных в откомпилированном виде, что обеспечивает более высокую скорость их выполнения.

Хранимые процедуры могут получать входные параметры, возвращать значения приложению и могут быть вызваны явно из приложения или подстановкой вместо имени таблицы в инструкции SELECT.

Основные преимущества, которые дает использование хранимых процедур, заключаются в следующем:

1. хранимые процедуры позволяют вынести часть логики на сервер базы данных. Это ослабляет зависимость базы данных информационной системы от клиентской части;

2. хранимые процедуры обеспечивают модульность проекта: они могут быть общими для клиентских приложений, которые обращаются к одной и той же базе данных, что позволяет избегать повторяющегося кода и уменьшает размер приложений;

3. хранимые процедуры упрощают сопровождение приложений: при обновлении процедур изменения автоматически отражаются во всех приложениях, которые их используют, без необходимости повторной компиляции и сборки;

4. хранимые процедуры повышают эффективность работы информационной системы: они выполняются сервером, а не клиентом, что снижает сетевой трафик;

5. скорость выполнения хранимых процедур выше, чем для последовательности отдельных операторов SQL. Это связано с тем, что хранимые процедуры хранятся на сервере в откомпилированном виде.

Различают два вида хранимых процедур:

1.процедуры выбора, которые приложения могут использовать вместо таблиц или представлений в операторе выборки данных. Процедура выбора должна воз вращать одно или несколько значений, иначе результатом выполнения процедуры будет ошибка;

2. выполняемые процедуры, которые вызываются явно с использованием специального оператора. Выполняемая процедура может не возвращать результата вызываемой программе.

Создание хранимых процедур

Для создания хранимых процедур используется оператор CREATE PROCEDURE. Синтаксис этого оператора сильно зависит от используемой реализации поэтому мы не будем его подробно рассматривать.

Оператор CREATE PROCEDURE определяет новую хранимую процедуру в базе данных. Язык процедур сильно зависит от реализации но, как правило, включает все инструкции для манипулирования данными и ряд расширений, включающих:

-условные операторы;

- различные виды операторов цикла;

- возможности обработки исключительных ситуаций.

Хранимые процедуры состоят из заголовка и тела. Заголовок процедуры содержит:

- имя процедуры, которое должно быть уникальным среди имен процедур и таблиц в базе данных;

- список входных параметров и их типов данных, которые процедура принимает из вызывающей программы (может отсутствовать);

- список выходных параметров и их типов данных, если процедура возвращает значения в вызывающую программу.

Тело процедуры содержит:

-список локальных переменных и их типов данных (если они используются в коде процедуры);

-блок инструкций на языке процедур и триггеров, заключенный между ключевыми словами BEGIN и END. Блок может включать в себя другие блоки, реализуя несколько уровней вложенности.

Выполнение хранимых процедур

Оператор, запускающий хранимую процедуру на выполнение, зависит от типа процедуры. Процедуры выбора выполняются при обращении к ним с помощью оператора выборки данных SELECT.

Для вызова выполняемой процедуры используется оператор EXECUTE.

1.7. Триггеры

Триггеры представляют собой разновидность хранимых процедур. Однако в отличие от хранимых процедур выполнение триггера происходит не в результате явного вызова некоторого оператора SQL, а при выполнении одного из операторов манипулирования данными, вносящими изменения в базу данных. При этом триггеры могут исполняться как до, так и после выполнения оператора манипулирования данными.

Триггеры используются для обеспечения ссылочной целостности данных в базе.

Они предоставляют следующие возможности:

-возможность контроля вводимых данных, чтобы гарантировать, что пользователь ввел в поля таблицы только допустимые значения;

-упрощение сопровождения приложений, так как изменение в триггере автоматически отражается во всех приложениях, которые используют таблицы со связанными с ними триггерами;

-автоматическое документирование изменений таблицы. Приложение может

управлять журналом изменений с помощью триггеров, которые выполняются

всякий раз, когда происходит изменение таблицы.

Создание триггера

Для создания триггера используется оператор CREATE TRIGGER.

Синтаксис этого оператора существенно зависит от используемой реализации SQL.

Так же как и хранимые процедуры, триггеры состоят из заголовка и тела. Заголовок триггера содержит:

-имя триггера, уникальное внутри базы данных;

-имя таблицы, с которой связан триггер;

- инструкции, которые определяют, когда триггер будет выполняться (при выполнении какого оператора манипулирования данными и в какой момент времени — до или после выполнения оператора).

Тело триггера содержит:

- список локальных переменных и их типов данных (если они используются в коде триггера);

- блок инструкций на языке процедур и триггеров, заключенный между ключевыми словами BEGIN и END. Блок может содержать в себе другой блок, реализуя несколько уровней вложенности.

Таким образом, отличие триггера от хранимой процедуры заключается только в заголовке.

Триггер связан с таблицей. Владелец таблицы и любой пользователь, наделенный привилегиями на таблицу, автоматически имеют права выполнять связанные с ней триггеры.

ПРИМЕЧАНИЕ

После создания триггера в него нельзя внести изменения. Чтобы внести изменения в уже созданный триггер, необходимо удалить его и создать заново.

Удаление триггера

Для удаления триггера используется оператор DROP TRIGGER. Синтаксис этого оператора является достаточно общим для различных реализаций.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: