Заявка за комплексно актуализиране на Mysql. АКТУАЛИЗИРАНЕ на MySQL заявки



Съдържанието на статията
1. Най-основните MySQL заявки
2. Прости SELECT заявки
3. Прости INSERT (нов запис) заявки
4. Прости UPDATE (пренаписване, добавяне) заявки
5. Прости заявки DELETE (изтриване на запис).
6. Прости DROP (изтриване на таблица) заявки
7. Сложни MySQL заявки
8. MySQL заявки и PHP променливи

1. Най-простите SQL заявки

1. Ще покаже списък с ВСИЧКИ бази данни.

SHOW бази данни;
2. Изброява ВСИЧКИ таблици в базата данни base_name.

SHOW таблици в base_name;

2. Прости SELECT заявки към MySQL база данни

ИЗБЕРЕТЕ- заявка, която избира вече съществуващи данни от базата данни. За избор можете да посочите определени параметри за избор. Например, същността на заявката на руски език е: ИЗБЕРЕТЕ такива и такива колони ОТ такава и такава таблица КЪДЕ параметърът на такава и такава колона е равен на стойността.

1. Избира ВСИЧКИ данни в таблицата tbl_name.

SELECT * FROM tbl_name;
2. Ще покаже броя на записите в таблицата tbl_name.

SELECT count (*) FROM tbl_name;
3. Избира (SELECT) от (FROM) таблица tbl_name ограничение (LIMIT) 3 записа, започвайки от 2.

SELECT * FROM tbl_name LIMIT 2,3;
4. Избира (SELECT) ВСИЧКИ (*) записи от (FROM) таблица tbl_name и ги сортира (ORDER BY) по идентификатор в ред.

SELECT * FROM tbl_name ORDER BY id;
5. Избира (SELECT) ВСИЧКИ записи от (FROM) таблица tbl_name и ги сортира (ORDER BY) по id в ОБРАТЕН ред.

SELECT * FROM tbl_name ORDER BY id DESC;
6. Избира ( ИЗБЕРЕТЕ) ВСИЧКИ (*) записи от ( ОТ) таблици потребителии ги сортира ( ПОДРЕДЕНИ ПО) на игрището документ за самоличноствъв възходящ ред, граница ( LIMIT) първите 5 записа.

ИЗБЕРЕТЕ * ОТ потребители ORDER BY id LIMIT 5;
7. Избира всички записи от таблицата потребителикъде е полето fnameсъвпада със стойността Гена.

SELECT * FROM users WHERE fname = "Gena";
8. Избира всички записи от таблицата потребителикъдето стойността на полето fnameЗапочни с Ge.

ИЗБЕРЕТЕ * ОТ потребители WHERE fname LIKE "Ge%";
9. Избира всички записи от таблицата потребители, където fnameзавършва в наи подрежда записите във възходящ ред на стойността документ за самоличност.

ИЗБЕРЕТЕ * ОТ потребители КЪДЕ fname КАТО "% na" ПОРЪЧАЙТЕ ПО id;
10. Избира всички данни от колони fname, имеот масата потребители.

ИЗБЕРЕТЕ fname, lname ОТ потребители;

11. Да приемем, че имате държава в таблицата с потребителски данни. Така че, ако искате да покажете САМО списък на срещащите се стойности (така че, например, Русия да не се показва 20 пъти, а само един), тогава използвайте DISTINCT. Той ще изведе от масата повтарящи се стойности Русия, Украйна, Беларус. Значи от масата потребителиколони странаЩе бъдат показани ВСИЧКИ УНИКАЛНИ стойности

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

ИЗБЕРЕТЕ * ОТ потребители WHERE възраст В (18,19,21);
13. Избира MAX стойност възрастна масата потребители... Тоест, ако имате най-високата стойност в таблицата възраст(от английски възраст) е 55, тогава резултатът от заявката ще бъде 55.

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

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

ИЗБЕРЕТЕ име ОТ потребители WHERE id! = "2";

3. Прости INSERT (нов запис) заявки

INSERT- заявка, която ви позволява ПЪРВОНАЧАЛНО да вмъкнете запис в базата данни. Тоест създава НОВ запис (ред) в базата данни.

