Ажурирањето на Mysql е сложено барање за ажурирање. Ажурирање на синтаксата. Пример за ажурирање на една колона



Содржината на статијата
1. Наједноставните MySQL прашања
2. Едноставни SELECT прашања
3. Едноставни INSERT (нов запис) прашања
4. Едноставно АЖУРИРАЊЕ (презапишување, додавање) прашања
5. Едноставни барања за БРИШИ (бришење запис).
6. Едноставни барања за DROP (бришење табела).
7. Комплексни MySQL прашања
8. MySQL пребарувања и PHP променливи

1. Наједноставните SQL прашања

1. Ќе ги наведе СИТЕ бази на податоци.

ПОКАЖИ бази на податоци;
2. Ги наведува СИТЕ табели во базата_име на базата.

ПОКАЖИ табели во base_name;

2. Едноставни SELECT (избери) прашања во базата на податоци MySQL

ИЗБЕРИ- барање кое избира веќе постоечки податоци од базата на податоци. Можете да наведете одредени опции за избор за избор. На пример, суштината на барањето на руски звучи вака - ИЗБЕРЕТЕ такви и такви колони ОД таква и таква табела КАДЕ параметарот на таква и таква колона е еднаков на вредноста.

1. Ги избира СИТЕ податоци во табелата tbl_name.

ИЗБЕРИ * ОД tbl_name;
2. Го прикажува бројот на записи во табелата tbl_name.

SELECT count(*) FROM tbl_name;
3. Избира (SELECT) од (FROM) табела tbl_name (LIMIT) 3 записи, почнувајќи од 2.

ИЗБЕРИ * ОД tbl_name LIMIT 2,3;
4. Избира (ИЗБЕРИ) СИТЕ (*) записи од (ОД) табелата tbl_name и ги подредува (ORDER BY) по полето id по редослед.

ИЗБЕРИ * ОД tbl_name НАРЕДУВАЈ ПО ИД;
5. Ги избира (ИЗБИРА) СИТЕ записи од (ОД) табелата tbl_name и ги подредува (РЕД ПО) по полето идентификација во ОБРАТЕН редослед.

ИЗБЕРИ * ОД tbl_name НАРЕДУВАЈ ПО id DESC;
6. Избира ( ИЗБЕРИ) СИТЕ (*) записи од ( ОД) табели корисниции сортирајте ги ( НАРАЧАЈ ПО) на терен идво растечки редослед, ограничување ( ГРАНИЦА) првите 5 записи.

ИЗБЕРИ * ОД корисници НАРАЧАЈ ПО ИД ЛИМИТ 5;
7. Ги избира сите записи од табелата корисници, каде што полето fnameодговара на вредноста Гена.

ИЗБЕРЕТЕ * ОД корисници КАДЕ fname="Gena";
8. Ги избира сите записи од табелата корисници, каде што вредноста на полето fnameзапочнува со Ге.

ИЗБЕРЕТЕ * ОД корисници КАДЕ ФИМЕ КАКО „Ge%“;
9. Ги избира сите записи од табелата корисници, Каде fnameзавршува со na, и ги подредува записите по растечки редослед на вредноста ид.

ИЗБЕРЕТЕ * ОД корисници КАДЕ ФИМЕ КАКО „%na“ НАРАЧАЈ ПО ИД;
10. Ги избира сите податоци од колоните fname, Иметоод масата корисници.

SELECT fname, lname FROM корисници;

11. Да речеме дека имате земја во табелата со кориснички податоци. Значи, ако сакате да прикажете САМО список на вредности што се појавуваат (така што, на пример, Русија не се прикажува 20 пати, туку само еден), тогаш користете DISTINCT. Тоа ќе заклучи од масата на вредности кои се повторуваат Русија, Украина, Белорусија. Така од табелата кориснициколони земјаЌе бидат прикажани СИТЕ УНИКАТНИ вредности

ИЗБЕРЕТЕ РАЗЛИЧНА земја ОД корисници;
12. Ги избира СИТЕ податоци од редовите од табелата кориснициКаде возрастаги има вредностите 18,19 и 21.

ИЗБЕРЕТЕ * ОД корисници WHERE возраст IN (18,19,21);
13. Ја избира МАКСИМАЛНАТА вредност возраставо табелата корисници. Тоа е, ако имате најголема вредност во табелата возраста(од англиска возраст) е 55, тогаш резултатот од барањето ќе биде 55.

