Ограничение проверочное (CHECK) и правила
Данное ограничение используется для проверки допустимости данных, вводимых в конкретный столбец таблицы, т.е. ограничение CHECK обеспечивает еще один уровень защиты данных. Ограничения целостности CHECK задают диапазон возможных значений для столбца или столбцов. В основе ограничений целостности CHECK лежит использование логических выражений. CREATE TABLE Клиент(КодКлиента INT IDENTITY(1,1) PRIMARY KEY, Фирма VARCHAR(50) NOT NULL, Фамилия VARCHAR(50) NOT NULL, Город VARCHAR(50) NOT NULL, Телефон CHAR(10) NOT NULL CHECK(Телефон LIKE '[1-9][0-9]-[0-9][0-9]-[0-9][0-9]'))Триггеры являются одной из разновидностей хранимых процедур. Их исполнение происходит при выполнении для таблицы какого-либо оператора языка манипулирования данными (DML). Триггеры используются для проверки целостности данных, а также для отката транзакций. CREATE TRIGGER Триггер_insON Сделка FOR INSERT ASIF @@ROWCOUNT=1BEGIN IF NOT EXISTS(SELECT * FROM inserted WHERE -inserted.количество<=ALL(SELECT Склад.Остаток FROM Склад,Сделка WHERE Склад.КодТовара=Сделка.КодТовара)) BEGIN ROLLBACK TRAN PRINT 'Отмена поставки: товара на складе нет' ENDEND13. Транзакции Характеристики транзакций описываются в терминах ACID (Atomicity, Consistency, Isolation, Durability – неделимость, согласованность, изолированность, устойчивость). Существуют три команды, которые используются для управления транзакциями: · COMMIT – для сохранения изменений; · ROLLBACK – для отмены изменений; · SAVEPOINT – для установки особых точек возврата. BEGIN TRANSAVE TRANSACTION point1В точке point1 сохраняется первоначальное состояние таблицы Товар DELETE FROM Товар WHERE КодТовара=2 SAVE TRANSACTION point2В точке point2 сохраняется состояние таблицы Товар без товаров с кодом 2. DELETE FROM Товар WHERE КодТовара=3 SAVE TRANSACTION point3В точке point3 сохраняется состояние таблицы Товар без товаров с кодом 2 и с кодом 3. DELETE FROM Товар WHERE КодТовара<>1 ROLLBACK TRANSACTION point3Происходит возврат в состояние таблицы без товаров с кодами 2 и 3, отменяется последнее удаление. SELECT * FROM ТоварОператор SELECT покажет таблицу Товар без товаров с кодами 2 и 3. ROLLBACK TRANSACTION point1Происходит возврат в первоначальное состояние таблицы. SELECT * FROM ТоварCOMMITПервоначальное состояние сохраняется.
14. SQL. Select, update, insert, delete Основные категории команд языка SQL: · DDL – язык определения данных; · DML – язык манипулирования данными; · DQL – язык запросов; · DCL – язык управления данными; · команды администрирования данных; · команды управления транзакциями Определение структур базы данных (DDL) Язык определения данных (Data Definition Language, DDL) позволяет создавать и изменять структуру объектов базы данных, например, создавать и удалять таблицы. Основными командами языка DDL являются следующие: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX. Манипулирование данными (DML) Язык манипулирования данными (Data Manipulation Language, DML) используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT, UPDATE, DELETE. Выборка данных (DQL) Язык запросов DQL наиболее известен пользователям реляционной базы данных, несмотря на то, что он включает одну команду SELECT. Эта команда вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной базе данных. Язык управления данными (DCL - Data Control Language) Команды управления данными позволяют управлять доступом к информации, находящейся внутри базы данных. Как правило, они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями. Команды управления данными следующие: GRANT, REVOKE. Команды администрирования данных С помощью команд администрирования данных пользователь осуществляет контроль за выполняемыми действиями и анализирует операции базы данных.
|