Как изменить значение поля в sql
До сих пор мы просто извлекали самыми разными способами данные из таблиц. Пришло время изучить как они туда попадают.
- INSERT — вставка данных
- UPDATE — изменение данных
- DELETE — удаление
Ввод значений
Все строки вводятся с использованием команды INSERT. В самой простой форме используется следующий синтаксис:
INSERT INTO table_name VALUES ( value, value, . )
Так для того чтобы добавить запись в таблицу торговых агентов можно использовать команду:
INSERT INTO Salespeople VALUES( 1008, 'Johnson', 'London', 12 )
Команды модификации не производят никакого вывода. Но Query Analyzer сообщит Вам, что была добавлена 1 запись. Таблица уже должна существовать к моменту исполнения этой команды, а тип каждого значения в скобках после VALUES должен совпадать с типом данных столбца, в который оно вставляется. Первое значение попадает в столбец 1, второе — 2 и т.д.
Если вам нужно ввести пустое значение (NULL), просто укажите его в списке значений. Например:
INSERT INTO Salespeople VALUES ( 1009, 'Peel', NULL, 12 )
Вы можете явно указать столбцы, куда Вы хотите вставить значение. Это позволит вставлять значения в любом порядке.
INSERT INTO Customers( city, cname, cnum ) VALUES( 'Новосибирск', 'Петров', 2010 )
Обратите внимание, что столбцы rating и snum отсутствуют. Это значит, что во вставленной записи им будет присвоено значение по умолчанию. Обычно это NULL или значение указанное при создании таблицы. Более подробно мы это рассмотрим далее.
Команду INSERT можно использовать для вставки результатов запроса. Чтобы сделать это, просто заменяем предложение VALUES на соответствующий запрос:
INSERT INTO MoscowStaff SELECT * FROM Salespeople WHERE city = 'Москва'
- Она должна уже быть создана командой CREATE TABLE
- Она должна иметь четыре столбца, которые совпадают с таблицей торговых агентов в терминах типов данных.
Удаление строк из таблиц
Для удаления строк из таблицы используется команда DELETE. Она удаляет не отдельные значения, а строки целиком. Чтобы удалить все содержание таблицы агентов вы можете ввести команду:
DELETE FROM Salespeople
Но я пока не рекомендую Вам этого делать.
Обычно, Вам требуется удалять некоторые определенные строки в таблице. Чтобы определить какие строки будут удалены, используйте условие отбора, как мы это делали для запросов. Например, чтобы удалить агента Шилина можно ввести:
DELETE FROM Salespeople WHERE snum = 1007
Разумеется, если условию будет соответствовать несколько записей, все они будут удалены.
В отличие от файловых СУБД типа DBASE, SQL Server не помечает записи как удаленные, а удаляет их физически, т.е. восстановлению они не подлежат. Будьте осторожны с командой DELETE!
Изменение значения поля
Команда UPDATE позволяет изменять некоторые или все значения в существующей записи в таблице. Эта команда содержит предложение UPDATE, за которым указывается имя таблицы, и предложение SET, которое указывает на изменение которое нужно сделать для определенного столбца. Например, чтобы изменить рейтинги всех заказчиков на 200 можно ввести команду:
UPDATE Customers SET rating = 200
Аналогично DELETE, UPDATE может использовать условия для выбора записей, подлежащих изменению. Вот так можно изменить рейтинг для всех заказчиков агента Иванова (код 1001):
UPDATE Customers SET rating = 300 WHERE snum = 1001
В предложении SET можно указывать несколько столбцов, разделяя их запятыми.
- Ограничение значений данных — большой раздел, посвященный первичным и внешним ключам, различным constraint‘ам (ограничениям) и т.п.
- Поддержка целостности данных — что это и с чем его едят.
- Представления — как скрыть от пользователя истинную структуру данных
Как изменить значения только в тех полях которые есть в другой связанной таблице?
Есть две связанные по ключу таблицы. Нужно пройтись по первой, и поменять значения в тех полях ключи которых отбираются во второй таблице по какому то условию.
Пример:
таблица 2:
select id, name from abc where name like ‘%van%’
Далее я пробегаюсь по таблице 1 и меняю поля для тех строк у которых поле id есть в выборке из таблицы 2 выше.
Подскажите, как это можно реализовать?
- Вопрос задан более трёх лет назад
- 853 просмотра
Комментировать
Решения вопроса 1

Здесь отвечаю на вопросы.
UPDATE Table_1 SET … FROM Table_1 INNER JOIN Abc ON Table_1.ID = Abc.ID WHERE (Abc.Name LIKE '%van%')
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Вставка, изменение и удаление записей таблицы с помощью 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 и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.
Отправить и просмотреть отзыв по
Изменение значений полей в таблице
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 позволит изменять заданное количество записей.