Шта је ИНСЕРТ ИНТО?
ИНСЕРТ ИНТО се користи за чување података у табелама. Команда ИНСЕРТ креира нови ред у табели за чување података. Податке обично достављају апликативни програми који се покрећу на врху базе података.
Основна синтакса
Погледајмо основну синтаксу наредбе ИНСЕРТ ИНТО МиСКЛ:
ИНСЕРТ ИНТО `име_табеле` (колона_1, колона_2, ...) ВРЕДНОСТИ (вредност_1, вредност_2, ...);
ОВДЕ
- ИНСЕРТ ИНТО `име_табеле` је наредба која говори МиСКЛ серверу да дода нови ред у табелу под називом` име_табеле`.
- (колона_1, колона_2, ...) наводи колоне које ће се ажурирати у новом МиСКЛ реду
- ВРЕДНОСТИ (вредност_1, вредност_2, ...) одређује вредности које ће се додати у нови ред
Приликом давања вредности података које треба уметнути у нову табелу, треба узети у обзир следеће:
- Типови података низа - све вредности низа требају бити затворене у појединачне наводнике.
- Нумерички типови података - све нумеричке вредности треба доставити директно без затварања у једноструке или двоструке наводнике.
- Типови података датума - приложите вредности датума у појединачне наводнике у формату „ГГГГ-ММ-ДД“.
Пример:
Претпоставимо да имамо следећу листу нових чланова библиотеке које треба додати у базу података.
Пуна имена | Датум рођења | пол | Физичка адреса | Поштанска адреса | Контакт број | Адреса Е-поште |
---|---|---|---|---|---|---|
Леонард Хофстадтер | Мушки | Воодцрест | 0845738767 | |||
Шелдон Купер | Мушки | Воодцрест | 0976736763 | |||
Рајесх Коотхраппали | Мушки | Фаирвиев | 0938867763 | |||
Леслие Винкле | 14/02/1984 | Мушки | 0987636553 | |||
Ховард Воловитз | 24/08/1981 | Мушки | Јужни парк | Поштански претинац 4563 | 0987786553 | Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. |
УМЕТНИМО податке један по један. Почећемо са Леонардом Хофстадтером. Контакт број ћемо третирати као нумерички тип података и нећемо га наводити у појединачне наводнике.
ИНСЕРТ ИНТО `мемберс` (` фулл_намес`, `гендер`,` пхисицал_аддресс`, `цонтацт_нумбер`) ВРИЈЕДНОСТИ ('Леонард Хофстадтер', 'Мале', 'Воодцрест', 0845738767);
Извршавање горње скрипте испушта 0 са Леонардовог броја за контакт. То је зато што ће се вредност третирати као нумеричка вредност, а нула (0) на почетку се испушта јер није значајна.
Да би се избегли такви проблеми, вредност мора бити затворена у појединачне наводнике као што је приказано доле -
ИНСЕРТ ИНТО `мемберс` (` фулл_намес`, `гендер`,` пхисицал_аддресс`, `цонтацт_нумбер`) ВРЕДНОСТИ ('Схелдон Цоопер', 'Мале', 'Воодцрест', '0976736763');
У горе наведеном случају, нула (0) неће бити испуштена
Промена редоследа колона нема утицаја на ИНСЕРТ упит у МиСКЛ све док су тачне вредности мапиране у исправне колоне.
Упит приказан доле показује горњу тачку.
ИНСЕРТ ИНТО `мемберс` (` цонтацт_нумбер`, `гендер`,` фулл_намес`, `пхисицал_аддресс`) ВРЕДНОСТИ ('0938867763', 'Мале', 'Рајесх Коотхраппали', 'Воодцрест');
Горе наведени упити прескочили су колону са датумом рођења. МиСКЛ ће подразумевано уметнути НУЛЛ вредности у колоне које су изостављене у ИНСЕРТ упиту.
Убацимо сада запис за Леслие, који има наведени датум рођења. Вредност датума треба приложити у појединачне наводнике у формату „ГГГГ-ММ-ДД“.
ИНСЕРТ ИНТО `мемберс` (` фулл_намес`, `дате_оф_биртх`,` гендер`, `пхисицал_аддресс`,` цонтацт_нумбер`) ВРИЈЕДНОСТИ ('Леслие Винкле', '1984-02-14', 'Мале', 'Воодцрест', ' 0987636553 ');
Сви горе наведени упити су одредили колоне и пресликали их на вредности у МиСКЛ наредби за уметање. Ако достављамо вредности за СВЕ колоне у табели, онда можемо да изоставимо колоне из упита за уметање МиСКЛ.
Пример: -
ИНСЕРТ ИН ТО `мемберс` ВАЛУЕС (9, 'Ховард Воловитз', 'Мале', '1981-08-24',
'СоутхПарк', 'ПО Бок 4563', '0987786553', 'лволовитз [ат] емаил.ме') ;
Користимо сада наредбу СЕЛЕЦТ за преглед свих редова у чланској табели.
SELECT * FROM `members`;
члански број | пуна_ имена | пол | Датум рођења | физичка адреса | Поштанска адреса | цонтцт_ нумбер | е-маил |
---|---|---|---|---|---|---|---|
1 | Јанет Јонес | Женско | 21-07-1980 | Парцела бр. 4 | Привате Баг | 0759 253 542 | Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. |
2 | Јанет Смитх Јонес | Женско | 23-06-1980 | Мелросе 123 | НУЛА | НУЛА | Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. |
3 | Роберт Пхил | Мушки | 12-07-1989 | 3. улица 34 | НУЛА | 12345 | Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. |
4 | Глориа Виллиамс | Женско | 14-02-1984 | 2. улица 23 | НУЛА | НУЛА | НУЛА |
5 | Леонард Хофстадтер | Мушки | НУЛА | Воодцрест | НУЛА | 845738767 | НУЛА |
6 | Шелдон Купер | Мушки | НУЛА | Воодцрест | НУЛА | 976736763 | НУЛА |
7 | Рајесх Коотхраппали | Мушки | НУЛА | Воодцрест | НУЛА | 938867763 | НУЛА |
8 | Леслие Винкле | Мушки | 14-02-1984 | Воодцрест | НУЛА | 987636553 | НУЛА |
9 | Ховард Воловитз | Мушки | 24-08-1981 | Јужни парк | Поштански претинац 4563 | 987786553 | Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. |
Приметите да је контактни број Леонарда Хофстадтера спустио нулу (0) са контакт броја. Остали бројеви за контакт на почетку нису спустили нулу (0).
Уметање у табелу из друге табеле
Наредба ИНСЕРТ се такође може користити за уметање података у табелу из друге табеле. Основна синтакса је приказана доле.
ИНСЕРТ ИНТО табле_1 СЕЛЕЦТ * ФРОМ табле_2;
Погледајмо сада практични пример. За демонстрације ћемо створити лажну табелу за категорије филмова. Табелу нових категорија назват ћемо категоријама_архива. Скрипта приказана доле креира табелу.
СТВОРИ ТАБЕЛУ `цатегори_арцхиве` (` цатегори_ид` инт (11) АУТО_ИНЦРЕМЕНТ, `цатегори_наме` варцхар (150) ДЕФАУЛТ НУЛЛ,` ремаркс` варцхар (500) ДЕФАУЛТ НУЛЛ, ПРИМАРИ КЕИ (`цатегори_ид`))
Извршите горњу скрипту да бисте креирали табелу.
Убацимо сада све редове из табеле категорија у табелу архива категорија. Скрипта приказана доле помаже нам да то постигнемо.
ИНСЕРТ ИНТО `цатегориес_арцхиве` СЕЛЕЦТ * ФРОМ` цатегориес`;
Извршавање горње скрипте убацује све редове из табеле категорија у табелу архива категорија. Имајте на уму да ће структуре табела морати да буду исте да би скрипта радила. Робуснија скрипта је она која имена мапа у табели за уметање пресликава на она у табели која садржи податке.
Упит приказан у наставку показује његову употребу.
ИНСЕРТ ИНТО `категорија_архива` (ид_категорије, име_категорије, примедбе) ИЗБОР категорије_ид, име_категорије, примедбе ИЗ` категорије`;
Извршење СЕЛЕЦТ упита
СЕЛЕЦТ * ФРОМ `цатегориес_арцхиве`
даје следеће резултате приказане у наставку.
ид_категорије | име категорије | примедбе |
---|---|---|
1 | Комедија | Филмови са хумором |
2 | Романтичан | Љубавне приче |
3 | Епиц | Прича о древним филмовима |
4 | Ужас | НУЛА |
5 | Научна фантастика | НУЛА |
6 | Трилер | НУЛА |
7 | поступак | НУЛА |
8 | Романтична комедија | НУЛА |
9 | Цртани филмови | НУЛА |
10 | Цртани филмови | НУЛА |
Пример ПХП: Уметните у МиСКЛ табелу
Функција мискли_куери користи се за извршавање СКЛ упита.
Функција се може користити за извршавање следећих типова упита;
- Уметни
- Изаберите
- ажурирање
- избрисати
Има следећу синтаксу.
mysqli_query($db_handle,$query);
ОВДЕ,
"мискли_куери (
...) "је функција која извршава СКЛ упите.„$ куери“ је СКЛ упит који треба извршити
„$ линк_идентифиер“ није обавезан, може се користити за прослеђивање везе са сервером
Пример
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) {die("Connection failed: " . mysqli_connect_error());}$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";if (mysqli_query($conn, $sql)) {echo "New record created successfully".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Резиме
- Команда ИНСЕРТ користи се за додавање нових података у табелу. МиСкл ће додати нови ред након извршавања наредбе.
- Вредности датума и низа треба приложити у појединачне наводнике.
- Нумеричке вредности не морају се наводити у наводнике.
- Команда ИНСЕРТ се такође може користити за уметање података из једне табеле у другу.