1. Прави нов входна масата потребители, в полето имевмъква Сергей и в полето възраствмъква 25. Така към таблицата се добавя нов ред с дадените стойности. Ако има повече колони, те ще останат или празни, или със стойностите по подразбиране.

ВМЕСЕТЕ В потребители (име, възраст) СТОЙНОСТИ ("Сергей", "25");

4. Прости UPDATE заявки към MySQL базата данни

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

1. В таблицата потребители възрастстава 18.

АКТУАЛИЗИРАНЕ на потребителите SET age = "18" WHERE id = "3";
2. Всичко е същото като в първата заявка, само се показва синтаксисът на заявката, където се презаписват две или повече полета.
На масата потребители WHERE id е 3 стойност на полето възрастстава 18 и странаРусия.

АКТУАЛИЗИРАНЕ на потребителите SET age = "18", country = "Russia" WHERE id = "3";

5. Прости DELETE (изтриване на запис) заявки към MySQL базата данни

ИЗТРИЙ- заявка, която премахва ред от таблицата.

1. Изтрива ред от таблицата потребителиКЪДЕТО документ за самоличносте равно на 10.

DELETE FROM users WHERE id = "10";

6. Прости DROP (изтриване на таблица) заявки към MySQL базата данни

ИЗПУСКАЙТЕ- заявка, която пуска таблица.

1. Пуска цялата маса tbl_name.

DROP TABLE tbl_name;

7. Сложни заявки към базата данни MySQL

Любопитни запитвания, които могат да бъдат полезни дори за напреднали потребители

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

АКТУАЛИЗИРАНЕ на потребителите SET age = "18+" WHERE age = (ИЗБЕРЕТЕ възраст ОТ потребители WHERE мъж = "мъж");
Горното е пример за т.нар заявка в заявкав SQL. Актуализирайте възрастта на потребителя до 18+, където полът е мъж. Не препоръчвам такива опции за заявка. От личен опит ще кажа, че е по-добре да създадете няколко отделни - те ще бъдат отработени по-бързо.

8. Запитвания към базата данни MySQL и PHP

В MySQL заявки в PHP страница можете да вмъквате променливи като сравнения и други стойности. Няколко примера

1. Избира всички записи от таблицата потребителикъде е полето fnameсъвпада със стойността на променливата $ име.

SELECT * FROM users WHERE fname = "$ име";
2. В таблицата потребители WHERE id е 3 стойност на полето възрастпромени в стойността на променливата $ age.

АКТУАЛИЗИРАНЕ на потребителите SET age = "$ age" WHERE id = "3";

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

АКТУАЛИЗИРАНЕ на синтаксиса

Синтаксис на една таблица:
АКТУАЛИЗИРАНЕ shya_tabltsh
КОМПЛЕКТ име на колона1 = израз1 [,име_ колона2 = израз2 ...]


Синтаксис за няколко таблици:

АКТУАЛИЗАЦИЯ име_на_таблица [, име_на_таблица ...] НАСТР име на колона 1 = израз1 [, име на колона2 = израз2...]
Инструкцията UPDATE актуализира колоните на съществуващите редове в таблицата с нови стойности. Клаузата SET изброява колоните, които трябва да бъдат променени, и стойностите, които са им присвоени. Ако е посочена клауза WHERE, тя посочва кои редове трябва да бъдат актуализирани. В противен случай всички редове в таблицата се актуализират. Ако е указано ORDER BY, редовете ще бъдат актуализирани в посочения ред. Клаузата LIMIT налага ограничение за броя на актуализираните редове.
Инструкцията UPDATE поддържа следните модификатори:

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

