Изменение данных. Вставка данных. Изменение данных. Удаление данных. Применение инструкции TRUNCATE TABLE

Страницы работы

Содержание работы

Одна из основных функций, необходимых любой базе данных, — возможность добавлять, удалять и изменять данные. В языке программирования SQL для этого предназначен язык манипулирования данными (data manipulation language, DML). Команды INSERT, UPDATE И DELETE позволяют манипулировать данными на основе ввода информации или поиска ее в базе данных.

В версии Microsoft SQL Server 2005 было введено предложение OUTPUT, позволяющее возвращать информацию из каждой строки, обработанной инструкциями INSERT, UPDATE или DELETE. В версии SQL Server 2008 была введена инструкция MERGE для того, чтобы усовершенствовать выполнение инструкций INSERT, UPDATE и DELETE, обращенных к таблице, основанной на результатах запроса к соединенной таблице. Эти два средства повышают гибкость ваших инструкций DML.

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

1.1. Вставка данных

Инструкция INSERT позволяет вставлять в таблицу новые строки. В зависимости от схемы таблицы вам может понадобиться предоставить данные для всех или части столбцов таблицы. На требования к данным в ваших инструкциях INSERT могут оказывать влияние ограничения default, свойства identity и значения NULL.

Пример 1.1.

При добавлении данных во все столбцы таблицы SalesReason (Причина покупки клиентом товара) вам не нужно задавать в инструкции INSERT имена столбцов

 

Данные столбца SalesReasoniD не вводятся, т. к. это идентифицирующий столбец, и он заполняется автоматически с помощью механизма управления SQL Server

 

Пример 1.2.

У столбца ModifiedDate (Дата последнего обновления строки) таблицы SalesReason есть связанное с ним ограничение DEFAULT, которое задается в виде функции getdate(). По этой причине следующая команда приведет к тем же результатам, что и предыдущая.

 

Пример 1.3.

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

 

 

Пример 1.4.

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

 

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

Пример 1.5.

В следующей команде берутся строки из таблицы Employees (Сотрудники) и добавляются в таблицу Customers (Клиенты). Поскольку количество и тип данных столбцов в результирующем наборе должны соответствовать целевой таблице, для получения корректного числа столбцов применяется конкатенация (сцепление). Функцией SUBSTRING извлекаются первые пять букв фамилии сотрудника для формирования ID клиента, подобного идентификатору в таблице Customers.

 

И наконец, инструкция SELECT INTO позволяет создать новую таблицу, заполненную результатами заданной инструкции SELECT.  

Пример 1.6.

Следующая команда создает таблицу с именем EmpioyeeDepartment (Отдел сотрудника), включающую имя и фамилию каждого сотрудника, его должность и сведения об отделе.

 

1.2. Изменение данных

Co временем возникает необходимость модифицировать имеющуюся в базе данных информацию. Команда UPDATE позволяет изменять значение одного или нескольких столбцов в одной или нескольких строках таблицы. Добавление значения в столбец, равный в данный момент значению NULL, и удаление значения из столбца выполняются инструкциями UPDATE, а не инструкциями INSERT ИЛИ DELETE.  

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

В простейшей форме инструкции UPDATE требуется только имя изменяемого объекта (таблицы или представления) и устанавливаемое значение. 

Пример 1.7.

Следующая команда обновляет каждую строку в таблице CurrencyRate (Валютный курс) и добавляет 0.005 к валютному курсу.

 

Если вам нужно изменить только конкретные строки, следует задать предложение WHERE для ограничения количества строк.

Пример 1.8.

Следующая команда в таблице SalesReason (Причина покупки товара клиентом) для SalesReasoniD со значением 10 задает значение столбца Name, равное 'N/A'.

 

С помощью предложения FROM вы также можете обновить информацию в целевой таблице, основываясь на информации из таблицы, присоединенной к ней.,

Пример 1.9.

Cследующая команда увеличивает на 5% цену за единицу для всех товаров красного цвета

 

1.3. Удаление данных

Инструкция DELETE позволяет удалять из базы данных строки, которые больше не нужны. С ее помощью строки из таблицы удаляются целиком. 

Если нужно удалить только значение в столбце заданной строки, следует применять инструкцию UPDATE.

Похожие материалы

Информация о работе