Актуализацията на Mysql е сложна заявка за актуализиране. Справочно ръководство за MySQL

Актуализацията на Mysql е сложна заявка за актуализиране. Справочно ръководство за MySQL

Актуализирането на данни в базата данни означава промяна на стойностите в съществуващите записи на таблици. В този случай е възможно както да промените стойностите на полета в група редове (дори всички редове на таблица), така и да редактирате стойността на поле в отделен ред.

В SQL можете да промените запис в таблица на база данни с помощта на командата UPDATE. В най-минималната си форма командата за актуализиране на данни изглежда така:

АКТУАЛИЗИРАНЕ таблица SET поле = стойност

Тук, АКТУАЛИЗИРАНЕ– команда, указваща, че е направена заявка за актуализиране на данните;

маса– името на таблицата, в която ще се правят промените;

КОМПЛЕКТ– команда, последвана от разделени със запетаи полета с присвоени стойности;

поле– полето на таблицата, в което ще се извърши промяната;

значение– новата стойност за въвеждане в полето.


Например, ако искате да зададете поле във всички редове на таблица на нула, можете да изпълните следната заявка:

АКТУАЛИЗИРАНЕ стока SET цена = 0

В този случай полето цена в абсолютно всички налични редове на таблицата ще приеме стойност 0.

Промяна на единична стойност

Промяната на стойността на всички полета в таблица е изключително рядка. Най-често трябва да промените стойността на конкретен запис. За да направите това, в края на реда с командата UPDATE ще бъде добавена директива WHERE, която определя условие, което определя на кой ред да се извърши операцията за актуализиране.

Има таблица:

Например, трябва да актуализираме цената на продукт с неговата известна стойност num. За да направите това, изпълнете следната заявка:

АКТУАЛИЗИРАНЕ стоки SET цена = 150 WHERE num = 2

Сега, преди операцията за промяна на полетата, ще бъде избран ред, който отговаря на условието num = 2. В таблицата има само един такъв ред. В тази наличност цената ще бъде променена на стойност 150. В резултат на това ще получим таблица с променената цена на стоките.

Извършване на промени в множество редове с условие за избор

Ако си спомняте цялото разнообразие от условия в заявката, можете да си представите колко разнообразни могат да бъдат селекциите. Следователно заявките за актуализиране могат да се изпълняват или с един ред, или с група редове, или с всички редове на таблицата. Всичко зависи от задачата пред вас, както и с кои редове на таблицата трябва да извършите операции по актуализиране.

Например искаме да намалим наполовина цената на всички артикули, които в момента струват 100 или повече. Заявка:

АКТУАЛИЗИРАНЕ стоки SET цена = цена / 2 WHERE цена >= 100

Състояние КЪДЕТОтук съдържа правило, че ще бъдат избрани само продукти с цена, равна или по-висока от 100, и тези продукти с цена под 100 няма да бъдат засегнати от заявката.

цена = цена / 2- формулата, по която ще се изчислява новата цена на стоките. Нова ценаще се пише равно на старата цена разделена на две.

В резултат на изпълнението на такава заявка получаваме таблица с променени записи:

Актуализирайте стойностите в множество полета на ред

Ако е необходимо да се актуализират няколко полета наведнъж, всички полета с техните стойности се посочват след директивата SET, разделени със запетаи. Например, трябва да промените името и цената на продукт с код 2 на "желязо", с цена 300:

АКТУАЛИЗИРАНЕ стоки SET title = "iron" , price = 300 WHERE num = 2 !}

Такава заявка ще присвои всяко съответстващо поле в реда на неговата стойност. И условието ще посочи в кой ред ще бъдат направени промените.


По-горе са основните типове операции за актуализиране. Въз основа на тях се формират заявки за решаване на повечето проблеми при промяна на данните в разработката с помощта на SQL.

Ако трябва да променим или актуализираме данни в MySQL, можем да използваме командата SQL UPDATE, за да работи. ,

граматика

Следва командата UPDATE за промяна на общия SQL синтаксис на MySQL Sheet Data:

АКТУАЛИЗИРАНЕ име на таблица SET поле1=нова-стойност1, поле2=нова-стойност2

  • Можете да актуализирате едно или повече полета едновременно.
  • Можете да посочите всяко условие в клаузата WHERE.
  • Можете също да актуализирате данните в отделна таблица.