Ако използвате колони от таблица име_на таблицав изразите UPDATE използва текущата стойност на колоните. Например, следният израз увеличава колоната възраст с едно:
mysql> АКТУАЛИЗИРАНЕ на лични данни SET възраст = възраст + l;
UPDATE заданията се правят отляво надясно. Например, следният оператор удвоява стойността на колоната за възрастта и след това увеличава с едно: mysql> АКТУАЛИЗИРАНЕ на лични данни SET възраст = възраст * 2, възраст = възраст + l;
Ако зададете стойността на колона каквато и да е, MySQL открива това и не се актуализира.
Ако актуализирате колона, която е декларирана NOT null до NULL, тя се задава на стойността по подразбиране за конкретния тип данни и увеличава броя на предупрежденията с едно. По подразбиране е 0 за числови колони, празен низ ("") за колони със знаци и нула за колони за дата и час.
UPDATE връща броя на редовете, които действително са били актуализирани. В MySQL 3.22 и по-нови, функцията mysql_info () на C API APIвръща броя на редовете, които съответстват на заявката и са били актуализирани, както и броя на предупрежденията, повдигнати по време на АКТУАЛИЗИРАНЕТО.
Тъй като MySQL 3.23 ограничението може да се използва брой линииза да ограничите обхвата на АКТУАЛИЗИРАНЕТО.
Клаузата LIMIT работи по следния начин:

  1. Преди MySQL 4.0.13 LIMIT беше ограничение за броя на обработените редове. Операторът излезе веднага след като се актуализира брой линииредове, които отговарят на клаузата WHERE.
  2. От MySQL 4.0.13 limit е ограничение за съвпадение на низове. Операторът излиза веднага щом го намери брой линииредове, които отговарят на клаузата WHERE, независимо дали действително са били актуализирани.

Ако оператор UPDATE включва подредба по клауза, редовете се актуализират в реда, определен от тази клауза. ORDER BY може да се използва от MySQL 4.0.0.
Започвайки с MySQL 4.0.0, също така е възможно да се изпълняват операции UPDATE, които работят върху множество таблици наведнъж:
АКТУАЛИЗИРАНЕ на артикули, месец SET items.price = month.price WHERE items.id-month. id / Този пример демонстрира вътрешно свързване с помощта на оператора запетая, но актуализациите на много таблици могат да използват всеки тип обединения, разрешени в оператора SELECT, като LEFT JOIN.
Забележка!

  • Не можете да използвате ORDER BY или LIMIT за многотаблици UPDATE оператори.
Преди MySQL 4.0.18 беше необходимо да имате привилегия UPDATE за всички таблици, използвани в UPDATE с няколко таблици, дори и да не са били актуализирани. Започвайки с MySQL 4.0.18, за такива таблици, чиито колони се четат само, но не се актуализират, трябва само да имате привилегията SELECT.
Ако използвате оператор UPDATE с множество таблици за InnoDB таблици, които имат дефинирани ограничения за външен ключ, MySQL оптимизаторът може да ги обработи в различен ред от връзката им родител-подчинение. В този случай изявлението ще се провали и транзакцията ще бъде върната назад. Вместо това актуализирайте една таблица и разчитайте на свойството ON UPDATE, което предоставя машината InnoDB автоматично актуализиранесвързани таблици.

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

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

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

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

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

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

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

смисъл- новата стойност, която да бъде въведена в полето.


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

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

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

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

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

Има таблица:

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

АКТУАЛИЗИРАНЕ стоки КОМПЛЕКТ цена = 150 КЪДЕ бр = 2

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

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

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

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

АКТУАЛИЗИРАНЕ стоки КОМПЛЕКТ цена = цена / 2 КЪДЕ цена> = 100

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

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

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

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

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

АКТУАЛИЗИРАНЕ стоки SET title = "(! LANG: желязо" , price = 300 WHERE num = 2 !}

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


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

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

граматика

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

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

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

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

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

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

примери

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

# mysql -u root -p парола; Въведете парола: ******* mysql> използвайте w3big; Базата данни е променена mysql> АКТУАЛИЗАЦИЯ w3big_tbl -> SET w3big_title = "(! LANG: Изучаване на 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 изрази, можете да използвате оператора UPDATE SQL или WHERE не се прилага.

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

примери

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

Команда АКТУАЛИЗИРАНЕ- прави промени в вече съществуващ записили в множество записи в таблица SQL... Променя съществуващите стойности в таблицата или в основната таблица на изгледа.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Emp a КОМПЛЕКТдепартаментно =
(ИЗБЕРЕТЕ deptno FROM dept WHERE loc = 'BOSTON'), (sal, comm) = ( ИЗБЕРЕТЕ 1.1 * AVG (sal), 1.5 * AVG (comm) ОТ emp b WHERE a.deptno = b.deptno) WHERE deptno IN ( ИЗБЕРЕТЕ deptno FROM dept WHERE loc = 'ДАЛАС' ИЛИ ​​loc = 'ДЕТРОЙТ');

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

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


Свързани статии: