RAY[1,2,3] <= ARRAY[1,2,3]
t
>=
大于或等于
ARRAY[1,4,3] >= ARRAY[1,4,3]
t
||
数组与数组连接
ARRAY[1,2,3] || ARRAY[4,5,6]
{1,2,3,4,5,6}
||
数组与数组连接
ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]
{{1,2,3},{4,5,6},{7,8,9}}
||
元素与数组连接
3 || ARRAY[4,5,6]
{3,4,5,6}
||
元素与数组连接
ARRAY[4,5,6] || 7
{4,5,6,7}
2. PostgreSQL中提供的用于数组的函数列表:
函数
返回类型
描述
例子
结果
array_cat(anyarray, anyarray)
anyarray
连接两个数组
array_cat(ARRAY[1,2,3], ARRAY[4,5])
{1,2,3,4,5}
array_append(anyarray, anyelement)
anyarray
向一个数组末尾附加一个元素
array_append(ARRAY[1,2], 3)
{1,2,3}
array_prepend(anyelement, anyarray)
anyarray
向一个数组开头附加一个元素
array_prepend(1, ARRAY[2,3])
{1,2,3}
array_dims(anyarray)
text
返回一个数组维数的文本表示
array_dims(ARRAY[[1,2,3], [4,5,6]])
[1:2][1:3]
array_lower(anyarray, int)
int
返回指定的数组维数的下界
array_lower(array_prepend(0, ARRAY[1,2,3]), 1)
0
array_upper(anyarray, int)
int
返回指定数组维数的上界
array_upper(ARRAY[1,2,3,4], 1)
4
array_to_string(anyarray, text)
text
使用提供的分隔符连接数组元素
array_to_string(ARRAY[1, 2, 3], '~^~')
1~^~2~^~3
string_to_array(text, text)
text[]
使用指定的分隔符把字串拆分成数组元素
string_to_array('xx~^~yy~^~zz', '~^~')
{xx,yy,zz}
十二、系统信息函数:
1. PostgreSQL中提供的和
数据库相关的函数列表:
名字
返回类型
描述
current_database()
name
当前
数据库的名字
current_schema()
name
当前模式的名字
current_schemas(boolean)
name[]
在搜索路径中的模式名字
current_user
name
目前执行环境下的用户名
inet_client_addr()
inet
连接的远端地址
inet_client_port()
int
连接的远端端口
inet_server_addr()
inet
连接的本地地址
inet_server_port()
int
连接的本地端口
session_user
name
会话用户名
pg_postmaster_start_time()
timestamp
postmaster启动的时间
user
name
current_user www.2cto.com
version()
text
PostgreSQL版本信息
2. 允许用户在程序里查询对象访问权限的函数:
名字
描述
可用权限
has_table_privilege(user,table,privilege)
用户是否有访问表的权限
SELECT/INSERT/UPDATE/DELETE/RULE/REFERENCES/TRIGGER
has_table_privilege(table,privilege)
当前用户是否有访问表的权限
SELECT/INSERT/UPDATE/DELETE/RULE/REFERENCES/TRIGGER
has_database_privilege(user,database,privilege)
用户是否有访问数据库的权限
CREATE/TEMPORARY
has_database_privilege(database,privilege)
当前用户是否有访问数据库的权限
CREATE/TEMPORARY
has_function_privilege(user,function,privilege)
用户是否有访问函数的权限
EXECUTE
has_function_privilege(function,privilege)
当前用户是否有访问函数的权限
EXECUTE
has_language_privilege(user,language,privilege)
用户是否有访问语言的权限
USAGE
has_language_privilege(language,privilege)
当前用户是否有访问语言的权限
USAGE
has_schema_privilege(user,schema,privilege)
用户是否有访问模式的权限
CREAT/USAGE
has_schema_privilege(schema,privilege)
当前用户是否有访问模式的权限
CREAT/USAGE
has_tablespace_privilege(user,tablespace,privilege)
用户是否有访问表空间的权限
CREATE
has_tablespace_privilege(tablespace,privilege)
当前用户是否有访问表空间的权限
CREATE
注:以上函数均返回boolean类型。要评估一个用户是否在权限上持有赋权选项,给权限键字附加 WITH GRANT OPTION;比如 'UPDATE WITH GRANT OPTION'。
3. 模式可视性查询函数:
那些判断一个对象是否在当前模式搜索路径中可见的函数。 如果一个表所在的模式在搜索路径中,并且没有同名的表出现在搜索路径的更早的地方,那么就说这个表视可见的。 它等效于表可以不带明确模式修饰进行引用。
名字
描述
应用类型
pg_table_is_visible(table_oid)
该表/视图是否在搜索路径中可见
regclass
pg_type_is_visible(type_oid)
该类/视图型是否在搜索路径中可见
regtype
pg_function_is_visible(function_oid)
该函数是否在搜索路径中可见
regprocedure
pg_operator_is_visible(operator_oid)
该操作符是否在搜索路径中可见
regoperator
pg_o