CodeGym /Java курс /All lectures for BG purposes /Вмъкване на данни в таблица

Вмъкване на данни в таблица

All lectures for BG purposes
Ниво , Урок
На разположение

Оператор INSERT INTO VALUES().

Разбрахме How да създаваме таблици, нека сега разгледаме подробно How да добавяме данни към table с помощта на SQL заявка.

Всъщност е много лесно да се направи това, но има няколко нюанса. Най-простият вариант за вмъкване на данни в table изисква указване на две неща:

  • имена на колони
  • стойности на колони (данни)

Имената на колоните трябва да бъдат посочени, тъй като много често колоните имат стойности по подразбиране, които не са посочени при вмъкване на данни. И обикновено всяка table има поне една такава колона, например id на ред.

Общата форма на заявката за вмъкване на данни в table изглежда така:

INSERT INTO table (column1, column2, column3) VALUES
    (value1, value2, value3),
    (value1, value2, value3),
    (value1, value2, value3);

Например, ако искате да вмъкнете нов запис в потребителската table, ето How ще изглежда заявката:

INSERT INTO user (name, level, created_time) VALUES
	('Rabinovich', 5, ‘2022-06-06’);

Оператор INSERT INTO SELECT

Друг общ сценарий за вмъкване на данни в table е те да бъдат взети от друга table, схема or дори СУБД.

За да направите това, има друг формат на заявка INSERT INTO, в който instead of частта VALUES можете да посочите заявка за избор на данни.

Общата форма на такова искане е:

INSERT INTO table (column1, column2, column3)
SELECT-request;

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

INSERT INTO user (name, created_time)
   SELECT employee.name, employee.join_date
   FROM employee;

Имаме различни данни в tableта на служителите, но от тях избираме само две полета - име и час на пристигане във фирмата.

Освен това потребителската table изисква да посочите потребителското ниво - ниво. Служителите нямат ниво в tableта на служителите, така че ще използваме факта, че tableта с потребители има стойност по подразбиране за полето за ниво. Ние просто не указваме нивото и SQL ще зададе стойността по подразбиране.

Да предположим, че не сме доволни от стойността по подразбиране и искаме нивото да е 99 и да заменим user.created_time с днешната дата, тогава можем да напишем това:

INSERT INTO user (name, level, created_time)
   SELECT employee.name, 99, CURDATE()
   FROM employee;

Има още много неща, които могат да се направят, но мисля, че това ще е достатъчно за сега. Можете да прочетете повече на официалната page на MySQL.

Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION