Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
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, чтобы добавить новую улицу в таблицу улицы.
Ответить
Команда SQL, которую вы должны использовать, выглядит следующим образом (вы можете заменить название улицы на любое другое название по вашему выбору):
insert into streets (name) values ('Low Road');
15.3.2. Добавление данных секвенирования в соответствии с ограничениями
15.3.3. Попробуйте сами: ★★☆
Попробуйте добавить объект person в таблицу people со следующими данными:
Name: Joe Smith
House Number: 55
Street: Main Street
Phone: 072 882 33 21
Примечание
Напомним, что в этом примере мы определили телефонные номера как строки, а не целые числа.
На этом этапе вы должны получить сообщение об ошибке, если попытаетесь сделать это без предварительного создания записи для Главной улицы в таблице улицы.
Вы тоже должны были это заметить:
Вы не можете добавить улицу, используя ее название
Вы не можете добавить улицу, используя улицу id, прежде чем создать запись об улице в таблице улиц.
Помните, что наши две таблицы связаны между собой парой первичных/отрицательных ключей. Это означает, что ни один человек не может быть создан без наличия соответствующей записи об улице.
Используя полученные знания, добавьте нового человека в базу данных.
Ответить
Вот правильный SQL-оператор:
insert into streets (name) values('Main Road');
insert into people (name,house_no, street_id, phone_no)
values ('Joe Smith',55,2,'072 882 33 21');
Если вы снова посмотрите на таблицу улиц (используя оператор выбора, как и раньше), вы увидите, что id для записи Главная дорога
- это 2.
Поэтому выше мы можем просто ввести число 2
. Несмотря на то, что в приведенной выше записи ``Главная дорога“„ записана не полностью, база данных сможет связать ее со значением :guilabel:`street_id““, равным 2.
Если вы уже добавили новый объект улицы, вы можете обнаружить, что новая Главная дорога
имеет :guilabel:id
3, а не 2.
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. Что дальше?
Теперь, когда вы добавили некоторые данные, вы узнаете, как использовать запросы для доступа к этим данным различными способами.