ИЗБЕРЕТЕ макс(возраст) ОД корисници;
14. Изберете податоци од табелата корисниципо полиња имеИ возрастаКАДЕ возрастазема најмала вредност.

ИЗБЕРЕТЕ име, мин(возраст) ОД корисници;
15. Изберете податоци од табелата корисницина терен имеКАДЕ идНЕ ЕДНАКВИ НА 2.

ИЗБЕРЕТЕ име ОД корисници WHERE id!="2";

3. Едноставни INSERT (нов запис) прашања

ВНЕСЕТЕ– барање што ви овозможува ИНИЦИЈАЛНО да вметнете запис во базата на податоци. Односно, создава НОВ запис (линија) во базата на податоци.

1. Дали нов рекордво табелата корисници, на терен имевметнува Сергеј, и во полето возраставметнува 25. Така, во табелата се додава нов ред со дадените вредности. Ако има повеќе колони, тогаш останатите ќе останат или празни или со стандардни вредности.

INSERT INTO корисници (име, возраст) ВРЕДНОСТИ („Сергеј“, „25“);

4. Едноставни барања за Ажурирање на базата на податоци MySQL

АЖУРИРАЈ- барање што ви овозможува да ги препишете вредностите на полињата или да додадете нешто на веќе постоечки ред во базата на податоци. На пример, постои готова низа, но параметарот возраст треба да се препише во него, бидејќи се променил со текот на времето.

1. Табела корисници возрастастанува 18.

АЖУРИРАЈ корисниците ПОСТАВЕТЕ возраст = "18" КАДЕ ИД = "3";
2. Сè е исто како и во првото барање, само ја покажува синтаксата на барањето, каде што две или повеќе полиња се препишани.
Табела корисници WHERE id е вредност на полето 3 возрастастанува 18 и земјаРусија.

АЖУРИРАЈ корисници ПОСТАВЕТЕ возраст = "18", земја = "Русија" WHERE id = "3";

5. Едноставни барања за бришење (отстранување на записот) против базата на податоци на MySQL

ИЗБРИШИе барање кое отстранува ред од табелата.

1. Отстранува ред од табелата кориснициКАДЕ иде еднакво на 10.

ИЗБРИШИ ОД корисници WHERE id = "10";

6. Едноставни барања за DROP (бришење табела) во базата на податоци на MySQL

КАПКАе барање кое брише табела.

1. Ја брише целата табела tbl_name.

СОПАДИ ТАБЕЛА tbl_name;

7. Комплексни MySQL барања за база на податоци

Љубопитни прашања што дури и искусните корисници можат да ги користат

ИЗБЕРЕТЕ ИД, име, земја од корисници, администратори WHERE TO_DAYS(NOW()) - TO_DAYS(датум_регистрација)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Ова сложено барање избира колони ИД, име, земјаВО ТАБЕЛИ корисници, администраториКАДЕ Датум на регистрација(датум) не постар од 14 денови и активирањеНЕ ЕДНАКВИ 0 , Сортирај по Датум на регистрацијаво обратен редослед (на почетокот ново).

АЖУРИРАЈ корисници ПОСТАВЕТЕ возраст = „18+“ КАДЕ возраст = (ИЗБЕРЕТЕ возраст ОД корисници КАДЕ машки = „маж“);
Горенаведеното е пример за т.н барање во барањево SQL. Ажурирајте ја возраста меѓу корисниците на 18+, каде што полот е машки. Не препорачувам ваков тип на барање. Од лично искуство ќе кажам дека е подобро да се создадат неколку посебни - тие ќе се разработат побрзо.

8. Барања за бази на податоци на MySQL и PHP

Во пребарувањата на MySQL во PHP страница, можете да вметнете променливи како споредбени вредности и така натаму. Пар примери

1. Ги избира сите записи од табелата корисници, каде што полето fnameодговара на вредноста на променливата $име.

ИЗБЕРЕТЕ * ОД корисници КАДЕ fname="$name";
2. Табела корисници WHERE id е вредност на полето 3 возрастасе менува на вредноста на променливата $age.

АЖУРИРАЈ корисници ПОСТАВЕТЕ возраст = "$age" WHERE id = "3";

Внимание!Ако ве интересира кој било друг пример, тогаш напишете прашање во коментарите!

Во ова упатство, ќе научите како да го користите Изјава за ажурирање на MySQLсо синтакса и примери.

Опис

