mysql insert into table insert statement syntax examples
Този урок обяснява изявлението на таблицата MYSQL INSERT INTO заедно със синтаксиса на заявките и примери. Също така научете различни варианти на командата за вмъкване на MYSQL:
В MySQL командата INSERT се използва за добавяне на данни към таблицата. С помощта на тази команда можем да вмъкнем данни в един или повече от един ред в една отделна транзакция. Също така данните могат да се добавят към една или повече от една таблица в една транзакция.
Ще разгледаме всичко това в предстоящите раздели. Преди да продължите напред, обърнете внимание, че използваме MySQL версия 8.0. Можете да го изтеглите от тук .
Какво ще научите:
- Синтаксис на командата MySQL INSERT
- Варианти на изявление на MySQL INSERT
- Често задавани въпроси и отговори
- Заключение
Синтаксис на командата MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Обяснение на синтаксиса:
- Синтаксисът започва с ключовата дума „INSERT INTO“, като по този начин информира MySQL сървъра за вида дейност, която трябва да се извърши. Това е задължителна ключова дума и не може да бъде пропусната.
- След това идва името на таблицата, върху която трябва да се извърши действието за вмъкване. Това е задължително и не може да се пропусне също.
- След това ще бъдат вмъкнати имената на колоните заедно със съответните им стойности. Отново, това също е задължително и не може да бъде пропуснато.
- След това ще бъде клаузата за стойности. В тази клауза трябва да се предостави стойността за всяка колона, която вмъкваме в таблицата. Последователността от стойности и поредицата от имена на колони трябва да бъдат синхронизирани.
- Броят и типовете данни на колоните трябва да бъдат същите като тези на стойностите.
Модификатори в INSERT Statement
- НИСЪК ПРИОРИТЕТ: Този модификатор информира MySQL Engine да забави изпълнението на оператора INSERT до такъв момент, че да няма връзки с четене от таблицата, която се опитваме да INSERT. Това помага за постигане на последователност при всички други операции, които ще се извършват на тази маса.
- ВИСОК ПРИОРИТЕТ: Този модификатор информира MySQL Engine да даде висок приоритет на оператора INSERT пред всеки друг оператор / транзакция което се изпълнява на масата.
- ИГНОР: Този модификатор информира MySQL Engine да игнорира всички грешки, които могат да възникнат поради изпълнението на оператора INSERT. Всички възникнали грешки ще бъдат третирани като обикновени предупреждения и вмъкването на записи в таблицата ще продължи безпрепятствено.
- ЗАДЪЛЖЕНО: Това е разширението MySQL за стандартен SQL. Когато INSERT DELAYED е издадено от потребителя, сървърът поставя на опашка всички редове и данните се вмъкват в таблицата по-късно, когато таблицата не се използва от други транзакции.
Пример за MySQL INSERT
Следва примерна таблица, създадена в MySQL.
Име на схемата: тихоокеански
Име на таблицата: служители
Имена на колони:
- empNum - Съдържа целочислени стойности за номера на служителя.
- lastName - Съдържа стойности на varchar за фамилното име на служителя.
- firstName - Съдържа стойности на varchar за първото име на служителя.
- имейл - Съдържа стойности на varchar за имейл адреса на служителя.
- deptNum - Задържа varchar за идентификатора на отдела, към който принадлежи служителят.
- заплата - Съдържа десетични стойности на заплатата за всеки служител.
- start_date - Съдържа стойности на датата за датата на присъединяване на служителя.
Име на схемата: тихоокеански
Име на таблицата: Служители_история
Имена на колони:
- empNum - Съдържа целочислени стойности за номера на служителя.
- lastName - Съдържа стойности на varchar за фамилното име на служителя.
- firstName - Съдържа стойности на varchar за първото име на служителя.
- имейл - Съдържа стойности на varchar за имейл адреса на служителя.
- deptNum - Задържа varchar за идентификатора на отдела, към който принадлежи служителят.
- заплата - Съдържа десетични стойности на заплата за всеки служител.
- start_date - Съдържа стойности на датата за датата на присъединяване на служителя.
Варианти на изявление на MySQL INSERT
# 1) MySQL Вмъкване на един ред
Първо, ще разгледаме сценарий, при който сме посочили както имената на колоните, така и стойностите, които трябва да бъдат вмъкнати, използвайки ключовата дума INSERT INTO.
Например, Тук ще се опитаме да вмъкнем нов служител. Ще добавим номера, име и фамилия на служителя, заедно с това ще актуализираме имейл адреса, заплатата и идентификационния номер на отдела, към който трябва да принадлежи новият служител.
Заявката и съответните резултати са както следва:
Както е показано на снимката по-горе, инструкцията INSERT е изпълнена успешно и е вмъкнала един ред в таблицата на служителя.
Изходният оператор по-долу показва времето, в което е бил изпълнен операторът, MySQL изразът, който е бил изпълнен, и броят на редовете, които са били засегнати.
Моля, обърнете внимание тук, че стойността за всяка колона се споменава в същия ред като тази на имената на колоните. Също така обърнете внимание, че колоната с типа данни на цяло число / десетично число не е затворена в обърнати запетаи, но типовете колони с тип данни varchar / char са затворени с обърнати запетаи.
За да проверим изхода на този оператор INSERT, нека изпълним оператора SELECT на тази таблица с empNum като 1012.
Запитване:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Снимка на таблица след:
empNum | фамилия | първо име | електронна поща | deptNum | Заплата | |
---|---|---|---|---|---|---|
1007 | Шмит | Джеймс | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Лутер | Мартин | ml@gmail.com | 3 | 13000 |
# 2) MySQL Вмъкване на данни само в определена колона
След това е друг начин за вмъкване на данни в таблица, но чрез вмъкване на записи само в необходимите колони, а не във всички колони. Моля, имайте предвид, че не можем да пропуснем ключовите колони в този сценарий. В случай на таблица на нашия служител, ключовата колона е колоната empNum. Нека изпробваме това.
Например, Ще вмъкнем нов запис в таблицата на служителите с данни само за empNum, lastName, firstName. Няма да присвояваме никакви имейл адреси, отдел или заплата за този служител.
Следва заявката и нейният резултат:
Както е показано на снимката по-горе, операторът за вмъкване е изпълнен успешно и е вмъкнал един ред в таблицата на служителя.
кой е най-добрият софтуер за разпознаване на глас
Моля обърнете внимание, че за да вмъкнем само избраните колони, колоните, които сме пропуснали, трябва или да бъдат обявени за NULL, или да имат някаква стойност по подразбиране, която ще се попълва в случай, че тази колона бъде пропусната. Ако това условие не е изпълнено, тогава операторът за вмъкване ще се провали.
Нека проверим изпълнението на горния оператор INSERT, като изпълним оператор SELECT за empNum = 1013.
Запитване:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Снимка на таблица след:
empNum | фамилия | първо име | електронна поща | deptNum | Заплата |
---|---|---|---|---|---|
1013 | Нолан | Крис | НУЛА | НУЛА | НУЛА |
# 3) MySQL Вмъкване на няколко реда
След това ще преминем през сценария, при който трябва да вмъкнем множество редове в таблицата със същия оператор INSERT.
Например, в този случай трябва да споменем имената на колоните само веднъж, но можем да продължим да повтаряме стойностите за тези колони толкова пъти, колкото е необходимо.
Следва заявката заедно с резултатите, свързани с нея:
Както е показано на снимката по-горе, изпълнението на изявлението беше успешно.
Наблюдавайте частта със съобщението, която гласи, че са засегнати 3 реда, това означава, че този отделен оператор INSERT е вмъкнал 3 записа с изпълнението на този оператор INSERT.
Допълнително четене = >> Урок за изявление за MySQL
Нека проверим изхода на нашия оператор INSERT, като изпълним оператора SELECT за нови идентификатори на служители 1014, 1015 и 1016.
Подробностите са както следва:
Запитване:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES (1014, 'Murray', 'Keith', 'km@gmail.com', 1, 25000), (1015, 'Branson', 'John', 'jb@gmail.com', 2, 15000), (1016, 'Martin', 'Richard', 'rm@gmail.com', 4, 5000) ;
Снимка на таблица след:
empNum | фамилия | първо име | електронна поща | deptNum | Заплата |
---|---|---|---|---|---|
1014 | Мъри | Кийт | km@gmail.com | 1 | 25000 |
1015 | Брансън | Джон | jb@gmail.com | две | 15000 |
1016 | Мартин | Ричард | rm@gmail.com | 4 | 5000 |
# 4) Вмъкване на дата на MySQL
След това ще преминем през сценария, в който трябва да вмъкнем стойности в колоната за дата.
Например, Вмъкването на стойности в колоната за дата може да е сложно. Датата в MySQL може да бъде добавена към формата „ГГГГ-ММ-ДД“. За да постигнем това, нека добавим колона start_date със стойността по подразбиране като „0001-01-01“.
Това означава, че всички съществуващи записи в таблицата на служителя със стартовата дата ще бъдат актуализирани като „0001-01-01“. Изразът alter ще бъде както следва.
Запитване:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Нека проверим изхода на горната заявка, като изпълним прост оператор SELECT на таблицата:
И така, добавихме нова колона за дата с тип данни като „DATE“ със стойността по подразбиране като „0001-01-01“. Сега нека вмъкнем две нови записи на служителите, една с текущата дата и друга с конкретна дата.
какво е тестване за автоматизация при тестване на софтуер
Следват запитванията заедно с подробностите:
Както е показано на горната снимка, използвахме функцията за вмъкване на множество редове в таблицата, както е обяснено в предишния раздел.
Първият запис беше вмъкнат с функцията CURRENT_DATE (). Тази функция връща текущата системна дата. Вторият запис беше вмъкнат с определена дата във формат „ГГГГ-ММ-ДД“.
След това ще проверим изхода на нашия оператор INSERT с инструкция SELECT за empNum 1017 и 1018.
Първият запис, с empNum = 1017, има начална дата, същата като текущата дата, която е 25тиНоември 2019 г. (в случая датата, на която е написан този урок) във формат „ГГГГ-ММ-ДД“.
Запитване:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary, start_date ) VALUES (1017, 'Johnson', 'Eve', 'ej@gmail.com', 3, 5500, CURRENT_DATE()), (1018, 'Bond', 'Nolan', 'nb@gmail.com', 2, 15000, '2019-09-13') ;
Снимка на таблица след:
empNum | фамилия | първо име | електронна поща | deptNum | Заплата | Начална дата |
---|---|---|---|---|---|---|
1017 | Джонсън | Ева | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Връзка | Нолан | nb@gmail.com | две | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL Вмъкване в таблица от друга таблица
След това ще преминем през сценария, при който трябва да вмъкнем данни в нова таблица от съществуваща таблица.
Например, Помислете за сценарий, при който периодично трябва да преместваме данни от съществуващата ни таблица в историческа или архивна таблица. За да постигнем това, нека създадем нова таблица staff_history.
Нашата задача е да преместим данни от таблицата на служителя в таблицата на worker_history.
Изразът CREATE е както следва:
Запитване:
CREATE TABLE employees_history LIKE employees ;
Нека проверим резултата от горната заявка, като изпълним прост DESC израз на новата таблица, който ще ни даде структурата на таблицата на новата таблица:
И така, създадохме нова таблица. Сега нека да заредим данни в тази нова таблица от таблицата на служителя.
=> Научете повече за MySQL СЪЗДАЙТЕ КОМАНДА НА МАСА .
Следват заявката и нейните подробности:
Както е показано на горната снимка, вмъкването на данни в новата таблица от съществуващата таблица е успешно.
Моля, обърнете внимание на колоната за съобщения в раздела за изход Пише, че са засегнати 18 реда. Това предполага, че всичките 18 реда в съществуващата таблица са копирани в новосъздадената таблица staff_history.
След това ще проверим резултата от нашия оператор INSERT с инструкция SELECT на таблицата staff_history.
Горната снимка изобразява всички редове, копирани от таблицата на служителя в таблицата staff_history.
Горната снимка изобразява всички редове, копирани от таблицата на служителите в таблицата staff_history.
Запитване:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Снимка на таблица след:
empNum | фамилия | първо име | електронна поща | deptNum | Заплата | Начална дата |
---|---|---|---|---|---|---|
1001 | Андрюс | Джак | ja@gmail.com | 1 | 3182.7 | 0001-01-01 |
1002 | Швац | Майк | ms@gmail.com | 1 | 5304,5 | 0001-01-01 |
1003 | Ленгли | Маргарет | margaret.langley@gmail.com | две | 8820 | 0001-01-01 |
1004 | Харера | Сандра | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | Прочети | Питър | pl@gmail.com | две | 14333 | 0001-01-01 |
1006 | Кийт | Джени | jk@gmail.com | две | 16538 | 0001-01-01 |
1008 | Бейли | Оливър | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1009 | Купа | Хари | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Армстронг | Яков | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Ханкс | Том | th@gmail.com | НУЛА | 10100 | 0001-01-01 |
1012 | Лутер | Мартин | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Нолан | Крис | НУЛА | НУЛА | НУЛА | 0001-01-01 |
1014 | Мъри | Кийт | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Брансън | Джон | jb@gmail.com | две | 15000 | 0001-01-01 |
1016 | Мартин | Ричард | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Джонсън | Ева | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Връзка | Нолан | nb@gmail.com | две | 15000 | 2019-09-13 00:00:00 |
Често задавани въпроси и отговори
В # 1) Как да вмъкнете данни в таблицата в MySQL?
Отговор: За да вмъкнем данни в таблица на MySQL, MySQL ни предоставя важна ключова дума „INSERT INTO“. Следва името на таблицата, списък с колони и списък на съответните стойности, които трябва да бъдат вмъкнати. Можем да използваме тази ключова дума, за да вмъкнем една или повече колони в една и съща транзакция.
В # 2) Обяснете клаузата „INSERT IGNORE INTO“.
как да премахна елемента от масива
Отговор: Когато се опитваме да вмъкнем повече от един ред в един оператор INSERT, може да е възможно изпълнението да не успее поради лоши данни за всеки определен ред. Това ще доведе до спиране на транзакцията и връщане към предишния ангажимент.
За да се избегнат подобни сценарии, „ВЪВЕДЕТЕ ИГНОРИРАНЕ В“ се използва. Тази клауза игнорира грешката, причиняваща невалидни записи, и вмъква само валидни записи, така че транзакцията да не спира. Това е полезно, когато трябва да направите групови вмъквания и не можете да си позволите да го повторите за лоши данни за ред.
В # 3) Как да актуализирам атрибутите в MySQL?
Отговор: Можем да актуализираме атрибут (и), като използваме оператора MySQL Update, като изявлението започва с ключовата дума UPDATE, последвано от името на таблицата. Следва клаузата SET, последвана от име на колона и клауза WHERE.
В # 4) Мога ли да вмъкна множество записи в една транзакция на MySQL Insert?
Отговор: Както е показано по-горе, под „Вмъкване на данни в множество редове“ раздел, можем да вмъкнем няколко реда в една транзакция за вмъкване. Можем да използваме клаузата INSERT INTO, последвана от името на таблицата и списъка с колони, но вместо един списък със стойности, трябва да споменем множество списъци със стойности за всяка от колоните.
В # 5) Откъде изтегляте MySQL?
Отговор: Можете да изтеглите MySQL версия 8.0 от тук: MySQL .
Прочетете също => Как да изтеглите MySQL
В # 6) Може ли клаузата SELECT да се използва в оператора MySQL INSERT?
Отговор: Да, SELECT може да се използва заедно с оператора MySQL INSERT. Това е обяснено в раздела „MySQL Вмъкване на таблица от друга таблица“. Това се използва, когато трябва да вмъкнем редове в една таблица, като използваме данните, които вече присъстват в друга таблица.
Например, преместване на данни от текущата таблица в историческата таблица в хранилището за данни.
В # 7) Как MySQL съхранява датата в таблици?
Отговор: MySQL използва формата „ГГГГ-ММ-ДД“ за съхраняване на дата в таблици. Типът данни тук е DATE. Обхватът на датите, които се поддържат от MySQL, е от ‘1000-01-01’ до ‘9999-12-31’.
MySQL също има тип данни DATETIME, за да съхранява както дата, така и час. Форматът е „ГГГГ-ММ-ДД чч: мм: сс“. Допустимият диапазон е от ‘1000-01-01 00:00:00’ до ‘9999-12-31 23:59:59’.
Препоръчително четене = >> Урок за типове данни за MySQL
Заключение
По този начин в този урок научихме за петте различни начина за изпълнение на INSERT изрази в MySQL.
- MySQL Вмъкване на един ред
- MySQL Вмъкване на данни само в определена колона
- MySQL Вмъкване на данни в множество редове
- Вмъкване на дата на MySQL
- MySQL Вмъкване на таблица от друга таблица
Можем да използваме и двете от тях, въз основа на нашите проектни изисквания.
Честито четене !!
Препоръчително четене
- Разлика между SQL Vs MySQL Vs SQL Server (с примери)
- Топ 40 най-добри въпроса и отговори за интервю за MySQL (2021 въпроса)
- Урок за изявление за актуализация на MySQL - Синтаксис и примери за актуализиране на заявки
- Синтаксис на командата Unix Cat, Опции с примери
- Команда за сортиране на Unix със синтаксис, опции и примери
- Поставете множество документи в MongoDB с помощта на масиви
- C # Използване на Statement и C # Урок за виртуален метод с примери
- Структура на програмата C # и основен синтаксис с примери