对类型表的查询与对任何其他表的查询没有区别。例如:下列查询使用星号(
*)来指定返
回 employee 表所有列的 SELECT 语句。
图: 查询
SELECT * FROM employee
employee 表上的 SELECT 语句返回所有列的所有行。
图: 查询结果
name Paul, J.
address ROW(102 Ruby, Belmont, CA, 49932, 1000)
salary 78000
name Davis, J.
address ROW(133 First, San Jose, CA, 85744, 4900)
salary 75000
⋮
下列查询显示如何构造返回 employee 表的 name 和 address 列的行的查询。
图: 查询
SELECT name, address FROM employee GBase 8s SQL 指南:教程
图: 查询结果
name Paul, J.
address ROW(102 Ruby, Belmont, CA, 49932, 1000)
name Davis, J.
address ROW(133 First, San Jose, CA, 85744, 4900)
⋮
4.1.2 选择包含行类型数据的列
行类型列是在已命名 ROW 类型或未命名 ROW 类型上定义的列。使用相同的 SQL 语法
来查询已命名 ROW 类型和未命名行类型列。
对行类型列的查询返回 ROW 类型的所有字段的数据。字段是 ROW 类型中的组件数据类
型。例如:employee 表的 address 列包含 street、city 、state 和 zip 字段。下列查询显示如何
构造返回 address 列的所有字段的查询。
图: 查询
SELECT address FROM employee
图: 查询结果
address ROW(102 Ruby, Belmont, CA, 49932, 1000)
address ROW(133 First, San Jose, CA, 85744, 4900)
address ROW(152 Topaz, Willits, CA, 69445, 1000))
⋮
要访问列包含的个别字段,使用单个点符号表示法来投影列的个别字段。例如:假设您要
访问 employee 表的 address 列中的特定字段。以下 SELECT 语句投影 address 列
的 city 和 state 字段。
图: 查询
SELECT address.city, address.state FROM employee
图: 查询结果
city state
Belmont CA
San Jose CA
Willits CA
⋮
用对已命名行类型列构造查询所用的方法来对未命名行类型列构造查询。例如:假设您想
要访问图 2中 student 表的 s_address 列的数据。可以使用点符号表示法来查询对未命名行类型定义的列的个别字段。
以下查询显示如何对 student 表构造返回 s_address 列的 city 和 state 字段的行的 SELECT 语句。
SELECT s_address.city, s_address.state FROM student
图: 查询结果
city state
Belmont CA
Mount Prospect IL
Greeley CO




