Как изменить данные в таблице sql
Перейти к содержимому

Как изменить данные в таблице sql

  • автор:

Вставка, изменение и удаление записей таблицы с помощью Access SQL

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

Чтобы добавить одну запись в таблицу, с помощью списка полей определите, в какие поля следует поместить данные, а затем разместите данные в списке значений. Для определения списка значений используйте выражение VALUES. Например, указанная ниже инструкция вставляет значения 1, Kelly и Jill в поля CustomerID, Last Name и First Name соответственно.

INSERT INTO tblCustomers (CustomerID, [Last Name], [First Name]) VALUES (1, 'Kelly', 'Jill') 

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

INSERT INTO tblCustomers VALUES (1, Kelly, 'Jill', '555-1040', 'someone@microsoft.com') 

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

Указанная ниже инструкция INSERT INTO вставляет все значения полей CustomerID, Last Name и First Name таблицы tblOldCustomers в соответствующие поля таблицы tblCustomers.

INSERT INTO tblCustomers (CustomerID, [Last Name], [First Name]) SELECT CustomerID, [Last Name], [First Name] FROM tblOldCustomers 

Если таблицы определены совершенно одинаково, можно не использовать списки полей.

INSERT INTO tblCustomers SELECT * FROM tblOldCustomers 

Изменение записей в таблице

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

UPDATE table name SET field name = some value 

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

UPDATE tblCustomers SET Phone = 'None' 

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

UPDATE tblCustomers SET Email = 'None' WHERE [Last Name] = 'Smith' 

Удаление записей из таблицы

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

DELETE FROM table list 

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

DELETE FROM tblInvoices 

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

DELETE FROM tblInvoices WHERE InvoiceID = 3 

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

UPDATE tblCustomers SET Email = Null 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Обратная связь

Были ли сведения на этой странице полезными?

Изменение данных в SQL

Изменение данных в SQL

Ikasteko.ru

Изменение данных Для изменения значений столбцов таблицы применяется оператор UPDATE (изменить, обновить). Чтобы изменить значения в одном столбце таблицы в тех записях, которые удовлетворяют некоторому условию, следует выполнить такой запрос.

UPDATE имяТаблицы SET имяСтолбца = значение WHERE условие;

За ключевым словом SET (установить) следует выражение равенства, в левой части которого указывается имя столбца, а в правой — выражение, значение которого следует сделать значением данного столбца. Эти установки будут выполнены в тех записях, которые удовлетворяют условию в операторе WHERE. Чтобы одним оператором UPDATE установить новые значения сразу для нескольких столбцов, вслед за ключевым словом SET записываются соответствующие выражения равенства, разделенные запятыми.

UPDATE имяТаблицы SET имяСтолбца1 = значение1, имяСтолбца2 = значение2, . , имяСтолбцаN = значениеN WHERE условие;

Например, следующий запрос изменяет фамилию и имя клиента с кодом 5.

UPDATE Customer SET FName= ‘Иван’ , LName= ‘Иванов’ WHERE IdCust = 5

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

Так же как и в инструкции DELETE условие в операторе WHERE инструкции UPDATE может содержать подзапросы, в том числе и связанные. Transact-SQL расширяет стандартный SQL, позволяя использовать в инструкции UPDATE предложение FROM (по аналогии с DELETE). Это расширение, в котором задается соединение, может быть использовано вместо вложенного запроса в предложении WHERE для указания обновляемых строк.

Если обновляемый объект тот же самый, что и объект в предложении FROM, и в предложении FROM имеется только одна ссылка на этот объект, псевдоним объекта указывать необязательно. Если обновляемый объект встречается в предложении FROM несколько раз, одна и только одна ссылка на этот объект не должна указывать псевдоним таблицы. Все остальные ссылки на объект в предложении FROM должны включать псевдоним объекта. Предположим, что требуется сделать 5% скидку по тем заказам клиентов, суммарная стоимость которых превышает 1000. Для этого следует изменить значения столбца Price, просто умножить их на 0,95. Однако эти изменения должны быть выполнены, только если суммарная стоимость заказа превышает 1000. Таким образом, в качестве критерия обновления записей в таблице OrdItem может быть задан запрос возвращающий список всех заказов с суммарной стоимостью более 1000.

UPDATE OrdItem SET Price = Price * 0.95 FROM OrdItem o INNER JOIN ( SELECT IdOrd FROM OrdItem GROUP BY IdOrd HAVING SUM (Qty*Price) > 1000) a ON o.IdOrd = a.IdOrd

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

SELECT * FROM OrdItem o INNER JOIN ( SELECT IdOrd FROM OrdItem GROUP BY IdOrd HAVING SUM (Qty*Price) > 1000) a ON o.IdOrd = a.IdOrd

Задание для самостоятельной работы: Сформулируйте на языке SQL запрос имитирующий поступление на склад новой партий определенного товара (Обновление столбца InStock в таблице Product).