Изјава за ажурирање на MySQLсе користи за ажурирање на постоечките записи во табела во базата на податоци MySQL податоци. Постојат три синтакси за изјавата UPDATE, во зависност од типот на ажурирање што сакате да го извршите.

Синтакса

Едноставна синтаксна форма за изјавата UPDATE кога се ажурира една табела во MySQL е:

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

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

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

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

LOW_PRIORITY - опционално. Ако е наведен LOW_PRIORITY, ажурирањето ќе се одложи додека нема процеси кои читаат од табелата. LOW_PRIORITY може да се користи со табелите MyISAM, MEMORY и MERGE кои користат заклучување на ниво на маса.
ИГНОРИРАЈ е изборен. Ако е обезбедено IGNORE, сите грешки што се појавуваат за време на ажурирањето се игнорираат. Ако ажурирањето на ред би резултирало со прекршување на примарен клуч или единствен индекс, ажурирањето на тој ред нема да успее.
колона1 , колона2 се колоните што сакате да ги ажурирате.
израз 1 , израз 2 се нови вредности за доделување на колона 1 , колона 2 . Значи, на колоната 1 и е доделена вредноста на изразот1 , на колоната 2 е доделена вредноста на изразот2 , итн.
WHERE услови - по избор. Услови што мора да се исполнат за да заврши ажурирањето.
ORDER BY изразот е изборен. Може да се користи заедно со LIMIT за соодветно сортирање на записите, истовремено ограничувајќи го бројот на записи што треба да се ажурираат.
LIMIT број_редови е изборен. Ако е наведено LIMIT, тој го контролира максималниот број на записи за ажурирање во табелата. Максималниот број на записи наведен во датотеката number_rows ќе се ажурира во табелата.

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

Размислете за многу едноставен пример за пребарување на MySQL UPDATE.

Во овој пример за ажурирање на MySQL, полето за презиме е ажурирано во „Форд“ во табелата за клиенти, каде што клиент_ид = 500.

Пример за ажурирање на повеќе колони

Размислете за пример на MySQL UPDATE каде што можете да ажурирате повеќе од една колона со една изјава за UPDATE.

Ако сакате да ажурирате повеќе колони, можете да го направите тоа со одвојување на паровите колона/вредност со запирки.
Овој пример на изјавата за ажурирање на MySQL ја ажурираше состојбата во „Невада“ и customer_rep на 23 каде што customer_id е поголем од 200.

Пример за ажурирање табела со податоци од друга табела

Ајде да погледнеме на пример UPDATE кој покажува како да се ажурира табела со податоци од друга табела во MySQL.

MySQL

Овој пример АЖУРИРАЊЕ ќе ја ажурира табелата на клиенти само за сите записи каде што идентификаторот на клиентот е поголем од 5000. Кога името на снабдувачот од табелата со добавувачи се совпаѓа со името на клиентот од табелата со клиенти, градот од табелата со добавувачи ќе се копира во полето за град на маса на клиенти.

Овој туторијал за MySQL објаснува како да се користи MySQL АЖУРИРАЈ изјавасо синтакса и примери.

Синтакса

Во својата наједноставна форма, синтаксата за изјавата UPDATE при ажурирање на една табела во MySQL е:

АЖУРИРАЈ табела SET колона1 = израз1, колона2 = израз2, ... ;

Сепак, целосната синтакса за изјавата MySQL UPDATE при ажурирање на една табела е:

АЖУРИРАЈ [ LOW_PRIORITY ] [ ИГНОРИРАЈ ] табела SET колона1 = израз1, колона2 = израз2, ... ] ;

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

АЖУРИРАЈ табела1 СЕТ колона1 = (ИЗБЕРИ израз1 ОД табела2 КАДЕ услови) ;

Синтаксата за изјавата MySQL UPDATE при ажурирање на повеќе табели е:

АЖУРИРАЈТЕ табела1, табела2, ... ПОСТАВЕТЕ колона1 = израз1, колона2 = израз2, ... КАДЕ табела1.колона = табела2.колона И услови;

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