Когато трябва да актуализирате данните, дадени в редовете на таблица, INEKE е много полезен.

Команден ред за актуализиране на данни

По-долу ще актуализираме w3big_tbl, посочен в таблицата с данни, като използваме командата UPDATE INEKE SQL:

примери

Следният пример ще актуализира таблицата с данни като стойност на полето w3big_title w3big_id 3:

# mysql -u root -p парола; Въведете парола: ****** mysql> използвайте w3big; Променена база данни mysql> АКТУАЛИЗАЦИЯ w3big_tbl -> НАСТРОЙКА w3big_title="Изучаване на JAVA" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Използвайте PHP скрипт за актуализиране на данни

PHP функция за използване на mysql_query() за изпълнение SQL изрази, можете да използвате командата SQL UPDATE или INEKE не се прилага.

Тази функция в MySQL> командна линияефектът от изпълнението на SQL изрази е същият.

примери

Следващият пример ще актуализира данните w3big_id поле w3big_title 3.

Команда UPDATE- прави промени във вече съществуващ запис или в множество записи в таблица SQL. Променя съществуващите стойности в таблица или в главната таблица на изгледа.

Команда UPDATE Синтаксис на командата

Синтаксис на командата UPDATE

Команда UPDATE. Основен ключови думии параметри на командата UPDATE

  • схема-идентификатор на орган, обикновено същият като някое потребителско име
  • изглед на маса-име на таблица SQLв които се променят данните; ако е дефиниран изглед, данните се променят в главната таблица SQLпредставителство
  • subquery_1 - подзаявка, който сървърът третира по същия начин като изгледа
  • сolumn - колона на таблицата SQLили изгледи SQL, чиято стойност се променя; if таблица колона от клауза КОМПЛЕКТпропуснато, стойността на колоната остава непроменена
  • израз - ; този израз може да съдържа основни променливи и незадължителни индикаторни променливи
  • подзаявка_2 - новата стойност, присвоена на съответната колона
  • подзаявка_3 - новата стойност, присвоена на съответната колона

КЪДЕТО- дефинира диапазона от редове, които да бъдат модифицирани от тези, за които е посоченото условие ВЯРНО; ако тази фраза е пропусната, всички редове в таблицата или изгледа се актуализират.
При издаване на одобрение, всяка Тригер за АКТУАЛИЗИРАНЕопределени на масата.
Подзапитвания. Ако офертата КОМПЛЕКТсъдържа подзаявка, той връща точно един ред за всеки ред, който се променя. Всяка стойност в резултата от подзаявката се присвоява на съответните колони в списъка скоби. Ако подзаявката не върне никакви редове, колоната се присвоява НУЛА. Подзапитванияможе да избира данни от модифицираната таблица. Оферта КОМПЛЕКТможе да комбинира изрази и подзаявки.

Пример за команда UPDATE 1
Промяна на рейтинга за всички купувачи на стойност, равна на 200:

Клиенти КОМПЛЕКТрейтинг = 200;

Пример за команда UPDATE 2
Замяната на стойността на колона във всички редове на таблица обикновено се използва рядко. Следователно в отбора, като в отбора ИЗТРИЙ, можете да използвате предиката. За изпълнение посочено заместванестойности на колоната за рейтинг, за всички купувачи, които се обслужват от продавача Giovanni (snum = 1003), въведете:

Клиенти КОМПЛЕКТрейтинг = 200 WHERE snum = 1001;

SQL команда UPDATE Пример 3
В едно изречение КОМПЛЕКТможете да посочите произволен брой стойности за колони, разделени със запетаи:

имп КОМПЛЕКТ job = 'МЕНИДЖЪР', sal = sal + 1000, deptno = 20 WHERE ename = 'JONES';

Пример за команда UPDATE 4
В едно изречение КОМПЛЕКТвъзможно е да се посочи нулева стойност, без да се използва специален синтаксис (като IS NULL). По този начин, ако искате да зададете всички клиентски оценки от Лондон (град = 'Лондон') на NULL, трябва да въведете:

Клиенти КОМПЛЕКТрейтинг = NULL WHERE град = 'Лондон';

Пример за команда UPDATE 5
Обяснява използването на следния команден синтаксис:

  • И двете форми на предложение КОМПЛЕКТзаедно в едно твърдение.
  • Подзаявка.
  • Клауза WHERE, която ограничава диапазона от редове, които трябва да бъдат модифицирани.