Еще записи по теме
  • Использование фигурного текста в CorelDRAW
  • Основы Transact SQL: Простые выборки данных (Урок 4, часть 1)
  • Создание информационно-аналитической системы управления базой данных магазина электроники
  • Основы Transact SQL: Простые выборки данных (Урок 4, часть 2)
  • Векторные редакторы(CorelDRAW), создание логотипа
  • Курсовая работа по ВМИП. База данных общежития. Delphi
  • Как скачивать через торрент

SQL UPDATE — обновление данных

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

UPDATE ИМЯ_ТАБЛИЦЫ SET ИМЯ_СТОЛБЦА_1=ЗНАЧЕНИЕ, . ИМЯ_СТОЛБЦА_N=ЗНАЧЕНИЕ [ WHERE УСЛОВИЕ]

Квадратные скобки [], в которые заключена часть запроса WHERE УСЛОВИЕ, означает, что эта часть является необязательной.

Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке .

А скрипт для создания базы данных «Портал объявлений 1», её таблицы и заполения таблицы данных — в файле по этой ссылке .

Использование оператора SQL UPDATE вместе с секцией WHERE

Хотя часть запроса на обновление данных WHERE УСЛОВИЕ является необязательной, в большинстве случаев она применяется, так как обновить чаще требуется значения столбцов в определённых строках.

Пример 1. Есть база портала объявлений. В ней есть таблица Ads, содержащая данные о объявлениях, поданных за неделю (более подробно — в уроке об агрегатных функциях SQL, пример 7). Таблица выглядит так:

Id Category Part Units Money
1 Транспорт Автомашины 110 17600
2 Недвижимость Квартиры 89 18690
3 Недвижимость Дачи 57 11970
4 Транспорт Мотоциклы 131 20960
5 Стройматериалы Доски 68 7140
6 Электротехника Телевизоры 127 8255
7 Электротехника Холодильники 137 8905
8 Стройматериалы Регипс 112 11760
9 Досуг Книги 96 6240
10 Недвижимость Дома 47 9870
11 Досуг Музыка 117 7605
12 Досуг Игры 41 2665

Требуется изменить значения столбцов Units и Money в строке с Для этого пишем следующий запрос (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

UPDATE ADS SET Units=148, Money=23680 WHERE align=»justify»>После выполнения этого запроса соответствующая строка будет содержать следующие данные:

4 Транспорт Мотоциклы 148 23680

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

Пример 2. База данных и таблица — те же, что и в примере 1. Требуется поменять название категории «Недвижимость» на «Постройки». Пишем следующий запрос (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

UPDATE ADS SET Category=’Постройки’ WHERE Category=’Недвижимость’

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

Использование оператора SQL UPDATE и вычисляемые значения

В запросах на обновление данных с использованием оператора SQL UPDATE можно путём задания вычислений менять значения, имеющие числовой формат. Соответствующие запросы могут быть с или без секции WHERE.

Пример 3. База данных и таблица — те же, что и в предыдущих примерах.

Теперь предположим, что во время заполнения таблицы данными изменились расценки на объявления, публикуемые на портале. Требуется увеличить значения столбца Money в 2 раза во всех строках таблицы. Пишем следующий запрос (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

UPDATE ADS SET Money = Money*2

Использование оператора SQL UPDATE без секции WHERE

Пример 4. База данных и таблица — те же, что и в предыдущих примерах. Требуется сделать неопределёнными (NULL) значения столбцов Units и Money во всех строках таблицы. Запрос для такого обновления данных будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

UPDATE ADS SET Units= NULL , Money= NULL

В результате действия этого запроса столбцы Units и Money примут значение NULL во всех строках таблицы.

Примеры запросов к базе данных «Портал объявлений-1» есть также в уроках об операторах INSERT, DELETE, HAVING и UNION.

SQL Запрос на изменение данных UPDATEИзменение значений полей в таблице

UPDATE заменит значения текущих полей таблицы на новые значения.
SET устанавливает какие поля изменять и новые значения, которые нужно присвоить этим полям.
WHERE (если необходимо) — условие на изменение определенных записей. Если WHERE не указан, изменены будут все записи.
При указании параметра LOW_PRIORITY, выполнение UPDATE задержится пока другие клиенты читают таблицу.

Пример запроса на изменение всех записей поля «apple» таблицы «fruit» на определенное значение

UPDATE fruit SET apple=5;

Пример запроса с WHERE который изменяет определенную запись:

UPDATE tovar SET price=500 WHERE >При изменении значения поля можно использовать его текущее значение. 
Пример запроса увеличивающего значение поля price в 2 раза:
UPDATE tovar SET price=price*2;

SET в UPDATE вычисляет выражения слева направо.
Пример запроса который удваивает цену (поле price), а потом уменьшает его на 10:

UPDATE tovar SET price=price*2, price=price-10;

Запрос UPDATE возвратит количество полей, которые были изменены в этом запросе.
Использование LIMIT позволит изменять заданное количество записей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *