《SQL实战》书摘(11):基本SELECT语法

下面这个SELECT语句会从名为my_table的表中获取每一行和每一列:

SELECT * FROM my_table;

这行代码展示了SQL查询的最基本形式。SELECT关键字后面的星号是一个通配符,它就像值的替身:它不代表特定的某个值,而是代表可能出现的所有值。简单来说,它相当于“选择所有列”的缩写。如果你给定的是列的名字而不是通配符,那么语句将返回指定列的值。FROM关键字用于指定将要返回数据的表。至于表名后面的分号,则用于告知PostgreSQL查询语句已经结束。

让我们对之前在第2章创建的teachers表执行这个带星号通配符的SELECT语句。首先,再次打开pgAdmin,选择analysis数据库并打开查询工具,然后执行代码清单3-1中展示的语句。记住,除了亲自把这些语句键入到查询工具之外,你还可以从GitHub下载代码,然后通过点击打开文件并导航至放置代码的位置来执行代码。当你在书中发现被--snip--截断的代码时,也可以通过这种方法运行它们。对于本章,你应该打开Chapter_03.sql文件,接着高亮选中指定的语句,然后通过点击执行/刷新图标来运行它们。

SELECT * FROM teachers;

代码清单3-1:查询teachers表中的所有行和列

执行这个查询之后,你在第2章插入到 teachers 表中的所有行和列就会出现在查询工具输出方框的结果集里面。这里展示的行可能跟你看到的行顺序不一样,这是正常的。

id  first_name  last_name   school                 hire_date   salary
--  ----------  ---------   -------------------     ----------  ------
1   Janet       Smith       F.D. Roosevelt HS       2011-10-30  36200
2   Lee         Reynolds    F.D. Roosevelt HS       1993-05-22  65000
3   Samuel      Cole        Myers Middle School     2005-08-01  43500
4   Samantha    Bush        Myers Middle School     2011-10-30  36200
5   Betty       Diaz        Myers Middle School     2005-08-30  43500
6   Kathleen    Roush       F.D. Roosevelt HS       2010-10-22  38500

请注意,即使我们没有明确地插入id列,bigserial类型的它们也会被自动填充为连续的整数,这是非常方便的。这种自动递增的整数会被用作唯一标识符,也可以称之为键(key),它不仅确保了表的每个行都是独一无二的,它还能帮助我们将该表与数据库中的其他表连接起来。

Tip

本文摘录自《SQL实战》一书,欢迎访问本书主页以了解更多相关信息:huangz.works/sql/

../_images/psqlcn-banner.jpg