默认情况下PostgreSQL安装完成后,自带了一个命令行工具SQL Shell(psql)。
Linux系统可以直接切换到postgres用户来开启命令行工具:
#sudo -i -u postgres
Windows系统一般在它的安装目录下:
程序文件→PostgreSQL 11.3→SQL Shell(psql)
Mac OS我们直接搜索就可以了找到:
进入命令行工具,我们可以使用\ help来查看各个命令的语法:
postgres-#\ help <命令名>
例如,我们查看下select语句的语法:
postgres =#\ help选择 命令:SELECT 描述:从表或视图中检索行 句法: [WITH [RECURSIVE] with_query [,...]] 选择[全部| DISTINCT [ON(expression [,...])]] [* | 表达式[[AS] output_name] [,...]] [FROM from_item [,...]] [条件] [GROUP BY grouping_element [,...]] [具有条件[,...]] [WINDOW window_name AS(window_definition)[,...]] [{UNION | 交集| 除} [全部| DISTINCT]选择] [ORDER BY表达式[ASC | DESC | 使用运算符] [NULL {FIRST | 后}] [,...]] [LIMIT {计数| 全部}] [偏移量开始[行| [行] [FETCH {FIRST | NEXT} [count] {ROW | ROWS}仅] [FOR {更新| 没有关键更新| 分享| KEY SHARE} [OF table_name [,...]] [NOWAIT | 跳过锁定] [...] from_item可以是以下选项之一: [仅] table_name [*] [[AS]别名[(column_alias [,...])]]
SQL语句
一个SQL语句通常包含了关键字,标识符(段落),常量,特殊符号等,下面是一个简单的SQL语句:
SELECT ID,名称为runoob
选择 | 身份证,姓名 | 从 | 鲁诺卜 | |
---|---|---|---|---|
符号类型 | 关键字 | 指标(指标) | 关键字 | 识别符 |
描述 | 命令 | id和名称前缀 | 语句,用于设置条件规则等 | 表名 |
PostgreSQL命令
中止
ABORT为退出当前事务。
中止[工作| 交易]
变更集结
修改一个聚集函数的定义。
ALTER AGGREGATE _name_(_argtype_ [,...])重命名为_new_name_ ALTER AGGREGATE _name_(_argtype_ [,...])所有者对_new_owner_ ALTER AGGREGATE _name_(_argtype_ [,...])SET SCHEMA _new_schema_
变更集合
修改一个排序规则定义。
ALTER COLLATION _name_ RENAME TO _new_name_ ALTER COLLATION _name_ OWNER至_new_owner_ ALTER COLLATION _name_ SET SCHEMA _new_schema_
更改转换
修改一个编码转换的定义。
ALTER CONVERSION名称RENAME TO new_name ALTER CONVERSION名称OWNER TO new_owner
修改数据库
修改一个数据库。
ALTER DATABASE名称SET参数{TO | =} {值| 默认} ALTER DATABASE名称RESET参数 ALTER DATABASE名称RENAME TO new_name ALTER DATABASE名称OWNER TO new_owner
更改默认权限
定义默认的访问权限。
更改默认权限 [FOR {角色| 用户} target_role [,...]] [IN SCHEMA schema_name [,...]] abbreviated_grant_or_revoke 其中abbreviated_grant_or_revoke是以下之一: 授予{{选择| 插入| 更新| 删除 截断 参考| 触发} [,...] | 全部[特权]} 在桌子上 TO {[GROUP] role_name | 公用} [,...] [带有GRANT OPTION] ...
更改域
修改一个域的定义。
ALTER DOMAIN名称{SET DEFAULT表达式| 预设预设} ALTER DOMAIN名称{SET | DROP} NOT NULL ALTER DOMAIN名称添加domain_constraint ALTER DOMAIN名称DROP CONSTRAINT约束名称[RESTRICT | 级联] ALTER DOMAIN名称OWNER TO new_owner
变更功能
修改一个函数的定义。
ALTER FUNCTION名称([type [,...]])重命名为new_name ALTER FUNCTION名称([type [,...]])OWNER TO new_owner
阿尔特集团
修改一个用户组。
ALTER GROUP组名添加用户用户名[,...] ALTER GROUP组名DROP USER用户名[,...] ALTER GROUP组名RENAME TO new_name
更改索引
修改一个索引的定义。
ALTER INDEX名称OWNER TO new_owner ALTER INDEX名称SET TABLESPACE indexspace_name ALTER INDEX名称RENAME TO new_name
更改语言
修改一个过程语言的定义。
更改语言名称RENAME TO new_name
更改操作员
改变一个操作符的定义。
ALTER OPERATOR名称({lefttype | NONE},{righttype | NONE}) 所有者到新所有者
变更操作员类别
修改一个操作符表的定义。
ALTER OPERATOR CLASS名称使用index_method RENAME TO new_name 使用index_method OWNER TO new_owner的ALTER OPERATOR CLASS名称
施特玛
修改一个模式的定义。
ALTER SCHEMA名称RENAME TO new_name ALTER SCHEMA名称OWNER TO new_owner
变更顺序
修改一个序列生成器的定义。
ALTER SEQUENCE名称[INCREMENT [BY]增量] [MINVALUE minvalue | 没有低价值] [MAXVALUE maxvalue | 没有大值] [重新启动[带]开始] [缓存缓存] [[否循环]
更改表
修改表的定义。
更改表[仅]名称[*] 动作[,...] 更改表[仅]名称[*] 重命名[COLUMN]列到new_column ALTER TABLE名称 重命名为new_name
其中动作可以以选项之一:
添加[列] column_type [column_constraint [...]] DROP [COLUMN]列[RESTRICT | 级联] ALTER [COLUMN]列TYPE类型[使用表达式] ALTER [COLUMN]列SET DEFAULT表达式 ALTER [COLUMN]列DROP DEFAULT ALTER [COLUMN]列{SET | DROP} NOT NULL ALTER [COLUMN]列SET STATISTICS整数 ALTER [COLUMN]列SET STORAGE {普通| 外部| 扩展| 主要} 添加table_constraint DROP CONSTRAINT约束名称[RESTRICT | 级联] 集群ON index_name 设置无集群 不加油的设置 所有者到新所有者 SET TABLESPACE tablespace_name
更改表空间
修改一个表空间的定义。
ALTER TABLESPACE名称RENAME TO new_name ALTER TABLESPACE名称OWNER TO new_owner
更改触发
修改改变一个主轴的定义。
ALTER TRIGGER名称ON表RENAME TO new_name
变更类型
修改一个类型的定义。
ALTER TYPE名称OWNER TO new_owner
更改用户
修改数据库用户帐号。
更改用户名[[WITH]选项[...]] 更改用户名RENAME TO new_name 更改用户名SET参数{TO | =} {值| 默认} ALTER USER name RESET参数
其中选项可以是-
[加密| 未加密]密码“密码” | CREATEDB | 未制作 | CREATEUSER | NOCREATEUSER | 有效直到“抽象”
分析
收集与数据库有关的统计。
分析[详细] [表[(列[,...])]]
开始
开始一个事务块。
开始[工作| 交易] [transaction_mode [,...]]
transaction_mode可以是以下选项之一:
隔离度{ 可序列化| 可重复阅读 读已提交 | 读未提交 } 读写| 只读
检查点
强制性事务日志检查点。
检查点
关
关闭游标。
关闭名称
簇
根据一个索引对某个表盘簇化排序。
集群index_name ON table_name 集群表名 簇
评论
定义或者改变一个对象的注释。
给某事物发表意见 { 表格object_name | COLUMN table_name.column_name | 汇总agg_name(agg_type)| CAST(source_type AS target_type)| CONSTRAINT约束名称ON表名称| CONVERSION object_name | 数据库对象名| DOMAIN object_name | 功能func_name(arg1_type,arg2_type,...)| INDEX object_name | 大对象large_object_oid | 运算符op(left_operand_type,right_operand_type)| 运算符类object_name使用index_method | [PROCEDURAL]语言object_name | RULE rule_name ON table_name | SCHEMA object_name | 序列object_name | TRIGGER trigger_name ON table_name | TYPE object_name | 查看object_name } 是“文字”
承诺
提交当前事务。
提交[工作| 交易]
复制
在表和文件之间拷贝数据。
COPY table_name [(列[,...])] FROM {'文件名'| STDIN} [和] [BINARY] [OIDS] [DELIMITER [AS]'delimiter'] [NULL [AS]'null string'] [CSV [QUOTE [AS]'quote'] [ESCAPE [AS]“转义”] [FORCE NOT NULL列[,...]] COPY table_name [(列[,...])] TO {'文件名'| 标准输出} [[和] [BINARY] [OIDS] [DELIMITER [AS]'delimiter'] [NULL [AS]'null string'] [CSV [QUOTE [AS]'quote'] [ESCAPE [AS]“转义”] [强制报价栏[,...]]
创建聚集
定义一个新的聚集函数。
创建聚集名称( BASETYPE = input_data_type, SFUNC = sfunc, STYPE = state_data_type [,FINALFUNC = ffunc] [,INITCOND = initial_condition] )
创建投放
定义一个用户定义的转换。
创建CAST(source_type AS target_type) 带功能func_name(arg_*) [分配| 隐含的] 创建CAST(source_type AS target_type) 没有功能 [分配| 隐含的]
创建约束触发
定义一个新的约束变量。
创建约束触发名称 事件发生后 table_name约束属性 对于每个行执行程序func_name(args)
创建转换
定义一个新的的编码转换。
创建[默认]转化名称 从func_name的FOR source_encoding到dest_encoding
创建数据库
创建新数据库。
创建数据库名称 [[WITH] [所有者[=] db_owner] [模板[=]模板] [编码[=]编码] [TABLESPACE [=]表空间] ]
创建域
定义一个新域。
创建域名[AS] data_type [默认表达式] [约束[...]]
约束可以是以下选项之一:
[CONSTRAINT约束名称] {NOT NULL | NULL | 检查(表达式)}
创建功能
定义一个新函数。
创建[或替换]功能名称([[[arg_name] arg_type [,...]]) 返回ret_type {LANGUAGE lang_name | 不可改变的 稳定 挥发性 | 调用NULL输入| 在NULL输入上返回NULL | 严格 | [外部]安全调用者| [外部]安全定义 | AS“定义” | AS'obj_file','link_symbol' } ... [WITH(属性[,...])]
创建组
定义一个新的用户组。
创建组名[[WITH]选项[...]] 选项可以是: SYSID GID | USER用户名[,...]
创建索引
定义一个新索引。
在表上创建[UNIQUE] INDEX名称[使用方法] ({列|(表达式)} [opclass] [,...]) [TABLESPACE表空间] [WHERE谓词]
建立语言
定义一种新的过程语言。
创建[可信任] [程序]语言名称 处理程序call_handler [VALIDATOR val_function]
创建操作员
定义一个新的操作符。
创建操作员名称( 程序= func_name [,LEFTARG = left_type] [,RIGHTARG = right_type] [,COMMUTATOR = com_op] [,NEGATOR = neg_op] [,RESTRICT = res_proc] [,JOIN = join_proc] [,哈希] [,合并] [,SORT1 = left_sort_op] [,SORT2 = right_sort_op] [,LTCMP = less_than_op] [,GTCMP = Greater_than_op] )
创建操作员班
定义一个新的操作符表。
为类型data_type创建操作符类别名称[默认] 使用index_method AS {运算符strategy_number运算符名称[(op_type,op_type)] [RECHECK] | 功能support_number func_name(arguments_type [,...]) | 储存storage_type } [,...]
创建角色
定义一个新的数据库角色。
创建角色_名称_ [[与] _选项_ [...]] 其中_option_可以是: 超级用户| 超级用户 | CREATEDB | 未制作 | 甲骨文| 没食子儿 ...
建立规则
定义一个新重写规则。
创建[或替换]规则名称为ON事件 到表[状况] 做[还| INSTEAD] {无| 命令 (命令;命令...)}
创建模式
定义一个新模式。
创建模式架构名称 [授权用户名] [schema_element [...]] 创建模式授权用户名 [schema_element [...]]
创建服务器
定义一个新的外部服务器。。
创建服务器_server_name_ [TYPE'_server_type_'] [VERSION'_server_version_'] 外国数据包装器_fdw_name_ [选项(_option_'_value_'[,...])]
创建序列
定义一个新序列发生器。
创建[临时| TEMP]序列名称 [INCREMENT [BY]增量] [MINVALUE minvalue | 没有低价值] [MAXVALUE maxvalue | 没有大值] [START [WITH] start] [CACHE缓存] [[NO]周期]
创建表
定义一个新表。
创建[[全球| 当地] { 临时| TEMP}] TABLE table_name({ column_name数据类型[默认default_expr] [column_constraint [...]] | table_constraint | 像parent_table [{包含| 不包括} } [,...] ) [INHERITS(parent_table [,...])] [带OIDS | 没有糖[] [提交{保留行| 删除行| 删除}] [TABLESPACE表空间]
column_constraint可以是以下选项之一:
[CONSTRAINT约束名称] { 非空| NULL | [使用索引表空间表空间] | 主键[使用INDEX TABLESPACE表空间] | 检查(表达式)| 参考ref_table [(ref_column)] [完全匹配| 匹配部分| 简单配对] [ON DELETE操作] [ON UPDATE操作] } [优惠| 不可延迟[初延迟| 初]
table_constraint可以是以下选项之一:
[CONSTRAINT约束名称] {UNIQUE(column_name [,...])[使用INDEX TABLESPACE表空间] | 主键(column_name [,...])[使用索引表空间表空间] | CHECK(表达式)| 外键(column_name [,...]) 参考ref_table [(ref_column [,...])] [完全匹配| 匹配部分| 简单配对] [ON DELETE操作] [ON UPDATE操作]} [优惠| 不可延迟[初延迟| 初]
创建表为
从一条查询的结果中定义一个新表。
创建[[全球| 本地] {临时| TEMP}] TABLE table_name [(column_name [,...])] [[与| 没有] AS查询
创建表空间
定义一个新的表空间。
CREATE TABLESPACE tablespace_name [OWNER用户名] LOCATION'目录'
创建触发器
定义一个新的应变。
创建触发器名称{ 之后} {事件[OR ...]} 在桌子上[FOR [每个] {ROW | 声明}] 执行程序func_name(arguments)
创建类型
定义一个新的数据类型。
创建类型名称AS (attribute_name data_type [,...]) 创建类型名称( 输入=输入功能, 输出= output_function [,RECEIVE = receive_function] [,SEND = send_function] [,ANALYZE = analytics_function] [,INTERNALLENGTH = {internal_length | 变量}] [,PASSEDBYVALUE] [,ALIGNMENT =对齐] [,存储=储存] [,DEFAULT =默认值] [,ELEMENT =元素] [,DELIMITER =定界符] )
创建用户
创建一个新的数据库用户帐户。
创建用户名[[WITH]选项[...]]
选项可以是以下选项之一:
SYSID uid | [加密| 未加密]密码“密码” | CREATEDB | 未制作 | CREATEUSER | NOCREATEUSER | IN GROUP group_name [,...] | 有效直到“ abs_time”
创建视图
定义一个视图。
创建[或替换]视图名称[(column_name [,...])] AS查询
取消分配
删除一个准备好的查询。
取消分配[PREPARE] plan_name
宣布
定义一个游标。
十进制名称[BINARY] [INSENSITIVE] [[NO] SCROLL] 光标[{与| 不用}保持]查询 [只供{阅读| UPDATE [OF列[,...]]}]
删除
删除一个表中的行。
从[ONLY]表中删除[WHERE条件]
滴加
删除一个用户定义的聚集函数。
DROP AGGREGATE名称(类型)[级联| 限制 ]
投下
删除一个用户定义的类型转换。
DROP CAST(源类型AS目标类型)[CASCADE | 限制 ]
下降转换
删除一个用户定义的编码转换。
DROP CONVERSION名称[级联| 限制 ]
删除数据库
删除一个数据库。
DROP DATABASE名称
拖放域
删除一个用户定义的域。
DROP DOMAIN名称[,...] [级联| 限制 ]
下降功能
删除一个函数。
DROP FUNCTION名称([类型[,...]])[级联| 限制 ]
下降组
删除一个用户组。
DROP GROUP名称
下降指数
删除一个索引。
DROP INDEX名称[,...] [级联| 限制 ]
拖放语言
删除一个过程语言。
DROP [过程]语言名称[CASCADE | 限制 ]
下降算子
删除一个操作符。
DROP OPERATOR name({left_type | NONE},{right_type | NONE}) [级联| 限制 ]
降落操作员班
删除一个操作符表。
DROP OPERATOR CLASS名称使用index_method [CASCADE | 限制 ]
下降角色
删除一个数据库角色。
删除角色[如果存在] _名称_ [,...]
删除规则
删除一个重写规则。
DROP RULE名称ON关系[CASCADE | 限制 ]
架构图
删除一个模式。
SCHEMA的名称[,...] [级联| 限制 ]
下降顺序
删除一个序列。
DROP SEQUENCE名称[,...] [级联| 限制 ]
滴台
删除一个表。
DROP TABLE名称[,...] [级联| 限制 ]
删除表空间
删除一个表空间。
DROP TABLESPACE tablespace_name
下降触发
删除一个索引定义。
DROP TRIGGER名称ON表格[CASCADE | 限制 ]
下降类型
删除一个用户定义数据类型。
DROP TYPE名称[,...] [级联| 限制 ]
删除用户
删除一个数据库用户帐号。
删除用户名
下拉视图
删除一个视图。
DROP VIEW名称[,...] [级联| 限制 ]
结束
提交当前的事务。
结束[工作| 交易]
执行
执行一个准备好的查询。
执行plan_name [(参数[,...])]
说明
显示一个语句的执行规划。
解释[分析] [详细]语句
取
用游标从查询中抓取行。
抓取[方向{从| IN}] cursor_name
方向可以是以下选项之一:
下一个 先验 持续 计数 相对计数 计数 所有 向前 前进计数 全部转发 向后 倒数 向后全部
格兰特
定义访问权限。
授予{{选择| 插入| 更新| 删除 规则| 参考| 触发} [,...] | 全部[特权]} 开启[TABLE] table_name [,...] TO {用户名| GROUP group_name | 公用} [,...] [带有GRANT OPTION] 授予{{创建| 临时| TEMP} [,...] | 全部[特权]} 在数据库db_name [,...] TO {用户名| GROUP group_name | 公用} [,...] [带有GRANT OPTION] 赠予{创建| 全部[特权]} 在TABLESPACE tablespace_name [,...] TO {用户名| GROUP group_name | 公用} [,...] [带有GRANT OPTION] 授予{执行| 全部[特权]} ON FUNCTION func_name([type,...])[,...] TO {用户名| GROUP group_name | 公用} [,...] [带有GRANT OPTION] 赠予{用法| 全部[特权]} ON LANGUAGE lang_name [,...] TO {用户名| GROUP group_name | 公用} [,...] [带有GRANT OPTION] 授予{{创建| 使用方法} [,...] | 全部[特权]} SCHEMA schema_name [,...] TO {用户名| GROUP group_name | 公用} [,...] [带有GRANT OPTION]
插
在表中创造新行,即插入数据。
INSERT INTO表[(列[,...])] {默认值| 值({表达式|默认} [,...])| 查询}
听
监听一个通知。
听名字
加载
加载或重载一个共享库文件。
加载“文件名”
锁
锁定一个表。
LOCK [TABLE]名称[,...] [IN lock_mode模式] [NOWAIT]
lock_mode可以是以下选项之一:
访问共享| 行共享| 排他性| 共享更新 | 分享| 行| | 访问
移动
定位一个游标。
移动[方向{从| IN}] cursor_name
通知
生成一个通知。
通知名称
准备
创建一个准备好的查询。
PREPARE plan_name [(data_type [,...])] AS语句
重新索引
重建索引。
REINDEX {数据库| 表格| 索引}名称[强制]
释放保存点
删除一个前面定义的保存点。
释放[SAVEPOINT] savepoint_name
重启
把一个运行时参数值恢复为预设值。
重置名称 重置所有
撤消
删除访问权限。
撤消[允许的选项] {{选择| 插入| 更新| 删除 规则| 参考| 触发} [,...] | 全部[特权]} 开启[TABLE] table_name [,...] FROM {用户名| GROUP group_name | 上市 } [, ...] [级联| 限制 ] 撤消[允许的选项] {{创建| 临时| TEMP} [,...] | 全部[特权]} 在数据库db_name [,...] FROM {用户名| GROUP group_name | 上市 } [, ...] [级联| 限制 ] 撤消[允许的选项] {创建| 全部[特权]} 在TABLESPACE tablespace_name [,...] FROM {用户名| GROUP group_name | 上市 } [, ...] [级联| 限制 ] 撤消[允许的选项] {执行| 全部[特权]} ON FUNCTION func_name([type,...])[,...] FROM {用户名| GROUP group_name | 上市 } [, ...] [级联| 限制 ] 撤消[允许的选项] {用法| 全部[特权]} ON LANGUAGE lang_name [,...] FROM {用户名| GROUP group_name | 上市 } [, ...] [级联| 限制 ] 撤消[允许的选项] {{创建| 使用方法} [,...] | 全部[特权]} SCHEMA schema_name [,...] FROM {用户名| GROUP group_name | 上市 } [, ...] [级联| 限制 ]
回滚
退出当前事务。
回滚[工作| 交易]
回滚到保存点
回滚到一个保存点。
回滚[工作| 交易]到[保存点] savepoint_name
保存点
在当前事务里定义一个新的保存点。
SAVEPOINT savepoint_name
选择
从表或视图中取出若干行。
选择[全部| DISTINCT [ON(expression [,...])]] * | 表达式[AS output_name] [,...] [FROM from_item [,...]] [条件] [GROUP BY表达式[,...]] [具有条件[,...]] [{UNION | 交集| 除} [全部]选择] [ORDER BY表达式[ASC | DESC | 使用运算符] [,...]] [LIMIT {计数| 全部}] [偏移开始] [FOR UPDATE [OF table_name [,...]]]
from_item可以是以下选项:
[仅] table_name [*] [[AS]别名[(column_alias [,...])]] (选择)[AS]别名[(column_alias [,...])] function_name([参数[,...]]) [AS]别名[(column_alias [,...] | column_definition [,...])] function_name([参数[,...]])AS(column_definition [,...]) from_item [NATURAL] join_type from_item [ON join_condition | 使用(join_column [,...])]
选择进入
从一个查询的结果中定义一个新表。
选择[全部| DISTINCT [ON(expression [,...])]] * | 表达式[AS output_name] [,...] 进入[临时| TEMP] [TABLE] new_table [FROM from_item [,...]] [条件] [GROUP BY表达式[,...]] [具有条件[,...]] [{UNION | 交集| 除} [全部]选择] [ORDER BY表达式[ASC | DESC | 使用运算符] [,...]] [LIMIT {计数| 全部}] [偏移开始] [FOR UPDATE [OF table_name [,...]]]
组
修改运行时参数。
设置[会议| 本地名称] {TO | =} {值| '值'| 默认} 设置[会议| 本地]时区{time_zone | 当地| 默认}
设置约束
设置当前事务的约束检查模式。
设置约束{全部| 名称[,...]} {延迟| 立即}
设置会话授权
为当前会话设置会话用户标识符和当前用户标识符。
设置[会议| 本地]会话授权用户名 设置[会议| 本地]会话授权默认 重置会话授权
设定交易
开始一个事务块。
SET TRANSACTION transaction_mode [,...] 将会话特征设置为事务transaction_mode [,...]
其中transaction_mode是-
隔离级别{可简化| 可重复阅读 读已提交 | 阅读未提交的内容} 读写| 只读
显示
显示运行时参数的值。
显示名称 显示所有
开始交易
开始一个事务块。
开始交易[transaction_mode [,...]]
transaction_mode可以是下面的选项之一:
隔离级别{可简化| 可重复阅读 读已提交 | 阅读未提交的内容} 读写| 只读
截短
清空一个或一组表。
TRUNCATE [TABLE]名称
不听
停止监听通知信息。
取消收听{名称| *}
更新
更新一个表中的行。
UPDATE [ONLY]表SET列= {表达式| 默认} [,...] [FROM from_list] [条件]
真空
垃圾收集以及任选地分析一个数据库。
真空[满] [冻结] [详细] [表] 真空[完整] [冻结] [详细]分析[表[(列[,...])]]
价值
计算一个或一组行。
VALUES(_expression_ [,...])[,...] [ORDER BY _sort_expression_ [ASC | DESC | 使用_operator_] [,...]] [LIMIT {_count_ | 全部}] [OFFSET _start_ [ROW | [行] [FETCH {FIRST | NEXT} [_count_] {ROW | ROWS}仅]
更多内容可以参考手册中的SQL语法:http : //www.runoob.com/manual/PostgreSQL/sql-syntax.html。