Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
15.3. Урок: Добавление данных в модель
Теперь созданные нами модели необходимо заполнить данными, которые они должны содержать.
Цель урока: Научиться вставлять новые данные в модели баз данных.
15.3.1. Вставить заявление
How do you add data to a table? The sql INSERT statement provides the
functionality for this:
insert into streets (name) values ('High street');
Следует отметить несколько моментов:
After the table name (
streets), you list the column names that you will be populating (in this case only thenamecolumn).After the
valueskeyword, place the list of field values.Строки следует заключать в одинарные кавычки.
Note that we did not insert a value for the
idcolumn; this is because it is a sequence and will be auto-generated.If you do manually set the
id, you may cause serious problems with the integrity of your database.
You should see INSERT 0 1 if it is successful.
Вы можете увидеть результат действия вставки, выделив все данные в таблице:
select * from streets;
Результат:
select * from streets;
id | name
----+-------------
1 | High street
(1 row)
Попробуйте сами: ★☆☆
Use the INSERT command to add a new street to the streets table.
Ответить
Команда SQL, которую вы должны использовать, выглядит следующим образом (вы можете заменить название улицы на любое другое название по вашему выбору):
insert into streets (name) values ('Low Road');
15.3.2. Добавление данных секвенирования в соответствии с ограничениями
15.3.3. Попробуйте сами: ★★☆
Try to add a person object to the people table with the following details:
Name: Joe Smith
House Number: 55
Street: Main Street
Phone: 072 882 33 21
Примечание
Напомним, что в этом примере мы определили телефонные номера как строки, а не целые числа.
At this point, you should have an error report if you try to do this without
first creating a record for Main Street in the streets table.
Вы тоже должны были это заметить:
Вы не можете добавить улицу, используя ее название
You can’t add a street using a street
idbefore first creating the street record on thestreetstable
Помните, что наши две таблицы связаны между собой парой первичных/отрицательных ключей. Это означает, что ни один человек не может быть создан без наличия соответствующей записи об улице.
Используя полученные знания, добавьте нового человека в базу данных.
Ответить
Вот правильный 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';
Be very careful using such update statements - if more than one record matches
your WHERE clause, they will all be updated!
Лучшее решение - использовать первичный ключ таблицы для ссылки на изменяемую запись:
update streets set name='New Main Road' where id=2;
It should return UPDATE 1.
Примечание
The WHERE statement criteria are case sensitive, Main
Road is not the same as Main road.
15.3.6. Удалить данные
In order to delete an object from a table, use the DELETE command:
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. Что дальше?
Теперь, когда вы добавили некоторые данные, вы узнаете, как использовать запросы для доступа к этим данным различными способами.