Важно

Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.

15.3. Урок: Добавление данных в модель

Теперь созданные нами модели необходимо заполнить данными, которые они должны содержать.

Цель урока: Научиться вставлять новые данные в модели баз данных.

15.3.1. Вставить заявление

Как добавить данные в таблицу? Оператор sql INSERT обеспечивает функциональность для этого:

insert into streets (name) values ('High street');

Следует отметить несколько моментов:

  • После имени таблицы (улицы) перечисляются имена столбцов, которые вы будете заполнять (в данном случае только столбец имя).

  • После ключевого слова значения поместите список значений полей.

  • Строки следует заключать в одинарные кавычки.

  • Обратите внимание, что мы не вставили значение для столбца id; это потому, что он является последовательностью и будет сгенерирован автоматически.

  • Если вы вручную установите id, это может привести к серьезным проблемам с целостностью вашей базы данных.

Вы должны увидеть INSERT 0 1, если все прошло успешно.

Вы можете увидеть результат действия вставки, выделив все данные в таблице:

select * from streets;

Результат:

select * from streets;
 id |    name
----+-------------
  1 | High street
(1 row)

Попробуйте сами: ★☆☆

Используйте команду INSERT, чтобы добавить новую улицу в таблицу улицы.

15.3.2. Добавление данных секвенирования в соответствии с ограничениями

15.3.3. Попробуйте сами: ★★☆

Попробуйте добавить объект person в таблицу people со следующими данными:

Name: Joe Smith
House Number: 55
Street: Main Street
Phone: 072 882 33 21

Примечание

Напомним, что в этом примере мы определили телефонные номера как строки, а не целые числа.

На этом этапе вы должны получить сообщение об ошибке, если попытаетесь сделать это без предварительного создания записи для Главной улицы в таблице улицы.

Вы тоже должны были это заметить:

  • Вы не можете добавить улицу, используя ее название

  • Вы не можете добавить улицу, используя улицу id, прежде чем создать запись об улице в таблице улиц.

Помните, что наши две таблицы связаны между собой парой первичных/отрицательных ключей. Это означает, что ни один человек не может быть создан без наличия соответствующей записи об улице.

Используя полученные знания, добавьте нового человека в базу данных.

15.3.4. Выбор данных

Мы уже показывали вам синтаксис для выбора записей. Давайте рассмотрим еще несколько примеров:

select name from streets;
select * from streets;
select * from streets where name='Main Road';

На последующих занятиях мы более подробно рассмотрим, как выбирать и фильтровать данные.

15.3.5. Обновление данных

Что делать, если вы хотите внести изменения в существующие данные? Например, изменить название улицы:

update streets set name='New Main Road' where name='Main Road';

Будьте очень осторожны, используя такие операторы обновления - если более одной записи соответствуют вашему предложению WHERE, они все будут обновлены!

Лучшее решение - использовать первичный ключ таблицы для ссылки на изменяемую запись:

update streets set name='New Main Road' where id=2;

Он должен вернуть UPDATE 1.

Примечание

Критерии оператора WHERE чувствительны к регистру Главная дорога не то же самое, что Главная дорога

15.3.6. Удалить данные

Чтобы удалить объект из таблицы, используйте команду DELETE:

delete from people where name = 'Joe Smith';

Давайте посмотрим на нашу таблицу людей:

address=# select * from people;

  id | name | house_no | street_id | phone_no
 ----+------+----------+-----------+----------
(0 rows)

15.3.7. Попробуйте себя: ★★★

Используйте полученные навыки, чтобы добавить новых друзей в свою базу данных:

      name       | house_no | street_id |   phone_no
-----------------+----------+-----------+--------------
Joe Bloggs       |        3 |         2 | 072 887 23 45
Jane Smith       |       55 |         3 | 072 837 33 35
Roger Jones      |       33 |         1 | 072 832 31 38
Sally Norman     |       83 |         1 | 072 932 31 32

15.3.8. В заключение

Теперь вы знаете, как добавлять новые данные в существующие модели, созданные ранее. Помните, что если вы хотите добавить новые типы данных, вам, возможно, потребуется изменить и/или создать новые модели, которые будут содержать эти данные.

15.3.9. Что дальше?

Теперь, когда вы добавили некоторые данные, вы узнаете, как использовать запросы для доступа к этим данным различными способами.