从数据库系统概念中,对于对象关系数据库的 SQL 命令:
create type Publisher as
(name varchar(20),
branch varchar(20));
create type Book as
(title varchar(20),
author array varchar(20) array [10],
pub date date,
publisher Publisher,
keyword set varchar(20) multiset);
insert into books
values (’Compilers’, array[’Smith’, ’Jones’],
new Publisher(’McGraw-Hill’, ’New York’),
multiset[’parsing’, ’analysis’]);
create table flat_Book as
(title varchar(20),
author array varchar(20) array [10],
pub_name varchar(20),
pub_branch varchar(20));
select title, author, Publisher(pub_name, pub_branch) as publisher
from flat_books
group by title, author, publisher;
Publisher(pub_name, pub_branch)
里面是什么Publisher()
?
Publisher()
似乎不是Publisher
类型的构造方法,因为对构造方法的调用需要new
,例如new Publisher(’McGraw-Hill’, ’New York’)
.
我猜 PostgreSQL 可能有类似的命令,因为它很好地遵循 SQL 标准并且也是对象关系 DBMS。
谢谢。