* Вмъкване на данни

Публикувано на 15 февруари 2009 в раздел Бази от Данни.

След като вече знаем как се създава база от данни е време да научим как се вмъква информация в нея. За целта съществува команда “INSERT INTO”. Нека вкараме имената на два университета в таблица “university” от база от данни “university”:

INSERT INTO `university`.`university` (`id` , `name` , `founded`)
VALUES ( NULL , 'Sofia University', '1889-01-29' );

INSERT INTO `university`.`university` (`id` , `name` , `founded`)
VALUES ( NULL , 'Techical University', '1941-06-12' );

Виждате, че на полета `id` зададохме стойност NULL, но ако прелистим базата ще видим, че то не е:

SQL insert into

Това е така, поради дефиницията на полето `id` от таблица `university` – там бяхме посочили, че то е “auto_increment”:

SQL auto increment

Досещате се, че при добавяне на още един запис той ще получи id = 3. Поради тази причина такива колони се използват изключително често като уникален идентификатор и съответно първичен ключ.

Възможно е добавянето на повече от един ред с една INSERT заявка:

INSERT INTO `university`.`faculties` (`id` ,`name` ,`univ_id` ,`dekan_id`)
VALUES 	( NULL , 'Avtomatika', '2', NULL ),
	( NULL , 'Elektronna Tehnika i Tehnologii', '2', NULL ),
	( NULL , 'Elektrotehnicheski', '2', NULL ),
	( NULL , 'Energo-mashinostroitelen', '2', NULL ),
	( NULL , 'Kompiutarni sistemi i upravlenie', '2', NULL ),
	( NULL , 'Mashino-tehnologichen', '2', NULL );

INSERT INTO `university`.`faculties` (`id` ,`name` ,`univ_id` ,`dekan_id` )
VALUES 	( NULL , 'Biologicheski', '1', NULL ),
	( NULL , 'Himicheski', '1', NULL ),
	( NULL , 'Matematika i informatika', '1', NULL ),
	( NULL , 'Istoricheski', '1', NULL ),
	( NULL , 'Fizicheski', '1', NULL );

Нека видим как са се записали в таблицата:

SQL multiple insert into

Аналогично се добавят записи и в другите таблици.

Ето един примерен файл, чрез който ще бъде създадена базата от данни, добавени два университета, няколко техни факултета и техни преподаватели: university.sql



4 коментара за “Вмъкване на данни”


  1. Miroslav Avramov:

    Какво и е грешното в синтаксиса на тази заявка, че не я изпълнява?
    INSERT INTO `firm`.`firms`(`id`,`name`),
    VALUES (NULL, `borsa1`),
    (NULL, `borsa2`),
    (NULL, `borsa3`),


  2. Филип Петров:

    Низовите променливи се ограждат с ‘ кавички, а не с `. Апострофът (`) се използва за изброяване на имена на полета. Освен това заявката трябва да завършва с ;. Накрая след скобите на INSERT INTO няма запетайка. Т.е. заявката ти трябва да е:

    INSERT INTO `firm`.`firms`(`id`,`name`)
    VALUES (NULL, ‘borsa1′),
    (NULL, ‘borsa2′),
    (NULL, ‘borsa3′);


  3. Георги:

    След като 1 път съм въвел информация в таблица мога ли да е допълна, т.е. ако наприрмер в таблицата faculties съм въвел всичко без dekan_id мога ли след това да го въведа само това и как ?


  4. Филип Петров:

    Георги – може, като се използва UPDATE заявка.


Trackback URI | RSS за коментарите

Пусни коментар