Увод у Уметање у МиСКЛ
Главни циљ система база података је складиштење података у табеле. За дефинисање функционалности у бази података имамо различите врсте СКЛ наредби. У овој теми ћемо сазнати више о Инсерт у МиСКЛ-у.
СКЛ команде се могу категорисати у следеће:
- ДДЛ (језик дефиниције података)
- ДМЛ (језик за обраду података)
- ДКЛ (језик упита података)
- ДЦЛ (језик контроле података)
- ТЦЛ (језик контроле трансакције)
Овде у овом чланку ћемо се фокусирати углавном на ДМЛ. Као што можемо видети и назив Језик манипулације подацима, тако да је једном када је створена табела / база података за манипулирање нечим, потребне нам ДМЛ наредбе. Заслуге кориштења ових наредби су ако у случају било каквих погрешних промјена, можемо их одвратити / поништити.
Следе наредбе у ДМЛ-у:
1. ИНСЕРТ: Користи се за уметање нових редова у табелу.
INSERT into employee
Values(101, 'abcd');
2. ДЕЛЕТЕ: Користи се за брисање појединог реда или целих записа у табели.
DELETE TABLE employee;
3. УПДАТЕ: Користи се за ажурирање постојећих записа у табели.
UPDATE employee
SET col1 = new_col
WHERE condition;
Синтакса команде за уметање у МиСКЛ
Извод ИНСЕРТ ИНТО можемо написати на следећа два начина.
Пут број 1
INSERT INTO table_name
VALUES (value1, value2, ….);
Пут број 2
INSERT INTO table_name (column1, column2, …….)
VALUES (value1, value2, ….);
- ИНСЕРТ ИНТО табле_наме је наредба која додаје нови ред у табелу под називом `табле_наме 'у МиСКЛ бази података.
- (колона_1, колона_2, …) су имена ступаца у које ће се додати нови запис.
- ВАЛУЕС (валуе_1, валуе_2, …) одређује вредности које треба додати у нови ред.
Док додајемо нове записе, морамо бити опрезни према дефинисаним типовима података приликом креирања структуре табеле.
- Стринг: Све вредности стрингова треба да буду приложене једним наводницима.
- Нумеричке: Нумеричке вредности не би требале бити затворене ни у једном ни у двоструком наводњу.
- Датум: Ти типови података требају бити у једној цитати с 'ИИИИ-ММ-ДД' форматом.
Размотримо да постоји табела „запосленика“ која се састоји од следећих атрибута:
Емп_ид | Емп_наме | Телефон | Емаил | Одељење | Менаџер | Град |
1001 | Винаи | 9876543219 | ЦСР | Судхир | Бангалор | |
1002 | Раај | 9764527848 | ТО | Степхен | Хидерабад | |
1003 | Сакти | 9567382784 | Аутомобилски | Вед | Бхубанесвар |
Ако додамо вредности за све ступце табеле, не морамо да наводимо имена ступаца у упиту, али морамо бити сигурни да би наш нови запис требало да следи редослед колоне који је дефинисан у табели.
INSERT INTO employee
VALUES (1004, 'Ravi', 9856478398, ' ', 'marketing', 'shiv', 'kolkata');
Ако немамо све вредности ступаца, а неке од њих ћемо уметнути, у упиту морамо навести имена ступаца.
INSERT INTO employee (emp_id, emp_name, phone, email, manager)
VALUES (1005, 'sam', 9856478398, ' ', 'shivankar');
Имплементација Инсерт Цомманд у МиСКЛ-у
Размотримо да имамо следеће спискове нових записа које је потребно додати у таблицу базе података СТУДЕНТ.
Ролл_но | Име | Презиме | Стандардно | Телефон | Проценат | Град |
1 | Сандееп | Кумар | 10 | 9876456726 | 89.33 | Цуттацк |
2 | Схиам | 9 | 76 | Бхубанесвар | ||
3 | Сакти | Наик | 6463765776 | 76 | ||
4 | Сид | 8 | 9864876986 | Колката | ||
5 | Винаи | Кумар | 10 | 92 |
Те редове ћемо уметнути један по један у базу података.
- Кренимо од Сандеепа. Овде су 'Ролл_но', 'Стандард', 'Пхоне' и 'Процент' нумеричка поља, тако да ће се вредности у овај ступац уметати без наводника.
INSERT INTO student
VALUES (1, 'Sandeep', 'Kumar', 10, 9876456726, 89.33, 'Cuttack');
Напомена: Како имамо вредности свих ступаца студентске таблице, не требамо специфицирати назив ступца док употребљавамо наредбу ИНСЕРТ. Али морамо бити сигурни да би наша вредност требало да следи редослед ступаца у табели.
- У случају записа Схиам, можемо видети да многе вредности недостају. Дакле, овдје морамо одредити имена ступаца, у које желимо уметнути вриједности.
INSERT INTO student (Roll_no, First_name, Standard, Percentage, City)
VALUES (2, 'Shyam', 9, 76, 'Bhubaneswar');
Напомена: У овом запису немамо вредности сваке колоне. Зато морамо одредити сва имена ступаца у које желимо да убацимо наше вредности, а редоследом тих имена ступаца морамо поменути и вредности.
INSERT INTO student (Roll_no, First_name, Last_name, Phone, Percentage)
VALUES (3, 'Sakti', 'naik', 6463765776, 76);
INSERT INTO student (Roll_no, First_name, Standard, Phone, City)
VALUES (4, 'Sid', 8, 9864876986, 'Kolkata');
INSERT INTO student (Roll_no, First_name, Last_name, standard, Percentage)
VALUES (5, 'Vinay', 'Kumar', 10, 92);
Промјена редослиједа ступаца и вриједности неће имати утјецаја на ИНСЕРТ упит јер се права вриједност не може пресликати у десни ступац. Стога могу настати проблеми попут уметања нумеричке вредности у низ или обрнуто.
У свим горе наведеним упитима недостаје толико поља као што су Презиме, Телефон, Град. Тако да ће у таквим случајевима МиСКЛ уметнути подразумеване НУЛЛ вредности у оне ступце које смо прескочили у упитима.
Уметање у таблицу из друге табеле
Ако постоје две сличне табеле и желимо да директно убацимо податке из табеле_1 у табелу_2 да бисмо избегли ручни рад, такође можемо да користимо другу врсту ИНСЕРТ упита. У таквом случају морамо користити наредбу СЕЛЕЦТ са командом ИНСЕРТ. У основи наредба СЕЛЕЦТ долази под ДКЛ (језик упита података), који се користи за проналажење / дохваћање података. Наредба за одабир може се користити и са многим врстама клаузула.
Основна синтакса за уметање записа у једну табелу из друге је следећа:
INSERT INTO table_1 SELECT * FROM table_2;
Пример
Погледајмо пример дат у наставку:
1. Табела за наруџбу
Ордер_но | Ордер_департмент | Име клијента | Цонтацт_но | Количина | Место |
8465637 | Намештај | Петер | 8659876766 | 1000 | Делхи |
9473636 | Украси | Алек | 9863769898 | 800 | Мумбаи |
2. Табела налога_архива
Ордер_но | Ордер_департмент | Име клијента | Цонтацт_но | Количина | Место |
Овде имамо две табеле под називом Ордер анд Ордер_арцхиве. Ако ћемо све записе из табеле Наруџбе преместити у Ордер_арцхиве, задатак може обавити следећи код:
INSERT INTO Order_archive SELECT * FROM Order;
Ако желимо да преместимо неке одређене ступце из табеле Ордер у Ордер_арцхиве, тада:
INSERT INTO Order_archive (Order_no, Order_department, Contact_no, Quantity)
SELECT Order_no, Order_department, Contact_no, Quantity FROM Order;
Закључак
Команда Инсерт је врло корисна јер се игра од времена креирања табеле до сваког тренутка кад год додамо још записа у постојећу табелу. Из овог чланка можемо сумирати следеће тачке:
- Наредба ИНСЕРТ користи се за додавање нових података у табелу.
- Датум и вриједност стринга требају бити у једном наводу.
- Нумеричка вриједност не би требала бити у наводницима.
- Приликом уметања записа у одређене ступце, назив и вриједност ступца требају се пресликавати истим редослиједом.
- Ова наредба се такође може користити за уметање записа из једне табеле у другу табелу.
Препоручени чланци
Ово је водич за Инсерт у МиСКЛ-у. Овде смо разговарали о имплементацији Инсерт Цомманд у МиСКЛ заједно са одговарајућим примерима и синтаксом. Такође можете погледати следећи чланак.
- Шта је МиСКЛ шема?
- МиСКЛ Стринг функције
- Шта је МиСКЛ?
- Како инсталирати МиСКЛ
- Примјери за имплементацију ИНСЕРТ-а у Орацлеу