Приведенная выше инструкция SQL возвращает следующий результирующий набор:
Name | UnitPrice |
---|---|
Rubber Chicken | 5.99 |
Disappearing Penny Magic Trick | 3.99 |
Loaded Dice | 3.49 |
Whoopee Cushion | 5.99 |
Манипулирование данными с помощью SQL
DML-команды SQL обычно применяются для изменения большого объема данных на основе заданного критерия. Например, для повышения на 10% цены всех товаров следует использовать запрос на обновление, который автоматически выполнит такие изменения для всех товаров.
В среде Visual Studio .NET предусмотрен очень мощный интерфейс для выполнения DML-команд. Действительно, инструменты среды Visual Studio .NET могут пре
доставить полезную информацию (например, правильную строку подключения для соединения с базой данных) или генерировать в окне конструктора основные DML-команды при извлечении данных из таблицы или изменении типа запроса.
Примеры в этом разделе демонстрируют способы изменения данных в базе данных Novelty. Если после многочисленных попыток изменить данные вы хотите вернуть базу данных Noveltу в ее прежнее состояние, то ее можно переустановить, запуская описанный во введении к этой книге сценарий.
На низком уровне (т.е. не на уровне графического интерфейса пользователя) DML-команды SQL можно использовать с помощью следующих двух инструментов:
• Microsoft SQL Server Query Analyzer (или просто Query Analyzer) — инструмент с графическим интерфейсом пользователя для создания запросов и команд для SQL Server;
• osql — используемый в режиме командной строки процессор запросов.
Вы можете использовать любой из этих инструментов, а в данной главе применяется Query Analyzer, который обладает более широкими возможностями и более удобен в употреблении, чем процессор запросов osql. В настоящей главе основное внимание сосредоточено на фактически выполняемых командах, а не на методах использования графического интерфейса Query Analyzer. Инструмент Query Analyzer находится в группе программ Microsoft SQL Server. (В главе 7, "ADO.NET: дополнительные компоненты", более подробно рассматриваются способы применения DML-команд в среде Visual Studio.NET.)
Запросы на обновление
• предложение UPDATE, которое указывает на обновляемую таблицу;
• предложение SET, задающее данные для обновления;
• необязательный критерий WHERE, ограничивающий число записей, на которые воздействует запрос на обновление.
Например, чтобы увеличить цену на все товары, воспользуйтесь запросом на обновление, код которого приведен ниже.
UPDATE tblItem
SET Price = Price * 1.1
SELECT * FROM tblItem
Команда SELECT, которая располагается вслед за предложением UPDATE, не обязательна и предназначена для просмотра результатов обновления.
Ниже приведены значения полей после выполнения данного запроса на обновление.
ID | Name | Description | UnitPrice | Price |
---|---|---|---|---|
1 | Rubber Chicken | A classic laugh getter | 2.0300 | 6.5890 |
2 | Hand Buzzer | Shock your friends | .8600 | 1.5290 |
3 | Stink Bomb | Perfect for ending boring meetings | .3400 | 1.4190 |
4 | Invisible Ink | Write down your most intimate thoughts | 1.4500 | 2.5190 |
5 | Loaded Dice | Not for gambling purposes | 1.4600 | 3.8390 |
6 | Whoopee Cushion | The ultimate family gag | 2.0300 | 6.5890 |
Для ограничения числа записей, подвергаемых воздействию запроса на обновление, достаточно добавить в запрос SQL предложение WHERE. Например, чтобы применить повышение цен только к дорогим товарам, стоимость которых больше $100, откорректируйте запрос так, как показано ниже.
UPDATE
SET Price = Price * 1.1
WHERE Price > 100
Эта команда увеличивает на 10% цену на товары, текущая цена которых больше $100.
Запросы на удаление