在本教程中,将学习如何使用Oracle SELECT语句从单个表中查询数据。
在Oracle中,表是由列和行组成。 例如,示例数据库中的customers
表具有以下列:customer_id
,name
,address
,website
和credit_limit
。customers
表中这些列中也有对应的数据。
要从表的一个或多个列(column_1
,column_2
,...
,column_n
)中检索数据,请使用以下语法的SELECT
语句:
SELECT column_1, column_2, ... FROM table_name;
在这个SELECT
语句中:
,
)将这些列分隔。请注意,SELECT语句非常复杂,由许多子句组成,如ORDER BY,GROUP BY,HAVING,JOIN。 为了简单起见,在本教程中,我们只关注
SELECT
和FROM
子句的用法。
让我们举一些使用Oracle SELECT
语句的例子来了解它是如何工作的。
要从客户(customers
)表中获取客户名称(name
)列,请使用以下语句:
SELECT name FROM customers;
执行上面语句,返回部分结果如下 -
NAME ------------------------------------------------------------------------ Aetna AIG Intel Pfizer FedEx New York Life Insurance Ingram Micro American Airlines Group Johnson Controls Goldman Sachs Group Oracle 已选择319行。
要从多个列查询数据,请指定一个以逗号分隔的列名称列表。
以下示例显示如何从客户(customers
)表的customer_id
,name
和credit_limit
列中查询数据。
SELECT customer_id, name, credit_limit FROM customers;
执行上面示例代码,得到以结果 -
以下示例将检索customers
表的所有列中的数据,列出所有列的名称,如下所示:
SELECT customer_id, name, address, website, credit_limit FROM customers;
执行上面示例代码,得到以下结果 -
为了方便起见,查看所有列可以使用简写星号(*
)来指示Oracle从表中返回所有列的数据,如下所示:
SELECT * FROM customers;
执行上面示例代码,得到以下结果 -
请注意,只能使用星号(*
)进行测试。 在实践中,即使想要从表的所有列中检索数据,也应该明确指定要从中查询数据的列。
这是因为业务变化,表格未来可能会有更多或更少的列。 如果在应用程序代码中使用星号(*
),并假定该表有一组固定的列,但应用程序可能不处理其他不相关的列或访问已删除的列。
在本教程中,已经学习如何使用Oracle SELECT
语句从表中检索一列或多列的数据。