Emp a КОМПЛЕКТ deptno=
(ИЗБЕРЕТЕ deptno FROM dept WHERE loc = 'БОСТЪН'), (sal, comm) = ( ИЗБЕРЕТЕ 1.1*AVG(sal), 1.5*AVG(comm) FROM emp b WHERE a.deptno = b.deptno) WHERE deptno IN ( ИЗБЕРЕТЕ deptno FROM dept WHERE loc = 'DALLAS' OR loc = 'DETROIT');

Горното изявление прави следното:

  • Променя само онези служители, които работят в Далас или Детройт
  • Задава стойността на колоната deptno за служители от Бостън
  • Определя заплатата на всеки служител на 1,1 пъти средната заплата на целия отдел
  • Определя комисионната на всеки служител на 1,5 пъти средната комисионна на целия отдел

В това учебно ръководствоще научите как да използвате Изявление MySQL UPDATEсъс синтаксис и примери.

Описание

Изявление MySQL UPDATEизползвани за актуализиране на съществуващи записи в таблица в MySQL база данни. Има три синтаксиса за оператора UPDATE, в зависимост от типа актуализация, която искате да извършите.

Синтаксис

Проста синтактична форма за оператора UPDATE при актуализиране на една таблица в MySQL е:

Сега пълният синтаксис за оператора MySQL UPDATE при актуализиране на една таблица е:

ИЛИ
Синтаксисът на оператора UPDATE при актуализиране на една таблица с данни от друга таблица в MySQL е:

ИЛИ
Синтаксис на оператора MySQL UPDATE при актуализиране на множество таблици:

Опции или аргументи

LOW_PRIORITY - по избор. Ако е зададен LOW_PRIORITY, актуализацията ще бъде отложена, докато няма процеси, които четат от таблицата. LOW_PRIORITY може да се използва с таблици MyISAM, MEMORY и MERGE, които използват заключване на ниво таблица.
ИГНОРИРАНЕ не е задължително. Ако е предоставено IGNORE, всички грешки, възникнали по време на актуализацията, се игнорират. Ако актуализация на ред би се счупила първичен ключили уникален индекс, актуализацията на този ред няма да бъде извършена.
column1 , column2 са колоните, които искате да актуализирате.
израз1, израз2 са нови стойности за присвояване на колона1, колона2. Така на колона1 се присвоява стойността на израз1, на колона2 се присвоява стойността на израз2 и т.н.
WHERE условия - по желание. Условия, които трябва да бъдат изпълнени, за да завърши актуализацията.
Изразът ORDER BY не е задължителен. Може да се използва заедно с LIMIT за подходящо сортиране на записи, като същевременно ограничава броя на записите, които трябва да бъдат актуализирани.
LIMIT number_rows не е задължително. Ако е зададен LIMIT, той контролира максималния брой записи за актуализиране в таблицата. Максималният брой записи, посочени във файла number_rows, ще бъдат актуализирани в таблицата.

Пример за актуализиране на една колона

Помислете за много проста заявка за MySQL UPDATE.

В този пример за АКТУАЛИЗАЦИЯ на MySQL, полето last_name е актуализирано на „Ford“ в таблицата на клиентите, където customer_id = 500.

Пример за актуализиране на множество колони

Помислете за пример на MySQL UPDATE, където можете да актуализирате повече от една колона с един оператор UPDATE.

Ако искате да актуализирате няколко колони, можете да го направите, като разделите двойките колона/стойност със запетаи.
Този пример за оператор UPDATE на MySQL актуализира състоянието до „Nevada“ и customer_rep до 23, където customer_id е по-голямо от 200.

Пример за актуализиране на таблица с данни от друга таблица

Нека да разгледаме пример за UPDATE, който показва как да актуализирате таблица с данни от друга таблица в MySQL.

MySQL

Този пример за АКТУАЛИЗИРАНЕ ще актуализира таблицата на клиентите само за всички записи, където customer_id е по-голям от 5000. Когато доставчик_име от таблицата с доставчици съвпада с име на customer_name от таблицата с клиенти, градът от таблицата с доставчици ще бъде копиран в полето за град на маса за клиенти.

Този урок за MySQL обяснява как да използвате MySQL Изявление UPDATEсъс синтаксис и примери.

Синтаксис