LOW_PRIORITY Ако е обезбеден LOW_PRIORITY, ажурирањето ќе биде одложено додека нема процеси кои читаат од маса. LOW_PRIORITY може да се користи со табелите MyISAM, MEMORY и MERGE кои користат заклучување на ниво на маса. ИГНОРИРАЈ опционално. Ако е обезбедено IGNORE, сите грешки што се среќаваат за време на ажурирањето се игнорираат. Ако ажурирањето на ред би резултирало со прекршување на примарен клуч или единствен индекс, ажурирањето на тој ред не се врши. колона 1, колона 2 израз 1, израз2 колона 1, колона2. Значи колона 1 израз 1, колона2би му била доделена вредноста на изразување2, и така натаму. WHERE услови Изборно. Условите што мора да се исполнат за да се изврши ажурирањето. ПОРАЧАЈ ПО израз Изборно. Може да се користи во комбинација со LIMIT за соодветно сортирање на записите кога се ограничува бројот на записи што треба да се ажурираат. LIMIT број_редови Изборно. Ако е обезбеден LIMIT, тој го контролира максималниот број на записи за ажурирање во табелата. Најмногу, бројот на записи наведен од број_редовиќе се ажурираат во табелата.

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

Ајде да погледнеме многу едноставен пример за барањето за ажурирање на MySQL.

АЖУРИРАЈ ги клиентите ПОСТАВЕТЕ презиме = „Андерсон“ КАДЕ клиент_ид = 5000;

Овој пример за ажурирање на MySQL ќе го ажурира презимена „Андерсон“ во клиентитабелата каде што клиент_иде 5000.

Пример - Ажурирајте повеќе колони

Ајде да погледнеме пример за Ажурирање на MySQL каде што можеби ќе сакате да ажурирате повеќе од една колона со една изјава за UPDATE.

АЖУРИРАЈ потрошувачите ПОСТАВЕТЕ состојба = „Калифорнија“, клиент_претставник = 32 КАДЕ клиент_ид > 100;

Кога сакате да ажурирате повеќе колони, ти можешнаправете го ова со одвојување на паровите колона/вредност со запирки.

државадо „Калифорнија“ и на клиент_претставникдо 32 каде што клиент_иде поголем од 100.

Пример - Ажурирајте ја табелата со податоци од друга табела

Ајде да погледнеме на пример UPDATE кој покажува како да се ажурира табела со податоци од друга табела во MySQL.

АЖУРИРАЈТЕ ги клиентите
ПОСТАВИ град = (ИЗБЕРИ град
ОД добавувачите
КАДЕ добавувачи.име_добавувач = customers.customer_name)
КАДЕ клиент_ид > 2000;

Овој пример за Ажурирање ќе го ажурира само клиентитабела за сите записи каде што на клиент_иде поголема од 2000 година. Име на Добавувачотод добавувачитабелата се совпаѓа со клиент_имеод клиентимаса, на градод табелата на добавувачи ќе се копира на градполе во клиентимаса.

Пример - Ажурирајте повеќе табели

Ајде да погледнеме на пример за Ажурирање на MySQL каде што можеби ќе сакате да извршите ажурирање што вклучува повеќе од една табела во една изјава за UPDATE.

АЖУРИРАЈТЕ ги клиентите, добавувачите ПОСТАВЕТЕ клиенти.град = добавувачи.град КАДЕ customers.customer_id = добавувачи.supplier_id;

Овој пример на изјава за MySQL UPDATE ќе го ажурира градполе во клиентимаса до градод добавувачитабелата каде што клиент_идодговара на добавувач_ид.

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

граматика

Следува командата UPDATE за менување на MySQL Sheet Data General SQL Syntax:

АЖУРИРАЈТЕ го името на табела СЕТ поле1=нова-вредност1, поле2=нова-вредност2

  • Можете да ажурирате едно или повеќе полиња во исто време.
  • Можете да наведете кој било услов во клаузулата WHERE.
  • Можете исто така да ги ажурирате податоците во посебна табела.

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

Командна линија за ажурирање на податоците

Подолу ќе го ажурираме w3big_tbl наведен во табелата со податоци со SQL командиАжурирање на INEKE:

примери

Следниот пример ќе ја ажурира табелата со податоци како w3big_title w3big_id вредност 3 на полето:

# mysql -u root -p лозинка; Внесете лозинка:******* mysql> користете w3big; Базата на податоци се смени mysql> UPDATE w3big_tbl -> SET w3big_title="Learning 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.

Ажурирање на синтаксата

Синтакса на една табела:
АЖУРИРАЈ shya_tabletsh
ПОСТАВЕТЕ column_name1=израз1 [,Име_ колона2=израз2 ...]


Синтакса со повеќе табели:

АЖУРИРАЈ табела_име [, табела_име...] ПОСТАВЕНО колона_име 1=израз1 [,колона_име2=израз2...]
Изјавата UPDATE ги ажурира колоните од постојните редови на табелата со нови вредности. Конструкцијата SET ги наведува колоните што треба да се менуваат и вредностите што треба да им се доделат. Ако е наведена клаузула WHERE, таа одредува кои редови треба да се ажурираат. Во спротивно, сите редови на табелата се ажурираат. Ако е наведена клаузула ORDER BY, редовите ќе се ажурираат по наведениот редослед. Конструкцијата LIMIT наметнува ограничување на бројот на редови што треба да се ажурираат.
Изјавата UPDATE ги поддржува следниве модификатори:

  1. Ако е наведен клучниот збор LOW_PRIORITY, извршувањето UPDATE се одложува додека сите други клиенти не завршат со читање на табелата.
  2. Ако е наведен клучниот збор IGNORE, операцијата за ажурирање нема да се прекине дури и ако се појават дупликати клучеви. Редовите што предизвикуваат конфликти нема да се ажурираат.

Ако користите колони од табела табела_имево изразите, UPDATE ја користи моменталната вредност на колоните. На пример, следната изјаваја зголемува вредноста на колоната возраст за еден:
mysql> АЖУРИРАЈ СЕТ на лични податоци возраст=возраст+l;
Задачите во UPDATE се вршат од лево кон десно. На пример, следната изјава ја удвојува вредноста на колоната возраст и потоа ја зголемува: mysql> АЖУРИРАЈ СЕТ на лични податоци возраст=возраст*2, возраст=возраст+l;
Ако ја поставите вредноста на колоната на она што е, MySQL го открива ова и не се ажурира.
Ако ја ажурирате колоната што е прогласена за NOT null на NULL, таа е поставена на стандардната вредност соодветна за конкретниот тип на податоци и го зголемува бројачот за предупредување за еден. Стандардната вредност е 0 за нумеричките колони, празната низа ("") за колоните со знаци и нула за колоните за датум време.
UPDATE го враќа бројот на редови што всушност биле ажурирани. Во MySQL 3.22 и подоцна, функцијата mysql_info(). софтверски интерфејсСО APIго враќа бројот на редови кои одговараат на барањето и се ажурирани, како и бројот на предупредувања што се случиле за време на АЖУРИРАЊЕТО.
Од MySQL 3.23, можете да користите ограничување број на линииза ограничување на опсегот на АЖУРИРАЊЕТО.
Конструкцијата LIMIT работи вака:

  1. Пред MySQL 4.0.13, LIMIT беше ограничување на бројот на обработени редови. Операторот се откажа веднаш штом ажурираше број на линииредови кои одговараат на клаузулата WHERE.
  2. Почнувајќи со MySQL 4.0.13, лимитот е ограничување за совпаѓање низа. Операторот излегува веднаш штом ќе најде број на линииредови кои ја задоволуваат клаузулата WHERE, без разлика дали се навистина ажурирани или не.

Ако изјавата UPDATE вклучува редослед по клаузула, тогаш редовите се ажурираат по редоследот наведен во таа конструкција. ORDER BY може да се користи почнувајќи од MySQL 4.0.0.
Почнувајќи со MySQL 4.0.0, исто така е можно да се извршат операции за Ажурирање кои работат на повеќе табели одеднаш:
АЖУРИРАЈ артикли,месец СЕТ ставки.цена=месец.цена КАДЕ артикли.ид-месец. id/ Овој пример покажува внатрешно спојување со помош на операторот со запирка, но ажурирањата со повеќе табели може да користат секаков тип на спојување што е дозволено во Избери изјава, на пример, LEFT JOIN.
На белешка!

  • Не можете да користите ORDER BY или LIMIT во изјавите за АЖУРИРАЊЕ на повеќе табели.
Пред MySQL 4.0.18, беше неопходно да се има привилегијата за UPDATE на сите табели што се користат во Ажурирање со повеќе табели, дури и ако тие всушност не беа ажурирани. Почнувајќи со MySQL 4.0.18, таквите табели, чии колони се само читливи, но не и ажурирани, бараат само привилегија SELECT.
Ако користите изјава за UPDATE со повеќе табели на табелите на InnoDB кои имаат дефинирани ограничувања за странски клучеви, оптимизаторот MySQL може да ги обработи по различен редослед од нивниот однос родител-дете. Во овој случај, изјавата ќе пропадне и трансакцијата ќе се врати назад. Наместо тоа, ажурирајте една табела и потпирајте се на својството ON UPDATE што го обезбедува моторот InnoDB автоматско ажурирањеповрзани табели.


Врв