中文文档 http://www.postgres.cn/docs/10
人们广泛认为在一个连接查询中限定所有列名是一种好的风格,这样即使未来向其中一个表里添加重名列也不会导致查询失败。
SELECT weather.city, weather.temp_lo, weather.temp_hi,weather.prcp, weather.date, cities.location
FROM weather, cities WHERE cities.name = weather.city;
CREATE TABLE cities (
name text,
population real,
altitude int -- (in ft)
);
CREATE TABLE capitals (
state char(2)
) INHERITS (cities);
在这种情况下,一个capitals的行从它的父亲cities继承了所有列(name、population和altitude)。列name的类型是text,一种用于变长字符串的本地PostgreSQL类型。州首都有一个附加列state用于显示它们的州。在PostgreSQL中,一个表可以从0个或者多个表继承。
两个只由空白及至少一个新行分隔的字符串常量会被连接在一起,并且将作为一个写在一起的字符串常量来对待。例如:
等同于:
SELECT 'foobar';
但是:
SELECT 'foo' 'bar';
则不是合法的语法(这种有些奇怪的行为是SQL指定的,PostgreSQL遵循了该标准)。
数据库函数中 $1代表第一个入参