В най-простата си форма синтаксисът за оператора UPDATE при актуализиране на една таблица в MySQL е:

АКТУАЛИЗИРАНЕ на таблица SET колона1 = израз1, колона2 = израз2, ... ;

Въпреки това, пълният синтаксис за оператора MySQL UPDATE при актуализиране на една таблица е:

UPDATE [ LOW_PRIORITY ] [ IGNORE ] таблица SET колона1 = израз1, колона2 = израз2, ... ];

Синтаксисът за оператора UPDATE при актуализиране на една таблица с данни от друга таблица в MySQL е:

АКТУАЛИЗИРАНЕ на таблица1 SET колона1 = (ИЗБЕРЕТЕ израз1 ОТ таблица2 WHERE условия);

Синтаксисът за оператора MySQL UPDATE при актуализиране на множество таблици е:

АКТУАЛИЗИРАНЕ на таблица1, таблица2, ... SET колона1 = израз1, колона2 = израз2, ... WHERE таблица1.колона = таблица2.колона И условия;

Параметри или аргументи

НИСЪК ПРИОРИТЕТ Ако е предоставен LOW_PRIORITY, актуализацията ще бъде отложена, докато няма процеси, които четат от маса. LOW_PRIORITY може да се използва с MyISAM, MEMORY и MERGE таблици, които използват заключване на ниво таблица. ИГНОРИРАНЕ по избор. Ако е предоставен IGNORE, всички грешки, открити по време на актуализацията, се игнорират. Ако актуализация на ред би довела до нарушение на първичен ключ или уникален индекс, актуализацията на този ред не се извършва. колона1, колона2 израз1, израз2 Новотостойности, които да присвоите на колона1, колона2. Така колона1 израз1, колона2ще бъде присвоена стойността на израз2, и така нататък. Условия WHERE По избор. Условията, които трябва да бъдат изпълнени, за да се изпълни актуализацията. ORDER BY израз По избор. Може да се използва в комбинация с LIMIT за подходящо сортиране на записите, когато се ограничава броят на записите за актуализиране. LIMIT брой_редове По избор. Ако е предоставен LIMIT, той контролира максималния брой записи за актуализиране в таблицата. Най-много броят на записите, зададен от брой_редовеще се актуализира в таблицата.

Пример - Актуализиране на една колона

Нека да разгледаме много проста заявка за MySQL UPDATE.

АКТУАЛИЗИРАНЕ на клиенти SET last_name = "Anderson" WHERE customer_id = 5000;

Този пример за актуализация на MySQL ще актуализира фамилиядо "Андерсън" в клиентимаса, където Клиентски номере 5000.

Пример - Актуализиране на няколко колони

Нека да разгледаме пример за MySQL UPDATE, където може да искате да актуализирате повече от една колона с един оператор UPDATE.

АКТУАЛИЗИРАНЕ на клиенти SET състояние = "Калифорния", customer_rep = 32 WHERE customer_id > 100;

Когато искате да актуализирате няколко колони, можете да направите това, като разделите двойките колона/стойност със запетаи.

състояниедо "Калифорния" и клиент_представителдо 32, където Клиентски номере по-голямо от 100.

Пример - Актуализиране на таблица с данни от друга таблица

Нека да разгледаме пример за UPDATE, който показва как да актуализирате таблица с данни от друга таблица в MySQL.

АКТУАЛИЗИРАНЕ на клиенти
SET град = (ИЗБЕРЕТЕ град
ОТ доставчици
WHERE доставчици.име_на_доставчик = клиенти.име_на_клиент)
WHERE customer_id > 2000;

Този пример за UPDATE ще актуализира само клиентитаблица за всички записи, където Клиентски номере по-голямо от 2000. Име на доставчикот доставчицитаблицата съответства на Потребителско имеот клиентимаса, на градот таблицата на доставчиците ще бъде копиран в градполе в клиентимаса.

Пример - Актуализиране на множество таблици

Нека да разгледаме пример за MySQL UPDATE, където може да искате да извършите актуализация, която включва повече от една таблица в един оператор UPDATE.

АКТУАЛИЗИРАНЕ на клиенти, доставчици SET customers.city = доставчик.city WHERE customers.customer_id = доставчик.supplier_id;

Този пример на оператор UPDATE на MySQL ще актуализира градполе в клиентимаса към градот доставчицимаса, където Клиентски номерсъвпада с доставчик_id.