《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),它不仅确保了表的每个行都是独一无二的,它还能帮助我们将该表与数据库中的其他表连接起来。