mysql insert into table insert statement syntax examples
Овај водич објашњава изјаву табеле МИСКЛ ИНСЕРТ ИНТО заједно са синтаксом упита и примерима. Такође, научите различите варијанте команде за уметање МИСКЛ:
У МиСКЛ-у се команда ИНСЕРТ користи за додавање података у табелу. Помоћу ове команде можемо да убацимо податке у један или више редова у једној трансакцији. Такође, подаци се могу додати у једну или више табела у једној трансакцији.
Све то ћемо проћи у наредним одељцима. Пре него што наставите, имајте на уму да користимо МиСКЛ верзију 8.0. Можете га преузети са овде .
Шта ћете научити:
- Синтакса наредбе МиСКЛ ИНСЕРТ
- Варијације изјаве МиСКЛ ИНСЕРТ
- Често постављана питања и одговори
- Закључак
Синтакса наредбе МиСКЛ ИНСЕРТ
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Објашњење синтаксе:
- Синтакса започиње са кључном речи „ИНСЕРТ ИНТО“, чиме се МиСКЛ сервер обавештава о врсти активности коју треба извршити. Ово је обавезна кључна реч и не може се изоставити.
- Следи име табеле на којој треба извршити радњу уметања. Ово је обавезно и не може се изоставити.
- Даље, биће имена колона која ће се уметнути заједно са њиховим одговарајућим вредностима. Опет, ово је такође обавезно и не може се изоставити.
- Даље, биће клаузула вредности. У овој клаузули треба навести вредност за сваку колону коју убацујемо у табелу. Редослед вредности и низ имена колона треба да буду синхронизовани.
- Број и типови података ступаца треба да буду исти као и вредности.
Модификатори у изјави ИНСЕРТ
- НИЗАК ПРИОРИТЕТ: Овај модификатор обавештава МиСКЛ Енгине да одложи извршење наредбе ИНСЕРТ до тренутка када нема веза са читањем из табеле коју покушавамо да ИНСЕРТ. Ово помаже у постизању доследности у свим осталим операцијама које ће се изводити на том столу.
- ВИСОК ПРИОРИТЕТ: Овај модификатор обавештава МиСКЛ Енгине да даје висок приоритет изјави ИНСЕРТ над било којом другом изјавом / трансакција који се изводи на столу.
- ИГНОРЕ: Овај модификатор обавештава МиСКЛ Енгине да игнорише све грешке које могу настати услед извршавања ИНСЕРТ израза. Све грешке које се појаве третираће се као пука упозорења и уметање записа у табелу одвијало би се несметано.
- ОДЛОЖЕН: Ово је проширење МиСКЛ за стандардни СКЛ. Када корисник изда ИНСЕРТ ДЕЛАИЕД, сервер поставља све редове у ред и подаци се касније убацују у табелу, када табела не користи ниједну другу трансакцију.
Пример МиСКЛ ИНСЕРТ
Следи пример табеле креиране у МиСКЛ-у.
Назив шеме: пацифички
Назив табеле: запослени
Имена колона:
- емпНум - Садржи целобројне вредности броја запослених.
- ластНаме - Садржи варцхар вредности за презиме запосленог.
- фирстНаме - Садржи варцхар вредности за име запосленог.
- е-пошта - садржи вредности варцхар за имејл ИД запосленог.
- дептНум - Садржи варцхар за ИД одељења коме запослени припада.
- плата - Садржи децималне вредности зараде за сваког запосленог.
- датум_почетка - садржи вредности датума за датум придруживања запосленог.
Назив шеме: пацифички
Назив табеле: запослена_историја
Имена колона:
- емпНум - Садржи целобројне вредности броја запослених.
- ластНаме - Садржи варцхар вредности за презиме запосленог.
- фирстНаме - Садржи варцхар вредности за име запосленог.
- е-пошта - садржи вредности варцхар за имејл ИД запосленог.
- дептНум - Садржи варцхар за ИД одељења коме запослени припада.
- плата - Садржи децималне вредности зараде за сваког запосленог.
- датум_почетка - садржи вредности датума за датум придруживања запосленог.
Варијације изјаве МиСКЛ ИНСЕРТ
# 1) МиСКЛ убаци један ред
Прво ћемо погледати сценарио где смо помоћу кључне речи ИНСЕРТ ИНТО навели имена ступаца и вредности које ће се уметнути.
На пример, Овде ћемо покушати да убацимо новог запосленог. Додаћемо број, име и презиме запосленог, а уз то ћемо ажурирати и имејл, плату и ИД одељења којем би нови запослени требало да припада.
Упит и одговарајући резултати су следећи:
Као што је приказано на горњој слици, изјава ИНСЕРТ је успешно извршена и убацио је један ред у табелу запосленог.
Излазни израз у наставку приказује време извршења наредбе, извршени МиСКЛ израз и број редова на које је то утицало.
Имајте на уму овде, да се вредност за сваку колону помиње истим редоследом као и вредност имена колона. Такође, имајте на уму да колона са типом података цео број / децимал није затворена у обрнуте зарезе, међутим, типови колона са типом података варцхар / цхар обухваћени су обрнутим зарезима.
Да бисмо верификовали излаз овог ИНСЕРТ израза, извршимо СЕЛЕЦТ израз на овој табели са емпНум као 1012.
Упит:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Снимак табеле после:
емпНум | презиме | име | е-маил | дептНум | Плата | |
---|---|---|---|---|---|---|
1007 | Сцхмитт | Џејмс | јс@гмаил.цом | 4 | 21780 | 0001-01-01 |
1012 | Лутхер | Мартине | мл@гмаил.цом | 3 | 13000 |
# 2) МиСКЛ уметање података само у назначену колону
Даље је још један начин убацивања података у табелу, али уметањем записа само у тражене колоне, а не у све колоне. Међутим, имајте на уму да у овом сценарију не можемо изоставити кључне колоне. У случају табеле нашег запосленика, кључна колона је колона емпНум. Пробајмо ово.
На пример, У табелу запослених убацићемо нови запис са подацима о само емпНум, ластНаме, фирстНаме. Нећемо доделити било који ИД е-поште, одељење или плату за овог запосленог.
Следи упит и његов резултат:
Као што је приказано на горњој слици, изјава за уметање је успешно извршена и убацио је један ред у табелу запосленог.
разлика у ц и ц ++
Молим обратите пажњу, да би се убацили само изабрани ступци, ступци које смо прескочили треба или прогласити НУЛЛ или би требало да имају неку подразумевану вредност која би се попунила у случају да се та колона прескочи. Ако овај услов није задовољен, тада изјава за уметање неће успети.
Проверимо извршење горње наредбе ИНСЕРТ извршавањем СЕЛЕЦТ израза за емпНум = 1013.
Упит:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Снимак табеле после:
емпНум | презиме | име | е-маил | дептНум | Плата |
---|---|---|---|---|---|
1013 | Нолан | Цхрис | НУЛА | НУЛА | НУЛА |
# 3) МиСКЛ убаци више редова
Даље, проћи ћемо кроз сценарио где морамо убацити више редова у табелу са истим изразом ИНСЕРТ.
На пример, у овом случају, имена колона морамо споменути само једном, али можемо наставити да понављамо вредности за те колоне онолико пута колико је потребно.
Следи упит заједно са резултатима који су са њим повезани:
Као што је приказано на горњој слици, извршење изјаве је било успешно.
Посматрајте део поруке, који каже да су то погођена 3 реда, то подразумева да је овај појединачни израз ИНСЕРТ убацио 3 записа са извршењем овог израза ИНСЕРТ.
Даље читање = >> Водич за МиСКЛ Иф Статемент
Проверимо излаз нашег ИНСЕРТ израза извршавањем СЕЛЕЦТ израза за нове ИД-ове запослених 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) ;
Снимак табеле после:
емпНум | презиме | име | е-маил | дептНум | Плата |
---|---|---|---|---|---|
1014 | Мурраи | Кеитх | км@гмаил.цом | један | 25000 |
1015 | Брансон | Јохн | јб@гмаил.цом | два | 15000 |
1016 | Мартине | Рицхард | рм@гмаил.цом | 4 | 5000 |
# 4) МиСКЛ уметање датума
Даље ћемо проћи кроз сценарио где морамо уметнути вредности у колону датума.
На пример, Уметање вредности у колону са датумима може бити незгодно. Датум у МиСКЛ-у би могао да се дода у формат „ГГГГ-ММ-ДД“. Да бисмо то постигли, додајмо ступац старт_дате са подразумеваном вредношћу као „0001-01-01“.
То подразумева да ће се сви постојећи записи у табели запосленог са датумом_почетка ажурирати као „0001-01-01“. Изјава о алтеру биће следећа.
Упит:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Проверимо излаз горњег упита извршавањем једноставне наредбе СЕЛЕЦТ на табели:
Дакле, додали смо нову колону датума са типом података као „ДАТУМ“ са подразумеваном вредношћу „0001-01-01“. Сад убацимо две нове евиденције запослених, једну са тренутним датумом, а другу са одређеним датумом.
скл сервер пита примере са одговорима
Следе упити са детаљима:
Као што је приказано на горњој слици, користили смо функцију уметања више редова у табелу како је објашњено у претходном одељку.
Први запис је уметнут функцијом ЦУРРЕНТ_ДАТЕ (). Ова функција враћа тренутни системски датум. Други запис је убачен са одређеним датумом у формату „ГГГГ-ММ-ДД“.
Затим ћемо верификовати излаз нашег ИНСЕРТ израза са наредбом СЕЛЕЦТ за емпНум 1017 и 1018.
Први запис, са емпНум = 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') ;
Снимак табеле после:
емпНум | презиме | име | е-маил | дептНум | Плата | Датум_почетка |
---|---|---|---|---|---|---|
1017 | Јохнсон | Еве | еј@гмаил.цом | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Бонд | Нолан | нб@гмаил.цом | два | 15000 | 2019-09-13 00:00:00 |
# 5) МиСКЛ убаци у табелу из друге табеле
Даље ћемо проћи кроз сценарио у којем морамо уметнути податке у нову табелу из постојеће табеле.
На пример, Размотримо сценарио у којем морамо повремено премештати податке из постојеће табеле у историјску или архивску табелу. Да бисмо то постигли, креирајмо нову табелу стафф_хистори.
Наш задатак је премештање података из табеле запосленика у табелу запосленика_историја.
Изјава ЦРЕАТЕ је следећа:
Упит:
CREATE TABLE employees_history LIKE employees ;
Проверимо излаз горњег упита извршавањем једноставне ДЕСЦ наредбе на новој табели која ће нам дати структуру табеле нове табеле:
Дакле, створили смо нову табелу. Учитајмо сада податке у ову нову табелу из табеле запосленог.
=> Сазнајте више о МиСКЛ СТВАРИ КОМАНДУ ЗА ТАБЕЛУ .
Следе упит и детаљи:
Као што је приказано на горњој слици, уметање података у нову табелу из постојеће табеле је успешно.
Обратите пажњу на колону порука на картици излаза. Каже да је погођено 18 редова. То подразумева да је свих 18 редова у постојећој табели копирано у новостворену табелу запослених_историја.
Затим ћемо верификовати излаз нашег ИНСЕРТ израза са наредбом СЕЛЕЦТ на табели стафф_хистори.
Горња слика приказује све редове копиране из табеле запосленог у табели запослени_историја.
Горња слика приказује све редове копиране из табеле запослених у табели запосленика_историја.
Упит:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Снимак табеле после:
емпНум | презиме | име | е-маил | дептНум | Плата | Датум_почетка |
---|---|---|---|---|---|---|
1001 | Андревс | Јацк | ја@гмаил.цом | један | 3182.7 | 0001-01-01 |
1002 | Сцхватз | Мике | мс@гмаил.цом | један | 5304.5 | 0001-01-01 |
1003 | Ланглеи | Маргарет | маргарет.ланглеи@гмаил.цом | два | 8820 | 0001-01-01 |
1004 | Харера | Сандра | сх@гмаил.цом | један | 10609 | 0001-01-01 |
1005 | читати | Петер | пл@гмаил.цом | два | 14333 | 0001-01-01 |
1006 | Кеитх | Јенни | јк@гмаил.цом | два | 16538 | 0001-01-01 |
1008 | Баилеи | Оливер | оливер.баилеи@гмаил.цом | 3 | 24494 | 0001-01-01 |
1009 | Куп | Харри | хб@гмаил.цом | 5 | 30646 | 0001-01-01 |
1010 | Армстронг | Јацоб | јацоб.армстронг@гмаил.цом | 4 | 32670 | 0001-01-01 |
1011 | Ханкс | Том | тх@гмаил.цом | НУЛА | 10100 | 0001-01-01 |
1012 | Лутхер | Мартине | мл@гмаил.цом | 3 | 13000 | 0001-01-01 |
1013 | Нолан | Цхрис | НУЛА | НУЛА | НУЛА | 0001-01-01 |
1014 | Мурраи | Кеитх | км@гмаил.цом | један | 25000 | 0001-01-01 |
1015 | Брансон | Јохн | јб@гмаил.цом | два | 15000 | 0001-01-01 |
1016 | Мартине | Рицхард | рм@гмаил.цом | 4 | 5000 | 0001-01-01 |
1017 | Јохнсон | Еве | еј@гмаил.цом | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Бонд | Нолан | нб@гмаил.цом | два | 15000 | 2019-09-13 00:00:00 |
Често постављана питања и одговори
П # 1) Како се у МиСКЛ убацују подаци у табелу?
Одговор: За уметање података у МиСКЛ табелу, МиСКЛ нам пружа важну кључну реч „ИНСЕРТ ИНТО“. Следи име табеле, листа колона и листа одговарајућих вредности које треба убацити. Ову кључну реч можемо користити за уметање једне или више колона у исту трансакцију.
П # 2) Објасните клаузулу „ИНСЕРТ ИГНОРЕ ИНТО“.
Одговор: Када покушамо да убацимо више од једног реда у један ИНСЕРТ израз, могуће је да извршење не успе због лоших података за било који одређени ред. То ће довести до заустављања трансакције и враћања на претходни урези.
Да би се избегли такви сценарији, „ИНСЕРТ ИГНОРЕ ИНТО“ се користи. Ова клаузула занемарује грешку која узрокује неваљане записе и убацује само важеће записе тако да се трансакција не зауставља. Ово је корисно када морате да направите масовне уметања и не можете себи приуштити да то поновите због било каквих лоших података за ред.
П # 3) Како да ажурирам атрибуте у МиСКЛ?
Одговор: Атрибуте можемо ажурирати помоћу МиСКЛ наредбе за ажурирање, при чему изјава почиње с кључном речи УПДАТЕ, а иза ње следи име табеле. Следећа је клаузула СЕТ праћена називом колоне и клаузулом ВХЕРЕ.
П # 4) Могу ли уметнути више записа у једну трансакцију МиСКЛ Инсерт?
Одговор: Као што је приказано горе, испод „Уметање података у више редова“ одељак, можемо убацити више редова у једну трансакцију уметања. Можемо користити клаузулу ИНСЕРТ ИНТО праћену именом табеле и листом колона, али уместо једне листе вредности, морамо споменути више листа вредности за сваку од колона.
П # 5) Одакле преузимате МиСКЛ?
Одговор: МиСКЛ верзију 8.0 можете преузети овде: МиСКЛ .
скл вс носкл за и против
Такође прочитајте => Како преузети МиСКЛ
П # 6) Може ли се клаузула СЕЛЕЦТ користити у наредби МиСКЛ ИНСЕРТ?
Одговор: Да, СЕЛЕЦТ се може користити заједно са МиСКЛ ИНСЕРТ изјавом. Ово је објашњено у одељку, „МиСКЛ уметање табеле из друге табеле“. Ово се користи када морамо да убацимо редове у једну табелу, користећи податке који су већ присутни у некој другој табели.
На пример, премештање података из тренутне табеле у историјску табелу у складишту података.
П # 7) Како МиСКЛ чува датум у табелама?
Одговор: МиСКЛ користи формат „ГГГГ-ММ-ДД“ за чување датума у табелама. Овде је тип података ДАТЕ. Распон датума које МиСКЛ подржава је од „1000-01-01“ до „9999-12-31“.
МиСКЛ такође има тип података ДАТЕТИМЕ за чување и датума и времена. Формат је „ИИИИ-ММ-ДД хх: мм: сс“. Прихватљиви опсег је од „1000-01-01 00:00:00“ до „9999-12-31 23:59:59“.
Препоручено читање = >> Водич за МиСКЛ типове података
Закључак
Стога смо у овом упутству сазнали пет различитих начина извршавања ИНСЕРТ израза у МиСКЛ-у.
- МиСКЛ уметање једног реда
- МиСКЛ уметање података само у наведену колону
- МиСКЛ уметање података у више редова
- МиСКЛ уметање датума
- МиСКЛ Уметање табеле из друге табеле
Можемо да користимо било које од ових, на основу захтева нашег пројекта.
Срећно читање !!
Препоручено читање
- Разлика између СКЛ Вс МиСКЛ Вс СКЛ Сервер (са примерима)
- 40 најбољих питања и одговора за интервју за МиСКЛ (2021 питање)
- Водич за изјаву о ажурирању МиСКЛ - Синтакса упита и ажурирање примера
- Синтакса наредбе Уник Цат, опције са примерима
- Уник наредба за сортирање са синтаксом, опцијама и примерима
- Уметните више докумената у МонгоДБ помоћу низова
- Ц # Коришћење изјаве и Водич за виртуелне методе са примерима
- Структура програма Ц # и основна синтакса са примерима