15.3. Lesson: 将数据添加到模型

我们已经创建的模型现在需要填充它们想要包含的数据。

The goal for this lesson: 学习如何将新数据插入到数据库模型中。

15.3.1. INSERT语句

如何将数据添加到表中?The SQL INSERT 语句提供了以下功能:

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

有几件事需要注意:

  • 在表名之后 (streets ),列出要填充的列名(在本例中仅 name 列)。

  • values 关键字,则放置字段值列表。

  • 字符串应使用单引号引起来。

  • 请注意,我们没有为 id 列;这是因为它是一个序列,将自动生成。

  • 如果您确实手动设置 id ,则可能会对数据库的完整性造成严重问题。

你应该看到 INSERT 0 1 如果它成功了。

您可以通过选择表中的所有数据来查看插入操作的结果:

select * from streets;

结果:

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

Try Yourself 基本信息

使用 INSERT 命令将新街道添加到 streets 桌子。

15.3.2. 根据约束对数据添加进行排序

15.3.3. Try Yourself 适度

尝试将Person对象添加到 people 表中包含以下详细信息:

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

备注

回想一下,在本例中,我们将电话号码定义为字符串,而不是整数。

此时,如果您尝试在没有首先在中为Main Street创建记录的情况下执行此操作,则应该会收到错误报告 streets 桌子。

您还应该注意到:

  • 您不能使用街道名称添加街道

  • 不能使用街道添加街道 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';

使用此类UPDATE语句时要非常小心--如果有多条记录与您的 WHERE 子句,它们将全部更新!

更好的解决方案是使用表的主键引用要更改的记录:

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

它应该会回来 UPDATE 1

备注

这个 WHERE 语句条件区分大小写 Main Road 不等同于 Main road

15.3.6. 删除数据

若要从表中删除对象,请使用 DELETE 命令:

delete from people where name = 'Joe Smith';

现在让我们来看看我们的People表:

address=# select * from people;

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

15.3.7. Try Yourself 硬的

使用你学到的技能将一些新朋友添加到你的数据库中:

      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. In Conclusion

现在,您知道了如何向先前创建的现有模型添加新数据。请记住,如果您想要添加新类型的数据,您可能需要修改和/或创建新的模型来包含该数据。

15.3.9. What's Next?

现在您已经添加了一些数据,您将学习如何使用查询以各种方式访问这些数据。