PostgreSQL 选择


PostgreSQL 选择

在PostgreSQL中,SELECT命令是从数据库表中检索数据的核心命令,数据以结果表的形式返回,称为result-sets

选择命令包含若干条款,我们可以用它来轻松地编写一个查询。执行 select 命令时的基本任务是从数据库中的表中查询数据。

SELECT 命令的各个子句如下:

  • 借助ORDER BY子句对行进行排序。
  • 使用GROUP BY子句将行分组
  • 借助WHERE子句过滤行。
  • 在 HAVING子句的帮助下过滤组。
  • 在 DISTINCT运算符的帮助下选择单独的行。
  • UNION、INTERSECT 和 EXCEPT的帮助下执行集合操作。
  • 通过LEFT JOIN、INNER JOIN、CROSS JOIN、FULL OUTER JOIN条件等联接与其他表联接。

在这里,我们将讨论SELECT 和 FROM子句以及我们将在PostgreSQL教程的进一步部分中讨论的其他子句。

PostgreSQL Select 命令的语法

SELECT命令用于从一个单一的表中恢复数据。

SELECT命令的语法如下:

SELECT select_list  
FROM table_name;

以下是上述语法中使用的参数:

参数 描述
Select_list 它用于定义一个选择列表,该列表可以是我们要从中检索数据的表中的一列或列列表
Table_name 在此,我们将定义要从中查询数据的表的名称。

注意:如果我们描述一个列列表,我们可以使用逗号来分隔两列。如果我们不需要从表中的所有列中选择数据,我们可以使用星号 (*) 代替描述所有列名,因为选择列表可以具有精确的值或表达式。

SQL 语言不区分大小写,这意味着select 或 SELECT具有相同的结果。

PostgreSQL select 命令的其他语法

SELECT column1, column2,  
……  
columnN   
FROM table_name;

这里我们使用以下参数:

参数 描述
column1, column2,....columnN 这些用于描述我们从中检索数据的列。

如果我们想从表中检索所有字段,我们必须使用以下语法:

SELECT * FROM table_name;

PostgreSQL 中的 Select 命令示例

在这里,我们将通过以下示例了解PostgreSQL中Select 命令的使用。

我们将使用之前在javatpoint 数据库的 Company 模式中创建的Employee以便更好地理解。

PostgreSQL 选择

  • 使用 SELECT 命令从一列查询数据

在这个例子中,我们会发现所有的名员工员工表SELECT命令的帮助:

Select   
name   
from "Company".employee;

输出

执行上述查询后,我们将得到以下结果:

PostgreSQL 选择

笔记:

  • 为了分隔两个 SQL 语句,我们将使用分号 (;)。
  • 在上面的查询中,在 select 命令的末尾,我们添加了一个分号 (;)。此时,分号不是 SQL 声明的一部分,因为它用于向 PostgreSQL 指示 SQL 命令的结束。

  • 使用 SELECT 命令从多列查询数据

如果我们想查看特定表的多列数据,我们可以执行以下查询。

例如,假设我们需要获取员工的姓名、年龄和地址。因此,我们可以在 SELECT 命令中定义这些列名,如下面的查询所示:

select   
name,   
age,   
address   
from "Company".employee;

输出

执行上述命令后,我们将得到以下结果:

PostgreSQL 选择

  • 使用 Select 命令查询表的所有列中的数据

如果我们想获取特定表中的所有列数据,我们可以执行以下查询。

在这里,我们使用以下查询的帮助从Company架构下的员工表中选择所有列和行:

SELECT  
   *  
FROM  
"Company".employee;

输出

执行上述查询后,我们将得到以下结果:

PostgreSQL 选择

在上面的示例中,我们使用了 (*) 星号符号,而不是在 select 命令中写入所有列的名称。有时我们在表中有 n 列,写出所有的列名成为一个乏味的过程。

但有时在 SELECT 命令中使用星号 (*) 并不是一个好的过程。

如果我们在代码中使用嵌入式 SQL 语句是因为以下原因:

  • 我们有一个包含多列的表,并且没有必要使用带有星号 (*) 速记的 SELECT 命令来从表的所有列中恢复数据。
  • 除此之外,如果我们检索数据库的不重要数据,则会增加数据库层和应用层之间的负载。并且我们应用程序的输出将难以访问和深思熟虑。因此,在 SELECT 子句中公开描述列名是最好的方法,因为每次都可能只从表中获取所需的数据。

  • 将 SELECT 命令与表达式一起使用

在下面的例子中,我们将在 select 命令的帮助下返回所有员工的全名和地址:

SELECT   
name  AS full_name,  
address  
FROM   
 "Company".employee;

在上面的查询中,我们将使用列别名 AS full_name 为名称表达式分配列标题。

输出

执行上述查询后,我们将得到以下结果:

PostgreSQL 选择

  • 将 SELECT 命令与表达式一起使用

在这里,我们将使用一个表达式执行 select 命令,其中我们将From 子句跳过到 select 命令中,因为该命令不引用任何表。

SELECT 4* 2 AS result;

输出

执行上述命令后,我们将得到以下输出:

PostgreSQL 选择